Author: DartPeng
Date: 2008-08-19 06:54:54 -0400 (Tue, 19 Aug 2008)
New Revision: 9792
Modified:
workspace/dart/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/ui/gef/editparts/ConnectionPointEditPart.java
workspace/dart/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/ui/gef/editparts/StructuredDataConnectionEditPart.java
Log:
add delete action and add save function
Modified:
workspace/dart/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/ui/gef/editparts/ConnectionPointEditPart.java
===================================================================
---
workspace/dart/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/ui/gef/editparts/ConnectionPointEditPart.java 2008-08-19
09:59:43 UTC (rev 9791)
+++
workspace/dart/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/ui/gef/editparts/ConnectionPointEditPart.java 2008-08-19
10:54:54 UTC (rev 9792)
@@ -11,6 +11,7 @@
package org.jboss.tools.smooks.ui.gef.editparts;
import java.beans.PropertyChangeEvent;
+import java.util.Iterator;
import java.util.List;
import org.eclipse.draw2d.ChopboxAnchor;
@@ -21,8 +22,9 @@
import org.eclipse.gef.EditPolicy;
import org.eclipse.gef.NodeEditPart;
import org.eclipse.gef.Request;
-import org.jboss.tools.smooks.ui.gef.model.AbstractStructuredDataModel;
+import org.eclipse.swt.widgets.TreeItem;
import org.jboss.tools.smooks.ui.gef.model.IConnectableModel;
+import org.jboss.tools.smooks.ui.gef.model.TreeItemRelationModel;
import org.jboss.tools.smooks.ui.gef.policy.CustomGraphicalNodeEditPolicy;
/**
@@ -44,6 +46,11 @@
return figure;
}
+ public boolean isCollapse(){
+ TreeItemRelationModel model = (TreeItemRelationModel) this.getModel();
+ if(model == null) return false;
+ return model.isCollapse();
+ }
@Override
@@ -65,9 +72,17 @@
}
return super.getModelTargetConnections();
}
+
+ public void refreshAllSourceConnectionLineStyle(){
+ List sourceConnection = this.getSourceConnections();
+ for (Iterator iterator = sourceConnection.iterator(); iterator
+ .hasNext();) {
+ StructuredDataConnectionEditPart connection = (StructuredDataConnectionEditPart)
iterator.next();
+ connection.refresh();
+ }
+ }
-
/*
* (non-Javadoc)
*
Modified:
workspace/dart/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/ui/gef/editparts/StructuredDataConnectionEditPart.java
===================================================================
---
workspace/dart/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/ui/gef/editparts/StructuredDataConnectionEditPart.java 2008-08-19
09:59:43 UTC (rev 9791)
+++
workspace/dart/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/ui/gef/editparts/StructuredDataConnectionEditPart.java 2008-08-19
10:54:54 UTC (rev 9792)
@@ -5,14 +5,19 @@
import org.eclipse.draw2d.Figure;
import org.eclipse.draw2d.Graphics;
import org.eclipse.draw2d.IFigure;
-import org.eclipse.draw2d.PolylineConnection;
+import org.eclipse.draw2d.Shape;
import org.eclipse.draw2d.geometry.Point;
import org.eclipse.draw2d.geometry.PointList;
import org.eclipse.gef.EditPart;
import org.eclipse.gef.EditPolicy;
import org.eclipse.gef.editparts.AbstractConnectionEditPart;
import org.eclipse.gef.editpolicies.ConnectionEndpointEditPolicy;
+import org.eclipse.swt.widgets.Tree;
+import org.eclipse.swt.widgets.TreeItem;
import org.jboss.tools.smooks.ui.gef.figures.CurveLineConnection;
+import org.jboss.tools.smooks.ui.gef.model.IConnectableModel;
+import org.jboss.tools.smooks.ui.gef.model.LineConnectionModel;
+import org.jboss.tools.smooks.ui.gef.model.TreeItemRelationModel;
import org.jboss.tools.smooks.ui.gef.policy.DeleteConnectionEditPolicy;
import org.jboss.tools.smooks.ui.gef.util.GraphicsConstants;
@@ -23,6 +28,17 @@
super();
}
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.eclipse.gef.editparts.AbstractConnectionEditPart#refresh()
+ */
+ @Override
+ public void refresh() {
+ super.refresh();
+ changeLineStyleWithCollapseStatus();
+ }
+
protected void createEditPolicies() {
installEditPolicy(EditPolicy.CONNECTION_ENDPOINTS_ROLE,
new ConnectionEndpointEditPolicy());
@@ -31,12 +47,12 @@
}
protected IFigure createFigure() {
- CurveLineConnection conn = new CurveLineConnection(){
- public void paintFigure(Graphics graphics){
+ CurveLineConnection conn = new CurveLineConnection() {
+ public void paintFigure(Graphics graphics) {
super.paintFigure(graphics);
}
};
-// conn.setSmoothness(SmoothPolyLineConnection.SMOOTH_MORE);
+ // conn.setSmoothness(SmoothPolyLineConnection.SMOOTH_MORE);
Figure targetFlagFigure = new Figure() {
/*
@@ -75,7 +91,8 @@
public void paint(Graphics graphics) {
graphics.pushState();
graphics.setForegroundColor(ColorConstants.black);
- graphics.setBackgroundColor(GraphicsConstants.elementLabelColor);
+ graphics
+ .setBackgroundColor(GraphicsConstants.elementLabelColor);
Point p = getBounds().getTopLeft();
Point p2 = getBounds().getBottomLeft();
Point p3 = getBounds().getTopRight();
@@ -102,13 +119,72 @@
return conn;
}
+ protected void changeLineStyleWithCollapseStatus() {
+ Shape figure = (Shape) this.getFigure();
+ LineConnectionModel model = (LineConnectionModel) this.getModel();
+ IConnectableModel source = model.getSource();
+ IConnectableModel target = model.getTarget();
+ boolean collapse = false;
+ if (source instanceof TreeItemRelationModel) {
+ if (((TreeItemRelationModel) source).isCollapse()) {
+ collapse = true;
+ }
+ }
+ if (target instanceof TreeItemRelationModel) {
+ if (((TreeItemRelationModel) target).isCollapse()) {
+ collapse = true;
+ }
+ }
+ if (collapse) {
+ figure.setForegroundColor(GraphicsConstants.groupBorderColor);
+ figure.setLineStyle(Graphics.LINE_DOT);
+ } else {
+ figure.setForegroundColor(GraphicsConstants.groupBorderColor);
+ figure.setLineStyle(Graphics.LINE_SOLID);
+ }
+ }
+
+ protected void changeTreeItemSelectionStatus(boolean selected) {
+ LineConnectionModel model = (LineConnectionModel) this.getModel();
+ IConnectableModel source = model.getSource();
+ IConnectableModel target = model.getTarget();
+ Tree sourceTree = null;
+ Tree targetTree = null;
+ if (source instanceof TreeItemRelationModel) {
+ TreeItem item = ((TreeItemRelationModel) source).getTreeItem();
+ item.setData(TreeItemRelationModel.PRO_TREE_ITEM_SELECTION_STATUS,
+ new Boolean(selected));
+ sourceTree = item.getParent();
+ }
+ if (target instanceof TreeItemRelationModel) {
+ TreeItem item = ((TreeItemRelationModel) target).getTreeItem();
+ item.setData(TreeItemRelationModel.PRO_TREE_ITEM_SELECTION_STATUS,
+ new Boolean(selected));
+ targetTree = item.getParent();
+ }
+ refreshTree(sourceTree);
+ refreshTree(targetTree);
+ }
+
+ private void refreshTree(Tree tree) {
+ if (tree != null) {
+ tree.setData(TreeItemRelationModel.PRO_TREE_REPAINT, new Object());
+ tree.redraw();
+ tree.setData(TreeItemRelationModel.PRO_TREE_REPAINT, null);
+ }
+ }
+
public void setSelected(int value) {
super.setSelected(value);
- if (value != EditPart.SELECTED_NONE){
- ((PolylineConnection) getFigure()).setLineStyle(Graphics.LINE_DOT);
- ((PolylineConnection)
getFigure()).setForegroundColor(GraphicsConstants.groupBorderColor);
+ if (value == EditPart.SELECTED_NONE) {
+ ((Shape) figure).setLineWidth(1);
+ ((Shape) figure)
+ .setForegroundColor(GraphicsConstants.groupBorderColor);
+ changeTreeItemSelectionStatus(false);
+ } else {
+ ((Shape) figure).setLineWidth(2);
+ figure.setForegroundColor(ColorConstants.darkBlue);
+ changeTreeItemSelectionStatus(true);
}
- else
- ((PolylineConnection) getFigure()).setLineWidth(1);
}
}
\ No newline at end of file
Show replies by date