package net.ms.designer.editors.workflow.tools; import java.util.ArrayList; import java.util.List; import net.ms.designer.editors.workflow.Messages; import net.ms.designer.editors.workflow.WorkflowImages; import net.ms.designer.editors.workflow.models.EndNode; import net.ms.designer.editors.workflow.models.RouteOnlyActivity; import net.ms.designer.editors.workflow.models.StartNode; import net.ms.designer.editors.workflow.models.SubFlowActivity; import net.ms.designer.editors.workflow.models.SystemAppActivity; import net.ms.designer.editors.workflow.models.UserAppActivity; import net.ms.designer.editors.workflow.models.Wire; import org.eclipse.gef.palette.CombinedTemplateCreationEntry; import org.eclipse.gef.palette.ConnectionCreationToolEntry; import org.eclipse.gef.palette.PaletteContainer; import org.eclipse.gef.palette.PaletteDrawer; import org.eclipse.gef.palette.PaletteGroup; import org.eclipse.gef.palette.PaletteRoot; import org.eclipse.gef.palette.SelectionToolEntry; import org.eclipse.gef.palette.ToolEntry; import org.eclipse.gef.requests.SimpleFactory; public class WorkflowPaletteFactory { public static PaletteRoot createPalette() { PaletteRoot paletteRoot = new PaletteRoot(); paletteRoot.addAll(createCategories(paletteRoot)); return paletteRoot; } private static List createCategories(PaletteRoot root) { List categories = new ArrayList(); categories.add(createControlGroup(root)); categories.add(createComponentsDrawer()); return categories; } private static PaletteContainer createControlGroup(PaletteRoot root) { PaletteGroup controlGroup = new PaletteGroup("Control Group"); List entries = new ArrayList(); ToolEntry tool = new SelectionToolEntry(); entries.add(tool); root.setDefaultEntry(tool); tool = new ConnectionCreationToolEntry(Messages.getString("WorkflowPaletteFactory.wire"), Messages.getString("WorkflowPaletteFactory.wire_desc"),null, null, null); entries.add(tool); controlGroup.addAll(entries); return controlGroup; } private static PaletteContainer createComponentsDrawer() { PaletteDrawer drawer = new PaletteDrawer("Components"); List entries = new ArrayList(); ToolEntry startNode = new CombinedTemplateCreationEntry(Messages.getString("WorkflowPaletteFactory.startnode"), Messages.getString("WorkflowPaletteFactory.startnode_desc"), StartNode.class, new SimpleFactory( StartNode.class), WorkflowImages.getImageDescriptor(WorkflowImages.STARTNODE_16), null); entries.add(startNode); ToolEntry endNode = new CombinedTemplateCreationEntry(Messages.getString("WorkflowPaletteFactory.endnode"), Messages.getString("WorkflowPaletteFactory.endnode_desc"), EndNode.class, new SimpleFactory( EndNode.class), WorkflowImages.getImageDescriptor(WorkflowImages.ENDNODE_16), null); entries.add(endNode); // ToolEntry routeOnly = new CombinedTemplateCreationEntry(Messages.getString("WorkflowPaletteFactory.route"), Messages.getString("WorkflowPaletteFactory.route_desc"), RouteOnlyActivity.class, new SimpleFactory( // RouteOnlyActivity.class), WorkflowImages.getImageDescriptor(WorkflowImages.ROUTE_16), null); // entries.add(routeOnly); ToolEntry javaApp = new CombinedTemplateCreationEntry(Messages.getString("WorkflowPaletteFactory.javaapp"), Messages.getString("WorkflowPaletteFactory.javaapp_desc"), SystemAppActivity.class, new SimpleFactory( SystemAppActivity.class), WorkflowImages.getImageDescriptor(WorkflowImages.JAVAAPPLICATION_16), null); entries.add(javaApp); ToolEntry subFlowNode = new CombinedTemplateCreationEntry(Messages.getString("WorkflowPaletteFactory.subflownode"), Messages.getString("WorkflowPaletteFactory.subflownode_desc"), SubFlowActivity .class, new SimpleFactory( SubFlowActivity.class), WorkflowImages.getImageDescriptor(WorkflowImages.SUBFLOW_16), null); entries.add(subFlowNode); ToolEntry webAppNode = new CombinedTemplateCreationEntry(Messages.getString("WorkflowPaletteFactory.webapp"), Messages.getString("WorkflowPaletteFactory.webapp_desc"), UserAppActivity.class, new SimpleFactory( UserAppActivity.class), WorkflowImages.getImageDescriptor(WorkflowImages.WEBBAPPLICATION_16), null); entries.add(webAppNode); drawer.addAll(entries); return drawer; } }