package org.eclipse.gmf.tooling.runtime.linklf.router.provider; import org.eclipse.draw2d.ConnectionRouter; import org.eclipse.gef.EditPartViewer; import org.eclipse.gmf.runtime.draw2d.ui.internal.figures.ConnectionLayerEx; import org.eclipse.gmf.runtime.draw2d.ui.internal.routers.RectilinearRouter; import org.eclipse.gmf.tooling.runtime.linklf.router.SnapToGridRectilinearRouter; /** * [GMFRT] request extraction of protected createXXXRouter() instead */ public class CustomRoutersConnectionLayer extends ConnectionLayerEx { private RectilinearRouter myCustomRectilinearRouter; private EditPartViewer myViewer; protected EditPartViewer getViewer() { return myViewer; } public void setEditPartViewer(EditPartViewer viewer) { myViewer = viewer; if (myCustomRectilinearRouter instanceof SnapToGridRectilinearRouter) { ((SnapToGridRectilinearRouter) myCustomRectilinearRouter).setEditPartViewer(viewer); } } @Override public ConnectionRouter getRectilinearRouter() { if (myCustomRectilinearRouter == null) { myCustomRectilinearRouter = createRectilinearRouter(); } return myCustomRectilinearRouter; } protected RectilinearRouter createRectilinearRouter() { //return new RectilinearRouter(); SnapToGridRectilinearRouter result = new SnapToGridRectilinearRouter(); result.setEditPartViewer(getViewer()); return result; } }