Author: koen.aers(a)jboss.com
Date: 2009-04-28 11:19:32 -0400 (Tue, 28 Apr 2009)
New Revision: 14948
Added:
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/icons/16/event.gif
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/editpart/EventListenerListTreeEditPart.java
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/editpart/EventListenerTreeEditPart.java
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/model/EventListenerContainer.java
Removed:
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/editpart/EventListenerContainerListTreeEditPart.java
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/model/DefaultEventListenerContainer.java
Modified:
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/plugin.xml
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/editpart/JpdlTreeEditPartFactory.java
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/editpart/ProcessTreeRootEditPart.java
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/editpart/SequenceFlowTreeRootEditPart.java
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/editpart/TaskTreeRootEditPart.java
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/handler/AddEventListenerHandler.java
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/handler/AddSwimlaneHandler.java
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/handler/DeleteElementHandler.java
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/model/EventListener.java
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/model/Process.java
Log:
delete and add eventlisteners
Added: trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/icons/16/event.gif
===================================================================
(Binary files differ)
Property changes on: trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/icons/16/event.gif
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Modified: trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/plugin.xml
===================================================================
--- trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/plugin.xml 2009-04-28 15:07:15 UTC (rev
14947)
+++ trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/plugin.xml 2009-04-28 15:19:32 UTC (rev
14948)
@@ -344,9 +344,14 @@
<visibleWhen
checkEnabled="true">
<iterate>
- <instanceof
-
value="org.jboss.tools.flow.jpdl4.editpart.ProcessTreeRootEditPart">
- </instanceof>
+ <or>
+ <instanceof
+
value="org.jboss.tools.flow.jpdl4.editpart.ProcessTreeRootEditPart">
+ </instanceof>
+ <instanceof
+
value="org.jboss.tools.flow.jpdl4.editpart.SwimlaneListTreeEditPart">
+ </instanceof>
+ </or>
</iterate>
</visibleWhen>
</command>
@@ -358,9 +363,14 @@
<visibleWhen
checkEnabled="true">
<iterate>
- <instanceof
-
value="org.jboss.tools.flow.jpdl4.editpart.ProcessTreeRootEditPart">
- </instanceof>
+ <or>
+ <instanceof
+
value="org.jboss.tools.flow.jpdl4.editpart.ProcessTreeRootEditPart">
+ </instanceof>
+ <instanceof
+
value="org.jboss.tools.flow.jpdl4.editpart.EventListenerListTreeEditPart">
+ </instanceof>
+ </or>
</iterate>
</visibleWhen>
</command>
@@ -372,9 +382,14 @@
<visibleWhen
checkEnabled="true">
<iterate>
- <instanceof
-
value="org.jboss.tools.flow.jpdl4.editpart.ProcessTreeRootEditPart">
- </instanceof>
+ <or>
+ <instanceof
+
value="org.jboss.tools.flow.jpdl4.editpart.ProcessTreeRootEditPart">
+ </instanceof>
+ <instanceof
+
value="org.jboss.tools.flow.jpdl4.editpart.TimerListTreeEditPart">
+ </instanceof>
+ </or>
</iterate>
</visibleWhen>
</command>
Deleted:
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/editpart/EventListenerContainerListTreeEditPart.java
===================================================================
---
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/editpart/EventListenerContainerListTreeEditPart.java 2009-04-28
15:07:15 UTC (rev 14947)
+++
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/editpart/EventListenerContainerListTreeEditPart.java 2009-04-28
15:19:32 UTC (rev 14948)
@@ -1,26 +0,0 @@
-package org.jboss.tools.flow.jpdl4.editpart;
-
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.swt.graphics.Image;
-import org.jboss.tools.flow.jpdl4.model.Process;
-import org.jboss.tools.flow.jpdl4.util.SharedImages;
-
-public class EventListenerContainerListTreeEditPart extends JpdlTreeEditPart {
-
- public EventListenerContainerListTreeEditPart(Process process) {
- super(process);
- }
-
- protected Image getImage() {
- String iconPath = "icons/16/events_multiple.gif";
- ImageDescriptor descriptor = ImageDescriptor.createFromURL(
- Platform.getBundle("org.jboss.tools.flow.jpdl4").getEntry(iconPath));
- return SharedImages.INSTANCE.getImage(descriptor);
- }
-
- protected String getText() {
- return "Event Listeners";
- }
-
-}
Added:
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/editpart/EventListenerListTreeEditPart.java
===================================================================
---
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/editpart/EventListenerListTreeEditPart.java
(rev 0)
+++
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/editpart/EventListenerListTreeEditPart.java 2009-04-28
15:19:32 UTC (rev 14948)
@@ -0,0 +1,60 @@
+package org.jboss.tools.flow.jpdl4.editpart;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.core.runtime.Platform;
+import org.eclipse.gef.EditPart;
+import org.eclipse.jface.resource.ImageDescriptor;
+import org.eclipse.swt.graphics.Image;
+import org.jboss.tools.flow.common.wrapper.ModelEvent;
+import org.jboss.tools.flow.common.wrapper.Wrapper;
+import org.jboss.tools.flow.jpdl4.util.SharedImages;
+
+public class EventListenerListTreeEditPart extends JpdlTreeEditPart implements
ElementTreeEditPart {
+
+ public EventListenerListTreeEditPart(Wrapper wrapper) {
+ super(wrapper);
+ }
+
+ protected Image getImage() {
+ String iconPath = "icons/16/events_multiple.gif";
+ ImageDescriptor descriptor = ImageDescriptor.createFromURL(
+ Platform.getBundle("org.jboss.tools.flow.jpdl4").getEntry(iconPath));
+ return SharedImages.INSTANCE.getImage(descriptor);
+ }
+
+ protected String getText() {
+ return "event";
+ }
+
+ protected List<Object> getModelChildren() {
+ List<Object> result = new ArrayList<Object>();
+ Wrapper wrapper = (Wrapper)getModel();
+ if (wrapper.getChildren("listener") != null) {
+ result.addAll(wrapper.getChildren("listener"));
+ }
+ return result;
+ }
+
+
+ public void activate() {
+ super.activate();
+ ((Wrapper)getModel()).addListener(this);
+ }
+
+ public void deactivate() {
+ ((Wrapper)getModel()).removeListener(this);
+ super.deactivate();
+ }
+
+ public void modelChanged(ModelEvent event) {
+ EditPart parent = getParent();
+ if (parent instanceof JpdlTreeEditPart) {
+ ModelEvent modelEvent = new ModelEvent(Wrapper.REMOVE_ELEMENT,
"eventListener", getModel(), null, null);
+ ((JpdlTreeEditPart)parent).modelChanged(modelEvent);
+ }
+ refreshChildren();
+ }
+
+}
Property changes on:
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/editpart/EventListenerListTreeEditPart.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added:
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/editpart/EventListenerTreeEditPart.java
===================================================================
---
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/editpart/EventListenerTreeEditPart.java
(rev 0)
+++
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/editpart/EventListenerTreeEditPart.java 2009-04-28
15:19:32 UTC (rev 14948)
@@ -0,0 +1,26 @@
+package org.jboss.tools.flow.jpdl4.editpart;
+
+import org.eclipse.core.runtime.Platform;
+import org.eclipse.jface.resource.ImageDescriptor;
+import org.eclipse.swt.graphics.Image;
+import org.jboss.tools.flow.common.wrapper.Wrapper;
+import org.jboss.tools.flow.jpdl4.util.SharedImages;
+
+public class EventListenerTreeEditPart extends JpdlTreeEditPart implements
ElementTreeEditPart {
+
+ public EventListenerTreeEditPart(Wrapper wrapper) {
+ super(wrapper);
+ }
+
+ protected Image getImage() {
+ String iconPath = "icons/16/event.gif";
+ ImageDescriptor descriptor = ImageDescriptor.createFromURL(
+ Platform.getBundle("org.jboss.tools.flow.jpdl4").getEntry(iconPath));
+ return SharedImages.INSTANCE.getImage(descriptor);
+ }
+
+ protected String getText() {
+ return "event";
+ }
+
+}
Property changes on:
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/editpart/EventListenerTreeEditPart.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Modified:
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/editpart/JpdlTreeEditPartFactory.java
===================================================================
---
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/editpart/JpdlTreeEditPartFactory.java 2009-04-28
15:07:15 UTC (rev 14947)
+++
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/editpart/JpdlTreeEditPartFactory.java 2009-04-28
15:19:32 UTC (rev 14948)
@@ -7,6 +7,8 @@
import org.jboss.tools.flow.common.wrapper.FlowWrapper;
import org.jboss.tools.flow.common.wrapper.NodeWrapper;
import org.jboss.tools.flow.common.wrapper.Wrapper;
+import org.jboss.tools.flow.jpdl4.model.EventListener;
+import org.jboss.tools.flow.jpdl4.model.EventListenerContainer;
import org.jboss.tools.flow.jpdl4.model.Swimlane;
import org.jboss.tools.flow.jpdl4.model.Timer;
@@ -19,11 +21,12 @@
if (model instanceof Wrapper) {
Element element = ((Wrapper)model).getElement();
if (element instanceof Swimlane) return new SwimlaneTreeEditPart((Wrapper)model);
+ if (element instanceof EventListenerContainer) return new
EventListenerListTreeEditPart((Wrapper)model);
+ if (element instanceof EventListener) return new
EventListenerTreeEditPart((Wrapper)model);
if (element instanceof Timer) return new TimerTreeEditPart((Wrapper)model);
return new NoDetailsTreeRootEditPart();
}
if (model instanceof SwimlaneListTreeEditPart) return (EditPart)model;
- if (model instanceof EventListenerContainerListTreeEditPart) return (EditPart)model;
if (model instanceof TimerListTreeEditPart) return (EditPart)model;
return new NoDetailsTreeRootEditPart();
}
Modified:
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/editpart/ProcessTreeRootEditPart.java
===================================================================
---
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/editpart/ProcessTreeRootEditPart.java 2009-04-28
15:07:15 UTC (rev 14947)
+++
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/editpart/ProcessTreeRootEditPart.java 2009-04-28
15:19:32 UTC (rev 14948)
@@ -4,10 +4,12 @@
import java.util.List;
import org.eclipse.gef.EditPart;
+import org.jboss.tools.flow.common.command.DeleteChildCommand;
import org.jboss.tools.flow.common.model.Element;
import org.jboss.tools.flow.common.wrapper.FlowWrapper;
import org.jboss.tools.flow.common.wrapper.ModelEvent;
import org.jboss.tools.flow.common.wrapper.Wrapper;
+import org.jboss.tools.flow.jpdl4.model.EventListenerContainer;
public class ProcessTreeRootEditPart extends JpdlTreeEditPart {
@@ -23,20 +25,31 @@
FlowWrapper flowWrapper = (FlowWrapper)getModel();
if (flowWrapper == null) return null;
addSwimlanes(result, flowWrapper);
+ addEventListeners(result, flowWrapper);
addTimers(result, flowWrapper);
return result;
}
- private void addSwimlanes(List<Object> list, FlowWrapper wrapper) {
- List<Element> swimlanes = wrapper.getChildren("swimlane");
- if (swimlanes != null && !(swimlanes.isEmpty())) {
+ private void addSwimlanes(List<Object> list, FlowWrapper flowWrapper) {
+ List<Element> swimlanes = flowWrapper.getChildren("swimlane");
+ if (swimlanes != null && !swimlanes.isEmpty()) {
list.add(new SwimlaneListTreeEditPart(swimlanes));
}
}
- private void addTimers(List<Object> list, FlowWrapper wrapper) {
- List<Element> timers = wrapper.getChildren("timer");
- if (timers != null && !(timers.isEmpty())) {
+ private void addEventListeners(List<Object> list, FlowWrapper flowWrapper) {
+ List<Element> eventListeners =
flowWrapper.getChildren("eventListener");
+ if (eventListeners == null) return;
+ for (Element element : eventListeners) {
+ if (element instanceof Wrapper) {
+ list.add((Wrapper)element);
+ }
+ }
+ }
+
+ private void addTimers(List<Object> list, FlowWrapper flowWrapper) {
+ List<Element> timers = flowWrapper.getChildren("timer");
+ if (timers != null && !timers.isEmpty()) {
list.add(new TimerListTreeEditPart(timers));
}
}
@@ -46,12 +59,31 @@
refreshChildren();
Object object = event.getNewValue();
EditPart editPart = (EditPart)getViewer().getEditPartRegistry().get(object);
- getViewer().select(editPart);
+ if (editPart != null) {
+ getViewer().select(editPart);
+ }
} else if (event.getChangeType() == Wrapper.REMOVE_ELEMENT) {
refreshChildren();
+// if ("eventListener".equals(event.getChangeDiscriminator())) {
+// doCleanup(event.getChangedObject());
+// }
}
}
+ private void doCleanup(Object object) {
+ if (!(object instanceof Wrapper)) return;
+ Wrapper child = (Wrapper)object;
+ if (!(child.getElement() instanceof EventListenerContainer)) return;
+ EventListenerContainer eventListenerContainer =
(EventListenerContainer)child.getElement();
+ if (eventListenerContainer.getListeners().isEmpty()) {
+ DeleteChildCommand deleteChildCommand = new DeleteChildCommand();
+ deleteChildCommand.setChild(child);
+ deleteChildCommand.setParent((Wrapper)getModel());
+ deleteChildCommand.setType("eventListener");
+ getViewer().getEditDomain().getCommandStack().execute(deleteChildCommand);
+ }
+ }
+
public void activate() {
super.activate();
((FlowWrapper)getModel()).addListener(this);
Modified:
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/editpart/SequenceFlowTreeRootEditPart.java
===================================================================
---
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/editpart/SequenceFlowTreeRootEditPart.java 2009-04-28
15:07:15 UTC (rev 14947)
+++
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/editpart/SequenceFlowTreeRootEditPart.java 2009-04-28
15:19:32 UTC (rev 14948)
@@ -13,7 +13,7 @@
protected List<Object> getModelChildren() {
List<Object> result = new ArrayList<Object>();
- result.add(new EventListenerContainerListTreeEditPart(null));
+ result.add(new EventListenerListTreeEditPart(null));
return result;
}
Modified:
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/editpart/TaskTreeRootEditPart.java
===================================================================
---
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/editpart/TaskTreeRootEditPart.java 2009-04-28
15:07:15 UTC (rev 14947)
+++
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/editpart/TaskTreeRootEditPart.java 2009-04-28
15:19:32 UTC (rev 14948)
@@ -13,7 +13,7 @@
protected List<Object> getModelChildren() {
List<Object> result = new ArrayList<Object>();
- result.add(new EventListenerContainerListTreeEditPart(null));
+ result.add(new EventListenerListTreeEditPart(null));
return result;
}
Modified:
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/handler/AddEventListenerHandler.java
===================================================================
---
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/handler/AddEventListenerHandler.java 2009-04-28
15:07:15 UTC (rev 14947)
+++
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/handler/AddEventListenerHandler.java 2009-04-28
15:19:32 UTC (rev 14948)
@@ -5,6 +5,7 @@
import org.eclipse.core.commands.ExecutionException;
import org.eclipse.core.commands.IHandler;
import org.eclipse.gef.EditPart;
+import org.eclipse.gef.RootEditPart;
import org.eclipse.gef.commands.CommandStack;
import org.eclipse.jface.viewers.ISelection;
import org.eclipse.jface.viewers.IStructuredSelection;
@@ -13,9 +14,9 @@
import org.eclipse.ui.handlers.HandlerUtil;
import org.jboss.tools.flow.common.command.AddChildCommand;
import org.jboss.tools.flow.common.wrapper.DefaultWrapper;
-import org.jboss.tools.flow.common.wrapper.FlowWrapper;
import org.jboss.tools.flow.common.wrapper.Wrapper;
-import org.jboss.tools.flow.jpdl4.model.Swimlane;
+import org.jboss.tools.flow.jpdl4.model.EventListener;
+import org.jboss.tools.flow.jpdl4.model.EventListenerContainer;
public class AddEventListenerHandler extends AbstractHandler implements IHandler {
@@ -29,19 +30,27 @@
if (!(first instanceof EditPart)) return null;
EditPart editPart = (EditPart)first;
Object model = editPart.getModel();
- if (model == null || !(model instanceof FlowWrapper)) return null;
- FlowWrapper flowWrapper = (FlowWrapper)model;
+ if (model == null || !(model instanceof Wrapper)) return null;
IEditorPart editorPart = HandlerUtil.getActiveEditor(event);
if (editorPart == null) return null;
Object object = editorPart.getAdapter(CommandStack.class);
if (object == null || !(object instanceof CommandStack)) return null;
CommandStack commandStack = (CommandStack)object;
+ Wrapper parent = (Wrapper)model;
+ Wrapper child = new DefaultWrapper();
AddChildCommand addChildCommand = new AddChildCommand();
- Wrapper child = new DefaultWrapper();
- child.setElement(new Swimlane());
+ if (editPart.getParent() != null && editPart.getParent() instanceof
RootEditPart) {
+ Wrapper wrapper = new DefaultWrapper();
+ wrapper.setElement(new EventListener());
+ addChildCommand.setType("eventListener");
+ child.setElement(new EventListenerContainer());
+ child.addChild("listener", wrapper);
+ } else {
+ addChildCommand.setType("listener");
+ child.setElement(new EventListener());
+ }
addChildCommand.setChild(child);
- addChildCommand.setType("eventListener");
- addChildCommand.setParent(flowWrapper);
+ addChildCommand.setParent(parent);
commandStack.execute(addChildCommand);
return null;
}
Modified:
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/handler/AddSwimlaneHandler.java
===================================================================
---
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/handler/AddSwimlaneHandler.java 2009-04-28
15:07:15 UTC (rev 14947)
+++
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/handler/AddSwimlaneHandler.java 2009-04-28
15:19:32 UTC (rev 14948)
@@ -13,7 +13,6 @@
import org.eclipse.ui.handlers.HandlerUtil;
import org.jboss.tools.flow.common.command.AddChildCommand;
import org.jboss.tools.flow.common.wrapper.DefaultWrapper;
-import org.jboss.tools.flow.common.wrapper.FlowWrapper;
import org.jboss.tools.flow.common.wrapper.Wrapper;
import org.jboss.tools.flow.jpdl4.model.Swimlane;
@@ -29,8 +28,8 @@
if (!(first instanceof EditPart)) return null;
EditPart editPart = (EditPart)first;
Object model = editPart.getModel();
- if (model == null || !(model instanceof FlowWrapper)) return null;
- FlowWrapper flowWrapper = (FlowWrapper)model;
+ if (model == null || !(model instanceof Wrapper)) return null;
+ Wrapper parent = (Wrapper)model;
IEditorPart editorPart = HandlerUtil.getActiveEditor(event);
if (editorPart == null) return null;
Object object = editorPart.getAdapter(CommandStack.class);
@@ -41,7 +40,7 @@
child.setElement(new Swimlane());
addChildCommand.setChild(child);
addChildCommand.setType("swimlane");
- addChildCommand.setParent(flowWrapper);
+ addChildCommand.setParent(parent);
commandStack.execute(addChildCommand);
return null;
}
Modified:
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/handler/DeleteElementHandler.java
===================================================================
---
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/handler/DeleteElementHandler.java 2009-04-28
15:07:15 UTC (rev 14947)
+++
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/handler/DeleteElementHandler.java 2009-04-28
15:19:32 UTC (rev 14948)
@@ -13,8 +13,11 @@
import org.eclipse.ui.IWorkbenchPage;
import org.eclipse.ui.handlers.HandlerUtil;
import org.jboss.tools.flow.common.command.DeleteChildCommand;
+import org.jboss.tools.flow.common.model.Element;
import org.jboss.tools.flow.common.wrapper.Wrapper;
import org.jboss.tools.flow.jpdl4.Logger;
+import org.jboss.tools.flow.jpdl4.model.EventListener;
+import org.jboss.tools.flow.jpdl4.model.EventListenerContainer;
import org.jboss.tools.flow.jpdl4.model.Swimlane;
import org.jboss.tools.flow.jpdl4.model.Timer;
@@ -32,13 +35,9 @@
Object model = editPart.getModel();
if (model == null || !(model instanceof Wrapper)) return null;
Wrapper child = (Wrapper)model;
- EditPart root = null;
- while (editPart != null && !(editPart instanceof RootEditPart)) {
- root = editPart;
- editPart = editPart.getParent();
- }
- if (root == null) return null;
- model = root.getModel();
+ EditPart parentEditPart = getParentEditPart(child.getElement(), editPart);
+ if (parentEditPart == null) return null;
+ model = parentEditPart.getModel();
if (model == null || !(model instanceof Wrapper)) return null;
Wrapper parent = (Wrapper)model;
IEditorPart editorPart = HandlerUtil.getActiveEditor(event);
@@ -52,6 +51,10 @@
deleteChildCommand.setType("swimlane");
} else if (child.getElement() instanceof Timer) {
deleteChildCommand.setType("timer");
+ } else if (child.getElement() instanceof EventListener) {
+ deleteChildCommand.setType("listener");
+ } else if (child.getElement() instanceof EventListenerContainer) {
+ deleteChildCommand.setType("eventListener");
}
deleteChildCommand.setParent(parent);
if (deleteChildCommand.canExecute()) {
@@ -61,5 +64,21 @@
}
return null;
}
+
+ private EditPart getParentEditPart(Element element, EditPart editPart) {
+ if (element instanceof Swimlane || element instanceof Timer) {
+ return getRootEditPart(editPart);
+ } else {
+ return editPart.getParent();
+ }
+ }
+
+ private EditPart getRootEditPart(EditPart editPart) {
+ EditPart result = editPart;
+ while (result.getParent() != null && !(result.getParent() instanceof
RootEditPart)) {
+ result = result.getParent();
+ }
+ return result;
+ }
}
Deleted:
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/model/DefaultEventListenerContainer.java
===================================================================
---
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/model/DefaultEventListenerContainer.java 2009-04-28
15:07:15 UTC (rev 14947)
+++
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/model/DefaultEventListenerContainer.java 2009-04-28
15:19:32 UTC (rev 14948)
@@ -1,27 +0,0 @@
-package org.jboss.tools.flow.jpdl4.model;
-
-import java.util.ArrayList;
-import java.util.List;
-
-public class DefaultEventListenerContainer {
-
- private String eventName;
- private List<EventListener> eventListeners = new
ArrayList<EventListener>();
-
- public String getEventName() {
- return eventName;
- }
-
- public void setEventName(String eventName) {
- this.eventName = eventName;
- }
-
- public void addEventListener(EventListener eventListener) {
- eventListeners.add(eventListener);
- }
-
- public void removeEventListener(EventListener eventListener) {
- eventListeners.remove(eventListener);
- }
-
-}
Modified:
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/model/EventListener.java
===================================================================
---
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/model/EventListener.java 2009-04-28
15:07:15 UTC (rev 14947)
+++
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/model/EventListener.java 2009-04-28
15:19:32 UTC (rev 14948)
@@ -1,5 +1,17 @@
package org.jboss.tools.flow.jpdl4.model;
-public class EventListener {
+import org.jboss.tools.flow.common.model.DefaultElement;
+public class EventListener extends DefaultElement {
+
+ private String className;
+
+ public String getClassName() {
+ return className;
+ }
+
+ public void setClassName(String className) {
+ this.className = className;
+ }
+
}
Added:
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/model/EventListenerContainer.java
===================================================================
---
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/model/EventListenerContainer.java
(rev 0)
+++
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/model/EventListenerContainer.java 2009-04-28
15:19:32 UTC (rev 14948)
@@ -0,0 +1,66 @@
+package org.jboss.tools.flow.jpdl4.model;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.ui.views.properties.IPropertyDescriptor;
+import org.eclipse.ui.views.properties.IPropertySource;
+import org.jboss.tools.flow.common.model.DefaultElement;
+
+public class EventListenerContainer extends DefaultElement {
+
+ private String eventType;
+ private List<EventListener> listeners = new ArrayList<EventListener>();
+
+ public EventListenerContainer() {
+ setMetaData("propertySource", new PropertySource());
+ }
+
+ public String getEventType() {
+ return eventType;
+ }
+
+ public void setEventType(String eventType) {
+ this.eventType = eventType;
+ }
+
+ public List<EventListener> getListeners() {
+ return listeners;
+ }
+
+ public void setListeners(List<EventListener> listeners) {
+ this.listeners = listeners;
+ }
+
+ private class PropertySource implements IPropertySource {
+
+ public Object getEditableValue() {
+ return null;
+ }
+
+ public IPropertyDescriptor[] getPropertyDescriptors() {
+ return new IPropertyDescriptor[0];
+ }
+
+ public Object getPropertyValue(Object id) {
+ if ("listener".equals(id)) {
+ return listeners;
+ }
+ return null;
+ }
+
+ public boolean isPropertySet(Object id) {
+ if ("listener".equals(id)) {
+ return true;
+ }
+ return false;
+ }
+
+ public void resetPropertyValue(Object id) {
+ }
+
+ public void setPropertyValue(Object id, Object value) {
+ }
+
+ }
+}
Property changes on:
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/model/EventListenerContainer.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Modified:
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/model/Process.java
===================================================================
---
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/model/Process.java 2009-04-28
15:07:15 UTC (rev 14947)
+++
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/model/Process.java 2009-04-28
15:19:32 UTC (rev 14948)
@@ -16,8 +16,7 @@
private List<Swimlane> swimlanes = new ArrayList<Swimlane>();
private List<Timer> timers = new ArrayList<Timer>();
-// private List<String> eventTypes = new ArrayList<String>();
-// private Map<String, List<EventListener>> eventListeners = new
HashMap<String, List<EventListener>>();
+ private List<EventListenerContainer> eventlisteners = new
ArrayList<EventListenerContainer>();
public Process() {
setMetaData("propertySource", new PropertySource());
@@ -61,6 +60,8 @@
return swimlanes;
} else if ("timer".equals(id)) {
return timers;
+ } else if ("eventListener".equals(id)) {
+ return eventlisteners;
}
return null;
}
@@ -70,6 +71,8 @@
return true;
} else if ("timer".equals(id)) {
return true;
+ } else if ("eventListener".equals(id)) {
+ return true;
}
return false;
}