diff options
author | Bob Brodt | 2014-05-23 02:35:16 +0000 |
---|---|---|
committer | Bob Brodt | 2014-05-23 02:35:16 +0000 |
commit | 2af4018fbc2b80225fb1b1ec870b6ebbf478d896 (patch) | |
tree | debf5a5ee903a420956f0865a27dac647786ee34 | |
parent | 241d152beab8a69c62dbfb54edc45932cf1132c0 (diff) | |
download | org.eclipse.bpmn2-modeler-2af4018fbc2b80225fb1b1ec870b6ebbf478d896.tar.gz org.eclipse.bpmn2-modeler-2af4018fbc2b80225fb1b1ec870b6ebbf478d896.tar.xz org.eclipse.bpmn2-modeler-2af4018fbc2b80225fb1b1ec870b6ebbf478d896.zip |
Split out default tool palette entries so they make more sense
22 files changed, 1862 insertions, 204 deletions
diff --git a/plugins/org.eclipse.bpmn2.modeler.core/src/org/eclipse/bpmn2/modeler/core/features/AbstractBpmn2CreateConnectionFeature.java b/plugins/org.eclipse.bpmn2.modeler.core/src/org/eclipse/bpmn2/modeler/core/features/AbstractBpmn2CreateConnectionFeature.java index 3a9b8a27..1fb5930d 100644 --- a/plugins/org.eclipse.bpmn2.modeler.core/src/org/eclipse/bpmn2/modeler/core/features/AbstractBpmn2CreateConnectionFeature.java +++ b/plugins/org.eclipse.bpmn2.modeler.core/src/org/eclipse/bpmn2/modeler/core/features/AbstractBpmn2CreateConnectionFeature.java @@ -275,6 +275,10 @@ public abstract class AbstractBpmn2CreateConnectionFeature< TargetRuntime.getCurrentRuntime().notify(new LifecycleEvent(EventType.BUSINESSOBJECT_INITIALIZED, getFeatureProvider(), context, businessObject)); } + + public EClass getFeatureClass() { + return getBusinessObjectClass(); + } /* (non-Javadoc) * @see org.eclipse.bpmn2.modeler.core.features.IBpmn2CreateFeature#postExecute(org.eclipse.graphiti.IExecutionInfo) diff --git a/plugins/org.eclipse.bpmn2.modeler.core/src/org/eclipse/bpmn2/modeler/core/features/AbstractBpmn2CreateFeature.java b/plugins/org.eclipse.bpmn2.modeler.core/src/org/eclipse/bpmn2/modeler/core/features/AbstractBpmn2CreateFeature.java index 65edad7e..98c4dab2 100644 --- a/plugins/org.eclipse.bpmn2.modeler.core/src/org/eclipse/bpmn2/modeler/core/features/AbstractBpmn2CreateFeature.java +++ b/plugins/org.eclipse.bpmn2.modeler.core/src/org/eclipse/bpmn2/modeler/core/features/AbstractBpmn2CreateFeature.java @@ -14,6 +14,7 @@ package org.eclipse.bpmn2.modeler.core.features; import org.eclipse.bpmn2.BaseElement; +import org.eclipse.bpmn2.Bpmn2Package; import org.eclipse.bpmn2.modeler.core.LifecycleEvent; import org.eclipse.bpmn2.modeler.core.LifecycleEvent.EventType; import org.eclipse.bpmn2.modeler.core.adapters.ExtendedPropertiesAdapter; @@ -126,6 +127,10 @@ public abstract class AbstractBpmn2CreateFeature<T extends BaseElement> getFeatureProvider(), context, businessObject)); } + public EClass getFeatureClass() { + return getBusinessObjectClass(); + } + @Override protected Object getBusinessObjectForPictogramElement(PictogramElement pe) { // the Graphiti {@link diff --git a/plugins/org.eclipse.bpmn2.modeler.core/src/org/eclipse/bpmn2/modeler/core/features/CompoundCreateFeature.java b/plugins/org.eclipse.bpmn2.modeler.core/src/org/eclipse/bpmn2/modeler/core/features/CompoundCreateFeature.java index 947bcf84..2ee3aa53 100644 --- a/plugins/org.eclipse.bpmn2.modeler.core/src/org/eclipse/bpmn2/modeler/core/features/CompoundCreateFeature.java +++ b/plugins/org.eclipse.bpmn2.modeler.core/src/org/eclipse/bpmn2/modeler/core/features/CompoundCreateFeature.java @@ -38,8 +38,6 @@ import org.eclipse.graphiti.mm.pictograms.ContainerShape; import org.eclipse.graphiti.mm.pictograms.Diagram; import org.eclipse.graphiti.mm.pictograms.PictogramElement; import org.eclipse.graphiti.services.Graphiti; -import org.eclipse.ui.views.properties.IPropertySheetPage; -import org.eclipse.core.runtime.IAdaptable; /** * This is a Graphiti CreateFeature class that can be used to create multiple objects. @@ -49,8 +47,7 @@ import org.eclipse.core.runtime.IAdaptable; */ public class CompoundCreateFeature<CONTEXT extends IContext> extends AbstractCreateFeature - implements IBpmn2CreateFeature<BaseElement, CONTEXT>, - ICreateConnectionFeature { + implements IBpmn2CreateFeature<BaseElement, CONTEXT>, ICreateConnectionFeature { /** The {@code CompoundCreateFeaturePart} children. */ protected List<CompoundCreateFeaturePart<CONTEXT>> children = new ArrayList<CompoundCreateFeaturePart<CONTEXT>>(); @@ -388,4 +385,8 @@ public class CompoundCreateFeature<CONTEXT extends IContext> } } } + + public EClass getFeatureClass() { + return null; + } } diff --git a/plugins/org.eclipse.bpmn2.modeler.core/src/org/eclipse/bpmn2/modeler/core/features/IBpmn2CreateFeature.java b/plugins/org.eclipse.bpmn2.modeler.core/src/org/eclipse/bpmn2/modeler/core/features/IBpmn2CreateFeature.java index 447d8703..1bad9f86 100644 --- a/plugins/org.eclipse.bpmn2.modeler.core/src/org/eclipse/bpmn2/modeler/core/features/IBpmn2CreateFeature.java +++ b/plugins/org.eclipse.bpmn2.modeler.core/src/org/eclipse/bpmn2/modeler/core/features/IBpmn2CreateFeature.java @@ -41,21 +41,30 @@ public interface IBpmn2CreateFeature<T extends EObject, C extends IContext> { public T getBusinessObject(C context); /** - * Put business object. + * Set the business object into the Graphiti context. * - * @param context the context + * @param context the Graphiti context * @param businessObject the business object */ public void putBusinessObject(C context, T businessObject); /** - * Gets the business object class. + * Gets the business object class. This is the BPMN2 model object EClass. * * @return the business object class */ public EClass getBusinessObjectClass(); /** + * Gets the BPMN2 model object class that the Feature Provider uses to map + * Feature Containers. This is usually the same as the Business Object class + * (except for example {@see CallGlobalTaskFeatureContainer}). + * + * @return the business object class + */ + public EClass getFeatureClass(); + + /** * Post execute. * * @param executionInfo the execution info diff --git a/plugins/org.eclipse.bpmn2.modeler.core/src/org/eclipse/bpmn2/modeler/core/features/activity/AbstractCreateExpandableFlowNodeFeature.java b/plugins/org.eclipse.bpmn2.modeler.core/src/org/eclipse/bpmn2/modeler/core/features/activity/AbstractCreateExpandableFlowNodeFeature.java index c41243bf..8147990f 100644 --- a/plugins/org.eclipse.bpmn2.modeler.core/src/org/eclipse/bpmn2/modeler/core/features/activity/AbstractCreateExpandableFlowNodeFeature.java +++ b/plugins/org.eclipse.bpmn2.modeler.core/src/org/eclipse/bpmn2/modeler/core/features/activity/AbstractCreateExpandableFlowNodeFeature.java @@ -35,8 +35,7 @@ public abstract class AbstractCreateExpandableFlowNodeFeature<T extends FlowNode * @param name the name * @param description the description */ - public AbstractCreateExpandableFlowNodeFeature(IFeatureProvider fp, String name, - String description) { + public AbstractCreateExpandableFlowNodeFeature(IFeatureProvider fp, String name, String description) { super(fp, name, description); } diff --git a/plugins/org.eclipse.bpmn2.modeler.core/src/org/eclipse/bpmn2/modeler/core/preferences/Messages.java b/plugins/org.eclipse.bpmn2.modeler.core/src/org/eclipse/bpmn2/modeler/core/preferences/Messages.java index d57f7591..76e5d9e7 100644 --- a/plugins/org.eclipse.bpmn2.modeler.core/src/org/eclipse/bpmn2/modeler/core/preferences/Messages.java +++ b/plugins/org.eclipse.bpmn2.modeler.core/src/org/eclipse/bpmn2/modeler/core/preferences/Messages.java @@ -53,6 +53,11 @@ public class Messages extends NLS { public static String ShapeStyle_Category_Events; public static String ShapeStyle_Category_Gateways; public static String ShapeStyle_Category_Tasks; + public static String ShapeStyle_Category_GlobalTasks; + public static String ShapeStyle_Category_SubProcess; + public static String ShapeStyle_Category_Choreography; + public static String ShapeStyle_Category_Conversation; + public static String ShapeStyle_Category_SwimLanes; public static String ShapeStyle_Category_Data; public static String ShapeStyle_Category_Other; public static String ShapeStyle_Category_Canvas; diff --git a/plugins/org.eclipse.bpmn2.modeler.core/src/org/eclipse/bpmn2/modeler/core/preferences/ShapeStyle.java b/plugins/org.eclipse.bpmn2.modeler.core/src/org/eclipse/bpmn2/modeler/core/preferences/ShapeStyle.java index 1d717779..384a32e7 100644 --- a/plugins/org.eclipse.bpmn2.modeler.core/src/org/eclipse/bpmn2/modeler/core/preferences/ShapeStyle.java +++ b/plugins/org.eclipse.bpmn2.modeler.core/src/org/eclipse/bpmn2/modeler/core/preferences/ShapeStyle.java @@ -107,8 +107,13 @@ public class ShapeStyle extends BaseRuntimeExtensionDescriptor { EVENTS(Messages.ShapeStyle_Category_Events), GATEWAYS(Messages.ShapeStyle_Category_Gateways), TASKS(Messages.ShapeStyle_Category_Tasks), + GLOBAL_TASKS(Messages.ShapeStyle_Category_GlobalTasks), + SUBPROCESS(Messages.ShapeStyle_Category_SubProcess), + CHOREOGRAPHY(Messages.ShapeStyle_Category_Choreography), + CONVERSATION(Messages.ShapeStyle_Category_Conversation), + SWIMLANES(Messages.ShapeStyle_Category_SwimLanes), DATA(Messages.ShapeStyle_Category_Data), - OTHER(Messages.ShapeStyle_Category_Other), + ARTIFACTS(Messages.ShapeStyle_Category_Other), CANVAS(Messages.ShapeStyle_Category_Canvas), GRID(Messages.ShapeStyle_Category_Grid), NONE(""); diff --git a/plugins/org.eclipse.bpmn2.modeler.core/src/org/eclipse/bpmn2/modeler/core/preferences/messages.properties b/plugins/org.eclipse.bpmn2.modeler.core/src/org/eclipse/bpmn2/modeler/core/preferences/messages.properties index d53d1c77..ec5faa01 100644 --- a/plugins/org.eclipse.bpmn2.modeler.core/src/org/eclipse/bpmn2/modeler/core/preferences/messages.properties +++ b/plugins/org.eclipse.bpmn2.modeler.core/src/org/eclipse/bpmn2/modeler/core/preferences/messages.properties @@ -49,6 +49,11 @@ ShapeStyle_Category_Events=Events ShapeStyle_Category_Shapes=Shapes ShapeStyle_Category_Gateways=Gateways ShapeStyle_Category_Tasks=Tasks +ShapeStyle_Category_GlobalTasks=Global Tasks +ShapeStyle_Category_SubProcess=SubProcess +ShapeStyle_Category_Choreography=Choreography +ShapeStyle_Category_Conversation=Conversation +ShapeStyle_Category_SwimLanes=Swim Lanes ShapeStyle_Category_Canvas=Canvas ShapeStyle_Category_Grid=Grid diff --git a/plugins/org.eclipse.bpmn2.modeler.core/src/org/eclipse/bpmn2/modeler/core/runtime/ModelDescriptor.java b/plugins/org.eclipse.bpmn2.modeler.core/src/org/eclipse/bpmn2/modeler/core/runtime/ModelDescriptor.java index 3505d899..9f7bf74b 100644 --- a/plugins/org.eclipse.bpmn2.modeler.core/src/org/eclipse/bpmn2/modeler/core/runtime/ModelDescriptor.java +++ b/plugins/org.eclipse.bpmn2.modeler.core/src/org/eclipse/bpmn2/modeler/core/runtime/ModelDescriptor.java @@ -38,10 +38,12 @@ public class ModelDescriptor extends BaseRuntimeExtensionDescriptor { try { // Find the EPackage for this URI if it exists. EPackage pkg = EPackage.Registry.INSTANCE.getEPackage(uri); - setEPackage(pkg); - setEFactory(getEPackage().getEFactoryInstance()); - if (e.getAttribute("resourceFactory")!=null) { //$NON-NLS-1$ - setResourceFactory((ResourceFactoryImpl) e.createExecutableExtension("resourceFactory")); //$NON-NLS-1$ + if (pkg!=null) { + setEPackage(pkg); + setEFactory(getEPackage().getEFactoryInstance()); + if (e.getAttribute("resourceFactory")!=null) { //$NON-NLS-1$ + setResourceFactory((ResourceFactoryImpl) e.createExecutableExtension("resourceFactory")); //$NON-NLS-1$ + } } } catch (Exception e1) { diff --git a/plugins/org.eclipse.bpmn2.modeler.core/src/org/eclipse/bpmn2/modeler/core/utils/GraphicsUtil.java b/plugins/org.eclipse.bpmn2.modeler.core/src/org/eclipse/bpmn2/modeler/core/utils/GraphicsUtil.java index 4608c31b..45d46bfd 100644 --- a/plugins/org.eclipse.bpmn2.modeler.core/src/org/eclipse/bpmn2/modeler/core/utils/GraphicsUtil.java +++ b/plugins/org.eclipse.bpmn2.modeler.core/src/org/eclipse/bpmn2/modeler/core/utils/GraphicsUtil.java @@ -1790,14 +1790,16 @@ public class GraphicsUtil { public static Shape findShapeAt(ContainerShape containerShape, Point p, IShapeFilter filter) { for (Shape c : containerShape.getChildren()) { - if (c instanceof ContainerShape) { - Shape cc = findShapeAt((ContainerShape) c, p, filter); - if (cc!=null) - return cc; - } - if (GraphicsUtil.contains(c, p)) { - if (filter.matches(c)) { - return c; + if (c.isActive()) { + if (c instanceof ContainerShape) { + Shape cc = findShapeAt((ContainerShape) c, p, filter); + if (cc!=null) + return cc; + } + if (GraphicsUtil.contains(c, p)) { + if (filter.matches(c)) { + return c; + } } } } diff --git a/plugins/org.eclipse.bpmn2.modeler.ui/plugin-old.xml b/plugins/org.eclipse.bpmn2.modeler.ui/plugin-old.xml new file mode 100644 index 00000000..42154376 --- /dev/null +++ b/plugins/org.eclipse.bpmn2.modeler.ui/plugin-old.xml @@ -0,0 +1,1365 @@ +<?xml version="1.0" encoding="UTF-8"?> +<?eclipse version="3.4"?> +<plugin> + <extension-point id="org.eclipse.bpmn2.modeler.ui" name="%extension-point.name" schema="schema/org.eclipse.bpmn2.modeler.ui.exsd"/> + <extension point="org.eclipse.ui.newWizards"> + <!-- <primaryWizard id="org.eclipse.bpmn2.modeler.ui.diagram"> </primaryWizard> --> + <wizard category="org.eclipse.bpmn2.wizardCategory" + class="org.eclipse.bpmn2.modeler.ui.wizards.BPMN2DiagramWizard" icon="icons/bpmn2_editor_16.png" + id="org.eclipse.bpmn2.modeler.ui.diagram" name="%wizard.name"> + </wizard> + </extension> + + <extension point="org.eclipse.ui.editors"> + <editor + class="org.eclipse.bpmn2.modeler.ui.editor.BPMN2MultiPageEditor" + contributorClass="org.eclipse.graphiti.ui.editor.DiagramEditorActionBarContributor" + default="true" + extensions="bpmn,bpmn2" + icon="icons/bpmn2_editor_16.png" + id="org.eclipse.bpmn2.modeler.ui.bpmn2editor" + name="%editor.name" + matchingStrategy="org.eclipse.bpmn2.modeler.ui.editor.BPMN2EditorMatchingStrategy"> + <contentTypeBinding contentTypeId="org.eclipse.bpmn2.content-type.xml"> + </contentTypeBinding> + </editor> + </extension> + + <extension point="org.eclipse.core.contenttype.contentTypes"> + <content-type + base-type="org.eclipse.core.runtime.xml" + id="org.eclipse.bpmn2.content-type.xml" + name="%content-type.name" + file-extensions="bpmn,bpmn2,bpmn20,xml" + priority="high"> + <describer + class="org.eclipse.bpmn2.modeler.ui.Bpmn2ContentDescriber" + plugin="org.eclipse.bpmn2.modeler.ui"> + </describer> + </content-type> + <file-association + content-type="org.eclipse.bpmn2.content-type.xml" + file-extensions="bpmn,bpmn2"> + </file-association> + </extension> + + <extension + point="org.eclipse.ui.elementFactories" + id=".Bpmn2DiagramEditorInputFactory" + name="%extension.name"> + <factory + class="org.eclipse.bpmn2.modeler.ui.Bpmn2DiagramEditorInputFactory" + id= "org.eclipse.bpmn2.modeler.ui.Bpmn2DiagramEditorInputFactory"/> + </extension> + + <!-- Preference Pages --> + + <extension + point="org.eclipse.ui.preferencePages"> + <page + class="org.eclipse.bpmn2.modeler.ui.preferences.Bpmn2HomePreferencePage" + id="org.eclipse.bpmn2.modeler.BPMN2" + name="%PREFERENCE_PAGE_HOME"/> + <page + category="org.eclipse.bpmn2.modeler.BPMN2" + class="org.eclipse.bpmn2.modeler.ui.preferences.Bpmn2EditorPreferencePage" + id="org.eclipse.bpmn2.modeler.Editor" + name="%PREFERENCE_PAGE_EDITOR"/> + + <page + category="org.eclipse.bpmn2.modeler.BPMN2/org.eclipse.bpmn2.modeler.Editor" + class="org.eclipse.bpmn2.modeler.ui.preferences.Bpmn2EditorAppearancePreferencePage" + id="org.eclipse.bpmn2.modeler.Appearance" + name="%PREFERENCE_PAGE_APPEARANCE"/> + <page + category="org.eclipse.bpmn2.modeler.BPMN2/org.eclipse.bpmn2.modeler.Editor" + class="org.eclipse.bpmn2.modeler.ui.preferences.Bpmn2EditorBehaviorPreferencePage" + id="org.eclipse.bpmn2.modeler.Behavior" + name="%PREFERENCE_PAGE_BEHAVIOR"/> + <page + category="org.eclipse.bpmn2.modeler.BPMN2/org.eclipse.bpmn2.modeler.Editor" + class="org.eclipse.bpmn2.modeler.ui.preferences.ToolProfilesPreferencePage" + id="org.eclipse.bpmn2.modeler.Profiles" + name="%PREFERENCE_PAGE_PROFILES"/> + </extension> + + <!-- Property Pages - these per-project settings override the global preferences (above)--> + + <extension point="org.eclipse.ui.propertyPages"> + <page class="org.eclipse.bpmn2.modeler.ui.preferences.Bpmn2PropertyPage" + id="org.eclipse.bpmn2.modeler.ui" name="%page.name"> + <enabledWhen> + <or> + <!-- TODO: do we need a java project? <adapt type="org.eclipse.core.resources.IProject"> + <test property="org.eclipse.core.resources.projectNature" value="org.eclipse.jdt.core.javanature"> + </test> </adapt> --> + <adapt type="org.eclipse.core.resources.IProject"> + </adapt> + </or> + </enabledWhen> + </page> + </extension> + + <extension point="org.eclipse.ui.views.properties.tabbed.propertyContributor"> + <propertyContributor + contributorId="org.eclipse.bpmn2.modeler.ui.PropertyContributor" + labelProvider="org.eclipse.bpmn2.modeler.ui.property.PropertyLabelProvider" + tabDescriptorProvider="org.eclipse.bpmn2.modeler.ui.property.PropertyTabDescriptorProvider"> + <propertyCategory category="BPMN2"> + </propertyCategory> + </propertyContributor> + </extension> + + <extension point="org.eclipse.graphiti.ui.diagramTypes"> + <diagramType description="This is the diagram type for the BMPN2 diagram" + id="org.eclipse.bpmn2.modeler.ui.diagram.MainBPMNDiagramType" name="BPMN2 Diagram Type" + type="BPMN2"> + </diagramType> + </extension> + + <extension point="org.eclipse.graphiti.ui.diagramTypeProviders"> + <diagramTypeProvider + class="org.eclipse.bpmn2.modeler.ui.diagram.Bpmn2DiagramTypeProvider" + description="This is the editor for the BPMN2 diagram" + id="org.eclipse.bpmn2.modeler.ui.diagram.MainBPMNDiagramType" name="BPMN2 Editor"> + <diagramType + id="org.eclipse.bpmn2.modeler.ui.diagram.MainBPMNDiagramType"> + </diagramType> + <imageProvider id="org.eclipse.bpmn2.modeler.ui.ImageProvider"> + </imageProvider> + </diagramTypeProvider> + </extension> + + <extension point="org.eclipse.graphiti.ui.imageProviders"> + <imageProvider class="org.eclipse.bpmn2.modeler.ui.ImageProvider" + id="org.eclipse.bpmn2.modeler.ui.ImageProvider"> + </imageProvider> + </extension> + + <!-- Provide a default "runtime" behavior --> + + <extension point="org.eclipse.bpmn2.modeler.runtime"> + <runtime class="org.eclipse.bpmn2.modeler.ui.DefaultBpmn2RuntimeExtension" + description="%runtime.description" id="org.eclipse.bpmn2.modeler.runtime.none" + name="%runtime.name"> + </runtime> + + <model runtimeId="org.eclipse.bpmn2.modeler.runtime.none" + uri="http://www.omg.org/spec/BPMN/20100524/MODEL-XMI" + resourceFactory="org.eclipse.bpmn2.modeler.core.model.Bpmn2ModelerResourceFactoryImpl"> + </model> + + <!-- ======================================== --> + <!-- =========== Model Extensions ========== --> + <!-- ======================================== --> + + <dataType name="EColor" class="org.eclipse.bpmn2.modeler.ui.property.EColorConversionDelegate"/> + <dataType name="EFont" class="org.eclipse.bpmn2.modeler.ui.property.EFontConversionDelegate"/> + + <modelExtension + id="org.eclipse.bpmn2.modeler.runtime.none.modelExtension.appearance.BaseElement" + uri="http://org.eclipse.bpmn2/ext" + name="BaseElement Appearance" + type="BaseElement"> + <property name="style" type="ShapeStyle" label="%appearance"> + <value> + <property name="shapeForeground" type="EColor" label="%border.color" /> + <property name="shapeBackground" type="EColor" label="%fill.color" /> + <property name="labelForeground" type="EColor" label="%label.color" /> + <property name="labelFont" type="EFont" label="%label.font" /> + <property name="labelPosition" type="LabelPosition:EEnum" value="%label.position.values" label="%label.position" /> + <property name="routingStyle" type="RoutingStyle:EEnum" value="%routing.style.values" label="%routing.style" /> + </value> + </property> + </modelExtension> + + <!-- ======================================== --> + <!-- ============ Property Tabs ============ --> + <!-- ======================================== --> + + <propertyTab + id="org.eclipse.bpmn2.modeler.description.tab" + class="org.eclipse.bpmn2.modeler.ui.property.DescriptionPropertySection" + image="icons/20/Thumbnail.png" + popup="true" + label="%propertyTab.label.General"> + </propertyTab> + + <!-- ============ Diagrams ============ --> + <propertyTab + id="org.eclipse.bpmn2.modeler.process.diagram.tab" + afterTab="org.eclipse.bpmn2.modeler.description.tab" + class="org.eclipse.bpmn2.modeler.ui.property.diagrams.ProcessDiagramPropertySection" + type="org.eclipse.bpmn2.di.BPMNDiagram" + label="%propertyTab.label.0"> + </propertyTab> + + <propertyTab + id="org.eclipse.bpmn2.modeler.participant.tab" + afterTab="org.eclipse.bpmn2.modeler.description.tab" + class="org.eclipse.bpmn2.modeler.ui.property.diagrams.ParticipantPropertySection" + type="org.eclipse.bpmn2.Participant" + label="%propertyTab.label.60"> + </propertyTab> + + <propertyTab + id="org.eclipse.bpmn2.modeler.definitions.tab" + afterTab="org.eclipse.bpmn2.modeler.interface.tab" + class="org.eclipse.bpmn2.modeler.ui.property.diagrams.DefinitionsPropertySection" + type="org.eclipse.bpmn2.di.BPMNDiagram org.eclipse.bpmn2.Process" + label="%propertyTab.label.1"> + </propertyTab> + + <!-- ============ Connections ============ --> + <propertyTab + id="org.eclipse.bpmn2.modeler.assocation.tab" + afterTab="org.eclipse.bpmn2.modeler.description.tab" + class="default" + features="associationDirection" + type="org.eclipse.bpmn2.Association" + label="%propertyTab.label.2"> + </propertyTab> + + <propertyTab + id="org.eclipse.bpmn2.modeler.dataAssocation.tab" + afterTab="org.eclipse.bpmn2.modeler.description.tab" + class="default" + features="transformation assignment" + type="org.eclipse.bpmn2.DataInputAssociation org.eclipse.bpmn2.DataOutputAssociation" + label="%propertyTab.label.3"> + </propertyTab> + + <propertyTab + id="org.eclipse.bpmn2.modeler.sequenceflow.tab" + afterTab="org.eclipse.bpmn2.modeler.description.tab" + class="org.eclipse.bpmn2.modeler.ui.property.connectors.SequenceFlowPropertySection" + type="org.eclipse.bpmn2.SequenceFlow" + label="%propertyTab.label.4"> + </propertyTab> + + <propertyTab + id="org.eclipse.bpmn2.modeler.messageFlow.tab" + afterTab="org.eclipse.bpmn2.modeler.description.tab" + class="org.eclipse.bpmn2.modeler.ui.property.connectors.MessageFlowPropertySection" + type="org.eclipse.bpmn2.MessageFlow" + label="%propertyTab.label.5"> + </propertyTab> + + <!-- ============ Activities ============ --> + <propertyTab + id="org.eclipse.bpmn2.modeler.callActivity.tab" + afterTab="org.eclipse.bpmn2.modeler.description.tab" + class="org.eclipse.bpmn2.modeler.ui.property.tasks.ActivityPropertySection" + type="org.eclipse.bpmn2.CallActivity" + label="%propertyTab.label.6"> + </propertyTab> + + <propertyTab + id="org.eclipse.bpmn2.modeler.subProcess.tab" + afterTab="org.eclipse.bpmn2.modeler.description.tab" + class="org.eclipse.bpmn2.modeler.ui.features.activity.subprocess.SubProcessPropertySection" + type="org.eclipse.bpmn2.SubProcess" + label="%propertyTab.label.7"> + </propertyTab> + + <propertyTab + id="org.eclipse.bpmn2.modeler.adHocSubProcess.tab" + afterTab="org.eclipse.bpmn2.modeler.description.tab" + class="org.eclipse.bpmn2.modeler.ui.property.tasks.ActivityPropertySection" + type="org.eclipse.bpmn2.AdHocSubProcess" + label="%propertyTab.label.8"> + </propertyTab> + + <propertyTab + id="org.eclipse.bpmn2.modeler.transaction.tab" + afterTab="org.eclipse.bpmn2.modeler.description.tab" + class="org.eclipse.bpmn2.modeler.ui.property.tasks.ActivityPropertySection" + type="org.eclipse.bpmn2.Transaction" + label="%propertyTab.label.9"> + </propertyTab> + + <!-- ============ Tasks ============ --> + <propertyTab + id="org.eclipse.bpmn2.modeler.task.tab" + afterTab="org.eclipse.bpmn2.modeler.description.tab" + class="org.eclipse.bpmn2.modeler.ui.property.tasks.TaskPropertySection" + type="org.eclipse.bpmn2.Task" + label="%propertyTab.label.10"> + </propertyTab> + + <propertyTab + id="org.eclipse.bpmn2.modeler.businessRuleTask.tab" + replaceTab="org.eclipse.bpmn2.modeler.task.tab" + afterTab="org.eclipse.bpmn2.modeler.description.tab" + class="org.eclipse.bpmn2.modeler.ui.property.tasks.TaskPropertySection" + type="org.eclipse.bpmn2.BusinessRuleTask" + label="%propertyTab.label.11"> + </propertyTab> + + <propertyTab + id="org.eclipse.bpmn2.modeler.manualTask.tab" + replaceTab="org.eclipse.bpmn2.modeler.task.tab" + afterTab="org.eclipse.bpmn2.modeler.description.tab" + class="org.eclipse.bpmn2.modeler.ui.property.tasks.ManualTaskPropertySection" + type="org.eclipse.bpmn2.ManualTask" + label="%propertyTab.label.12"> + </propertyTab> + + <propertyTab + id="org.eclipse.bpmn2.modeler.receiveTask.tab" + replaceTab="org.eclipse.bpmn2.modeler.task.tab" + afterTab="org.eclipse.bpmn2.modeler.description.tab" + class="org.eclipse.bpmn2.modeler.ui.property.tasks.ActivityPropertySection" + features="implementation instantiate messageRef operationRef isForCompensation" + type="org.eclipse.bpmn2.ReceiveTask" + label="%propertyTab.label.13"> + </propertyTab> + + <propertyTab + id="org.eclipse.bpmn2.modeler.scriptTask.tab" + replaceTab="org.eclipse.bpmn2.modeler.task.tab" + afterTab="org.eclipse.bpmn2.modeler.description.tab" + class="org.eclipse.bpmn2.modeler.ui.property.tasks.ScriptTaskPropertySection" + type="org.eclipse.bpmn2.ScriptTask" + label="%propertyTab.label.14"> + </propertyTab> + + <propertyTab + id="org.eclipse.bpmn2.modeler.sendTask.tab" + replaceTab="org.eclipse.bpmn2.modeler.task.tab" + afterTab="org.eclipse.bpmn2.modeler.description.tab" + class="org.eclipse.bpmn2.modeler.ui.property.tasks.ActivityPropertySection" + features="implementation messageRef operationRef isForCompensation" + type="org.eclipse.bpmn2.SendTask" + label="%propertyTab.label.15"> + </propertyTab> + + <propertyTab + id="org.eclipse.bpmn2.modeler.serviceTask.tab" + replaceTab="org.eclipse.bpmn2.modeler.task.tab" + afterTab="org.eclipse.bpmn2.modeler.description.tab" + class="org.eclipse.bpmn2.modeler.ui.property.tasks.ActivityPropertySection" + features="implementation operationRef isForCompensation" + type="org.eclipse.bpmn2.ServiceTask" + label="%propertyTab.label.16"> + </propertyTab> + + <propertyTab + id="org.eclipse.bpmn2.modeler.userTask.tab" + replaceTab="org.eclipse.bpmn2.modeler.task.tab" + afterTab="org.eclipse.bpmn2.modeler.description.tab" + class="org.eclipse.bpmn2.modeler.ui.property.tasks.ActivityPropertySection" + features="implementation resources renderings isForCompensation" + type="org.eclipse.bpmn2.UserTask" + label="%propertyTab.label.17"> + </propertyTab> + + <!-- ============ Global Tasks ============ --> + + <propertyTab + id="org.eclipse.bpmn2.modeler.globalBusinessRuleTask.tab" + afterTab="org.eclipse.bpmn2.modeler.description.tab" + class="org.eclipse.bpmn2.modeler.ui.property.tasks.ActivityPropertySection" + features="implementation resources" + type="org.eclipse.bpmn2.GlobalBusinessRuleTask" + label="%propertyTab.label.18"> + </propertyTab> + + <propertyTab + id="org.eclipse.bpmn2.modeler.globalManualTask.tab" + afterTab="org.eclipse.bpmn2.modeler.description.tab" + class="default" + features="resources" + type="org.eclipse.bpmn2.GlobalManualTask" + label="%propertyTab.label.19"> + </propertyTab> + + <propertyTab + id="org.eclipse.bpmn2.modeler.globalScriptTask.tab" + afterTab="org.eclipse.bpmn2.modeler.description.tab" + class="default" + features="scriptLanguage script resources" + type="org.eclipse.bpmn2.GlobalScriptTask" + label="%propertyTab.label.20"> + </propertyTab> + + <propertyTab + id="org.eclipse.bpmn2.modeler.globalUserTask.tab" + afterTab="org.eclipse.bpmn2.modeler.description.tab" + class="org.eclipse.bpmn2.modeler.ui.property.tasks.ActivityPropertySection" + features="implementation resources" + type="org.eclipse.bpmn2.GlobalUserTask" + label="%propertyTab.label.21"> + </propertyTab> + + <!-- ============ Choreography Activities ============ --> + <propertyTab + id="org.eclipse.bpmn2.modeler.callChoreography.tab" + afterTab="org.eclipse.bpmn2.modeler.description.tab" + class="org.eclipse.bpmn2.modeler.ui.property.tasks.ActivityPropertySection" + type="org.eclipse.bpmn2.CallChoreography" + label="%propertyTab.label.22"> + </propertyTab> + + <propertyTab + id="org.eclipse.bpmn2.modeler.choreographyTask.tab" + afterTab="org.eclipse.bpmn2.modeler.description.tab" + class="default" + features="loopType initiatingParticipantRef correlationKeys messageFlowRef" + type="org.eclipse.bpmn2.ChoreographyTask" + label="%propertyTab.label.23"> + </propertyTab> + + <propertyTab + id="org.eclipse.bpmn2.modeler.subChoreography.tab" + afterTab="org.eclipse.bpmn2.modeler.description.tab" + class="default" + features="anyAttribute loopType participantRefs initiatingParticipantRef correlationKeys artifacts" + type="org.eclipse.bpmn2.SubChoreography" + label="%propertyTab.label.24"> + </propertyTab> + + <propertyTab + id="org.eclipse.bpmn2.modeler.conversation.tab" + afterTab="org.eclipse.bpmn2.modeler.description.tab" + class="default" + features="correlationKeys" + type="org.eclipse.bpmn2.Conversation" + label="%propertyTab.label.25"> + </propertyTab> + + <!-- ============ Gateways ============ --> + <propertyTab + id="org.eclipse.bpmn2.modeler.gateway.tab" + afterTab="org.eclipse.bpmn2.modeler.description.tab" + class="org.eclipse.bpmn2.modeler.ui.property.gateways.GatewayPropertySection" + type="org.eclipse.bpmn2.Gateway" + label="%propertyTab.label.26"> + </propertyTab> + + <!-- ============ Events ============ --> + <propertyTab + id="org.eclipse.bpmn2.modeler.commonEvent.tab" + afterTab="org.eclipse.bpmn2.modeler.description.tab" + class="org.eclipse.bpmn2.modeler.ui.property.events.CommonEventPropertySection" + type="org.eclipse.bpmn2.Event" + label="%propertyTab.label.27"> + </propertyTab> + + <!-- ============ Event Definitionss ============ --> + + <propertyTab + id="org.eclipse.bpmn2.modeler.conditionalEvent.tab" + afterTab="org.eclipse.bpmn2.modeler.description.tab" + class="org.eclipse.bpmn2.modeler.ui.property.events.ConditionalEventDefinitionPropertySection" + type="org.eclipse.bpmn2.ConditionalEventDefinition" + label="%propertyTab.label.28"> + </propertyTab> + + <propertyTab + id="org.eclipse.bpmn2.modeler.compensateEvent.tab" + afterTab="org.eclipse.bpmn2.modeler.description.tab" + class="default" + features="activityRef waitForCompletion" + type="org.eclipse.bpmn2.CompensateEventDefinition" + label="%propertyTab.label.29"> + </propertyTab> + + <propertyTab + id="org.eclipse.bpmn2.modeler.errorEvent.tab" + afterTab="org.eclipse.bpmn2.modeler.description.tab" + class="default" + features="errorRef" + type="org.eclipse.bpmn2.ErrorEventDefinition" + label="%propertyTab.label.30"> + </propertyTab> + + <propertyTab + id="org.eclipse.bpmn2.modeler.escalationEvent.tab" + afterTab="org.eclipse.bpmn2.modeler.description.tab" + class="default" + features="escalationRef" + type="org.eclipse.bpmn2.EscalationEventDefinition" + label="%propertyTab.label.31"> + </propertyTab> + + <propertyTab + id="org.eclipse.bpmn2.modeler.errorEvent.tab" + afterTab="org.eclipse.bpmn2.modeler.description.tab" + class="default" + features="errorRef" + type="org.eclipse.bpmn2.ErrorEventDefinition" + label="%propertyTab.label.32"> + </propertyTab> + + <propertyTab + id="org.eclipse.bpmn2.modeler.linkEvent.tab" + afterTab="org.eclipse.bpmn2.modeler.description.tab" + class="default" + features="name" + type="org.eclipse.bpmn2.LinkEventDefinition" + label="%propertyTab.label.33"> + </propertyTab> + + <propertyTab + id="org.eclipse.bpmn2.modeler.messageEvent.tab" + afterTab="org.eclipse.bpmn2.modeler.description.tab" + class="default" + features="messageRef operationReft" + type="org.eclipse.bpmn2.MessageEventDefinition" + label="%propertyTab.label.34"> + </propertyTab> + + <propertyTab + id="org.eclipse.bpmn2.modeler.signalEvent.tab" + afterTab="org.eclipse.bpmn2.modeler.description.tab" + class="default" + features="signalRef" + type="org.eclipse.bpmn2.SignalEventDefinition" + label="%propertyTab.label.35"> + </propertyTab> + + <propertyTab + id="org.eclipse.bpmn2.modeler.timerEvent.tab" + afterTab="org.eclipse.bpmn2.modeler.description.tab" + class="org.eclipse.bpmn2.modeler.ui.property.events.TimerEventDefinitionPropertySection" + type="org.eclipse.bpmn2.TimerEventDefinition" + label="%propertyTab.label.36"> + </propertyTab> + + <!-- ============ Artifacts ============ --> + + <propertyTab + id="org.eclipse.bpmn2.modeler.group.tab" + afterTab="org.eclipse.bpmn2.modeler.description.tab" + class="default" + features="categoryValueRef" + type="org.eclipse.bpmn2.Group" + label="%propertyTab.label.37"> + </propertyTab> + + <propertyTab + id="org.eclipse.bpmn2.modeler.textAnnotation.tab" + afterTab="org.eclipse.bpmn2.modeler.description.tab" + class="org.eclipse.bpmn2.modeler.ui.property.artifact.TextAnnotationPropertySection" + type="org.eclipse.bpmn2.TextAnnotation" + label="%propertyTab.label.38"> + </propertyTab> + + <!-- ============ Root Elements ============ --> + <propertyTab + id="org.eclipse.bpmn2.modeler.error.tab" + afterTab="org.eclipse.bpmn2.modeler.description.tab" + class="default" + features="errorCode structureRef" + type="org.eclipse.bpmn2.Error" + label="%propertyTab.label.39"> + </propertyTab> + + <propertyTab + id="org.eclipse.bpmn2.modeler.escalation.tab" + afterTab="org.eclipse.bpmn2.modeler.description.tab" + class="default" + features="escalationCode structureRef" + type="org.eclipse.bpmn2.Escalation" + label="%propertyTab.label.40"> + </propertyTab> + + <propertyTab + id="org.eclipse.bpmn2.modeler.interface.tab" + afterTab="org.eclipse.bpmn2.modeler.process.diagram.tab" + class="org.eclipse.bpmn2.modeler.ui.property.data.InterfacePropertySection" + type="org.eclipse.bpmn2.di.BPMNDiagram org.eclipse.bpmn2.Process org.eclipse.bpmn2.Participant" + label="%propertyTab.label.41"> + </propertyTab> + + <propertyTab + id="org.eclipse.bpmn2.modeler.interface.details.tab" + afterTab="org.eclipse.bpmn2.modeler.process.diagram.tab" + class="org.eclipse.bpmn2.modeler.ui.property.data.InterfacePropertySection" + type="org.eclipse.bpmn2.Interface" + label="%propertyTab.label.42"> + </propertyTab> + + <propertyTab + id="org.eclipse.bpmn2.modeler.operation.tab" + afterTab="org.eclipse.bpmn2.modeler.process.diagram.tab" + class="default" + features="implementationRef inMessageRef outMessageRef errorRefs" + type="org.eclipse.bpmn2.Operation" + label="%propertyTab.label.43"> + </propertyTab> + + <propertyTab + id="org.eclipse.bpmn2.modeler.itemDefinition.tab" + afterTab="org.eclipse.bpmn2.modeler.description.tab" + class="default" + features="itemKind structureRef isCollection" + type="org.eclipse.bpmn2.ItemDefinition" + label="%propertyTab.label.44"> + </propertyTab> + + <propertyTab + id="org.eclipse.bpmn2.modeler.message.tab" + afterTab="org.eclipse.bpmn2.modeler.description.tab" + class="default" + features="itemRef" + type="org.eclipse.bpmn2.Message" + label="%propertyTab.label.45"> + </propertyTab> + + <propertyTab + id="org.eclipse.bpmn2.modeler.partnerEntity.tab" + afterTab="org.eclipse.bpmn2.modeler.description.tab" + class="default" + features="participantRef" + type="org.eclipse.bpmn2.PartnerEntity" + label="%propertyTab.label.46"> + </propertyTab> + + <propertyTab + id="org.eclipse.bpmn2.modeler.partnerRole.tab" + afterTab="org.eclipse.bpmn2.modeler.description.tab" + class="default" + features="participantRef" + type="org.eclipse.bpmn2.PartnerRole" + label="%propertyTab.label.47"> + </propertyTab> + + <propertyTab + id="org.eclipse.bpmn2.modeler.resource.tab" + afterTab="org.eclipse.bpmn2.modeler.description.tab" + class="default" + features="resourceParameters" + type="org.eclipse.bpmn2.Resource" + label="%propertyTab.label.48"> + </propertyTab> + + <propertyTab + id="org.eclipse.bpmn2.modeler.signal.tab" + afterTab="org.eclipse.bpmn2.modeler.description.tab" + class="default" + features="structureRef" + type="org.eclipse.bpmn2.Signal" + label="%propertyTab.label.49"> + </propertyTab> + + <propertyTab + id="org.eclipse.bpmn2.modeler.category.tab" + afterTab="org.eclipse.bpmn2.modeler.description.tab" + class="default" + features="categoryValue" + type="org.eclipse.bpmn2.Category" + label="%propertyTab.label.59"> + </propertyTab> + + <!-- ============ Item Aware Elements ============ --> + <propertyTab + id="org.eclipse.bpmn2.modeler.dataitems.tab" + afterTab="org.eclipse.bpmn2.modeler.description.tab" + class="org.eclipse.bpmn2.modeler.ui.property.diagrams.DataItemsPropertySection" + type="org.eclipse.bpmn2.di.BPMNDiagram org.eclipse.bpmn2.Process" + label="%propertyTab.label.50"> + </propertyTab> + + <propertyTab + id="org.eclipse.bpmn2.modeler.dataInput.tab" + afterTab="org.eclipse.bpmn2.modeler.description.tab" + class="org.eclipse.bpmn2.modeler.ui.property.data.DataInputPropertySection" + type="org.eclipse.bpmn2.DataInput" + label="%propertyTab.label.51"> + </propertyTab> + + <propertyTab + id="org.eclipse.bpmn2.modeler.dataobject.tab" + afterTab="org.eclipse.bpmn2.modeler.description.tab" + class="org.eclipse.bpmn2.modeler.ui.property.data.DataObjectPropertySection" + type="org.eclipse.bpmn2.DataObject org.eclipse.bpmn2.DataObjectReference" + label="%propertyTab.label.52"> + </propertyTab> + + <propertyTab + id="org.eclipse.bpmn2.modeler.dataobjectref.tab" + afterTab="org.eclipse.bpmn2.modeler.description.tab" + class="org.eclipse.bpmn2.modeler.ui.property.data.DataObjectReferencePropertySection" + type="org.eclipse.bpmn2.DataObjectReference" + label="%propertyTab.label.53"> + </propertyTab> + + <propertyTab + id="org.eclipse.bpmn2.modeler.dataOutput.tab" + afterTab="org.eclipse.bpmn2.modeler.description.tab" + class="org.eclipse.bpmn2.modeler.ui.property.data.DataOutputPropertySection" + type="org.eclipse.bpmn2.DataOutput" + label="%propertyTab.label.54"> + </propertyTab> + + <propertyTab + id="org.eclipse.bpmn2.modeler.datastore.tab" + afterTab="org.eclipse.bpmn2.modeler.description.tab" + class="org.eclipse.bpmn2.modeler.ui.property.data.DataStorePropertySection" + type="org.eclipse.bpmn2.DataStore org.eclipse.bpmn2.DataStoreReference" + label="%propertyTab.label.55"> + </propertyTab> + + <propertyTab + id="org.eclipse.bpmn2.modeler.datastoreref.tab" + afterTab="org.eclipse.bpmn2.modeler.description.tab" + class="org.eclipse.bpmn2.modeler.ui.property.data.DataStoreReferencePropertySection" + type="org.eclipse.bpmn2.DataStoreReference" + label="%propertyTab.label.56"> + </propertyTab> + + <propertyTab + id="org.eclipse.bpmn2.modeler.activity.io.tab" + afterTab="org.eclipse.bpmn2.modeler.description.tab" + class="org.eclipse.bpmn2.modeler.ui.property.tasks.IoParametersPropertySection" + label="%propertyTab.label.57"> + </propertyTab> + + <propertyTab + id="org.eclipse.bpmn2.modeler.advanced.tab" + afterTab="org.eclipse.bpmn2.modeler.description.tab" + class="org.eclipse.bpmn2.modeler.ui.property.AdvancedPropertySection" + popup="false" + label="%propertyTab.label.58"> + </propertyTab> + + <toolPalette + id="org.bpmn2.modeler.toolpalette.process.default" + runtimeId="org.eclipse.bpmn2.modeler.runtime.none" + type="Process" profile="Default Process,Simple Process"> + + <category id="org.bpmn2.modeler.toolpalette.default.categories"/> + + <category id="org.bpmn2.modeler.toolpalette.process.patterns" name="%category.name"> + <tool name="%tool.name" id="org.bpmn2.modeler.tool.arbitrary.cycles" description="%arbitrary.cycles.description"> + <object type="Task[$name='Task A']" id="arbitrary.cycles.taskA" optional="true"/> + <object type="Task[$name='Task B',x=200]" id="arbitrary.cycles.taskB"/> + <object type="Task[$name='Task C',x=200,y=100]" id="arbitrary.cycles.taskC"/> + <object type="Task[$name='Task D',x=400,y=50]" id="arbitrary.cycles.taskD"/> + <object type="Task[$name='Task E',x=600]" id="arbitrary.cycles.taskE"/> + <object type="Task[$name='Task F',x=600,y=100]" id="arbitrary.cycles.taskF"/> + <object type="Task[$name='Task G',x=700,y=200]" id="arbitrary.cycles.taskG" optional="true"/> + <object type="ExclusiveGateway[x=100]" id="arbitrary.cycles.xor1"/> + <object type="ExclusiveGateway[x=100,y=200]" id="arbitrary.cycles.xor2"/> + <object type="ExclusiveGateway[x=300,y=50]" id="arbitrary.cycles.xor3"/> + <object type="ExclusiveGateway[x=500,y=50]" id="arbitrary.cycles.xor4"/> + <object type="ExclusiveGateway[x=600,y=200]" id="arbitrary.cycles.xor5"/> + <object type="SequenceFlow[source='arbitrary.cycles.taskA',target='arbitrary.cycles.xor1']"/> + <object type="SequenceFlow[source='arbitrary.cycles.xor1',target='arbitrary.cycles.taskB']"/> + <object type="SequenceFlow[source='arbitrary.cycles.xor1',target='arbitrary.cycles.xor2']" /> + <object type="SequenceFlow[source='arbitrary.cycles.xor2',target='arbitrary.cycles.taskC']"/> + <object type="SequenceFlow[source='arbitrary.cycles.taskB',target='arbitrary.cycles.xor3']"/> + <object type="SequenceFlow[source='arbitrary.cycles.taskC',target='arbitrary.cycles.xor3']"/> + <object type="SequenceFlow[source='arbitrary.cycles.xor3',target='arbitrary.cycles.taskD']"/> + <object type="SequenceFlow[source='arbitrary.cycles.taskD',target='arbitrary.cycles.xor4']"/> + <object type="SequenceFlow[source='arbitrary.cycles.xor4',target='arbitrary.cycles.taskE']"/> + <object type="SequenceFlow[source='arbitrary.cycles.xor4',target='arbitrary.cycles.taskF']"/> + <object type="SequenceFlow[source='arbitrary.cycles.taskF',target='arbitrary.cycles.xor5']"/> + <object type="SequenceFlow[source='arbitrary.cycles.xor5',target='arbitrary.cycles.taskG']"/> + <object type="SequenceFlow[source='arbitrary.cycles.xor5',target='arbitrary.cycles.xor2']" /> + </tool> + + <tool name="%tool.name.0" id="org.bpmn2.modeler.tool.deferred.choice"> + <object type="Task[$name='Task A',y=50]" id="deferred.choice.taskA" optional="true"/> + <object type="Task[$name='Task B',x=300]" id="deferred.choice.taskB"/> + <object type="Task[$name='Task C',x=300,y=100]" id="deferred.choice.taskC"/> + <object type="EventBasedGateway[x=100,y=50]" id="deferred.choice.gateway"/> + <object type="IntermediateCatchEvent[x=200]+MessageEventDefinition" id="deferred.choice.event1"/> + <object type="IntermediateCatchEvent[x=200,y=100]+MessageEventDefinition" id="deferred.choice.event2"/> + <object type="SequenceFlow[source='deferred.choice.taskA',target='deferred.choice.gateway']"/> + <object type="SequenceFlow[source='deferred.choice.gateway',target='deferred.choice.event1']"/> + <object type="SequenceFlow[source='deferred.choice.gateway',target='deferred.choice.event2']"/> + <object type="SequenceFlow[source='deferred.choice.event1',target='deferred.choice.taskB']"/> + <object type="SequenceFlow[source='deferred.choice.event2',target='deferred.choice.taskC']"/> + </tool> + + <tool name="%tool.name.1" id="org.bpmn2.modeler.tool.exclusive.choice"> + <object type="Task[$name='Task A',y=100]" id="exclusive.choice.taskA" optional="true"/> + <object type="Task[$name='Task B',x=200]" id="exclusive.choice.taskB"/> + <object type="Task[$name='Task C',x=200,y=100]" id="exclusive.choice.taskC"/> + <object type="Task[$name='Task D',x=200,y=200]" id="exclusive.choice.taskD"/> + <object type="ExclusiveGateway[x=100,y=100]" id="exclusive.choice.gateway"/> + <object type="SequenceFlow[source='exclusive.choice.taskA',target='exclusive.choice.gateway']"/> + <object type="SequenceFlow[source='exclusive.choice.gateway',target='exclusive.choice.taskB']"/> + <object type="SequenceFlow[source='exclusive.choice.gateway',target='exclusive.choice.taskC']"/> + <object type="SequenceFlow[source='exclusive.choice.gateway',target='exclusive.choice.taskD']"/> + </tool> + + <tool name="%tool.name.2" id="org.bpmn2.modeler.tool.implicit.termination"> + <object type="StartEvent[y=50]" id="implicit.termination.start"/> + <object type="Task[$name='Task A',x=100,y=50]" id="implicit.termination.taskA"/> + <object type="Task[$name='Task B1',x=300]" id="implicit.termination.taskB"/> + <object type="Task[$name='Task B2',x=300,y=100]" id="implicit.termination.taskC"/> + <object type="ExclusiveGateway[x=200,y=50]" id="implicit.termination.gateway"/> + <object type="EndEvent[x=400]+TerminateEventDefinition" id="implicit.termination.end1"/> + <object type="EndEvent[x=400,y=100]+TerminateEventDefinition" id="implicit.termination.end2"/> + <object type="SequenceFlow[source='implicit.termination.start',target='implicit.termination.taskA']"/> + <object type="SequenceFlow[source='implicit.termination.taskA',target='implicit.termination.gateway']"/> + <object type="SequenceFlow[source='implicit.termination.gateway',target='implicit.termination.taskB']"/> + <object type="SequenceFlow[source='implicit.termination.gateway',target='implicit.termination.taskC']"/> + <object type="SequenceFlow[source='implicit.termination.taskB',target='implicit.termination.end1']"/> + <object type="SequenceFlow[source='implicit.termination.taskC',target='implicit.termination.end2']"/> + </tool> + + <tool name="%tool.name.3" id="org.bpmn2.modeler.tool.mi.no.sync"> + <object type="Task[$name='Task A']" id="mi.no.sync.taskA" optional="true"/> + <object type="SubProcess[$name='Task B',$loopCharacteristics=$MultiInstanceLoopCharacteristics,x=200,width=200,height=100]" id="mi.no.sync.taskB"/> + <object type="Task[$name='Task C',x=400]" id="mi.no.sync.taskC" optional="true"/> + <object type="SequenceFlow[source='mi.no.sync.taskA',target='mi.no.sync.taskB']"/> + <object type="SequenceFlow[source='mi.no.sync.taskB',target='mi.no.sync.taskC']"/> + </tool> + + <tool name="%tool.name.4" id="org.bpmn2.modeler.tool.parallel.split"> + <object type="Task[$name='Task A',y=50]" id="parallel.split.taskA" optional="true"/> + <object type="Task[$name='Task B',x=200]" id="parallel.split.taskB" optional="true"/> + <object type="Task[$name='Task C',x=200,y=100]" id="parallel.split.taskC" optional="true"/> + <object type="ParallelGateway[x=100,y=50]" id="parallel.split.gateway"/> + <object type="SequenceFlow[source='parallel.split.taskA',target='parallel.split.gateway']"/> + <object type="SequenceFlow[source='parallel.split.gateway',target='parallel.split.taskB']"/> + <object type="SequenceFlow[source='parallel.split.gateway',target='parallel.split.taskC']"/> + </tool> + + <tool name="%tool.name.5" id="org.bpmn2.modeler.tool.sequence"> + <object type="Task[$name='Task A']" id="sequence.taskA" optional="true"/> + <object type="Task[$name='Task B',x=200]" id="sequence.taskB"/> + <object type="Task[$name='Task C',x=400]" id="sequence.taskC"/> + <object type="SequenceFlow[source='sequence.taskA',target='sequence.taskB']"/> + <object type="SequenceFlow[source='sequence.taskB',target='sequence.taskC']"/> + </tool> + + <tool name="%tool.name.6" id="org.bpmn2.modeler.tool.simple.merge"> + <object type="Task[$name='Task B']" id="simple.merge.taskB" optional="true"/> + <object type="Task[$name='Task C',y=100]" id="simple.merge.taskC" optional="true"/> + <object type="Task[$name='Task D',y=200]" id="simple.merge.taskD" optional="true"/> + <object type="Task[$name='Task E',x=200,y=100]" id="simple.merge.taskE" optional="true"/> + <object type="ExclusiveGateway[x=100,y=100,$gatewayDirection=Converging]" id="simple.merge.gateway"/> + <object type="SequenceFlow[source='simple.merge.taskB',target='simple.merge.gateway']"/> + <object type="SequenceFlow[source='simple.merge.taskC',target='simple.merge.gateway']"/> + <object type="SequenceFlow[source='simple.merge.taskD',target='simple.merge.gateway']"/> + <object type="SequenceFlow[source='simple.merge.gateway',target='simple.merge.taskE']"/> + </tool> + + <tool name="%tool.name.7" id="org.bpmn2.modeler.tool.synchronization"> + <object type="Task[$name='Task B1']" id="synchronization.taskB1" optional="true"/> + <object type="Task[$name='Task B2',y=100]" id="synchronization.taskB2" optional="true"/> + <object type="Task[$name='Task C',x=200,y=50]" id="synchronization.taskC" optional="true"/> + <object type="ParallelGateway[x=100,y=50,$gatewayDirection=Converging]" id="synchronization.gateway"/> + <object type="SequenceFlow[source='synchronization.taskB1',target='synchronization.gateway']"/> + <object type="SequenceFlow[source='synchronization.taskB2',target='synchronization.gateway']"/> + <object type="SequenceFlow[source='synchronization.gateway',target='synchronization.taskC']"/> + </tool> + + <tool name="%tool.name.8" id="org.bpmn2.modeler.tool.synchronizing.merge"> + <object type="Task[$name='Task A',y=100]" id="synchronizing.merge.taskA" optional="true"/> + <object type="Task[$name='Task B',x=200]" id="synchronizing.merge.taskB"/> + <object type="Task[$name='Task C',x=200,y=200]" id="synchronizing.merge.taskC"/> + <object type="Task[$name='Task D',x=400,y=100]" id="synchronizing.merge.taskD" optional="true"/> + <object type="InclusiveGateway[x=100,y=100,$gatewayDirection=Diverging]" id="synchronizing.merge.gateway1"/> + <object type="InclusiveGateway[x=300,y=100,$gatewayDirection=Converging]" id="synchronizing.merge.gateway2"/> + <object type="SequenceFlow[source='synchronizing.merge.taskA',target='synchronizing.merge.gateway1']"/> + <object type="SequenceFlow[source='synchronizing.merge.gateway1',target='synchronizing.merge.taskB']"/> + <object type="SequenceFlow[source='synchronizing.merge.gateway1',target='synchronizing.merge.taskC']"/> + <object type="SequenceFlow[source='synchronizing.merge.taskB',target='synchronizing.merge.gateway2']"/> + <object type="SequenceFlow[source='synchronizing.merge.taskC',target='synchronizing.merge.gateway2']"/> + <object type="SequenceFlow[source='synchronizing.merge.gateway2',target='synchronizing.merge.taskD']"/> + </tool> + + </category> + + </toolPalette> + + <!-- ======================================== --> + <!-- === Model Enablements and Profiles ==== --> + <!-- ======================================== --> + + <modelEnablement + runtimeId="org.eclipse.bpmn2.modeler.runtime.none" + type="Process" + profile="Default Process"> + <enable object="Definitions"/> + + <!-- process --> + <enable object="Process"/> + <enable object="SubProcess"/> + <enable object="Transaction"/> + <enable object="AdHocSubProcess"/> + + <!-- gateways --> + <enable object="ExclusiveGateway"/> + <enable object="InclusiveGateway"/> + <enable object="ParallelGateway"/> + <enable object="EventBasedGateway"/> + <enable object="ComplexGateway"/> + + <!-- tasks --> + <enable object="BusinessRuleTask"/> + <enable object="CallActivity"/> + <enable object="ManualTask"/> + <enable object="ReceiveTask"/> + <enable object="ScriptTask"/> + <enable object="SendTask"/> + <enable object="ServiceTask"/> + <enable object="Task"/> + <enable object="UserTask"/> + + <enable object="GlobalTask"/> + <enable object="GlobalBusinessRuleTask"/> + <enable object="GlobalManualTask"/> + <enable object="GlobalScriptTask"/> + <enable object="GlobalUserTask"/> + <enable object="Task"/> + + <!-- connections --> + <enable object="SequenceFlow"/> + <enable object="Association"/> + <enable object="DataAssociation"/> + + <!-- events --> + <enable object="StartEvent"/> + <enable object="EndEvent"/> + <enable object="IntermediateCatchEvent"/> + <enable object="IntermediateThrowEvent"/> + <enable object="Escalation"/> + <enable object="CatchEvent"/> + <enable object="ThrowEvent"/> + <enable object="BoundaryEvent"/> + <enable object="Signal"/> + <enable object="Error"/> + + <!-- event definitions --> + <enable object="ConditionalEventDefinition"/> + <enable object="TimerEventDefinition"/> + <enable object="SignalEventDefinition"/> + <enable object="MessageEventDefinition"/> + <enable object="EscalationEventDefinition"/> + <enable object="CompensateEventDefinition"/> + <enable object="LinkEventDefinition" feature="name"/> + <enable object="ErrorEventDefinition"/> + <enable object="CancelEventDefinition"/> + <enable object="TerminateEventDefinition"/> + <enable object="ComplexBehaviorDefinition"/> + <enable object="ImplicitThrowEvent"/> + + + <!-- data definitions --> + <enable object="Import"/> + <enable object="InputOutputSpecification"/> + <enable object="InputSet"/> + <enable object="OutputSet"/> + <enable object="Operation"/> + <enable object="Interface"/> + <enable object="ItemDefinition"/> + <enable object="Message"/> + <enable object="DataInput"/> + <enable object="DataInputAssociation"/> + <enable object="DataOutput"/> + <enable object="DataOutputAssociation"/> + <enable object="Property"/> + <enable object="ItemAwareElement"/> + <enable object="DataState"/> + <enable object="DataStore"/> + <enable object="DataStoreReference"/> + <enable object="DataObjectReference"/> + <enable object="DataObject"/> + <enable object="Group"/> + <enable object="Category"/> + <enable object="CategoryValue"/> + <enable object="TextAnnotation"/> + <enable object="ExtensionAttributeValue"/> + <enable object="ExtensionAttributeDefinition"/> + <enable object="StandardLoopCharacteristics"/> + <enable object="MultiInstanceLoopCharacteristics"/> + <enable object="Lane"/> + <enable object="LaneSet"/> + <enable object="Participant"/> + <enable object="Resource"/> + <enable object="ResourceAssignmentExpression"/> + <enable object="ResourceParameter"/> + <enable object="ResourceParameterBinding"/> + <enable object="ResourceRole"/> + + <!-- this is intended to be a baseclass for global tasks and Process and --> + <!-- should NOT be a valid selection in ModelSubclassSelectionDialog --> + <disable object="CallableElement"/> + <enable object="CallActivity" feature="calledElementRef"/> + + <disable object="MessageFlow"/> + <disable object="ConversationLink"/> + <disable object="ConversationAssociation"/> + <disable object="Collaboration"/> + <disable object="Choreography"/> + <disable object="ConversationNode"/> + <disable object="MessageFlowAssociation"/> + <disable object="Participant"/> + <disable object="ParticipantAssociation"/> + <disable object="ParticipantMultiplicity"/> + + <enable object="Assignment"/> + <enable object="FormalExpression"/> + <disable object="FormalExpression" feature="evaluatesToTypeRef"/> + <enable object="EndPoint"/> + <enable object="Documentation"/> + </modelEnablement> + + <modelEnablement + runtimeId="org.eclipse.bpmn2.modeler.runtime.none" + type="Process" + profile="Simple Process" + ref="org.eclipse.bpmn2.modeler.runtime.none:Process:Default Process"> + <disable object="DataAssociation"/> + <disable object="UserTask"/> + <disable object="ScriptTask"/> + <disable object="BusinessRuleTask"/> + <disable object="ComplexGateway"/> + <disable object="EventBasedGateway"/> + <disable object="Transaction"/> + <disable object="AdHocSubProcess"/> + <disable object="CallActivity"/> + + <disable object="ConditionalEventDefinition"/> + <disable object="LinkEventDefinition"/> + <disable object="CancelEventDefinition"/> + <disable object="CompensateEventDefinition"/> + + </modelEnablement> + + <modelEnablement + runtimeId="org.eclipse.bpmn2.modeler.runtime.none" + type="Collaboration" + profile="Default Collaboration" + ref="org.eclipse.bpmn2.modeler.runtime.none:Process:Default Process"> + + <!-- copy the enablements from "Process" diagram type --> + <!-- and then add these objects --> + <enable object="Collaboration"/> + <enable object="Participant"/> + <enable object="MessageFlow"/> + <enable object="Conversation"/> + <enable object="SubConversation"/> + <enable object="CallConversation"/> + <enable object="ConversationLink"/> + </modelEnablement> + + <modelEnablement + runtimeId="org.eclipse.bpmn2.modeler.runtime.none" + type="Choreography" + profile="Default Choreography" + ref="org.eclipse.bpmn2.modeler.runtime.none:Process:Default Process"> + + <!-- copy the enablements from "Process" diagram type --> + <!-- and then add these objects --> + <enable object="Definitions"/> + <enable object="Group"/> + + <enable object="StartEvent"/> + <enable object="EndEvent"/> + + <disable object="DataObject"/> + <disable object="DataObjectReference"/> + <disable object="DataState"/> + <disable object="DataStore"/> + <disable object="DataStoreReference"/> + <disable object="DataInput"/> + <disable object="DataInputAssociation"/> + <disable object="DataOutput"/> + <disable object="DataOutputAssociation"/> + + <enable object="TextAnnotation"/> + <enable object="SequenceFlow"/> + <enable object="Choreography"/> + <enable object="SubChoreography"/> + <enable object="CallChoreography"/> + <enable object="ChoreographyTask"/> + + <enable object="ExclusiveGateway"/> + <enable object="InclusiveGateway"/> + <enable object="ParallelGateway"/> + <enable object="EventBasedGateway"/> + <enable object="ComplexGateway"/> + + <enable object="ConditionalEventDefinition"/> + <enable object="TimerEventDefinition"/> + <enable object="SignalEventDefinition"/> + <enable object="MessageEventDefinition"/> + <enable object="EscalationEventDefinition"/> + <enable object="CompensateEventDefinition"/> + <enable object="LinkEventDefinition" feature="name"/> + <enable object="ErrorEventDefinition"/> + <enable object="CancelEventDefinition"/> + <enable object="TerminateEventDefinition"/> + + <enable object="MessageFlow"/> + <enable object="Participant"/> + + <disable object="ConversationLink"/> + <disable object="ConversationAssociation"/> + <disable object="Collaboration"/> + <disable object="ConversationNode"/> + <disable object="ExtensionAttributeDefinition"/> + <disable object="MessageFlowAssociation"/> + </modelEnablement> + + <style object="AdHocSubProcess" foreground="546778" background="D4E7F8" textColor="546778" font="arial,10,-,-"/> + <style object="Association" foreground="546778" background="D4E7F8" textColor="546778" font="arial,10,-,-"/> + <style object="BoundaryEvent" foreground="546778" background="D4E7F8" textColor="546778" font="arial,10,-,-"/> + <style object="BusinessRuleTask" foreground="546778" background="D4E7F8" textColor="546778" font="arial,10,-,-"/> + <style object="CallActivity" foreground="546778" background="D4E7F8" textColor="546778" font="arial,10,-,-"/> + <style object="CallChoreography" foreground="546778" background="D4E7F8" textColor="546778" font="arial,10,-,-"/> + <style object="ChoreographyTask" foreground="546778" background="D4E7F8" textColor="546778" font="arial,10,-,-"/> + <style object="ComplexGateway" foreground="484800" background="C8C864" textColor="484800" font="arial,10,-,-"/> + <style object="Conversation" foreground="546778" background="D4E7F8" textColor="546778" font="arial,10,-,-"/> + <style object="DataAssociation" foreground="546778" background="D4E7F8" textColor="546778" font="arial,10,-,-"/> + <style object="DataInput" foreground="546778" background="D4E7F8" textColor="546778" font="arial,10,-,-"/> + <style object="DataObject" foreground="546778" background="D4E7F8" textColor="546778" font="arial,10,-,-"/> + <style object="DataOutput" foreground="546778" background="D4E7F8" textColor="546778" font="arial,10,-,-"/> + <style object="DataStoreReference" foreground="546778" background="D4E7F8" textColor="546778" font="arial,10,-,-"/> + <style object="EndEvent" foreground="7F0000" background="FF8080" textColor="7F0000" font="arial,10,-,-"/> + <style object="EventBasedGateway" foreground="484800" background="C8C864" textColor="484800" font="arial,10,-,-"/> + <style object="ExclusiveGateway" foreground="484800" background="C8C864" textColor="484800" font="arial,10,-,-"/> + <style object="Group" foreground="546778" background="D4E7F8" textColor="546778" font="arial,10,-,-"/> + <style object="InclusiveGateway" foreground="484800" background="C8C864" textColor="484800" font="arial,10,-,-"/> + <style object="IntermediateCatchEvent" foreground="546778" background="D4E7F8" textColor="546778" font="arial,10,-,-"/> + <style object="IntermediateThrowEvent" foreground="546778" background="D4E7F8" textColor="546778" font="arial,10,-,-"/> + <style object="Lane" foreground="546778" background="D4E7F8" textColor="546778" font="arial,10,-,-"/> + <style object="ManualTask" foreground="546778" background="D4E7F8" textColor="546778" font="arial,10,-,-"/> + <style object="Message" foreground="546778" background="D4E7F8" textColor="546778" font="arial,10,-,-"/> + <style object="MessageFlow" foreground="546778" background="D4E7F8" textColor="546778" font="arial,10,-,-"/> + <style object="ParallelGateway" foreground="484800" background="C8C864" textColor="484800" font="arial,10,-,-"/> + <style object="Participant" foreground="546778" background="D4E7F8" textColor="546778" font="arial,10,-,-"/> + <style object="ReceiveTask" foreground="546778" background="D4E7F8" textColor="546778" font="arial,10,-,-"/> + <style object="ScriptTask" foreground="546778" background="D4E7F8" textColor="546778" font="arial,10,-,-"/> + <style object="SendTask" foreground="546778" background="D4E7F8" textColor="546778" font="arial,10,-,-"/> + <style object="SequenceFlow" foreground="546778" background="D4E7F8" textColor="546778" font="arial,10,-,-"/> + <style object="ServiceTask" foreground="546778" background="D4E7F8" textColor="546778" font="arial,10,-,-"/> + <style object="StartEvent" foreground="007F00" background="80FF80" textColor="007F00" font="arial,10,-,-"/> + <style object="SubChoreography" foreground="546778" background="D4E7F8" textColor="546778" font="arial,10,-,-"/> + <style object="SubProcess" foreground="546778" background="D4E7F8" textColor="546778" font="arial,10,-,-"/> + <style object="Task" foreground="546778" background="D4E7F8" textColor="546778" font="arial,10,-,-"/> + <style object="TextAnnotation" foreground="546778" background="D4E7F8" textColor="546778" font="arial,10,-,-"/> + <style object="Transaction" foreground="546778" background="D4E7F8" textColor="546778" font="arial,10,-,-"/> + <style object="UserTask" foreground="546778" background="D4E7F8" textColor="546778" font="arial,10,-,-"/> + <style object="CANVAS" background="FFFFFF"/> + <style object="GRID" foreground="E3EEF9"/> + + <typeLanguage name="XSD Schema" uri="http://www.w3.org/2001/XMLSchema" prefix="xs"> + <type name="string"/> + <type name="date"/> + <type name="byte"/> + <type name="decimal"/> + <type name="int"/> + <type name="integer"/> + <type name="long"/> + <type name="short"/> + <type name="boolean"/> + </typeLanguage> + + <typeLanguage name="Java Types" uri="http://www.java.com/javaTypes" prefix="java"> + <type name="Boolean" qname="java.lang.Boolean"/> + <type name="Byte" qname="java.lang.Byte"/> + <type name="Character" qname="java.lang.Character"/> + <type name="Float" qname="java.lang.Float"/> + <type name="Integer" qname="java.lang.Integer"/> + <type name="Long" qname="java.lang.Long"/> + <type name="Short" qname="java.lang.Short"/> + <type name="Double" qname="java.lang.Double"/> + <type name="String" qname="java.lang.String"/> + <type name="Object" qname="java.lang.Object"/> + </typeLanguage> + + <expressionLanguage name="XPath" uri="http://www.w3.org/1999/XPath"/> + <expressionLanguage name="Java" uri="http://www.java.com/java"/> + + <serviceImplementation name="Web Service" uri="##WebService"/> + <serviceImplementation name="Unspecified" uri="##unspecified"/> + + </extension> + + <!-- menu commands --> + <extension + point="org.eclipse.ui.commands"> + <category + id="org.eclipse.bpmn2.modeler.command.category" + name="%category.name.0"> + </category> + <command + id="org.eclipse.bpmn2.modeler.command.createProcess" + categoryId="org.eclipse.bpmn2.modeler.command.category" + name="%command.name"/> + <command + id="org.eclipse.bpmn2.modeler.command.createChoreography" + categoryId="org.eclipse.bpmn2.modeler.command.category" + name="%command.name.0"> + </command> + <command + id="org.eclipse.bpmn2.modeler.command.createCollaboration" + categoryId="org.eclipse.bpmn2.modeler.command.category" + name="%command.name.1"> + </command> + </extension> + + <!-- menu handlers --> + <extension + point="org.eclipse.ui.handlers"> + <handler + class="org.eclipse.bpmn2.modeler.ui.commands.CreateDiagramCommand" + commandId="org.eclipse.bpmn2.modeler.command.createProcess"> + </handler> + <handler + class="org.eclipse.bpmn2.modeler.ui.commands.CreateDiagramCommand" + commandId="org.eclipse.bpmn2.modeler.command.createChoreography"> + </handler> + <handler + class="org.eclipse.bpmn2.modeler.ui.commands.CreateDiagramCommand" + commandId="org.eclipse.bpmn2.modeler.command.createCollaboration"> + </handler> + </extension> + + <!-- menu --> + <extension + id="org.eclipse.bpmn2.modeler.diagram.menu.extension" + point="org.eclipse.ui.menus"> + <menuContribution + locationURI= "menu:org.eclipse.ui.main.menu?after=additions"> + <menu + id="org.eclipse.bpmn2.modeler.diagram.menu" + label="%menu.label"> + <visibleWhen> + <with + variable="activeEditorId"> + <equals + value="org.eclipse.bpmn2.modeler.ui.bpmn2editor"> + </equals> + </with> + </visibleWhen> + </menu> + </menuContribution> + <menuContribution + locationURI= "menu:org.eclipse.bpmn2.modeler.diagram.menu?after=additions"> + <command + commandId="org.eclipse.bpmn2.modeler.command.createProcess" + id= "createProcess" + label= "%command.label"> + </command> + <command + commandId="org.eclipse.bpmn2.modeler.command.createChoreography" + id= "createChoreography" + label= "%command.label.0"> + </command> + <command + commandId="org.eclipse.bpmn2.modeler.command.createCollaboration" + id= "createCollaboration" + label= "%command.label.1"> + </command> + </menuContribution> + </extension> + + <extension point="org.eclipse.ui.bindings"> + <key + commandId="org.eclipse.graphiti.ui.featureExecutionCommand" + schemeId="org.eclipse.ui.defaultAcceleratorConfiguration" + sequence="M1+ARROW_UP"> + <parameter + id="org.eclipse.graphiti.ui.featureHint" + value="moveup"> + </parameter> + </key> + </extension> + + <extension point="org.eclipse.ui.bindings"> + <key + commandId="org.eclipse.graphiti.ui.featureExecutionCommand" + schemeId="org.eclipse.ui.defaultAcceleratorConfiguration" + sequence="M1+ARROW_DOWN"> + <parameter + id="org.eclipse.graphiti.ui.featureHint" + value="movedown"> + </parameter> + </key> + </extension> + + <extension point="org.eclipse.ui.bindings"> + <key + commandId="org.eclipse.graphiti.ui.featureExecutionCommand" + schemeId="org.eclipse.ui.defaultAcceleratorConfiguration" + sequence="M1+ARROW_LEFT"> + <parameter + id="org.eclipse.graphiti.ui.featureHint" + value="moveleft"> + </parameter> + </key> + </extension> + + <extension point="org.eclipse.ui.bindings"> + <key + commandId="org.eclipse.graphiti.ui.featureExecutionCommand" + schemeId="org.eclipse.ui.defaultAcceleratorConfiguration" + sequence="M1+ARROW_RIGHT"> + <parameter + id="org.eclipse.graphiti.ui.featureHint" + value="moveright"> + </parameter> + </key> + </extension> + + <extension point="org.eclipse.ui.bindings"> + <key + commandId="org.eclipse.graphiti.ui.featureExecutionCommand" + schemeId="org.eclipse.ui.defaultAcceleratorConfiguration" + sequence="M1+M2+ARROW_UP"> + <parameter + id="org.eclipse.graphiti.ui.featureHint" + value="moveup10"> + </parameter> + </key> + </extension> + + <extension point="org.eclipse.ui.bindings"> + <key + commandId="org.eclipse.graphiti.ui.featureExecutionCommand" + schemeId="org.eclipse.ui.defaultAcceleratorConfiguration" + sequence="M1+M2+ARROW_DOWN"> + <parameter + id="org.eclipse.graphiti.ui.featureHint" + value="movedown10"> + </parameter> + </key> + </extension> + + <extension point="org.eclipse.ui.bindings"> + <key + commandId="org.eclipse.graphiti.ui.featureExecutionCommand" + schemeId="org.eclipse.ui.defaultAcceleratorConfiguration" + sequence="M1+M2+ARROW_LEFT"> + <parameter + id="org.eclipse.graphiti.ui.featureHint" + value="moveleft10"> + </parameter> + </key> + </extension> + + <extension point="org.eclipse.ui.bindings"> + <key + commandId="org.eclipse.graphiti.ui.featureExecutionCommand" + schemeId="org.eclipse.ui.defaultAcceleratorConfiguration" + sequence="M1+M2+ARROW_RIGHT"> + <parameter + id="org.eclipse.graphiti.ui.featureHint" + value="moveright10"> + </parameter> + </key> + </extension> + + <extension point="org.eclipse.ui.bindings"> + <key + commandId="org.eclipse.graphiti.ui.featureExecutionCommand" + schemeId="org.eclipse.ui.defaultAcceleratorConfiguration" + sequence="M1+D"> + <parameter + id="org.eclipse.graphiti.ui.featureHint" + value="duplicate"> + </parameter> + </key> + </extension> +</plugin> diff --git a/plugins/org.eclipse.bpmn2.modeler.ui/plugin.xml b/plugins/org.eclipse.bpmn2.modeler.ui/plugin.xml index 42154376..d5df7d9a 100644 --- a/plugins/org.eclipse.bpmn2.modeler.ui/plugin.xml +++ b/plugins/org.eclipse.bpmn2.modeler.ui/plugin.xml @@ -878,129 +878,8 @@ runtimeId="org.eclipse.bpmn2.modeler.runtime.none" type="Process" profile="Default Process"> - <enable object="Definitions"/> - - <!-- process --> - <enable object="Process"/> - <enable object="SubProcess"/> - <enable object="Transaction"/> - <enable object="AdHocSubProcess"/> - - <!-- gateways --> - <enable object="ExclusiveGateway"/> - <enable object="InclusiveGateway"/> - <enable object="ParallelGateway"/> - <enable object="EventBasedGateway"/> - <enable object="ComplexGateway"/> - - <!-- tasks --> - <enable object="BusinessRuleTask"/> - <enable object="CallActivity"/> - <enable object="ManualTask"/> - <enable object="ReceiveTask"/> - <enable object="ScriptTask"/> - <enable object="SendTask"/> - <enable object="ServiceTask"/> - <enable object="Task"/> - <enable object="UserTask"/> - - <enable object="GlobalTask"/> - <enable object="GlobalBusinessRuleTask"/> - <enable object="GlobalManualTask"/> - <enable object="GlobalScriptTask"/> - <enable object="GlobalUserTask"/> - <enable object="Task"/> - - <!-- connections --> - <enable object="SequenceFlow"/> - <enable object="Association"/> - <enable object="DataAssociation"/> - - <!-- events --> - <enable object="StartEvent"/> - <enable object="EndEvent"/> - <enable object="IntermediateCatchEvent"/> - <enable object="IntermediateThrowEvent"/> - <enable object="Escalation"/> - <enable object="CatchEvent"/> - <enable object="ThrowEvent"/> - <enable object="BoundaryEvent"/> - <enable object="Signal"/> - <enable object="Error"/> - - <!-- event definitions --> - <enable object="ConditionalEventDefinition"/> - <enable object="TimerEventDefinition"/> - <enable object="SignalEventDefinition"/> - <enable object="MessageEventDefinition"/> - <enable object="EscalationEventDefinition"/> - <enable object="CompensateEventDefinition"/> - <enable object="LinkEventDefinition" feature="name"/> - <enable object="ErrorEventDefinition"/> - <enable object="CancelEventDefinition"/> - <enable object="TerminateEventDefinition"/> - <enable object="ComplexBehaviorDefinition"/> - <enable object="ImplicitThrowEvent"/> - - - <!-- data definitions --> - <enable object="Import"/> - <enable object="InputOutputSpecification"/> - <enable object="InputSet"/> - <enable object="OutputSet"/> - <enable object="Operation"/> - <enable object="Interface"/> - <enable object="ItemDefinition"/> - <enable object="Message"/> - <enable object="DataInput"/> - <enable object="DataInputAssociation"/> - <enable object="DataOutput"/> - <enable object="DataOutputAssociation"/> - <enable object="Property"/> - <enable object="ItemAwareElement"/> - <enable object="DataState"/> - <enable object="DataStore"/> - <enable object="DataStoreReference"/> - <enable object="DataObjectReference"/> - <enable object="DataObject"/> - <enable object="Group"/> - <enable object="Category"/> - <enable object="CategoryValue"/> - <enable object="TextAnnotation"/> - <enable object="ExtensionAttributeValue"/> - <enable object="ExtensionAttributeDefinition"/> - <enable object="StandardLoopCharacteristics"/> - <enable object="MultiInstanceLoopCharacteristics"/> - <enable object="Lane"/> - <enable object="LaneSet"/> - <enable object="Participant"/> - <enable object="Resource"/> - <enable object="ResourceAssignmentExpression"/> - <enable object="ResourceParameter"/> - <enable object="ResourceParameterBinding"/> - <enable object="ResourceRole"/> - - <!-- this is intended to be a baseclass for global tasks and Process and --> - <!-- should NOT be a valid selection in ModelSubclassSelectionDialog --> - <disable object="CallableElement"/> - <enable object="CallActivity" feature="calledElementRef"/> - - <disable object="MessageFlow"/> - <disable object="ConversationLink"/> - <disable object="ConversationAssociation"/> - <disable object="Collaboration"/> - <disable object="Choreography"/> - <disable object="ConversationNode"/> - <disable object="MessageFlowAssociation"/> - <disable object="Participant"/> - <disable object="ParticipantAssociation"/> - <disable object="ParticipantMultiplicity"/> - - <enable object="Assignment"/> - <enable object="FormalExpression"/> - <disable object="FormalExpression" feature="evaluatesToTypeRef"/> - <enable object="EndPoint"/> - <enable object="Documentation"/> + + <enable object="all"/> </modelEnablement> <modelEnablement diff --git a/plugins/org.eclipse.bpmn2.modeler.ui/src/org/eclipse/bpmn2/modeler/ui/diagram/BPMN2FeatureProvider.java b/plugins/org.eclipse.bpmn2.modeler.ui/src/org/eclipse/bpmn2/modeler/ui/diagram/BPMN2FeatureProvider.java index 69e59702..3f92b05c 100644 --- a/plugins/org.eclipse.bpmn2.modeler.ui/src/org/eclipse/bpmn2/modeler/ui/diagram/BPMN2FeatureProvider.java +++ b/plugins/org.eclipse.bpmn2.modeler.ui/src/org/eclipse/bpmn2/modeler/ui/diagram/BPMN2FeatureProvider.java @@ -23,6 +23,7 @@ import org.eclipse.bpmn2.BoundaryEvent; import org.eclipse.bpmn2.BusinessRuleTask; import org.eclipse.bpmn2.CallActivity; import org.eclipse.bpmn2.CallChoreography; +import org.eclipse.bpmn2.CallConversation; import org.eclipse.bpmn2.CancelEventDefinition; import org.eclipse.bpmn2.ChoreographyTask; import org.eclipse.bpmn2.CompensateEventDefinition; @@ -66,6 +67,7 @@ import org.eclipse.bpmn2.ServiceTask; import org.eclipse.bpmn2.SignalEventDefinition; import org.eclipse.bpmn2.StartEvent; import org.eclipse.bpmn2.SubChoreography; +import org.eclipse.bpmn2.SubConversation; import org.eclipse.bpmn2.SubProcess; import org.eclipse.bpmn2.Task; import org.eclipse.bpmn2.TerminateEventDefinition; @@ -119,7 +121,11 @@ import org.eclipse.bpmn2.modeler.ui.features.activity.task.UserTaskFeatureContai import org.eclipse.bpmn2.modeler.ui.features.artifact.GroupFeatureContainer; import org.eclipse.bpmn2.modeler.ui.features.artifact.TextAnnotationFeatureContainer; import org.eclipse.bpmn2.modeler.ui.features.callactivity.CallActivityFeatureContainer; +import org.eclipse.bpmn2.modeler.ui.features.callactivity.CallGlobalBusinessRuleTaskFeatureContainer; +import org.eclipse.bpmn2.modeler.ui.features.callactivity.CallGlobalManualTaskFeatureContainer; +import org.eclipse.bpmn2.modeler.ui.features.callactivity.CallGlobalScriptTaskFeatureContainer; import org.eclipse.bpmn2.modeler.ui.features.callactivity.CallGlobalTaskFeatureContainer; +import org.eclipse.bpmn2.modeler.ui.features.callactivity.CallGlobalUserTaskFeatureContainer; import org.eclipse.bpmn2.modeler.ui.features.choreography.CallChoreographyFeatureContainer; import org.eclipse.bpmn2.modeler.ui.features.choreography.ChoreographyMessageLinkFeatureContainer; import org.eclipse.bpmn2.modeler.ui.features.choreography.ChoreographyTaskFeatureContainer; @@ -254,14 +260,12 @@ public class BPMN2FeatureProvider extends DefaultFeatureProvider implements IBpm containers.put(EventBasedGateway.class,new EventBasedGatewayFeatureContainer()); containers.put(ComplexGateway.class,new ComplexGatewayFeatureContainer()); containers.put(AdHocSubProcess.class,new AdHocSubProcessFeatureContainer()); - containers.put(CallActivity.class,new CallActivityFeatureContainer()); containers.put(GlobalTask.class,new CallGlobalTaskFeatureContainer()); - containers.put(GlobalBusinessRuleTask.class,new CallActivityFeatureContainer()); - containers.put(GlobalManualTask.class,new CallActivityFeatureContainer()); - containers.put(GlobalScriptTask.class,new CallActivityFeatureContainer()); - containers.put(GlobalUserTask.class,new CallActivityFeatureContainer()); - + containers.put(GlobalBusinessRuleTask.class,new CallGlobalBusinessRuleTaskFeatureContainer()); + containers.put(GlobalManualTask.class,new CallGlobalManualTaskFeatureContainer()); + containers.put(GlobalScriptTask.class,new CallGlobalScriptTaskFeatureContainer()); + containers.put(GlobalUserTask.class,new CallGlobalUserTaskFeatureContainer()); containers.put(Transaction.class,new TransactionFeatureContainer()); containers.put(SubProcess.class,new SubProcessFeatureContainer()); containers.put(ConditionalEventDefinition.class,new ConditionalEventDefinitionContainer()); @@ -278,6 +282,8 @@ public class BPMN2FeatureProvider extends DefaultFeatureProvider implements IBpm containers.put(MessageFlow.class,new MessageFlowFeatureContainer()); containers.put(Association.class,new AssociationFeatureContainer()); containers.put(Conversation.class,new ConversationFeatureContainer()); + containers.put(SubConversation.class,new ConversationFeatureContainer()); + containers.put(CallConversation.class,new ConversationFeatureContainer()); containers.put(ConversationLink.class,new ConversationLinkFeatureContainer()); containers.put(DataAssociation.class,new DataAssociationFeatureContainer()); containers.put(SubChoreography.class,new SubChoreographyFeatureContainer()); @@ -373,13 +379,13 @@ public class BPMN2FeatureProvider extends DefaultFeatureProvider implements IBpm continue; } AbstractBpmn2CreateFeature acf = (AbstractBpmn2CreateFeature)cf; - mapBusinessObjectClassToCreateFeature.put(acf.getBusinessObjectClass().getInstanceClass(), cf); + mapBusinessObjectClassToCreateFeature.put(acf.getFeatureClass().getInstanceClass(), cf); } } for (IFeature cf : createConnectionFeatures) { if (cf instanceof AbstractCreateFlowFeature) { AbstractBpmn2CreateConnectionFeature acf = (AbstractBpmn2CreateConnectionFeature)cf; - mapBusinessObjectClassToCreateFeature.put(acf.getBusinessObjectClass().getInstanceClass(), cf); + mapBusinessObjectClassToCreateFeature.put(acf.getFeatureClass().getInstanceClass(), cf); } } } diff --git a/plugins/org.eclipse.bpmn2.modeler.ui/src/org/eclipse/bpmn2/modeler/ui/features/callactivity/AbstractCallGlobalTaskFeatureContainer.java b/plugins/org.eclipse.bpmn2.modeler.ui/src/org/eclipse/bpmn2/modeler/ui/features/callactivity/AbstractCallGlobalTaskFeatureContainer.java new file mode 100644 index 00000000..481364b8 --- /dev/null +++ b/plugins/org.eclipse.bpmn2.modeler.ui/src/org/eclipse/bpmn2/modeler/ui/features/callactivity/AbstractCallGlobalTaskFeatureContainer.java @@ -0,0 +1,72 @@ +/******************************************************************************* + * Copyright (c) 2011, 2012 Red Hat, Inc. + * All rights reserved. + * This program is made available under the terms of the + * Eclipse Public License v1.0 which accompanies this distribution, + * and is available at http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Red Hat, Inc. - initial API and implementation + * + * @author Innar Made + ******************************************************************************/ +package org.eclipse.bpmn2.modeler.ui.features.callactivity; + +import org.eclipse.bpmn2.CallActivity; +import org.eclipse.bpmn2.GlobalTask; +import org.eclipse.bpmn2.modeler.core.utils.GraphicsUtil; +import org.eclipse.bpmn2.modeler.ui.features.activity.subprocess.AddExpandableActivityFeature; +import org.eclipse.graphiti.features.IAddFeature; +import org.eclipse.graphiti.features.ICreateFeature; +import org.eclipse.graphiti.features.IFeatureProvider; +import org.eclipse.graphiti.features.context.IAddContext; +import org.eclipse.graphiti.mm.algorithms.RoundedRectangle; +import org.eclipse.graphiti.mm.pictograms.ContainerShape; +import org.eclipse.graphiti.services.Graphiti; + + +public abstract class AbstractCallGlobalTaskFeatureContainer<T extends GlobalTask> extends CallActivityFeatureContainer { + + @Override + public abstract ICreateFeature getCreateFeature(IFeatureProvider fp); + + @Override + public IAddFeature getAddFeature(IFeatureProvider fp) { + return new AddCallGlobalTaskFeature(fp); + } + + public static class AddCallGlobalTaskFeature extends AddExpandableActivityFeature<CallActivity> { + + /** + * @param fp + */ + public AddCallGlobalTaskFeature(IFeatureProvider fp) { + super(fp); + } + @Override + protected void decorateShape(IAddContext context, ContainerShape containerShape, CallActivity businessObject) { + super.decorateShape(context, containerShape, businessObject); + Graphiti.getPeService().setPropertyValue(containerShape, CALL_ACTIVITY_REF_PROPERTY, + getCallableElementStringValue(businessObject.getCalledElementRef())); + RoundedRectangle rect = (RoundedRectangle)getGraphicsAlgorithm(containerShape); + rect.setLineWidth(4); + } + + @Override + protected int getMarkerContainerOffset() { + return MARKER_OFFSET; + } + + @Override + public int getWidth() { + return GraphicsUtil.getActivitySize(getDiagram()).getWidth(); + } + + @Override + public int getHeight() { + return GraphicsUtil.getActivitySize(getDiagram()).getHeight(); + } + + } + +}
\ No newline at end of file diff --git a/plugins/org.eclipse.bpmn2.modeler.ui/src/org/eclipse/bpmn2/modeler/ui/features/callactivity/AbstractCreateCallGlobalTaskFeature.java b/plugins/org.eclipse.bpmn2.modeler.ui/src/org/eclipse/bpmn2/modeler/ui/features/callactivity/AbstractCreateCallGlobalTaskFeature.java new file mode 100644 index 00000000..76aa4453 --- /dev/null +++ b/plugins/org.eclipse.bpmn2.modeler.ui/src/org/eclipse/bpmn2/modeler/ui/features/callactivity/AbstractCreateCallGlobalTaskFeature.java @@ -0,0 +1,56 @@ +/******************************************************************************* + * Copyright (c) 2011, 2012, 2013, 2014 Red Hat, Inc. + * All rights reserved. + * This program is made available under the terms of the + * Eclipse Public License v1.0 which accompanies this distribution, + * and is available at http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Red Hat, Inc. - initial API and implementation + * + * @author Bob Brodt + ******************************************************************************/ + +package org.eclipse.bpmn2.modeler.ui.features.callactivity; + +import org.eclipse.bpmn2.Bpmn2Factory; +import org.eclipse.bpmn2.CallActivity; +import org.eclipse.bpmn2.Definitions; +import org.eclipse.bpmn2.GlobalTask; +import org.eclipse.bpmn2.modeler.core.utils.ModelUtil; +import org.eclipse.bpmn2.modeler.ui.ImageProvider; +import org.eclipse.bpmn2.modeler.ui.features.callactivity.CallActivityFeatureContainer.CreateCallActivityFeature; +import org.eclipse.emf.ecore.EClass; +import org.eclipse.graphiti.features.IFeatureProvider; +import org.eclipse.graphiti.features.context.ICreateContext; + +public abstract class AbstractCreateCallGlobalTaskFeature<T extends GlobalTask> extends CreateCallActivityFeature { + + /** + * @param fp + */ + public AbstractCreateCallGlobalTaskFeature(IFeatureProvider fp, String name, String description) { + super(fp, name, description); + } + + @Override + public CallActivity createBusinessObject(ICreateContext context) { + CallActivity callActivity = super.createBusinessObject(context); + Definitions definitions = ModelUtil.getDefinitions(callActivity ); + T task = (T) Bpmn2Factory.eINSTANCE.create(getFeatureClass()); + definitions.getRootElements().add(task); + ModelUtil.setID(task); + task.setName( ModelUtil.toCanonicalString(task.getId())); + callActivity.setCalledElementRef(task); + callActivity.setName("Call "+task.getName()); + + return callActivity; + } + + @Override + public String getStencilImageId() { + return ImageProvider.IMG_16_CALL_ACTIVITY; + } + + public abstract EClass getFeatureClass(); +}
\ No newline at end of file diff --git a/plugins/org.eclipse.bpmn2.modeler.ui/src/org/eclipse/bpmn2/modeler/ui/features/callactivity/CallActivityFeatureContainer.java b/plugins/org.eclipse.bpmn2.modeler.ui/src/org/eclipse/bpmn2/modeler/ui/features/callactivity/CallActivityFeatureContainer.java index 32408a5a..8046cb8f 100644 --- a/plugins/org.eclipse.bpmn2.modeler.ui/src/org/eclipse/bpmn2/modeler/ui/features/callactivity/CallActivityFeatureContainer.java +++ b/plugins/org.eclipse.bpmn2.modeler.ui/src/org/eclipse/bpmn2/modeler/ui/features/callactivity/CallActivityFeatureContainer.java @@ -37,9 +37,9 @@ import org.eclipse.bpmn2.modeler.core.utils.ModelUtil; import org.eclipse.bpmn2.modeler.ui.ImageProvider; import org.eclipse.bpmn2.modeler.ui.features.activity.AbstractActivityFeatureContainer; import org.eclipse.bpmn2.modeler.ui.features.activity.DeleteActivityFeature; -import org.eclipse.bpmn2.modeler.ui.features.activity.subprocess.AddExpandableActivityFeature; import org.eclipse.bpmn2.modeler.ui.features.activity.subprocess.LayoutExpandableActivityFeature; import org.eclipse.bpmn2.modeler.ui.features.activity.subprocess.Messages; +import org.eclipse.bpmn2.modeler.ui.features.callactivity.AbstractCallGlobalTaskFeatureContainer.AddCallGlobalTaskFeature; import org.eclipse.bpmn2.modeler.ui.features.choreography.ShowDiagramPageFeature; import org.eclipse.emf.common.util.TreeIterator; import org.eclipse.emf.ecore.EClass; @@ -54,13 +54,11 @@ import org.eclipse.graphiti.features.ILayoutFeature; import org.eclipse.graphiti.features.IReason; import org.eclipse.graphiti.features.IResizeShapeFeature; import org.eclipse.graphiti.features.IUpdateFeature; -import org.eclipse.graphiti.features.context.IAddContext; import org.eclipse.graphiti.features.context.IDeleteContext; import org.eclipse.graphiti.features.context.IUpdateContext; import org.eclipse.graphiti.features.custom.ICustomFeature; import org.eclipse.graphiti.features.impl.Reason; import org.eclipse.graphiti.mm.algorithms.Image; -import org.eclipse.graphiti.mm.algorithms.RoundedRectangle; import org.eclipse.graphiti.mm.pictograms.ContainerShape; import org.eclipse.graphiti.mm.pictograms.PictogramElement; import org.eclipse.graphiti.mm.pictograms.Shape; @@ -86,33 +84,9 @@ public class CallActivityFeatureContainer extends AbstractActivityFeatureContain @Override public IAddFeature getAddFeature(IFeatureProvider fp) { - return new AddExpandableActivityFeature<CallActivity>(fp) { - @Override - protected void decorateShape(IAddContext context, ContainerShape containerShape, CallActivity businessObject) { - super.decorateShape(context, containerShape, businessObject); - Graphiti.getPeService().setPropertyValue(containerShape, CALL_ACTIVITY_REF_PROPERTY, - getCallableElementStringValue(businessObject.getCalledElementRef())); - RoundedRectangle rect = (RoundedRectangle)getGraphicsAlgorithm(containerShape); - rect.setLineWidth(4); - } - - @Override - protected int getMarkerContainerOffset() { - return MARKER_OFFSET; - } - - @Override - public int getWidth() { - return GraphicsUtil.getActivitySize(getDiagram()).getWidth(); - } - - @Override - public int getHeight() { - return GraphicsUtil.getActivitySize(getDiagram()).getHeight(); - } - }; + return new AddCallGlobalTaskFeature(fp); } - + @Override public IDeleteFeature getDeleteFeature(IFeatureProvider fp) { return new DeleteActivityFeature(fp) { @@ -203,6 +177,10 @@ public class CallActivityFeatureContainer extends AbstractActivityFeatureContain super(fp, Messages.CallActivityFeatureContainer_Name, Messages.CallActivityFeatureContainer_Description); } + public CreateCallActivityFeature(IFeatureProvider fp, String name, String description) { + super(fp, name, description); + } + @Override public String getStencilImageId() { return ImageProvider.IMG_16_CALL_ACTIVITY; @@ -287,7 +265,7 @@ public class CallActivityFeatureContainer extends AbstractActivityFeatureContain } } - protected String getCallableElementStringValue(CallableElement element) { + protected static String getCallableElementStringValue(CallableElement element) { if (element == null) { return "null"; //$NON-NLS-1$ } diff --git a/plugins/org.eclipse.bpmn2.modeler.ui/src/org/eclipse/bpmn2/modeler/ui/features/callactivity/CallGlobalBusinessRuleTaskFeatureContainer.java b/plugins/org.eclipse.bpmn2.modeler.ui/src/org/eclipse/bpmn2/modeler/ui/features/callactivity/CallGlobalBusinessRuleTaskFeatureContainer.java new file mode 100644 index 00000000..ead1c216 --- /dev/null +++ b/plugins/org.eclipse.bpmn2.modeler.ui/src/org/eclipse/bpmn2/modeler/ui/features/callactivity/CallGlobalBusinessRuleTaskFeatureContainer.java @@ -0,0 +1,53 @@ +/******************************************************************************* + * Copyright (c) 2011, 2012 Red Hat, Inc. + * All rights reserved. + * This program is made available under the terms of the + * Eclipse Public License v1.0 which accompanies this distribution, + * and is available at http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Red Hat, Inc. - initial API and implementation + * + * @author Innar Made + ******************************************************************************/ +package org.eclipse.bpmn2.modeler.ui.features.callactivity; + +import org.eclipse.bpmn2.Bpmn2Package; +import org.eclipse.bpmn2.GlobalBusinessRuleTask; +import org.eclipse.bpmn2.modeler.ui.ImageProvider; +import org.eclipse.emf.ecore.EClass; +import org.eclipse.graphiti.features.ICreateFeature; +import org.eclipse.graphiti.features.IFeatureProvider; + + +public class CallGlobalBusinessRuleTaskFeatureContainer extends AbstractCallGlobalTaskFeatureContainer<GlobalBusinessRuleTask> { + + + @Override + public ICreateFeature getCreateFeature(IFeatureProvider fp) { + return new CreateCallGlobalBusinessRuleTaskFeature(fp); + } + + public class CreateCallGlobalBusinessRuleTaskFeature extends AbstractCreateCallGlobalTaskFeature<GlobalBusinessRuleTask> { + + /** + * @param fp + */ + public CreateCallGlobalBusinessRuleTaskFeature(IFeatureProvider fp) { + super(fp, "Call Global Business Rule Task", "Call Activity for a Global Business Rule Task"); + } + + @Override + public String getStencilImageId() { + return ImageProvider.IMG_16_CALL_ACTIVITY; + } + + /* (non-Javadoc) + * @see org.eclipse.bpmn2.modeler.core.features.AbstractBpmn2CreateFeature#getFeatureClass() + */ + @Override + public EClass getFeatureClass() { + return Bpmn2Package.eINSTANCE.getGlobalBusinessRuleTask(); + } + } +}
\ No newline at end of file diff --git a/plugins/org.eclipse.bpmn2.modeler.ui/src/org/eclipse/bpmn2/modeler/ui/features/callactivity/CallGlobalManualTaskFeatureContainer.java b/plugins/org.eclipse.bpmn2.modeler.ui/src/org/eclipse/bpmn2/modeler/ui/features/callactivity/CallGlobalManualTaskFeatureContainer.java new file mode 100644 index 00000000..bb692db9 --- /dev/null +++ b/plugins/org.eclipse.bpmn2.modeler.ui/src/org/eclipse/bpmn2/modeler/ui/features/callactivity/CallGlobalManualTaskFeatureContainer.java @@ -0,0 +1,53 @@ +/******************************************************************************* + * Copyright (c) 2011, 2012 Red Hat, Inc. + * All rights reserved. + * This program is made available under the terms of the + * Eclipse Public License v1.0 which accompanies this distribution, + * and is available at http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Red Hat, Inc. - initial API and implementation + * + * @author Innar Made + ******************************************************************************/ +package org.eclipse.bpmn2.modeler.ui.features.callactivity; + +import org.eclipse.bpmn2.Bpmn2Package; +import org.eclipse.bpmn2.GlobalManualTask; +import org.eclipse.bpmn2.modeler.ui.ImageProvider; +import org.eclipse.emf.ecore.EClass; +import org.eclipse.graphiti.features.ICreateFeature; +import org.eclipse.graphiti.features.IFeatureProvider; + + +public class CallGlobalManualTaskFeatureContainer extends AbstractCallGlobalTaskFeatureContainer<GlobalManualTask> { + + + @Override + public ICreateFeature getCreateFeature(IFeatureProvider fp) { + return new CreateCallGlobalManualTaskFeature(fp); + } + + public class CreateCallGlobalManualTaskFeature extends AbstractCreateCallGlobalTaskFeature<GlobalManualTask> { + + /** + * @param fp + */ + public CreateCallGlobalManualTaskFeature(IFeatureProvider fp) { + super(fp, "Call Global Manual Task", "Call Activity for a Global Manual Task"); + } + + @Override + public String getStencilImageId() { + return ImageProvider.IMG_16_CALL_ACTIVITY; + } + + /* (non-Javadoc) + * @see org.eclipse.bpmn2.modeler.core.features.AbstractBpmn2CreateFeature#getFeatureClass() + */ + @Override + public EClass getFeatureClass() { + return Bpmn2Package.eINSTANCE.getGlobalManualTask(); + } + } +}
\ No newline at end of file diff --git a/plugins/org.eclipse.bpmn2.modeler.ui/src/org/eclipse/bpmn2/modeler/ui/features/callactivity/CallGlobalScriptTaskFeatureContainer.java b/plugins/org.eclipse.bpmn2.modeler.ui/src/org/eclipse/bpmn2/modeler/ui/features/callactivity/CallGlobalScriptTaskFeatureContainer.java new file mode 100644 index 00000000..314508f3 --- /dev/null +++ b/plugins/org.eclipse.bpmn2.modeler.ui/src/org/eclipse/bpmn2/modeler/ui/features/callactivity/CallGlobalScriptTaskFeatureContainer.java @@ -0,0 +1,54 @@ +/******************************************************************************* + * Copyright (c) 2011, 2012 Red Hat, Inc. + * All rights reserved. + * This program is made available under the terms of the + * Eclipse Public License v1.0 which accompanies this distribution, + * and is available at http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Red Hat, Inc. - initial API and implementation + * + * @author Innar Made + ******************************************************************************/ +package org.eclipse.bpmn2.modeler.ui.features.callactivity; + +import org.eclipse.bpmn2.Bpmn2Package; +import org.eclipse.bpmn2.GlobalBusinessRuleTask; +import org.eclipse.bpmn2.GlobalScriptTask; +import org.eclipse.bpmn2.modeler.ui.ImageProvider; +import org.eclipse.emf.ecore.EClass; +import org.eclipse.graphiti.features.ICreateFeature; +import org.eclipse.graphiti.features.IFeatureProvider; + + +public class CallGlobalScriptTaskFeatureContainer extends AbstractCallGlobalTaskFeatureContainer<GlobalScriptTask> { + + + @Override + public ICreateFeature getCreateFeature(IFeatureProvider fp) { + return new CreateCallGlobalScriptTaskFeature(fp); + } + + public class CreateCallGlobalScriptTaskFeature extends AbstractCreateCallGlobalTaskFeature<GlobalScriptTask> { + + /** + * @param fp + */ + public CreateCallGlobalScriptTaskFeature(IFeatureProvider fp) { + super(fp, "Call Global Script Task", "Call Activity for a Global Script Task"); + } + + @Override + public String getStencilImageId() { + return ImageProvider.IMG_16_CALL_ACTIVITY; + } + + /* (non-Javadoc) + * @see org.eclipse.bpmn2.modeler.core.features.AbstractBpmn2CreateFeature#getFeatureClass() + */ + @Override + public EClass getFeatureClass() { + return Bpmn2Package.eINSTANCE.getGlobalScriptTask(); + } + } +}
\ No newline at end of file diff --git a/plugins/org.eclipse.bpmn2.modeler.ui/src/org/eclipse/bpmn2/modeler/ui/features/callactivity/CallGlobalTaskFeatureContainer.java b/plugins/org.eclipse.bpmn2.modeler.ui/src/org/eclipse/bpmn2/modeler/ui/features/callactivity/CallGlobalTaskFeatureContainer.java index a33c446d..7a1fcc9c 100644 --- a/plugins/org.eclipse.bpmn2.modeler.ui/src/org/eclipse/bpmn2/modeler/ui/features/callactivity/CallGlobalTaskFeatureContainer.java +++ b/plugins/org.eclipse.bpmn2.modeler.ui/src/org/eclipse/bpmn2/modeler/ui/features/callactivity/CallGlobalTaskFeatureContainer.java @@ -13,34 +13,27 @@ package org.eclipse.bpmn2.modeler.ui.features.callactivity; import org.eclipse.bpmn2.Bpmn2Package; +import org.eclipse.bpmn2.GlobalTask; import org.eclipse.bpmn2.modeler.ui.ImageProvider; import org.eclipse.emf.ecore.EClass; import org.eclipse.graphiti.features.ICreateFeature; import org.eclipse.graphiti.features.IFeatureProvider; -import org.eclipse.graphiti.features.context.ICreateContext; -public class CallGlobalTaskFeatureContainer extends CallActivityFeatureContainer { +public class CallGlobalTaskFeatureContainer extends AbstractCallGlobalTaskFeatureContainer<GlobalTask> { - @Override public ICreateFeature getCreateFeature(IFeatureProvider fp) { return new CreateCallGlobalTaskFeature(fp); } - public static class CreateCallGlobalTaskFeature extends CreateCallActivityFeature { + public class CreateCallGlobalTaskFeature extends AbstractCreateCallGlobalTaskFeature<GlobalTask> { /** * @param fp */ public CreateCallGlobalTaskFeature(IFeatureProvider fp) { - super(fp); - } - - @Override - public Object[] create(ICreateContext context) { - Object[] elems = super.create(context); - return elems; + super(fp, "Call Global Task", "Call Activity for a Global Task"); } @Override @@ -49,10 +42,10 @@ public class CallGlobalTaskFeatureContainer extends CallActivityFeatureContainer } /* (non-Javadoc) - * @see org.eclipse.bpmn2.modeler.core.features.AbstractCreateFlowElementFeature#getFlowElementClass() + * @see org.eclipse.bpmn2.modeler.core.features.AbstractBpmn2CreateFeature#getFeatureClass() */ @Override - public EClass getBusinessObjectClass() { + public EClass getFeatureClass() { return Bpmn2Package.eINSTANCE.getGlobalTask(); } } diff --git a/plugins/org.eclipse.bpmn2.modeler.ui/src/org/eclipse/bpmn2/modeler/ui/features/callactivity/CallGlobalUserTaskFeatureContainer.java b/plugins/org.eclipse.bpmn2.modeler.ui/src/org/eclipse/bpmn2/modeler/ui/features/callactivity/CallGlobalUserTaskFeatureContainer.java new file mode 100644 index 00000000..1144f8fa --- /dev/null +++ b/plugins/org.eclipse.bpmn2.modeler.ui/src/org/eclipse/bpmn2/modeler/ui/features/callactivity/CallGlobalUserTaskFeatureContainer.java @@ -0,0 +1,54 @@ +/******************************************************************************* + * Copyright (c) 2011, 2012 Red Hat, Inc. + * All rights reserved. + * This program is made available under the terms of the + * Eclipse Public License v1.0 which accompanies this distribution, + * and is available at http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Red Hat, Inc. - initial API and implementation + * + * @author Innar Made + ******************************************************************************/ +package org.eclipse.bpmn2.modeler.ui.features.callactivity; + +import org.eclipse.bpmn2.Bpmn2Package; +import org.eclipse.bpmn2.GlobalManualTask; +import org.eclipse.bpmn2.GlobalUserTask; +import org.eclipse.bpmn2.modeler.ui.ImageProvider; +import org.eclipse.emf.ecore.EClass; +import org.eclipse.graphiti.features.ICreateFeature; +import org.eclipse.graphiti.features.IFeatureProvider; + + +public class CallGlobalUserTaskFeatureContainer extends AbstractCallGlobalTaskFeatureContainer<GlobalUserTask> { + + + @Override + public ICreateFeature getCreateFeature(IFeatureProvider fp) { + return new CreateCallGlobalUserTaskFeature(fp); + } + + public static class CreateCallGlobalUserTaskFeature extends AbstractCreateCallGlobalTaskFeature<GlobalUserTask> { + + /** + * @param fp + */ + public CreateCallGlobalUserTaskFeature(IFeatureProvider fp) { + super(fp, "Call Global User Task", "Call Activity for a Global User Task"); + } + + @Override + public String getStencilImageId() { + return ImageProvider.IMG_16_CALL_ACTIVITY; + } + + /* (non-Javadoc) + * @see org.eclipse.bpmn2.modeler.core.features.AbstractBpmn2CreateFeature#getFeatureClass() + */ + @Override + public EClass getFeatureClass() { + return Bpmn2Package.eINSTANCE.getGlobalUserTask(); + } + } +}
\ No newline at end of file diff --git a/plugins/org.eclipse.bpmn2.modeler.ui/src/org/eclipse/bpmn2/modeler/ui/preferences/Bpmn2EditorAppearancePreferencePage.java b/plugins/org.eclipse.bpmn2.modeler.ui/src/org/eclipse/bpmn2/modeler/ui/preferences/Bpmn2EditorAppearancePreferencePage.java index 204af506..85fa704e 100644 --- a/plugins/org.eclipse.bpmn2.modeler.ui/src/org/eclipse/bpmn2/modeler/ui/preferences/Bpmn2EditorAppearancePreferencePage.java +++ b/plugins/org.eclipse.bpmn2.modeler.ui/src/org/eclipse/bpmn2/modeler/ui/preferences/Bpmn2EditorAppearancePreferencePage.java @@ -106,8 +106,13 @@ public class Bpmn2EditorAppearancePreferencePage extends PreferencePage implemen ShapeStyleList eventShapeStyles = new ShapeStyleList(Category.EVENTS); ShapeStyleList gatewayShapeStyles = new ShapeStyleList(Category.GATEWAYS); ShapeStyleList taskShapeStyles = new ShapeStyleList(Category.TASKS); + ShapeStyleList globalTaskShapeStyles = new ShapeStyleList(Category.GLOBAL_TASKS); + ShapeStyleList subProcessShapeStyles = new ShapeStyleList(Category.SUBPROCESS); + ShapeStyleList choreographyShapeStyles = new ShapeStyleList(Category.CHOREOGRAPHY); + ShapeStyleList conversationShapeStyles = new ShapeStyleList(Category.CONVERSATION); + ShapeStyleList swimLanesShapeStyles = new ShapeStyleList(Category.SWIMLANES); ShapeStyleList dataShapeStyles = new ShapeStyleList(Category.DATA); - ShapeStyleList otherShapeStyles = new ShapeStyleList(Category.OTHER); + ShapeStyleList artifactShapeStyles = new ShapeStyleList(Category.ARTIFACTS); Object currentSelection; ColorShapeStyleEditor shapeBackground; ColorShapeStyleEditor shapePrimarySelectedColor; @@ -139,6 +144,11 @@ public class Bpmn2EditorAppearancePreferencePage extends PreferencePage implemen allElements.addAll(Bpmn2FeatureMap.EVENTS); allElements.addAll(Bpmn2FeatureMap.GATEWAYS); allElements.addAll(Bpmn2FeatureMap.TASKS); + allElements.addAll(Bpmn2FeatureMap.GLOBAL_TASKS); + allElements.addAll(Bpmn2FeatureMap.SUBPROCESS); + allElements.addAll(Bpmn2FeatureMap.CHOREOGRAPHY); + allElements.addAll(Bpmn2FeatureMap.CONVERSATION); + allElements.addAll(Bpmn2FeatureMap.SWIMLANES); allElements.addAll(Bpmn2FeatureMap.DATA); allElements.addAll(Bpmn2FeatureMap.ARTIFACTS); Collections.sort(allElements, new Comparator<Class>() { @@ -315,13 +325,24 @@ public class Bpmn2EditorAppearancePreferencePage extends PreferencePage implemen ssl.addAll(eventShapeStyles.values()); ssl.addAll(gatewayShapeStyles.values()); ssl.addAll(taskShapeStyles.values()); + ssl.addAll(globalTaskShapeStyles.values()); + ssl.addAll(subProcessShapeStyles.values()); + ssl.addAll(choreographyShapeStyles.values()); + ssl.addAll(conversationShapeStyles.values()); + ssl.addAll(swimLanesShapeStyles.values()); ssl.addAll(dataShapeStyles.values()); - ssl.addAll(otherShapeStyles.values()); + ssl.addAll(artifactShapeStyles.values()); + ssl.add(allShapeStyles.get(Category.EVENTS)); ssl.add(allShapeStyles.get(Category.GATEWAYS)); ssl.add(allShapeStyles.get(Category.TASKS)); + ssl.add(allShapeStyles.get(Category.GLOBAL_TASKS)); + ssl.add(allShapeStyles.get(Category.SUBPROCESS)); + ssl.add(allShapeStyles.get(Category.CHOREOGRAPHY)); + ssl.add(allShapeStyles.get(Category.CONVERSATION)); + ssl.add(allShapeStyles.get(Category.SWIMLANES)); ssl.add(allShapeStyles.get(Category.DATA)); - ssl.add(allShapeStyles.get(Category.OTHER)); + ssl.add(allShapeStyles.get(Category.ARTIFACTS)); break; case CANVAS: break; @@ -336,12 +357,27 @@ public class Bpmn2EditorAppearancePreferencePage extends PreferencePage implemen break; case GRID: break; - case OTHER: - ssl.addAll(otherShapeStyles.values()); + case ARTIFACTS: + ssl.addAll(artifactShapeStyles.values()); break; case TASKS: ssl.addAll(taskShapeStyles.values()); break; + case GLOBAL_TASKS: + ssl.addAll(globalTaskShapeStyles.values()); + break; + case SUBPROCESS: + ssl.addAll(subProcessShapeStyles.values()); + break; + case CHOREOGRAPHY: + ssl.addAll(choreographyShapeStyles.values()); + break; + case CONVERSATION: + ssl.addAll(conversationShapeStyles.values()); + break; + case SWIMLANES: + ssl.addAll(swimLanesShapeStyles.values()); + break; case NONE: break; } @@ -359,8 +395,13 @@ public class Bpmn2EditorAppearancePreferencePage extends PreferencePage implemen shapesList.put(Category.EVENTS.toString(), eventShapeStyles); shapesList.put(Category.GATEWAYS.toString(), gatewayShapeStyles); shapesList.put(Category.TASKS.toString(), taskShapeStyles); + shapesList.put(Category.GLOBAL_TASKS.toString(), globalTaskShapeStyles); + shapesList.put(Category.SUBPROCESS.toString(), subProcessShapeStyles); + shapesList.put(Category.CHOREOGRAPHY.toString(), choreographyShapeStyles); + shapesList.put(Category.CONVERSATION.toString(), conversationShapeStyles); + shapesList.put(Category.SWIMLANES.toString(), swimLanesShapeStyles); shapesList.put(Category.DATA.toString(), dataShapeStyles); - shapesList.put(Category.OTHER.toString(), otherShapeStyles); + shapesList.put(Category.ARTIFACTS.toString(), artifactShapeStyles); categories = new ShapeStyleCategoryList(Category.NONE); categories.put(Category.CONNECTIONS.toString(), connectionShapeStyles); @@ -379,10 +420,20 @@ public class Bpmn2EditorAppearancePreferencePage extends PreferencePage implemen gatewayShapeStyles.put(c, ss); if (Bpmn2FeatureMap.TASKS.contains(c)) taskShapeStyles.put(c, ss); + if (Bpmn2FeatureMap.GLOBAL_TASKS.contains(c)) + globalTaskShapeStyles.put(c, ss); + if (Bpmn2FeatureMap.SUBPROCESS.contains(c)) + subProcessShapeStyles.put(c, ss); + if (Bpmn2FeatureMap.CHOREOGRAPHY.contains(c)) + choreographyShapeStyles.put(c, ss); + if (Bpmn2FeatureMap.CONVERSATION.contains(c)) + conversationShapeStyles.put(c, ss); + if (Bpmn2FeatureMap.SWIMLANES.contains(c)) + swimLanesShapeStyles.put(c, ss); if (Bpmn2FeatureMap.DATA.contains(c)) dataShapeStyles.put(c, ss); if (Bpmn2FeatureMap.ARTIFACTS.contains(c)) - otherShapeStyles.put(c, ss); + artifactShapeStyles.put(c, ss); if (Activator.getDefault().isDebugging()) { IColorConstant foreground = ss.getShapeForeground(); @@ -478,13 +529,20 @@ public class Bpmn2EditorAppearancePreferencePage extends PreferencePage implemen Class c = (Class) currentSelection; if ( Bpmn2FeatureMap.TASKS.contains(c) || + Bpmn2FeatureMap.GLOBAL_TASKS.contains(c) || + Bpmn2FeatureMap.SUBPROCESS.contains(c) || + Bpmn2FeatureMap.CHOREOGRAPHY.contains(c) || + Bpmn2FeatureMap.SWIMLANES.contains(c) || Bpmn2FeatureMap.ARTIFACTS.contains(c)) return false; } else if (currentSelection instanceof Category) { Category k = (Category) currentSelection; if ( k==Category.TASKS || - k==Category.OTHER || + k==Category.GLOBAL_TASKS || + k==Category.SUBPROCESS || + k==Category.CHOREOGRAPHY || + k==Category.SWIMLANES || k==Category.CANVAS || k==Category.GRID) return false; |