diff options
5 files changed, 29 insertions, 63 deletions
diff --git a/plugins/org.eclipse.bpmn2.modeler.runtime.jboss.jbpm/plugin.xml b/plugins/org.eclipse.bpmn2.modeler.runtime.jboss.jbpm/plugin.xml index ef43902f..090fd2ca 100644 --- a/plugins/org.eclipse.bpmn2.modeler.runtime.jboss.jbpm/plugin.xml +++ b/plugins/org.eclipse.bpmn2.modeler.runtime.jboss.jbpm/plugin.xml @@ -500,12 +500,6 @@ type="org.eclipse.bpmn2.IntermediateThrowEvent" class="org.eclipse.bpmn2.modeler.runtime.jboss.jbpm5.features.JbpmIntermediateThrowEventFeatureContainer"> </featureContainer> - - <featureContainer - runtimeId="org.jboss.runtime.jbpm5" - type="org.eclipse.bpmn2.BoundaryEvent" - class="org.eclipse.bpmn2.modeler.runtime.jboss.jbpm5.features.JbpmBoundaryEventFeatureContainer"> - </featureContainer> <!-- BPMN Model Element Extensions --> diff --git a/plugins/org.eclipse.bpmn2.modeler.runtime.jboss.jbpm/src/org/eclipse/bpmn2/modeler/runtime/jboss/jbpm5/features/JbpmBoundaryEventFeatureContainer.java b/plugins/org.eclipse.bpmn2.modeler.runtime.jboss.jbpm/src/org/eclipse/bpmn2/modeler/runtime/jboss/jbpm5/features/JbpmBoundaryEventFeatureContainer.java deleted file mode 100644 index 97ba37f9..00000000 --- a/plugins/org.eclipse.bpmn2.modeler.runtime.jboss.jbpm/src/org/eclipse/bpmn2/modeler/runtime/jboss/jbpm5/features/JbpmBoundaryEventFeatureContainer.java +++ /dev/null @@ -1,55 +0,0 @@ -/******************************************************************************* - * 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 - *******************************************************************************/ -package org.eclipse.bpmn2.modeler.runtime.jboss.jbpm5.features; - -import org.eclipse.bpmn2.ScriptTask; -import org.eclipse.bpmn2.modeler.ui.features.event.AddBoundaryEventFeature; -import org.eclipse.bpmn2.modeler.ui.features.event.BoundaryEventFeatureContainer; -import org.eclipse.bpmn2.modeler.ui.features.event.CreateBoundaryEventFeature; -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.features.context.ICreateContext; - -public class JbpmBoundaryEventFeatureContainer extends BoundaryEventFeatureContainer { - - @Override - public IAddFeature getAddFeature(IFeatureProvider fp) { - return new AddBoundaryEventFeature(fp){ - - @Override - public boolean canAdd(IAddContext context) { - if (super.canAdd(context)) { - Object bo = getBusinessObjectForPictogramElement(context.getTargetContainer()); - return !(bo instanceof ScriptTask); - } - return false; - } - - }; - } - - @Override - public ICreateFeature getCreateFeature(IFeatureProvider fp) { - return new CreateBoundaryEventFeature(fp) { - - @Override - public boolean canCreate(ICreateContext context) { - if (super.canCreate(context)) { - Object bo = getBusinessObjectForPictogramElement(context.getTargetContainer()); - return !(bo instanceof ScriptTask); - } - return false; - } - }; - } -} diff --git a/plugins/org.eclipse.bpmn2.modeler.runtime.jboss.jbpm/src/org/eclipse/bpmn2/modeler/runtime/jboss/jbpm5/features/JbpmTimerEventDefinitionFeatureContainer.java b/plugins/org.eclipse.bpmn2.modeler.runtime.jboss.jbpm/src/org/eclipse/bpmn2/modeler/runtime/jboss/jbpm5/features/JbpmTimerEventDefinitionFeatureContainer.java index f65f902a..ef854c42 100644 --- a/plugins/org.eclipse.bpmn2.modeler.runtime.jboss.jbpm/src/org/eclipse/bpmn2/modeler/runtime/jboss/jbpm5/features/JbpmTimerEventDefinitionFeatureContainer.java +++ b/plugins/org.eclipse.bpmn2.modeler.runtime.jboss.jbpm/src/org/eclipse/bpmn2/modeler/runtime/jboss/jbpm5/features/JbpmTimerEventDefinitionFeatureContainer.java @@ -14,7 +14,9 @@ package org.eclipse.bpmn2.modeler.runtime.jboss.jbpm5.features; import org.eclipse.bpmn2.CatchEvent; +import org.eclipse.bpmn2.ScriptTask; import org.eclipse.bpmn2.ThrowEvent; +import org.eclipse.bpmn2.modeler.core.features.GraphitiConstants; import org.eclipse.bpmn2.modeler.ui.features.event.definitions.TimerEventDefinitionContainer; import org.eclipse.graphiti.features.ICreateFeature; import org.eclipse.graphiti.features.IFeatureProvider; @@ -31,6 +33,10 @@ public class JbpmTimerEventDefinitionFeatureContainer extends TimerEventDefiniti return new CreateTimerEventDefinition(fp) { public boolean canCreate(ICreateContext context) { if (super.canCreate(context)) { + Object o = context.getProperty(GraphitiConstants.PARENT_CONTAINER); + if (o instanceof ScriptTask) + return false; + Object bo = getBusinessObjectForPictogramElement(context.getTargetContainer()); if (bo instanceof ThrowEvent) { ThrowEvent te = (ThrowEvent)bo; diff --git a/plugins/org.eclipse.bpmn2.modeler.runtime.jboss.jbpm/src/org/eclipse/bpmn2/modeler/runtime/jboss/jbpm5/property/JbpmCommonEventDetailComposite.java b/plugins/org.eclipse.bpmn2.modeler.runtime.jboss.jbpm/src/org/eclipse/bpmn2/modeler/runtime/jboss/jbpm5/property/JbpmCommonEventDetailComposite.java index 30b7775f..bc6feaa5 100644 --- a/plugins/org.eclipse.bpmn2.modeler.runtime.jboss.jbpm/src/org/eclipse/bpmn2/modeler/runtime/jboss/jbpm5/property/JbpmCommonEventDetailComposite.java +++ b/plugins/org.eclipse.bpmn2.modeler.runtime.jboss.jbpm/src/org/eclipse/bpmn2/modeler/runtime/jboss/jbpm5/property/JbpmCommonEventDetailComposite.java @@ -15,6 +15,8 @@ package org.eclipse.bpmn2.modeler.runtime.jboss.jbpm5.property; import java.util.List; +import org.eclipse.bpmn2.BoundaryEvent; +import org.eclipse.bpmn2.Bpmn2Package; import org.eclipse.bpmn2.CatchEvent; import org.eclipse.bpmn2.ConditionalEventDefinition; import org.eclipse.bpmn2.DataInput; @@ -22,6 +24,7 @@ import org.eclipse.bpmn2.DataOutput; import org.eclipse.bpmn2.Event; import org.eclipse.bpmn2.EventDefinition; import org.eclipse.bpmn2.LinkEventDefinition; +import org.eclipse.bpmn2.ScriptTask; import org.eclipse.bpmn2.ThrowEvent; import org.eclipse.bpmn2.TimerEventDefinition; import org.eclipse.bpmn2.modeler.core.merrimac.clad.AbstractBpmn2PropertySection; @@ -29,6 +32,7 @@ import org.eclipse.bpmn2.modeler.core.merrimac.clad.AbstractDetailComposite; import org.eclipse.bpmn2.modeler.core.merrimac.clad.AbstractListComposite; import org.eclipse.bpmn2.modeler.core.merrimac.dialogs.ObjectEditor; import org.eclipse.bpmn2.modeler.core.utils.EventDefinitionsUtil; +import org.eclipse.bpmn2.modeler.core.utils.FeatureSupport; import org.eclipse.bpmn2.modeler.ui.property.editors.ExpressionLanguageObjectEditor; import org.eclipse.bpmn2.modeler.ui.property.events.CommonEventDetailComposite; import org.eclipse.bpmn2.modeler.ui.property.events.ConditionalEventDefinitionDetailComposite; @@ -70,6 +74,19 @@ public class JbpmCommonEventDetailComposite extends CommonEventDetailComposite { eventsTable = new EventDefinitionsListComposite(this, (Event)object) { @Override + protected List<EClass> getAllowedEventDefinitions(Event event, Object parentContainer) { + List<EClass> list = FeatureSupport.getAllowedEventDefinitions(event, parentContainer); + if (event instanceof BoundaryEvent) { + if (((BoundaryEvent)event).getAttachedToRef() instanceof ScriptTask) { + // See https://bugzilla.redhat.com/show_bug.cgi?id=1141619 + // remove timer event because it's not allowed on a ScriptTask + list.remove(Bpmn2Package.eINSTANCE.getTimerEventDefinition()); + } + } + return list; + } + + @Override public AbstractDetailComposite createDetailComposite(Class eClass, Composite parent, int style) { if (eClass==TimerEventDefinition.class) { return new JbpmTimerEventDefinitionDetailComposite(parent, style); diff --git a/plugins/org.eclipse.bpmn2.modeler.ui/src/org/eclipse/bpmn2/modeler/ui/property/events/EventDefinitionsListComposite.java b/plugins/org.eclipse.bpmn2.modeler.ui/src/org/eclipse/bpmn2/modeler/ui/property/events/EventDefinitionsListComposite.java index 7d9b998b..a95f29b3 100644 --- a/plugins/org.eclipse.bpmn2.modeler.ui/src/org/eclipse/bpmn2/modeler/ui/property/events/EventDefinitionsListComposite.java +++ b/plugins/org.eclipse.bpmn2.modeler.ui/src/org/eclipse/bpmn2/modeler/ui/property/events/EventDefinitionsListComposite.java @@ -344,7 +344,11 @@ public class EventDefinitionsListComposite extends DefaultListComposite { ).setEditable(false); return columnProvider; } - + + protected List<EClass> getAllowedEventDefinitions(Event event, Object parentContainer) { + return FeatureSupport.getAllowedEventDefinitions(event, parentContainer); + } + @Override public EClass getListItemClassToAdd(EClass listItemClass) { EClass eclass = null; @@ -352,7 +356,7 @@ public class EventDefinitionsListComposite extends DefaultListComposite { @Override protected void filterList(List<EClass> items) { List<EClass> filteredItems = new ArrayList<EClass>(); - List<EClass> allowedItems = FeatureSupport.getAllowedEventDefinitions(event, null); + List<EClass> allowedItems = getAllowedEventDefinitions(event, null); for (EClass eclass : items) { if (allowedItems.contains(eclass)) { boolean skip = false; |