/machinelearning/5.0.x/drools-eclipse/org.drools.eclipse/src/main/java/org/drools/eclipse/flow/ruleflow/editor/RuleFlowPaletteFactory.java

https://github.com/droolsjbpm/droolsjbpm-contributed-experiments · Java · 120 lines · 49 code · 14 blank · 57 comment · 0 complexity · b1b6a7050e1f03e036cd9d49fc0c8952 MD5 · raw file

  1. package org.drools.eclipse.flow.ruleflow.editor;
  2. /*
  3. * Copyright 2005 JBoss Inc
  4. *
  5. * Licensed under the Apache License, Version 2.0 (the "License");
  6. * you may not use this file except in compliance with the License.
  7. * You may obtain a copy of the License at
  8. *
  9. * http://www.apache.org/licenses/LICENSE-2.0
  10. *
  11. * Unless required by applicable law or agreed to in writing, software
  12. * distributed under the License is distributed on an "AS IS" BASIS,
  13. * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  14. * See the License for the specific language governing permissions and
  15. * limitations under the License.
  16. */
  17. import java.util.ArrayList;
  18. import java.util.List;
  19. import org.drools.eclipse.DroolsEclipsePlugin;
  20. import org.drools.eclipse.flow.ruleflow.skin.SkinManager;
  21. import org.drools.eclipse.flow.ruleflow.skin.SkinProvider;
  22. import org.drools.eclipse.preferences.IDroolsConstants;
  23. import org.eclipse.gef.palette.MarqueeToolEntry;
  24. import org.eclipse.gef.palette.PaletteContainer;
  25. import org.eclipse.gef.palette.PaletteDrawer;
  26. import org.eclipse.gef.palette.PaletteEntry;
  27. import org.eclipse.gef.palette.PaletteGroup;
  28. import org.eclipse.gef.palette.PaletteRoot;
  29. import org.eclipse.gef.palette.SelectionToolEntry;
  30. import org.eclipse.gef.palette.ToolEntry;
  31. /**
  32. * Factory for creating a RuleFlow palette.
  33. *
  34. * @author <a href="mailto:kris_verlaenen@hotmail.com">Kris Verlaenen</a>
  35. */
  36. public class RuleFlowPaletteFactory {
  37. public static PaletteRoot createPalette() {
  38. PaletteRoot flowPalette = new PaletteRoot();
  39. flowPalette.addAll(createCategories(flowPalette));
  40. return flowPalette;
  41. }
  42. private static List<PaletteEntry> createCategories(PaletteRoot root) {
  43. List<PaletteEntry> categories = new ArrayList<PaletteEntry>();
  44. categories.add(createControlGroup(root));
  45. String skin = DroolsEclipsePlugin.getDefault().getPreferenceStore().getString(IDroolsConstants.SKIN);
  46. SkinProvider skinProvider = SkinManager.getInstance().getSkinProvider(skin);
  47. categories.add(skinProvider.createComponentsDrawer());
  48. categories.add(createWorkNodesDrawer());
  49. return categories;
  50. }
  51. private static PaletteContainer createWorkNodesDrawer() {
  52. PaletteDrawer drawer = new PaletteDrawer("Work Items", null);
  53. // List entries = new ArrayList();
  54. //
  55. // for (Iterator iterator = WorkItemDefinitions.getWorkDefinitions().iterator(); iterator.hasNext(); ) {
  56. // final WorkDefinition workDefinition = (WorkDefinition) iterator.next();
  57. // final String label;
  58. // String description = workDefinition.getName();
  59. // String icon = null;
  60. // if (workDefinition instanceof WorkDefinitionExtension) {
  61. // WorkDefinitionExtension extension = (WorkDefinitionExtension) workDefinition;
  62. // label = extension.getDisplayName();
  63. // description = extension.getExplanationText();
  64. // icon = extension.getIcon();
  65. // } else {
  66. // label = workDefinition.getName();
  67. // }
  68. //
  69. // CombinedTemplateCreationEntry combined = new CombinedTemplateCreationEntry(
  70. // label,
  71. // description,
  72. // WorkItemWrapper.class,
  73. // new SimpleFactory(WorkItemWrapper.class) {
  74. // public Object getNewObject() {
  75. // WorkItemWrapper taskWrapper = (WorkItemWrapper) super.getNewObject();
  76. // taskWrapper.setName(label);
  77. // taskWrapper.getWorkItemNode().setName(label);
  78. // taskWrapper.getWorkItemNode().setWork(new WorkImpl());
  79. // taskWrapper.getWorkItemNode().getWork().setName(workDefinition.getName());
  80. // return taskWrapper;
  81. // }
  82. // },
  83. // ImageDescriptor.createFromURL(DroolsEclipsePlugin.getDefault().getBundle().getEntry(icon == null? "icons/action.gif" : icon)),
  84. // ImageDescriptor.createFromURL(DroolsEclipsePlugin.getDefault().getBundle().getEntry(icon == null? "icons/action.gif" : icon))
  85. // );
  86. // entries.add(combined);
  87. // }
  88. //
  89. // drawer.addAll(entries);
  90. return drawer;
  91. }
  92. private static PaletteContainer createControlGroup(PaletteRoot root) {
  93. PaletteGroup controlGroup = new PaletteGroup("Control Group");
  94. List<PaletteEntry> entries = new ArrayList<PaletteEntry>();
  95. ToolEntry tool = new SelectionToolEntry();
  96. entries.add(tool);
  97. root.setDefaultEntry(tool);
  98. tool = new MarqueeToolEntry();
  99. entries.add(tool);
  100. String skin = DroolsEclipsePlugin.getDefault().getPreferenceStore().getString(IDroolsConstants.SKIN);
  101. SkinProvider skinProvider = SkinManager.getInstance().getSkinProvider(skin);
  102. entries.add(skinProvider.createConnectionEntry());
  103. controlGroup.addAll(entries);
  104. return controlGroup;
  105. }
  106. }