Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBob Brodt2016-01-21 21:49:47 +0000
committerBob Brodt2016-01-21 21:49:47 +0000
commitb155e89252f103e73e10b60a3444faf78843da31 (patch)
tree62bb58323c0e0362ee6c2a9fa5a2c1c12ea1216a
parentb4e13bc33d2db1b972878055a09f2856588b5dbd (diff)
downloadorg.eclipse.bpmn2-modeler-b155e89252f103e73e10b60a3444faf78843da31.tar.gz
org.eclipse.bpmn2-modeler-b155e89252f103e73e10b60a3444faf78843da31.tar.xz
org.eclipse.bpmn2-modeler-b155e89252f103e73e10b60a3444faf78843da31.zip
https://bugzilla.redhat.com/show_bug.cgi?id=1141619
Boundary event should not be attached to Script Task in JBDS for jBPM
-rw-r--r--plugins/org.eclipse.bpmn2.modeler.runtime.jboss.jbpm/plugin.xml6
-rw-r--r--plugins/org.eclipse.bpmn2.modeler.runtime.jboss.jbpm/src/org/eclipse/bpmn2/modeler/runtime/jboss/jbpm5/features/JbpmBoundaryEventFeatureContainer.java55
-rw-r--r--plugins/org.eclipse.bpmn2.modeler.runtime.jboss.jbpm/src/org/eclipse/bpmn2/modeler/runtime/jboss/jbpm5/features/JbpmTimerEventDefinitionFeatureContainer.java6
-rw-r--r--plugins/org.eclipse.bpmn2.modeler.runtime.jboss.jbpm/src/org/eclipse/bpmn2/modeler/runtime/jboss/jbpm5/property/JbpmCommonEventDetailComposite.java17
-rw-r--r--plugins/org.eclipse.bpmn2.modeler.ui/src/org/eclipse/bpmn2/modeler/ui/property/events/EventDefinitionsListComposite.java8
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;

Back to the top