Author: koen.aers(a)jboss.com
Date: 2008-09-03 07:20:23 -0400 (Wed, 03 Sep 2008)
New Revision: 10042
Modified:
trunk/flow/plugins/org.jboss.tools.flow.common/src/org/jboss/tools/flow/common/editpart/DefaultEditPartFactory.java
trunk/flow/plugins/org.jboss.tools.flow.common/src/org/jboss/tools/flow/common/policy/ConnectionEditPolicy.java
trunk/flow/plugins/org.jboss.tools.flow.common/src/org/jboss/tools/flow/common/registry/ElementRegistry.java
trunk/flow/plugins/org.jboss.tools.flow.common/src/org/jboss/tools/flow/common/wrapper/DefaultConnectionWrapper.java
Log:
all elements are pluggable
Modified:
trunk/flow/plugins/org.jboss.tools.flow.common/src/org/jboss/tools/flow/common/editpart/DefaultEditPartFactory.java
===================================================================
---
trunk/flow/plugins/org.jboss.tools.flow.common/src/org/jboss/tools/flow/common/editpart/DefaultEditPartFactory.java 2008-09-03
10:41:33 UTC (rev 10041)
+++
trunk/flow/plugins/org.jboss.tools.flow.common/src/org/jboss/tools/flow/common/editpart/DefaultEditPartFactory.java 2008-09-03
11:20:23 UTC (rev 10042)
@@ -4,6 +4,7 @@
import org.eclipse.gef.EditPartFactory;
import org.jboss.tools.flow.common.model.Element;
import org.jboss.tools.flow.common.registry.ElementRegistry;
+import org.jboss.tools.flow.common.wrapper.ConnectionWrapper;
import org.jboss.tools.flow.common.wrapper.Wrapper;
public class DefaultEditPartFactory implements EditPartFactory {
@@ -14,24 +15,9 @@
Object element = ((Wrapper)model).getElement();
if (element != null && element instanceof Element) {
result = ElementRegistry.createEditPart((Element)element);
+ } else if (model instanceof ConnectionWrapper) {
+ result = new ConnectionEditPart();
}
-// result = createEditPart()
-// if (model instanceof DefaultFlowWrapper) {
-// result = new RootEditPart();
-// } else if (model instanceof DefaultContainerWrapper) {
-// result = new ContainerEditPart();
-// } else if (model instanceof DefaultConnectionWrapper) {
-// result = new ConnectionEditPart();
-// } else if (model instanceof DefaultNodeWrapper && element instanceof
StartState) {
-// result = new StartStateEditPart();
-// } else if (model instanceof DefaultNodeWrapper && element instanceof
State) {
-// result = new StateEditPart();
-// } else if (model instanceof DefaultNodeWrapper && element instanceof
EndState) {
-// result = new EndStateEditPart();
-// } else {
-// throw new IllegalArgumentException(
-// "Unknown model object " + model);
-// }
if (result != null) {
result.setModel(model);
}
Modified:
trunk/flow/plugins/org.jboss.tools.flow.common/src/org/jboss/tools/flow/common/policy/ConnectionEditPolicy.java
===================================================================
---
trunk/flow/plugins/org.jboss.tools.flow.common/src/org/jboss/tools/flow/common/policy/ConnectionEditPolicy.java 2008-09-03
10:41:33 UTC (rev 10041)
+++
trunk/flow/plugins/org.jboss.tools.flow.common/src/org/jboss/tools/flow/common/policy/ConnectionEditPolicy.java 2008-09-03
11:20:23 UTC (rev 10042)
@@ -26,6 +26,7 @@
import org.jboss.tools.flow.common.command.DeleteConnectionCommand;
import org.jboss.tools.flow.common.command.SplitConnectionCommand;
import org.jboss.tools.flow.common.editpart.ConnectionEditPart;
+import org.jboss.tools.flow.common.model.Element;
import org.jboss.tools.flow.common.wrapper.AbstractConnectionWrapper;
import org.jboss.tools.flow.common.wrapper.AbstractFlowWrapper;
import org.jboss.tools.flow.common.wrapper.NodeWrapper;
@@ -47,7 +48,7 @@
public Command getCommand(Request request) {
if (REQ_CREATE.equals(request.getType())) {
- return getSplitTransitionCommand(request);
+ return getSplitConnectionCommand(request);
}
return super.getCommand(request);
}
@@ -65,13 +66,19 @@
return cmd;
}
- protected Command getSplitTransitionCommand(Request request) {
+ protected Command getSplitConnectionCommand(Request request) {
if (elementConnectionFactory == null) {
throw new IllegalStateException("DefaultElementConnectionFactory is
null");
}
SplitConnectionCommand cmd = new SplitConnectionCommand();
- cmd.setElementConnection(((AbstractConnectionWrapper) getHost().getModel()));
-
cmd.setNewSecondConnection((AbstractConnectionWrapper)elementConnectionFactory.getNewObject());
+ AbstractConnectionWrapper elementConnection =
(AbstractConnectionWrapper)getHost().getModel();
+ AbstractConnectionWrapper newSecondConnection =
(AbstractConnectionWrapper)elementConnectionFactory.getNewObject();
+ // Copy the configurationElement from the first connection as it is empty
+ ((Element)newSecondConnection.getElement()).setMetaData(
+ "configurationElement",
+
((Element)elementConnection.getElement()).getMetaData("configurationElement"));
+ cmd.setElementConnection(elementConnection);
+ cmd.setNewSecondConnection(newSecondConnection);
cmd.setParent(((AbstractFlowWrapper) ((ConnectionEditPart) getHost())
.getSource().getParent().getModel()));
cmd.setNewElement(((NodeWrapper) ((CreateRequest) request).getNewObject()));
Modified:
trunk/flow/plugins/org.jboss.tools.flow.common/src/org/jboss/tools/flow/common/registry/ElementRegistry.java
===================================================================
---
trunk/flow/plugins/org.jboss.tools.flow.common/src/org/jboss/tools/flow/common/registry/ElementRegistry.java 2008-09-03
10:41:33 UTC (rev 10041)
+++
trunk/flow/plugins/org.jboss.tools.flow.common/src/org/jboss/tools/flow/common/registry/ElementRegistry.java 2008-09-03
11:20:23 UTC (rev 10042)
@@ -74,7 +74,9 @@
private static Wrapper createConnection(IConfigurationElement configurationElement)
throws CoreException {
- return new DefaultConnectionWrapper();
+ Wrapper result = new DefaultConnectionWrapper();
+ ((Element)result.getElement()).setMetaData("configurationElement",
configurationElement);
+ return result;
}
private static Wrapper createNode(IConfigurationElement configurationElement)
@@ -232,9 +234,9 @@
children = figureElement.getChildren();
if (children.length < 1) {
result = new RectangleElementFigure();
- } else if ("ellipse".equals(children[0])){
+ } else if ("ellipse".equals(children[0].getName())){
result = new EllipseElementFigure();
- } else if ("rounded-rectangle".equals(children[0])) {
+ } else if ("rounded-rectangle".equals(children[0].getName())) {
result = new RoundedRectangleElementFigure();
} else {
result = new RectangleElementFigure();
@@ -251,8 +253,8 @@
}
result.setIcon(icon);
} else if (configurationElement.getAttribute("figure") != null) {
- String iconPath = configurationElement.getAttribute("icon");
- URL url =
Platform.getBundle(figureElement.getContributor().getName()).getEntry(iconPath);
+ String iconPath = configurationElement.getAttribute("figure");
+ URL url =
Platform.getBundle(configurationElement.getContributor().getName()).getEntry(iconPath);
Image icon = null;
if (imageMap.containsKey(url.getPath())) {
icon = imageMap.get(url.getPath());
Modified:
trunk/flow/plugins/org.jboss.tools.flow.common/src/org/jboss/tools/flow/common/wrapper/DefaultConnectionWrapper.java
===================================================================
---
trunk/flow/plugins/org.jboss.tools.flow.common/src/org/jboss/tools/flow/common/wrapper/DefaultConnectionWrapper.java 2008-09-03
10:41:33 UTC (rev 10041)
+++
trunk/flow/plugins/org.jboss.tools.flow.common/src/org/jboss/tools/flow/common/wrapper/DefaultConnectionWrapper.java 2008-09-03
11:20:23 UTC (rev 10042)
@@ -11,6 +11,11 @@
public class DefaultConnectionWrapper extends AbstractConnectionWrapper {
+
+ public DefaultConnectionWrapper() {
+ // create a dummy connection in order to be able to add the metadata
+ setElement(createConnection(null, null));
+ }
public Connection getConnection() {
return (Connection)getElement();
@@ -60,6 +65,12 @@
}
protected Connection createConnection(Node from, Node to) {
- return new DefaultConnection(from, to);
+ Connection result = new DefaultConnection(from, to);
+ if (getConnection() != null) {
+ result.setMetaData(
+ "configurationElement",
+ getConnection().getMetaData("configurationElement"));
+ }
+ return result;
}
}
Show replies by date