Author: koen.aers(a)jboss.com
Date: 2009-02-19 06:00:34 -0500 (Thu, 19 Feb 2009)
New Revision: 13673
Added:
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/editpart/JpdlTreeEditPart.java
Modified:
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/editor/JpdlEditor.java
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/ProcessNodeGraphicalEditPart.java
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/editpart/ProcessNodeListTreeEditPart.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/SequenceFlowGraphicalEditPart.java
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/model/Event.java
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/model/ExclusiveGateway.java
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/model/ProcessNode.java
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/model/SequenceFlow.java
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/model/StartEvent.java
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/model/Task.java
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/view/DetailsView.java
Log:
default and conditional transitions, detailsview
Modified:
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/editor/JpdlEditor.java
===================================================================
---
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/editor/JpdlEditor.java 2009-02-19
10:58:11 UTC (rev 13672)
+++
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/editor/JpdlEditor.java 2009-02-19
11:00:34 UTC (rev 13673)
@@ -89,6 +89,10 @@
getEditDomain().addViewer(treeViewer);
getSelectionSynchronizer().addViewer(treeViewer);
detailsPage = new DetailsPage(treeViewer) ;
+ if (((Wrapper)getModel()).getElement() == null) {
+ System.out.println("Ha!");
+ }
+ treeViewer.setContents(((Wrapper)getModel()).getElement());
getSite().getSelectionProvider().addSelectionChangedListener(detailsPage);
}
Added:
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/editpart/JpdlTreeEditPart.java
===================================================================
---
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/editpart/JpdlTreeEditPart.java
(rev 0)
+++
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/editpart/JpdlTreeEditPart.java 2009-02-19
11:00:34 UTC (rev 13673)
@@ -0,0 +1,26 @@
+package org.jboss.tools.flow.jpdl4.editpart;
+
+import org.eclipse.gef.editparts.AbstractTreeEditPart;
+import org.eclipse.ui.views.properties.IPropertySource;
+import org.jboss.tools.flow.common.model.Element;
+
+public class JpdlTreeEditPart extends AbstractTreeEditPart {
+
+ protected IPropertySource propertySource;
+
+ public JpdlTreeEditPart(Element element) {
+ super(element);
+ Object object = element.getMetaData("propertySource");
+ if (object != null && object instanceof IPropertySource) {
+ propertySource = (IPropertySource)object;
+ }
+ }
+
+ @SuppressWarnings("unchecked")
+ public Object getAdapter(Class adapter) {
+ if (adapter == IPropertySource.class)
+ return propertySource;
+ return super.getAdapter(adapter);
+ }
+
+}
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-02-19
10:58:11 UTC (rev 13672)
+++
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/editpart/JpdlTreeEditPartFactory.java 2009-02-19
11:00:34 UTC (rev 13673)
@@ -7,7 +7,7 @@
public class JpdlTreeEditPartFactory implements EditPartFactory {
public EditPart createEditPart(EditPart context, Object model) {
- if (model instanceof Process) return new ProcessTreeRootEditPart((Process)model);
+ if (model instanceof Process && context == null) return new
ProcessTreeRootEditPart((Process)model);
if (model instanceof ProcessNodeListTreeEditPart) return (EditPart)model;
return null;
}
Modified:
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/editpart/ProcessNodeGraphicalEditPart.java
===================================================================
---
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/editpart/ProcessNodeGraphicalEditPart.java 2009-02-19
10:58:11 UTC (rev 13672)
+++
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/editpart/ProcessNodeGraphicalEditPart.java 2009-02-19
11:00:34 UTC (rev 13673)
@@ -2,6 +2,7 @@
import org.eclipse.gef.EditPart;
import org.eclipse.gef.EditPolicy;
+import org.eclipse.gef.editparts.AbstractConnectionEditPart;
import org.jboss.tools.flow.common.editpart.NodeEditPart;
import org.jboss.tools.flow.common.wrapper.ModelEvent;
import org.jboss.tools.flow.common.wrapper.Wrapper;
@@ -22,6 +23,14 @@
getViewer().select((EditPart)object);
((SequenceFlowGraphicalEditPart)object).performDirectEdit();
}
+ } else if (event.getChange() == Wrapper.ADD_OUTGOING_CONNECTION ||
+ event.getChange() == Wrapper.REMOVE_OUTGOING_CONNECTION) {
+ for (Object connection : getSourceConnections()) {
+ if (connection instanceof AbstractConnectionEditPart) {
+ ((AbstractConnectionEditPart)connection).refresh();
+ }
+ }
+
}
}
Modified:
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/editpart/ProcessNodeListTreeEditPart.java
===================================================================
---
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/editpart/ProcessNodeListTreeEditPart.java 2009-02-19
10:58:11 UTC (rev 13672)
+++
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/editpart/ProcessNodeListTreeEditPart.java 2009-02-19
11:00:34 UTC (rev 13673)
@@ -1,13 +1,12 @@
package org.jboss.tools.flow.jpdl4.editpart;
import org.eclipse.core.runtime.Platform;
-import org.eclipse.gef.editparts.AbstractTreeEditPart;
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 ProcessNodeListTreeEditPart extends AbstractTreeEditPart {
+public class ProcessNodeListTreeEditPart extends JpdlTreeEditPart {
public ProcessNodeListTreeEditPart(Process process) {
super(process);
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-02-19
10:58:11 UTC (rev 13672)
+++
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/editpart/ProcessTreeRootEditPart.java 2009-02-19
11:00:34 UTC (rev 13673)
@@ -3,11 +3,10 @@
import java.util.ArrayList;
import java.util.List;
-import org.eclipse.gef.editparts.AbstractTreeEditPart;
import org.jboss.tools.flow.jpdl4.model.Process;
-public class ProcessTreeRootEditPart extends AbstractTreeEditPart {
-
+public class ProcessTreeRootEditPart extends JpdlTreeEditPart {
+
public ProcessTreeRootEditPart(Process process) {
super(process);
}
@@ -20,5 +19,5 @@
result.add(new ProcessNodeListTreeEditPart((Process)getModel()));
return result;
}
-
+
}
Modified:
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/editpart/SequenceFlowGraphicalEditPart.java
===================================================================
---
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/editpart/SequenceFlowGraphicalEditPart.java 2009-02-19
10:58:11 UTC (rev 13672)
+++
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/editpart/SequenceFlowGraphicalEditPart.java 2009-02-19
11:00:34 UTC (rev 13673)
@@ -8,7 +8,6 @@
import org.eclipse.gef.RequestConstants;
import org.eclipse.gef.requests.DirectEditRequest;
import org.jboss.tools.flow.common.editpart.ConnectionEditPart;
-import org.jboss.tools.flow.common.figure.CrossHairDecoration;
import org.jboss.tools.flow.common.figure.DiamondDecoration;
import org.jboss.tools.flow.common.model.Element;
import org.jboss.tools.flow.common.policy.ElementDirectEditPolicy;
@@ -25,19 +24,30 @@
installEditPolicy(EditPolicy.DIRECT_EDIT_ROLE, new ElementDirectEditPolicy());
}
+ public void refreshVisuals() {
+ decorateFigure((PolylineConnection)getFigure(),
((Wrapper)getModel()).getElement());
+ }
+
protected IFigure createFigure() {
- PolylineConnection result = (PolylineConnection)super.createFigure();
- Element element = ((Wrapper)getModel()).getElement();
- if (element instanceof SequenceFlow) {
+ return decorateFigure((PolylineConnection)super.createFigure(),
((Wrapper)getModel()).getElement());
+ }
+
+ private IFigure decorateFigure(PolylineConnection figure, Element element) {
+ if (element instanceof SequenceFlow) {
SequenceFlow sequenceFlow = (SequenceFlow)element;
- if (sequenceFlow.isDefault()) {
- result.setSourceDecoration(new CrossHairDecoration());
- } else if (sequenceFlow.isConditional()) {
- result.setSourceDecoration(new DiamondDecoration());
+// if (sequenceFlow.isDefault()) {
+// figure.setSourceDecoration(new CrossHairDecoration());
+// } else
+ if (sequenceFlow.isConditional()) {
+ if (getElementConnection().getSource().getOutgoingConnections().size() > 1) {
+ figure.setSourceDecoration(new DiamondDecoration());
+ }
+ } else {
+ figure.setSourceDecoration(null);
}
}
- return result;
- }
+ return figure;
+ }
public void performRequest(Request request) {
if (request.getType() == RequestConstants.REQ_DIRECT_EDIT) {
Modified:
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/model/Event.java
===================================================================
---
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/model/Event.java 2009-02-19
10:58:11 UTC (rev 13672)
+++
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/model/Event.java 2009-02-19
11:00:34 UTC (rev 13673)
@@ -1,6 +1,15 @@
package org.jboss.tools.flow.jpdl4.model;
+import org.jboss.tools.flow.common.model.Connection;
+
public class Event extends ProcessNode {
+ public void addOutgoingConnection(String type, Connection connection) {
+ super.addOutgoingConnection(type, connection);
+ if (isPropagationExclusive() && !((SequenceFlow)connection).isDefault()) {
+ ((SequenceFlow)connection).setConditional(true);
+ }
+ }
+
}
Modified:
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/model/ExclusiveGateway.java
===================================================================
---
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/model/ExclusiveGateway.java 2009-02-19
10:58:11 UTC (rev 13672)
+++
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/model/ExclusiveGateway.java 2009-02-19
11:00:34 UTC (rev 13673)
@@ -3,4 +3,8 @@
public class ExclusiveGateway extends Gateway {
+ protected boolean isPropagationExclusive() {
+ return true;
+ }
+
}
Modified:
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/model/ProcessNode.java
===================================================================
---
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/model/ProcessNode.java 2009-02-19
10:58:11 UTC (rev 13672)
+++
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/model/ProcessNode.java 2009-02-19
11:00:34 UTC (rev 13673)
@@ -6,6 +6,10 @@
public class ProcessNode extends DefaultNode {
+ protected boolean isPropagationExclusive() {
+ return false;
+ }
+
public void removeOutgoingConnection(String type, Connection connection) {
Jpdl4Helper.mergeLeadingNodes(connection);
super.removeOutgoingConnection(type, connection);
Modified:
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/model/SequenceFlow.java
===================================================================
---
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/model/SequenceFlow.java 2009-02-19
10:58:11 UTC (rev 13672)
+++
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/model/SequenceFlow.java 2009-02-19
11:00:34 UTC (rev 13673)
@@ -1,8 +1,11 @@
package org.jboss.tools.flow.jpdl4.model;
+import java.util.List;
+
import org.eclipse.ui.views.properties.IPropertyDescriptor;
import org.eclipse.ui.views.properties.IPropertySource;
import org.eclipse.ui.views.properties.TextPropertyDescriptor;
+import org.jboss.tools.flow.common.model.Connection;
import org.jboss.tools.flow.common.model.DefaultConnection;
import org.jboss.tools.flow.common.model.Node;
import org.jboss.tools.flow.common.properties.IPropertyId;
@@ -38,7 +41,14 @@
}
public boolean isDefault() {
- return true;
+ Node from = getFrom();
+ if (from != null) {
+ List<Connection> outgoingConnections =
from.getOutgoingConnections("");
+ if (outgoingConnections != null) {
+ return outgoingConnections.size() > 1 && outgoingConnections.get(0) ==
this;
+ }
+ }
+ return false;
}
private class PropertySource implements IPropertySource, IPropertyId {
Modified:
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/model/StartEvent.java
===================================================================
---
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/model/StartEvent.java 2009-02-19
10:58:11 UTC (rev 13672)
+++
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/model/StartEvent.java 2009-02-19
11:00:34 UTC (rev 13673)
@@ -3,4 +3,8 @@
public class StartEvent extends Event {
+ protected boolean isPropagationExclusive() {
+ return true;
+ }
+
}
Modified:
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/model/Task.java
===================================================================
---
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/model/Task.java 2009-02-19
10:58:11 UTC (rev 13672)
+++
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/model/Task.java 2009-02-19
11:00:34 UTC (rev 13673)
@@ -1,15 +1,10 @@
package org.jboss.tools.flow.jpdl4.model;
import org.jboss.tools.flow.common.model.Connection;
-import org.jboss.tools.flow.jpdl4.util.Jpdl4Helper;
public class Task extends ProcessNode {
- protected boolean isPropagationExclusive() {
- return false;
- }
-
public void addOutgoingConnection(String type, Connection connection) {
super.addOutgoingConnection(type, connection);
if (isPropagationExclusive() && !((SequenceFlow)connection).isDefault()) {
@@ -17,9 +12,4 @@
}
}
- public void removeOutgoingConnection(String type, Connection connection) {
- Jpdl4Helper.mergeLeadingNodes(connection);
- super.removeOutgoingConnection(type, connection);
- }
-
}
Modified:
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/view/DetailsView.java
===================================================================
---
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/view/DetailsView.java 2009-02-19
10:58:11 UTC (rev 13672)
+++
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/view/DetailsView.java 2009-02-19
11:00:34 UTC (rev 13673)
@@ -13,6 +13,7 @@
import org.eclipse.ui.part.MessagePage;
import org.eclipse.ui.part.PageBook;
import org.eclipse.ui.part.PageBookView;
+import org.eclipse.ui.views.properties.IPropertySheetPage;
public class DetailsView extends PageBookView implements ISelectionProvider,
ISelectionChangedListener {
@@ -91,4 +92,13 @@
}
super.showPageRec(pageRec);
}
+
+ @SuppressWarnings("unchecked")
+ public Object getAdapter(Class adapter) {
+ if (adapter == IPropertySheetPage.class)
+ return getCurrentContributingPart().getAdapter(adapter);
+ return super.getAdapter(adapter);
+ }
+
+
}