Author: dazarov
Date: 2008-08-06 05:09:26 -0400 (Wed, 06 Aug 2008)
New Revision: 9557
Modified:
trunk/seam/plugins/org.jboss.tools.seam.ui.pages/src/org/jboss/tools/seam/ui/pages/editor/figures/ConnectionFigure.java
Log:
https://jira.jboss.org/jira/browse/JBIDE-1189
Modified:
trunk/seam/plugins/org.jboss.tools.seam.ui.pages/src/org/jboss/tools/seam/ui/pages/editor/figures/ConnectionFigure.java
===================================================================
---
trunk/seam/plugins/org.jboss.tools.seam.ui.pages/src/org/jboss/tools/seam/ui/pages/editor/figures/ConnectionFigure.java 2008-08-05
23:07:10 UTC (rev 9556)
+++
trunk/seam/plugins/org.jboss.tools.seam.ui.pages/src/org/jboss/tools/seam/ui/pages/editor/figures/ConnectionFigure.java 2008-08-06
09:09:26 UTC (rev 9557)
@@ -17,7 +17,6 @@
import org.eclipse.draw2d.PolylineConnection;
import org.eclipse.draw2d.geometry.Point;
import org.eclipse.draw2d.geometry.PointList;
-import org.eclipse.swt.graphics.Color;
import org.jboss.tools.seam.ui.pages.editor.ecore.pages.Link;
import org.jboss.tools.seam.ui.pages.editor.edit.LinkEditPart;
@@ -85,51 +84,59 @@
editPart.clear();
}
- PointList points;
- Point point;
- /**
- * begin ,end points
- */
- Point beg = new Point(0, 0), end = new Point(0, 0);
-
- Point bCorner = new Point(0, 0);
- Point eCorner = new Point(0, 0);
- boolean horiz;
private boolean selected;
- @Override
- public void setForegroundColor(Color fg) {
- // TODO Auto-generated method stub
- super.setForegroundColor(fg);
- }
-
protected void outlineShape(Graphics g) {
-
if(selected) {
g.setForegroundColor(FigureFactory.selectedColor);
} else {
g.setForegroundColor(getForegroundColor());
}
- points = getPoints();
- point = points.getPoint(0);
+ PointList points = getPoints();
+ Point point = points.getPoint(0);
+ Point beg = new Point();
+ Point end = new Point();
+ Point eCorner = new Point();
+ Point bCorner = new Point();
+ boolean horiz;
beg.x = point.x;
beg.y = point.y;
-
+
if (points.getFirstPoint().y == points.getLastPoint().y) {
super.outlineShape(g);
return;
}
-
+ if (Math.abs(points.getFirstPoint().y - points.getLastPoint().y) < 4) {
+ int delta = Math.abs(points.getFirstPoint().y - points.getLastPoint().y);
+ if(points.size() == 4){
+ Point point1 = points.getPoint(0);
+ Point point2 = points.getPoint(1);
+ Point point3 = points.getPoint(2);
+ Point point4 = points.getPoint(3);
+ if(point1.x < point4.x){
+ point2.x -= delta/2;
+ point3.x += delta/2;
+ }else{
+ point2.x += delta/2;
+ point3.x -= delta/2;
+ }
+ g.drawLine(point1, point2);
+ g.drawLine(point2, point3);
+ g.drawLine(point3, point4);
+ return;
+ }
+ }
+
for (int i = 1; i < points.size(); i++) {
point = points.getPoint(i);
end.x = point.x;
end.y = point.y;
-
+
if (beg.y == end.y)
horiz = true;
else
horiz = false;
-
+
eCorner.x = 0;
if (i != 1) {
if (horiz) {
@@ -152,7 +159,7 @@
if (bCorner.x != 0 && eCorner.x != 0)
g.drawLine(bCorner, eCorner);
bCorner.x = 0;
-
+
if (i != points.size() - 1) {
if (horiz) {
if (end.x > beg.x) {
@@ -177,8 +184,6 @@
beg.y = point.y;
}
}
-
-
public void setSelected(boolean selected) {
this.selected = selected;
repaint();