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; import org.xmind.ui.mindmap.IBranchPart; public class StrokeCircleDecorationFactory implements IDecorationFactory, IExecutableExtension { private String[] svgFilePaths; private String innerPath; private String outerPath; public StrokeCircleDecorationFactory() { } public void setInitializationData(IConfigurationElement config, String propertyName, Object data) throws CoreException { if (data instanceof String) { String svgFilePath = (String) data; svgFilePaths = svgFilePath.split(","); //$NON-NLS-1$ } } public IDecoration createDecoration(String id, IGraphicalPart part) { if (innerPath == null) { SvgFileLoader loader = SvgFileLoader.getInstance(); innerPath = loader.loadSvgFile(svgFilePaths[0]); } if (outerPath == null && svgFilePaths.length > 1) { SvgFileLoader loader = SvgFileLoader.getInstance(); outerPath = loader.loadSvgFile(svgFilePaths[1]); } return new StrokeCircleTopicDecoration(id, (IBranchPart) part, innerPath, outerPath); } }