package org.xmind.ui.internal.decorations; import org.eclipse.core.runtime.CoreException; import org.eclipse.core.runtime.IConfigurationElement; import org.eclipse.core.runtime.IExecutableExtension; import org.xmind.gef.draw2d.decoration.IDecoration; import org.xmind.gef.part.IGraphicalPart; import org.xmind.ui.decorations.IDecorationFactory; import org.xmind.ui.internal.svgsupport.SvgFileLoader; public class CloudDecorationFactory implements IDecorationFactory, IExecutableExtension { private String svgFilePath; private String path; public CloudDecorationFactory() { } public void setInitializationData(IConfigurationElement config, String propertyName, Object data) throws CoreException { if (data instanceof String) { svgFilePath = (String) data; } } public IDecoration createDecoration(String id, IGraphicalPart part) { if (path == null) { SvgFileLoader loader = SvgFileLoader.getInstance(); path = loader.loadSvgFile(svgFilePath); } return new CloudTopicDecoration(id, path); } }