Author: koen.aers(a)jboss.com
Date: 2009-02-05 16:58:29 -0500 (Thu, 05 Feb 2009)
New Revision: 13495
Added:
trunk/flow/plugins/org.jboss.tools.flow.common/src/org/jboss/tools/flow/common/command/LabelMoveCommand.java
trunk/flow/plugins/org.jboss.tools.flow.common/src/org/jboss/tools/flow/common/editpart/LabelEditPart.java
trunk/flow/plugins/org.jboss.tools.flow.common/src/org/jboss/tools/flow/common/policy/LabelGraphicalNodeEditPolicy.java
Removed:
trunk/flow/plugins/org.jboss.tools.flow.common/src/org/jboss/tools/flow/common/model/DefaultLabel.java
trunk/flow/plugins/org.jboss.tools.flow.common/src/org/jboss/tools/flow/common/model/Label.java
Modified:
trunk/flow/plugins/org.jboss.tools.flow.common/src/org/jboss/tools/flow/common/editpart/EditPartFactory.java
trunk/flow/plugins/org.jboss.tools.flow.common/src/org/jboss/tools/flow/common/editpart/ElementEditPart.java
trunk/flow/plugins/org.jboss.tools.flow.common/src/org/jboss/tools/flow/common/editpart/RootEditPart.java
trunk/flow/plugins/org.jboss.tools.flow.common/src/org/jboss/tools/flow/common/properties/IPropertyId.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/AbstractLabelWrapper.java
trunk/flow/plugins/org.jboss.tools.flow.common/src/org/jboss/tools/flow/common/wrapper/AbstractNodeWrapper.java
trunk/flow/plugins/org.jboss.tools.flow.common/src/org/jboss/tools/flow/common/wrapper/AbstractWrapper.java
trunk/flow/plugins/org.jboss.tools.flow.common/src/org/jboss/tools/flow/common/wrapper/ContainerWrapper.java
trunk/flow/plugins/org.jboss.tools.flow.common/src/org/jboss/tools/flow/common/wrapper/DefaultLabelWrapper.java
trunk/flow/plugins/org.jboss.tools.flow.common/src/org/jboss/tools/flow/common/wrapper/NodeWrapper.java
trunk/flow/plugins/org.jboss.tools.flow.common/src/org/jboss/tools/flow/common/wrapper/Wrapper.java
Log:
support for labels on connections
Added:
trunk/flow/plugins/org.jboss.tools.flow.common/src/org/jboss/tools/flow/common/command/LabelMoveCommand.java
===================================================================
---
trunk/flow/plugins/org.jboss.tools.flow.common/src/org/jboss/tools/flow/common/command/LabelMoveCommand.java
(rev 0)
+++
trunk/flow/plugins/org.jboss.tools.flow.common/src/org/jboss/tools/flow/common/command/LabelMoveCommand.java 2009-02-05
21:58:29 UTC (rev 13495)
@@ -0,0 +1,40 @@
+package org.jboss.tools.flow.common.command;
+
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.draw2d.geometry.Point;
+import org.eclipse.gef.commands.Command;
+import org.jboss.tools.flow.common.wrapper.LabelWrapper;
+
+
+public class LabelMoveCommand extends Command {
+
+ LabelWrapper labelWrapper = null;
+ Point location = null;
+ IFigure parent = null;
+ Point oldOffset = null;
+ Point newOffset = null;
+
+ public LabelMoveCommand(LabelWrapper labelWrapper, IFigure parent, Point location) {
+ this.labelWrapper = labelWrapper;
+ this.parent = parent;
+ this.location = location;
+ }
+
+ public void execute() {
+ if (oldOffset == null) {
+ oldOffset = labelWrapper.getLocation();
+ }
+ if (newOffset == null) {
+ newOffset = labelWrapper.getLocation().getCopy();
+ parent.translateToAbsolute(newOffset);
+ newOffset.translate(location);
+ parent.translateToRelative(newOffset);
+ }
+ labelWrapper.setLocation(newOffset);
+ }
+
+ public void undo() {
+ labelWrapper.setLocation(oldOffset);
+ }
+
+}
Modified:
trunk/flow/plugins/org.jboss.tools.flow.common/src/org/jboss/tools/flow/common/editpart/EditPartFactory.java
===================================================================
---
trunk/flow/plugins/org.jboss.tools.flow.common/src/org/jboss/tools/flow/common/editpart/EditPartFactory.java 2009-02-05
18:57:19 UTC (rev 13494)
+++
trunk/flow/plugins/org.jboss.tools.flow.common/src/org/jboss/tools/flow/common/editpart/EditPartFactory.java 2009-02-05
21:58:29 UTC (rev 13495)
@@ -6,6 +6,10 @@
import org.jboss.tools.flow.common.figure.NodeFigureFactory;
import org.jboss.tools.flow.common.model.Element;
import org.jboss.tools.flow.common.wrapper.ConnectionWrapper;
+import org.jboss.tools.flow.common.wrapper.ContainerWrapper;
+import org.jboss.tools.flow.common.wrapper.FlowWrapper;
+import org.jboss.tools.flow.common.wrapper.LabelWrapper;
+import org.jboss.tools.flow.common.wrapper.NodeWrapper;
import org.jboss.tools.flow.common.wrapper.Wrapper;
public class EditPartFactory implements org.eclipse.gef.EditPartFactory {
@@ -13,18 +17,86 @@
public EditPart createEditPart(EditPart context, Object model) {
EditPart result = null;
if (!(model instanceof Wrapper)) return result;
- Object element = ((Wrapper)model).getElement();
- if (element != null && element instanceof Element) {
- result = createEditPart((Element)element);
- } else if (model instanceof ConnectionWrapper) {
- result = new ConnectionEditPart();
- }
+ result = createEditPart((Wrapper)model);
if (result != null) {
result.setModel(model);
}
return result;
}
+ protected EditPart createEditPart(Wrapper wrapper) {
+ EditPart result = null;
+ if (wrapper instanceof FlowWrapper) {
+ result = createFlowEditPart((FlowWrapper)wrapper);
+ } else if (wrapper instanceof ContainerWrapper) {
+ result = createContainerEditPart((ContainerWrapper)wrapper);
+ } else if (wrapper instanceof NodeWrapper) {
+ result = createNodeEditPart((NodeWrapper)wrapper);
+ } else if (wrapper instanceof ConnectionWrapper) {
+ result = createConnectionEditPart((ConnectionWrapper)wrapper);
+ } else if (wrapper instanceof LabelWrapper) {
+ result = createLabelEditPart((LabelWrapper)wrapper);
+ }
+ return result;
+ }
+
+ protected EditPart createFlowEditPart(FlowWrapper wrapper) {
+ return createFlowEditPart(wrapper.getElement());
+ }
+
+ protected EditPart createFlowEditPart(Element element) {
+ return new RootEditPart();
+ }
+
+ protected EditPart createContainerEditPart(ContainerWrapper wrapper) {
+ Element element = wrapper.getElement();
+ if (element == null) {
+ return null;
+ } else {
+ return createContainerEditPart(element);
+ }
+ }
+
+ protected EditPart createContainerEditPart(Element element) {
+ return new ContainerEditPart();
+ }
+
+ protected EditPart createNodeEditPart(NodeWrapper wrapper) {
+ Element element = wrapper.getElement();
+ if (element == null) {
+ return null;
+ } else {
+ return createNodeEditPart(element);
+ }
+ }
+
+ protected EditPart createNodeEditPart(Element element) {
+ IConfigurationElement configurationElement =
+ (IConfigurationElement)element.getMetaData("configurationElement");
+ if (configurationElement == null) return null;
+ NodeEditPart result = new NodeEditPart();
+ IFigureFactory figureFactory = new NodeFigureFactory(configurationElement);
+ result.setFigureFactory(figureFactory);
+ return result;
+ }
+
+ protected EditPart createConnectionEditPart(ConnectionWrapper wrapper) {
+ Element element = wrapper.getElement();
+ if (element == null) {
+ return null;
+ } else {
+ return createConnectionEditPart(element);
+ }
+ }
+
+ protected EditPart createConnectionEditPart(Element element) {
+ return new ConnectionEditPart();
+ }
+
+ protected EditPart createLabelEditPart(LabelWrapper wrapper) {
+ return new LabelEditPart();
+ }
+
protected EditPart createEditPart(Element element) {
IConfigurationElement configurationElement =
(IConfigurationElement)element.getMetaData("configurationElement");
@@ -45,26 +117,4 @@
}
}
- public EditPart createFlowEditPart(Element element) {
- return new RootEditPart();
- }
-
- public EditPart createContainerEditPart(Element element) {
- return new ContainerEditPart();
- }
-
- public EditPart createNodeEditPart(Element element) {
- IConfigurationElement configurationElement =
- (IConfigurationElement)element.getMetaData("configurationElement");
- if (configurationElement == null) return null;
- NodeEditPart result = new NodeEditPart();
- IFigureFactory figureFactory = new NodeFigureFactory(configurationElement);
- result.setFigureFactory(figureFactory);
- return result;
- }
-
- public EditPart createConnectionEditPart(Element element) {
- return new ConnectionEditPart();
- }
-
}
Modified:
trunk/flow/plugins/org.jboss.tools.flow.common/src/org/jboss/tools/flow/common/editpart/ElementEditPart.java
===================================================================
---
trunk/flow/plugins/org.jboss.tools.flow.common/src/org/jboss/tools/flow/common/editpart/ElementEditPart.java 2009-02-05
18:57:19 UTC (rev 13494)
+++
trunk/flow/plugins/org.jboss.tools.flow.common/src/org/jboss/tools/flow/common/editpart/ElementEditPart.java 2009-02-05
21:58:29 UTC (rev 13495)
@@ -100,12 +100,10 @@
public void modelChanged(ModelEvent event) {
if (event.getChange() == NodeWrapper.ADD_INCOMING_CONNECTION) {
- System.out.println("first");
refreshTargetConnections();
} else if (event.getChange() == NodeWrapper.REMOVE_INCOMING_CONNECTION) {
refreshTargetConnections();
} else if (event.getChange() == NodeWrapper.ADD_OUTGOING_CONNECTION) {
- System.out.println("second");
refreshSourceConnections();
} else if (event.getChange() == NodeWrapper.REMOVE_OUTGOING_CONNECTION) {
refreshSourceConnections();
Added:
trunk/flow/plugins/org.jboss.tools.flow.common/src/org/jboss/tools/flow/common/editpart/LabelEditPart.java
===================================================================
---
trunk/flow/plugins/org.jboss.tools.flow.common/src/org/jboss/tools/flow/common/editpart/LabelEditPart.java
(rev 0)
+++
trunk/flow/plugins/org.jboss.tools.flow.common/src/org/jboss/tools/flow/common/editpart/LabelEditPart.java 2009-02-05
21:58:29 UTC (rev 13495)
@@ -0,0 +1,99 @@
+package org.jboss.tools.flow.common.editpart;
+
+import org.eclipse.draw2d.FigureUtilities;
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.draw2d.Label;
+import org.eclipse.draw2d.Locator;
+import org.eclipse.draw2d.Polyline;
+import org.eclipse.draw2d.geometry.Dimension;
+import org.eclipse.draw2d.geometry.Point;
+import org.eclipse.gef.DragTracker;
+import org.eclipse.gef.EditPart;
+import org.eclipse.gef.GraphicalEditPart;
+import org.eclipse.gef.Request;
+import org.eclipse.gef.editparts.AbstractGraphicalEditPart;
+import org.eclipse.gef.tools.DragEditPartsTracker;
+import org.jboss.tools.flow.common.policy.LabelGraphicalNodeEditPolicy;
+import org.jboss.tools.flow.common.wrapper.LabelWrapper;
+import org.jboss.tools.flow.common.wrapper.ModelEvent;
+import org.jboss.tools.flow.common.wrapper.ModelListener;
+
+public class LabelEditPart extends AbstractGraphicalEditPart implements ModelListener {
+
+ @Override
+ protected IFigure createFigure() {
+ return new Label();
+ }
+
+ @Override
+ protected void createEditPolicies() {
+ installEditPolicy("GraphicalNodeEditPoliy", new
LabelGraphicalNodeEditPolicy());
+ }
+
+ protected void refreshVisuals() {
+ String text = getLabelWrapper().getText();
+// if (text == null || "".equals(text)) text = "text";
+ Polyline polyline = (Polyline)((ConnectionEditPart)getParent()).getConnectionFigure();
+ Point location = ((LabelWrapper)getModel()).getLocation();
+ if (location == null) {
+ location = calculateInitialLocation(polyline, text);
+ ((LabelWrapper)getModel()).setLocation(location);
+ }
+ Label label = (Label)getFigure();
+ label.setText(text);
+ LabelConstraint constraint = new LabelConstraint(text, location, polyline);
+ ((GraphicalEditPart)getParent()).setLayoutConstraint(this, getFigure(), constraint);
+ }
+
+ private Point calculateInitialLocation(Polyline polyline, String text) {
+ Dimension textDimension = FigureUtilities.getTextExtents(text, figure.getFont());
+ return new Point(- (textDimension.width +5) , -(textDimension.height + 5));
+ }
+
+ public LabelWrapper getLabelWrapper() {
+ return (LabelWrapper)getModel();
+ }
+
+ public DragTracker getDragTracker(Request request) {
+ return new DragEditPartsTracker(this) {
+ protected EditPart getTargetEditPart() {
+ return getParent();
+ }
+ };
+ }
+
+ public void activate() {
+ super.activate();
+ getLabelWrapper().addListener(this);
+ }
+
+ public void deactivate() {
+ getLabelWrapper().removeListener(this);
+ super.deactivate();
+ }
+
+ public void modelChanged(ModelEvent event) {
+ refreshVisuals();
+ }
+
+ private class LabelConstraint implements Locator {
+ String text;
+ Point relativeLocation;
+ Polyline polyline;
+ public LabelConstraint(String text, Point location, Polyline polyline) {
+ this.text = text;
+ this.relativeLocation = location;
+ this.polyline = polyline;
+ }
+ public void relocate(IFigure figure) {
+ Dimension minimum = FigureUtilities.getTextExtents(text, figure.getFont());
+ figure.setSize(minimum);
+ Point midPoint = polyline.getPoints().getMidpoint();
+ Point newLocation = relativeLocation.getCopy();
+ newLocation.translate(midPoint);
+ figure.setLocation(newLocation);
+ }
+ }
+
+
+}
Modified:
trunk/flow/plugins/org.jboss.tools.flow.common/src/org/jboss/tools/flow/common/editpart/RootEditPart.java
===================================================================
---
trunk/flow/plugins/org.jboss.tools.flow.common/src/org/jboss/tools/flow/common/editpart/RootEditPart.java 2009-02-05
18:57:19 UTC (rev 13494)
+++
trunk/flow/plugins/org.jboss.tools.flow.common/src/org/jboss/tools/flow/common/editpart/RootEditPart.java 2009-02-05
21:58:29 UTC (rev 13495)
@@ -28,14 +28,12 @@
import org.eclipse.draw2d.ManhattanConnectionRouter;
import org.eclipse.draw2d.ShortestPathConnectionRouter;
import org.eclipse.draw2d.XYLayout;
-import org.eclipse.gef.EditPart;
import org.eclipse.gef.EditPolicy;
import org.eclipse.gef.LayerConstants;
import org.eclipse.gef.SnapToGrid;
import org.eclipse.gef.SnapToHelper;
import org.eclipse.gef.editparts.AbstractGraphicalEditPart;
import org.eclipse.gef.editpolicies.RootComponentEditPolicy;
-import org.eclipse.jface.viewers.StructuredSelection;
import org.eclipse.swt.SWT;
import org.jboss.tools.flow.common.policy.ElementContainerLayoutEditPolicy;
import org.jboss.tools.flow.common.wrapper.ContainerWrapper;
@@ -86,15 +84,6 @@
public void modelChanged(ModelEvent event) {
if (event.getChange() == ContainerWrapper.ADD_ELEMENT) {
refreshChildren();
- Object changedObject = event.getChangedObject();
- if (changedObject != null) {
- EditPart editPart =
(EditPart)getViewer().getEditPartRegistry().get(changedObject);
- if (editPart instanceof ElementEditPart) {
- ((ElementEditPart)editPart).performDirectEdit();
- // force selection to update the properties view
- getViewer().setSelection(new StructuredSelection(editPart));
- }
- }
} else if (event.getChange() == ContainerWrapper.REMOVE_ELEMENT) {
refreshChildren();
} else if (event.getChange() == FlowWrapper.CHANGE_VISUAL) {
Deleted:
trunk/flow/plugins/org.jboss.tools.flow.common/src/org/jboss/tools/flow/common/model/DefaultLabel.java
===================================================================
---
trunk/flow/plugins/org.jboss.tools.flow.common/src/org/jboss/tools/flow/common/model/DefaultLabel.java 2009-02-05
18:57:19 UTC (rev 13494)
+++
trunk/flow/plugins/org.jboss.tools.flow.common/src/org/jboss/tools/flow/common/model/DefaultLabel.java 2009-02-05
21:58:29 UTC (rev 13495)
@@ -1,27 +0,0 @@
-package org.jboss.tools.flow.common.model;
-
-import java.util.HashMap;
-
-public class DefaultLabel implements Label {
-
- private String text;
-
- private HashMap<String, Object> metaData = new HashMap<String, Object>();
-
- public String getText() {
- return text;
- }
-
- public void setText(String text) {
- this.text = text;
- }
-
- public void setMetaData(String key, Object value) {
- metaData.put(key, value);
- }
-
- public Object getMetaData(String key) {
- return metaData.get(key);
- }
-
-}
Deleted:
trunk/flow/plugins/org.jboss.tools.flow.common/src/org/jboss/tools/flow/common/model/Label.java
===================================================================
---
trunk/flow/plugins/org.jboss.tools.flow.common/src/org/jboss/tools/flow/common/model/Label.java 2009-02-05
18:57:19 UTC (rev 13494)
+++
trunk/flow/plugins/org.jboss.tools.flow.common/src/org/jboss/tools/flow/common/model/Label.java 2009-02-05
21:58:29 UTC (rev 13495)
@@ -1,8 +0,0 @@
-package org.jboss.tools.flow.common.model;
-
-public interface Label extends Element {
-
- String getText();
- void setText(String text);
-
-}
Added:
trunk/flow/plugins/org.jboss.tools.flow.common/src/org/jboss/tools/flow/common/policy/LabelGraphicalNodeEditPolicy.java
===================================================================
---
trunk/flow/plugins/org.jboss.tools.flow.common/src/org/jboss/tools/flow/common/policy/LabelGraphicalNodeEditPolicy.java
(rev 0)
+++
trunk/flow/plugins/org.jboss.tools.flow.common/src/org/jboss/tools/flow/common/policy/LabelGraphicalNodeEditPolicy.java 2009-02-05
21:58:29 UTC (rev 13495)
@@ -0,0 +1,25 @@
+package org.jboss.tools.flow.common.policy;
+
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.draw2d.geometry.Point;
+import org.eclipse.gef.GraphicalEditPart;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gef.editpolicies.NonResizableEditPolicy;
+import org.eclipse.gef.requests.ChangeBoundsRequest;
+import org.jboss.tools.flow.common.command.LabelMoveCommand;
+import org.jboss.tools.flow.common.wrapper.LabelWrapper;
+
+public class LabelGraphicalNodeEditPolicy extends NonResizableEditPolicy {
+
+ public Command getMoveCommand(ChangeBoundsRequest request) {
+ if (!(getHost().getModel() instanceof LabelWrapper)) return null;
+ LabelWrapper model = (LabelWrapper)getHost().getModel();
+ Point delta = request.getMoveDelta();
+ return new LabelMoveCommand(model, getParentFigure(), delta);
+ }
+
+ private IFigure getParentFigure() {
+ return ((GraphicalEditPart)getHost().getParent()).getFigure();
+ }
+
+}
Modified:
trunk/flow/plugins/org.jboss.tools.flow.common/src/org/jboss/tools/flow/common/properties/IPropertyId.java
===================================================================
---
trunk/flow/plugins/org.jboss.tools.flow.common/src/org/jboss/tools/flow/common/properties/IPropertyId.java 2009-02-05
18:57:19 UTC (rev 13494)
+++
trunk/flow/plugins/org.jboss.tools.flow.common/src/org/jboss/tools/flow/common/properties/IPropertyId.java 2009-02-05
21:58:29 UTC (rev 13495)
@@ -3,5 +3,6 @@
public interface IPropertyId {
String NAME = "org.jboss.tools.flow.common.model.name";
+ String LABEL = "org.jboss.tools.flow.common.model.label";
}
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 2009-02-05
18:57:19 UTC (rev 13494)
+++
trunk/flow/plugins/org.jboss.tools.flow.common/src/org/jboss/tools/flow/common/registry/ElementRegistry.java 2009-02-05
21:58:29 UTC (rev 13495)
@@ -15,9 +15,11 @@
import org.jboss.tools.flow.common.strategy.AcceptsElementStrategy;
import org.jboss.tools.flow.common.strategy.AcceptsIncomingConnectionStrategy;
import org.jboss.tools.flow.common.strategy.AcceptsOutgoingConnectionStrategy;
+import org.jboss.tools.flow.common.wrapper.ConnectionWrapper;
import org.jboss.tools.flow.common.wrapper.DefaultConnectionWrapper;
import org.jboss.tools.flow.common.wrapper.DefaultContainerWrapper;
import org.jboss.tools.flow.common.wrapper.DefaultFlowWrapper;
+import org.jboss.tools.flow.common.wrapper.DefaultLabelWrapper;
import org.jboss.tools.flow.common.wrapper.DefaultNodeWrapper;
import org.jboss.tools.flow.common.wrapper.Wrapper;
@@ -63,8 +65,9 @@
return null;
}
((Element)element).setMetaData("configurationElement",
configurationElement);
- Wrapper result = new DefaultConnectionWrapper();
+ ConnectionWrapper result = new DefaultConnectionWrapper();
result.setElement((Element)element);
+ result.setLabel(new DefaultLabelWrapper((Element)element));
return result;
}
Modified:
trunk/flow/plugins/org.jboss.tools.flow.common/src/org/jboss/tools/flow/common/wrapper/AbstractLabelWrapper.java
===================================================================
---
trunk/flow/plugins/org.jboss.tools.flow.common/src/org/jboss/tools/flow/common/wrapper/AbstractLabelWrapper.java 2009-02-05
18:57:19 UTC (rev 13494)
+++
trunk/flow/plugins/org.jboss.tools.flow.common/src/org/jboss/tools/flow/common/wrapper/AbstractLabelWrapper.java 2009-02-05
21:58:29 UTC (rev 13495)
@@ -1,20 +1,14 @@
package org.jboss.tools.flow.common.wrapper;
-import java.util.ArrayList;
-import java.util.List;
-
import org.eclipse.draw2d.geometry.Point;
public abstract class AbstractLabelWrapper extends AbstractWrapper implements
LabelWrapper {
- private transient List<ModelListener> listeners = new
ArrayList<ModelListener>();
private Point location = null;
- private Wrapper owner = null;
-
- public Point getLocation() {
- // TODO Auto-generated method stub
- return null;
+
+ public Point getLocation() {
+ return location;
}
public String getText() {
@@ -23,8 +17,8 @@
}
public void setLocation(Point location) {
- // TODO Auto-generated method stub
-
+ this.location = location;
+ notifyListeners(CHANGE_VISUAL, this);
}
public void setText(String text) {
@@ -32,12 +26,4 @@
}
- public void addListener(ModelListener listener) {
- listeners.add(listener);
- }
-
- public void removeListener(ModelListener listener) {
- listeners.remove(listener);
- }
-
}
Modified:
trunk/flow/plugins/org.jboss.tools.flow.common/src/org/jboss/tools/flow/common/wrapper/AbstractNodeWrapper.java
===================================================================
---
trunk/flow/plugins/org.jboss.tools.flow.common/src/org/jboss/tools/flow/common/wrapper/AbstractNodeWrapper.java 2009-02-05
18:57:19 UTC (rev 13494)
+++
trunk/flow/plugins/org.jboss.tools.flow.common/src/org/jboss/tools/flow/common/wrapper/AbstractNodeWrapper.java 2009-02-05
21:58:29 UTC (rev 13495)
@@ -45,8 +45,7 @@
private transient Rectangle constraint;
private List<ConnectionWrapper> incomingConnections = new
ArrayList<ConnectionWrapper>();
private List<ConnectionWrapper> outgoingConnections = new
ArrayList<ConnectionWrapper>();
- private transient List<ModelListener> listeners = new
ArrayList<ModelListener>();
-
+
public void setConstraint(Rectangle constraint) {
this.constraint = constraint;
internalSetConstraint(constraint);
@@ -140,19 +139,4 @@
protected void internalSetName(String name) {
}
- public void addListener(ModelListener listener) {
- listeners.add(listener);
- }
-
- public void removeListener(ModelListener listener) {
- listeners.remove(listener);
- }
-
- protected void notifyListeners(int change, Object object) {
- ModelEvent event = new ModelEvent(change, object);
- for (ModelListener listener: listeners) {
- listener.modelChanged(event);
- }
- }
-
}
Modified:
trunk/flow/plugins/org.jboss.tools.flow.common/src/org/jboss/tools/flow/common/wrapper/AbstractWrapper.java
===================================================================
---
trunk/flow/plugins/org.jboss.tools.flow.common/src/org/jboss/tools/flow/common/wrapper/AbstractWrapper.java 2009-02-05
18:57:19 UTC (rev 13494)
+++
trunk/flow/plugins/org.jboss.tools.flow.common/src/org/jboss/tools/flow/common/wrapper/AbstractWrapper.java 2009-02-05
21:58:29 UTC (rev 13495)
@@ -1,11 +1,15 @@
package org.jboss.tools.flow.common.wrapper;
+import java.util.ArrayList;
+import java.util.List;
+
import org.jboss.tools.flow.common.model.Element;
public abstract class AbstractWrapper implements Wrapper {
private Element element;
-
+ private transient List<ModelListener> listeners = new
ArrayList<ModelListener>();
+
public void setElement(Element element) {
this.element = element;
}
@@ -14,7 +18,22 @@
return element;
}
- @SuppressWarnings("unchecked")
+ public void addListener(ModelListener listener) {
+ listeners.add(listener);
+ }
+
+ public void removeListener(ModelListener listener) {
+ listeners.remove(listener);
+ }
+
+ protected void notifyListeners(int change, Object object) {
+ ModelEvent event = new ModelEvent(change, object);
+ for (ModelListener listener: listeners) {
+ listener.modelChanged(event);
+ }
+ }
+
+ @SuppressWarnings("unchecked")
public Object getAdapter(Class adapter) {
if (adapter == Element.class) {
return element;
Modified:
trunk/flow/plugins/org.jboss.tools.flow.common/src/org/jboss/tools/flow/common/wrapper/ContainerWrapper.java
===================================================================
---
trunk/flow/plugins/org.jboss.tools.flow.common/src/org/jboss/tools/flow/common/wrapper/ContainerWrapper.java 2009-02-05
18:57:19 UTC (rev 13494)
+++
trunk/flow/plugins/org.jboss.tools.flow.common/src/org/jboss/tools/flow/common/wrapper/ContainerWrapper.java 2009-02-05
21:58:29 UTC (rev 13495)
@@ -20,10 +20,6 @@
public interface ContainerWrapper extends Wrapper {
- int ADD_ELEMENT = 1;
- int REMOVE_ELEMENT = 2;
- int CHANGE_VISUAL = 3;
-
void addElement(NodeWrapper element);
void localAddElement(NodeWrapper element);
Modified:
trunk/flow/plugins/org.jboss.tools.flow.common/src/org/jboss/tools/flow/common/wrapper/DefaultLabelWrapper.java
===================================================================
---
trunk/flow/plugins/org.jboss.tools.flow.common/src/org/jboss/tools/flow/common/wrapper/DefaultLabelWrapper.java 2009-02-05
18:57:19 UTC (rev 13494)
+++
trunk/flow/plugins/org.jboss.tools.flow.common/src/org/jboss/tools/flow/common/wrapper/DefaultLabelWrapper.java 2009-02-05
21:58:29 UTC (rev 13495)
@@ -1,5 +1,31 @@
package org.jboss.tools.flow.common.wrapper;
+import org.eclipse.ui.views.properties.IPropertySource;
+import org.jboss.tools.flow.common.model.Element;
+import org.jboss.tools.flow.common.properties.IPropertyId;
+
public class DefaultLabelWrapper extends AbstractLabelWrapper {
-
+
+ private IPropertySource propertySource;
+
+ public DefaultLabelWrapper(Element element) {
+ if (element != null) {
+ propertySource = (IPropertySource)element.getMetaData("propertySource");
+ }
+ }
+
+ public void setText(String text) {
+ if (propertySource != null) {
+ propertySource.setPropertyValue(IPropertyId.LABEL, text);
+ }
+ }
+
+ public String getText() {
+ String result = null;
+ if (propertySource != null) {
+ result = (String)propertySource.getPropertyValue(IPropertyId.LABEL);
+ }
+ return result;
+ }
+
}
Modified:
trunk/flow/plugins/org.jboss.tools.flow.common/src/org/jboss/tools/flow/common/wrapper/NodeWrapper.java
===================================================================
---
trunk/flow/plugins/org.jboss.tools.flow.common/src/org/jboss/tools/flow/common/wrapper/NodeWrapper.java 2009-02-05
18:57:19 UTC (rev 13494)
+++
trunk/flow/plugins/org.jboss.tools.flow.common/src/org/jboss/tools/flow/common/wrapper/NodeWrapper.java 2009-02-05
21:58:29 UTC (rev 13495)
@@ -27,12 +27,6 @@
*/
public interface NodeWrapper extends Wrapper {
- static final int ADD_INCOMING_CONNECTION = 1;
- static final int REMOVE_INCOMING_CONNECTION = 2;
- static final int ADD_OUTGOING_CONNECTION = 3;
- static final int REMOVE_OUTGOING_CONNECTION = 4;
- static final int CHANGE_VISUAL = 5;
-
String getId();
String getName();
void setName(String name);
Modified:
trunk/flow/plugins/org.jboss.tools.flow.common/src/org/jboss/tools/flow/common/wrapper/Wrapper.java
===================================================================
---
trunk/flow/plugins/org.jboss.tools.flow.common/src/org/jboss/tools/flow/common/wrapper/Wrapper.java 2009-02-05
18:57:19 UTC (rev 13494)
+++
trunk/flow/plugins/org.jboss.tools.flow.common/src/org/jboss/tools/flow/common/wrapper/Wrapper.java 2009-02-05
21:58:29 UTC (rev 13495)
@@ -6,6 +6,16 @@
public interface Wrapper extends IAdaptable {
+ int ADD_INCOMING_CONNECTION = 1;
+ int REMOVE_INCOMING_CONNECTION = 2;
+ int ADD_OUTGOING_CONNECTION = 3;
+ int REMOVE_OUTGOING_CONNECTION = 4;
+ int CHANGE_VISUAL = 5;
+ int ADD_ELEMENT = 6;
+ int REMOVE_ELEMENT = 7;
+
+
+
void setElement(Element element);
Element getElement();