### Eclipse Workspace Patch 1.0 #P org.eclipse.gmf.runtime.diagram.ui Index: src/org/eclipse/gmf/runtime/diagram/ui/editpolicies/GraphicalNodeEditPolicy.java =================================================================== RCS file: /home/technology/org.eclipse.gmf/plugins/org.eclipse.gmf.runtime.diagram.ui/src/org/eclipse/gmf/runtime/diagram/ui/editpolicies/GraphicalNodeEditPolicy.java,v retrieving revision 1.19 diff -u -r1.19 GraphicalNodeEditPolicy.java --- src/org/eclipse/gmf/runtime/diagram/ui/editpolicies/GraphicalNodeEditPolicy.java 25 May 2006 21:54:58 -0000 1.19 +++ src/org/eclipse/gmf/runtime/diagram/ui/editpolicies/GraphicalNodeEditPolicy.java 6 Jun 2006 17:57:38 -0000 @@ -20,6 +20,8 @@ import org.eclipse.core.runtime.IProgressMonitor; import org.eclipse.draw2d.Connection; import org.eclipse.draw2d.ConnectionAnchor; +import org.eclipse.draw2d.ConnectionLayer; +import org.eclipse.draw2d.ConnectionRouter; import org.eclipse.draw2d.Graphics; import org.eclipse.draw2d.PolylineConnection; import org.eclipse.draw2d.geometry.PointList; @@ -27,6 +29,7 @@ import org.eclipse.emf.transaction.TransactionalEditingDomain; import org.eclipse.gef.EditPart; import org.eclipse.gef.GraphicalEditPart; +import org.eclipse.gef.LayerConstants; import org.eclipse.gef.Request; import org.eclipse.gef.commands.Command; import org.eclipse.gef.requests.CreateConnectionRequest; @@ -60,6 +63,7 @@ import org.eclipse.gmf.runtime.diagram.ui.requests.CreateViewRequestFactory; import org.eclipse.gmf.runtime.diagram.ui.requests.EditCommandRequestWrapper; import org.eclipse.gmf.runtime.diagram.ui.requests.RequestConstants; +import org.eclipse.gmf.runtime.draw2d.ui.internal.figures.ConnectionLayerEx; import org.eclipse.gmf.runtime.emf.core.util.EObjectAdapter; import org.eclipse.gmf.runtime.emf.core.util.PackageUtil; import org.eclipse.gmf.runtime.emf.type.core.IElementType; @@ -187,6 +191,36 @@ .getForegroundColor()); return c; } + + /* + * (non-Javadoc) + * @see org.eclipse.gef.editpolicies.GraphicalNodeEditPolicy#getDummyConnectionRouter(org.eclipse.gef.requests.CreateConnectionRequest) + */ + protected ConnectionRouter getDummyConnectionRouter(CreateConnectionRequest arg0) { + EditPart ep = getHost(); + if (ep instanceof IGraphicalEditPart) { + IPreferenceStore store = (IPreferenceStore) ((IGraphicalEditPart)ep).getDiagramPreferencesHint().getPreferenceStore(); + + ConnectionLayer cLayer = (ConnectionLayer) getLayer(LayerConstants.CONNECTION_LAYER); + if (cLayer instanceof ConnectionLayerEx) { + ConnectionLayerEx cLayerEx = (ConnectionLayerEx)cLayer; + Routing routingVal = Routing.get(store.getInt(IPreferenceConstants.PREF_LINE_STYLE)); + if (routingVal == Routing.MANUAL_LITERAL) { + return cLayerEx.getObliqueRouter(); + } + else if (routingVal == Routing.RECTILINEAR_LITERAL) { + return cLayerEx.getRectilinearRouter(); + } + else if (routingVal == Routing.TREE_LITERAL) { + return cLayerEx.getTreeRouter(); + } + } + } + + return super.getDummyConnectionRouter(arg0); + } + + protected ConnectionAnchor getSourceConnectionAnchor( CreateConnectionRequest request) {