private GraphicsController createEdgeController(GeometryIndex index) { CompositeGeometryIndexController controller = new CompositeGeometryIndexController( mapWidget, editingService, index, editingService.getEditingState() == GeometryEditState.DRAGGING); for (AbstractGeometryIndexMapHandler handler : EditingHandlerRegistry.getEdgeHandlers()) { controller.addMapHandler(handler); } for (EdgeMapHandlerFactory factory : customEdgeFactories) { controller.addMapHandler(factory.create()); } EdgeMarkerHandler edgeMarkerHandler = new EdgeMarkerHandler(mapWidget, editingService, controller); controller.addMouseOutHandler(edgeMarkerHandler); controller.addMouseMoveHandler(edgeMarkerHandler); controller.addMapDownHandler(edgeMarkerHandler); return controller; }