Package com.orange.links.client
Class DiagramController
- java.lang.Object
 - 
- com.orange.links.client.DiagramController
 
 
- 
- All Implemented Interfaces:
 com.google.gwt.event.shared.HasHandlers,com.orange.links.client.event.ChangeOnDiagramEvent.HasChangeOnDiagramHandlers,com.orange.links.client.event.NewFunctionEvent.HasNewFunctionHandlers,com.orange.links.client.event.TieLinkEvent.HasTieLinkHandlers,com.orange.links.client.event.UntieLinkEvent.HasUntieLinkHandlers,com.orange.links.client.menu.HasContextMenu
public class DiagramController extends Object implements com.orange.links.client.event.NewFunctionEvent.HasNewFunctionHandlers, com.orange.links.client.event.TieLinkEvent.HasTieLinkHandlers, com.orange.links.client.event.UntieLinkEvent.HasUntieLinkHandlers, com.orange.links.client.event.ChangeOnDiagramEvent.HasChangeOnDiagramHandlers, com.orange.links.client.menu.HasContextMenu
Controller which manage all the diagram logic- Author:
 - Pierre Renaudin (pierre.renaudin.fr@gmail.com), David Durham (david.durham.jr@gmail.com)
 
 
- 
- 
Field Summary
Fields Modifier and Type Field Description booleaninDragBuildArrowbooleaninDragMovablePointbooleaninDragWidgetbooleaninEditionDragMovablePointbooleaninEditionSelectableShapeToDrawConnectionstatic intminDistanceToSegmentIf the distance between the mouse and segment is under this number in pixels, then, the mouse is considered over the segmentstatic intrefreshRateTimer refresh duration, in milliseconds. 
- 
Constructor Summary
Constructors Constructor Description DiagramController(int canvasWidth, int canvasHeight)Initialize the controller diagram. 
- 
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description com.google.gwt.event.shared.HandlerRegistrationaddChangeOnDiagramHandler(com.orange.links.client.event.ChangeOnDiagramHandler handler)voidaddDecoration(com.google.gwt.user.client.ui.Widget decoration, com.orange.links.client.connection.Connection decoratedConnection)Add a widget as a decoration on a connectioncom.google.gwt.event.shared.HandlerRegistrationaddNewFunctionHandler(com.orange.links.client.event.NewFunctionHandler handler)voidaddPointOnConnection(com.orange.links.client.connection.Connection c, int left, int top)Add an segment on a path by adding a point on the connectioncom.google.gwt.event.shared.HandlerRegistrationaddTieLinkHandler(com.orange.links.client.event.TieLinkHandler handler)com.google.gwt.event.shared.HandlerRegistrationaddUntieLinkHandler(com.orange.links.client.event.UntieLinkHandler handler)FunctionShapeaddWidget(com.google.gwt.user.client.ui.Widget w, int left, int top)Add a widget on the diagramFunctionShapeaddWidgetAtMousePoint(com.google.gwt.user.client.ui.Widget w)voidclearDiagram()Clear the diagram (connections and widgets)voiddeleteConnection(com.orange.links.client.connection.Connection c)voiddeleteWidget(com.google.gwt.user.client.ui.Widget widget)<C extends com.orange.links.client.connection.Connection>
CdrawConnection(com.orange.links.client.connection.ConnectionFactory<C> cf, com.orange.links.client.shapes.Shape start, com.orange.links.client.shapes.Shape end)com.orange.links.client.connection.ConnectiondrawStraightArrowConnection(com.google.gwt.user.client.ui.Widget startWidget, com.google.gwt.user.client.ui.Widget endWidget, GUITransition transition)com.orange.links.client.connection.ConnectiondrawStraightArrowConnection(com.google.gwt.user.client.ui.Widget startWidget, com.google.gwt.user.client.ui.Widget endWidget, String name)Draw a straight connection with an arrow between two GWT widgets.com.orange.links.client.connection.ConnectiondrawStraightConnection(com.google.gwt.user.client.ui.Widget startWidget, com.google.gwt.user.client.ui.Widget endWidget)Draw a straight connection between two GWT widgets.StringexportDiagram()voidfireEvent(com.google.gwt.event.shared.GwtEvent<?> event)intgetCanvasHeight()intgetCanvasWidth()com.orange.links.client.menu.ContextMenugetContextMenu()com.orange.links.client.canvas.DiagramCanvasgetDiagramCanvas()Get the diagram canvascom.orange.links.client.save.DiagramModelgetDiagramModel()longgetFps()Map<com.google.gwt.user.client.ui.Widget,Map<com.google.gwt.user.client.ui.Widget,com.orange.links.client.connection.Connection>>getFunctionsMap()com.orange.links.client.shapes.PointgetMousePoint()com.orange.links.client.shapes.DrawableSet<FunctionShape>getShapes()com.orange.links.client.shapes.DrawableSet<com.orange.links.client.connection.Connection>getUnsynchronizedConnections()com.google.gwt.user.client.ui.AbsolutePanelgetView()com.google.gwt.user.client.ui.ScrollPanelgetViewAsScrollPanel()voidimportDiagram(String diagramXmlExport, com.orange.links.client.save.DiagramWidgetFactory saveFactory)booleanisShowGrid()voidmakeDraggable(com.smartgwt.client.widgets.Canvas widget)OUR personalization to allow dragging into SmartGWTvoidpauseRefresh()voidregisterDragController(com.allen_sauer.gwt.dnd.client.DragController dragController)Register a drag controller to control the refresh ratevoidremoveDecoration(com.orange.links.client.connection.Connection decoratedConnection)Remove a decoration from the diagramvoidrunRefresh()voidsetFrameSize(int width, int height)voidshowGrid(boolean showGrid)Change the background of the canvas by displaying or not a gray grid.voidsynchronizedShapes()voidunsynchronizedShapes()voidupdate() 
 - 
 
- 
- 
Field Detail
- 
minDistanceToSegment
public static int minDistanceToSegment
If the distance between the mouse and segment is under this number in pixels, then, the mouse is considered over the segment 
- 
refreshRate
public static int refreshRate
Timer refresh duration, in milliseconds. It defers if the application is running in development mode or in the web mode 
- 
inEditionDragMovablePoint
public boolean inEditionDragMovablePoint
 
- 
inEditionSelectableShapeToDrawConnection
public boolean inEditionSelectableShapeToDrawConnection
 
- 
inDragBuildArrow
public boolean inDragBuildArrow
 
- 
inDragMovablePoint
public boolean inDragMovablePoint
 
- 
inDragWidget
public boolean inDragWidget
 
 - 
 
- 
Constructor Detail
- 
DiagramController
public DiagramController(int canvasWidth, int canvasHeight)Initialize the controller diagram. Use this constructor to start your diagram. A code sample is :
DiagramController controller = new DiagramController(400,400);
RootPanel.get().add(controller.getView());- Parameters:
 canvasWidth- width expressed in pixelscanvasHeight- height expressed in pixels
 
 - 
 
- 
Method Detail
- 
getContextMenu
public com.orange.links.client.menu.ContextMenu getContextMenu()
- Specified by:
 getContextMenuin interfacecom.orange.links.client.menu.HasContextMenu
 
- 
pauseRefresh
public void pauseRefresh()
 
- 
runRefresh
public void runRefresh()
 
- 
clearDiagram
public void clearDiagram()
Clear the diagram (connections and widgets) 
- 
drawStraightArrowConnection
public com.orange.links.client.connection.Connection drawStraightArrowConnection(com.google.gwt.user.client.ui.Widget startWidget, com.google.gwt.user.client.ui.Widget endWidget, String name)Draw a straight connection with an arrow between two GWT widgets. The arrow is pointing to the second widget- Parameters:
 startWidget- Start widgetendWidget- End Widgetname- name of the arrow- Returns:
 - the created new connection between the two widgets
 
 
- 
drawStraightArrowConnection
public com.orange.links.client.connection.Connection drawStraightArrowConnection(com.google.gwt.user.client.ui.Widget startWidget, com.google.gwt.user.client.ui.Widget endWidget, GUITransition transition) 
- 
drawConnection
public <C extends com.orange.links.client.connection.Connection> C drawConnection(com.orange.links.client.connection.ConnectionFactory<C> cf, com.orange.links.client.shapes.Shape start, com.orange.links.client.shapes.Shape end) 
- 
drawStraightConnection
public com.orange.links.client.connection.Connection drawStraightConnection(com.google.gwt.user.client.ui.Widget startWidget, com.google.gwt.user.client.ui.Widget endWidget)Draw a straight connection between two GWT widgets. The arrow is pointing to the second widget- Parameters:
 startWidget- Start widgetendWidget- End Widget- Returns:
 - the created new connection between the two widgets
 
 
- 
addWidget
public FunctionShape addWidget(com.google.gwt.user.client.ui.Widget w, int left, int top)
Add a widget on the diagram- Parameters:
 w- the widget to addleft- left margin with the absolute paneltop- top margin with the absolute panel- Returns:
 - the shape
 
 
- 
addWidgetAtMousePoint
public FunctionShape addWidgetAtMousePoint(com.google.gwt.user.client.ui.Widget w)
 
- 
addDecoration
public void addDecoration(com.google.gwt.user.client.ui.Widget decoration, com.orange.links.client.connection.Connection decoratedConnection)Add a widget as a decoration on a connection- Parameters:
 decoration- widget that will be in the middle of the connectiondecoratedConnection- the connection where the decoration will be put
 
- 
removeDecoration
public void removeDecoration(com.orange.links.client.connection.Connection decoratedConnection)
Remove a decoration from the diagram- Parameters:
 decoratedConnection- connection where the decoration will be deleted
 
- 
addPointOnConnection
public void addPointOnConnection(com.orange.links.client.connection.Connection c, int left, int top)Add an segment on a path by adding a point on the connection- Parameters:
 c- the connection where the point will be addedleft- Left margin in pixelstop- Top margin in pixels
 
- 
showGrid
public void showGrid(boolean showGrid)
Change the background of the canvas by displaying or not a gray grid.- Parameters:
 showGrid- if true, show a grid, else don't
 
- 
getDiagramCanvas
public com.orange.links.client.canvas.DiagramCanvas getDiagramCanvas()
Get the diagram canvas- Returns:
 - the diagram canvas
 
 
- 
getView
public com.google.gwt.user.client.ui.AbsolutePanel getView()
- Returns:
 - the view where the widgets are displayed
 
 
- 
setFrameSize
public void setFrameSize(int width, int height) 
- 
getViewAsScrollPanel
public com.google.gwt.user.client.ui.ScrollPanel getViewAsScrollPanel()
 
- 
makeDraggable
public void makeDraggable(com.smartgwt.client.widgets.Canvas widget)
OUR personalization to allow dragging into SmartGWT- Parameters:
 widget- widget to alter
 
- 
registerDragController
public void registerDragController(com.allen_sauer.gwt.dnd.client.DragController dragController)
Register a drag controller to control the refresh rate- Parameters:
 dragController- The DragController used to handle the drags on widgets
 
- 
unsynchronizedShapes
public void unsynchronizedShapes()
 
- 
synchronizedShapes
public void synchronizedShapes()
 
- 
fireEvent
public void fireEvent(com.google.gwt.event.shared.GwtEvent<?> event)
- Specified by:
 fireEventin interfacecom.google.gwt.event.shared.HasHandlers
 
- 
addUntieLinkHandler
public com.google.gwt.event.shared.HandlerRegistration addUntieLinkHandler(com.orange.links.client.event.UntieLinkHandler handler)
- Specified by:
 addUntieLinkHandlerin interfacecom.orange.links.client.event.UntieLinkEvent.HasUntieLinkHandlers
 
- 
addTieLinkHandler
public com.google.gwt.event.shared.HandlerRegistration addTieLinkHandler(com.orange.links.client.event.TieLinkHandler handler)
- Specified by:
 addTieLinkHandlerin interfacecom.orange.links.client.event.TieLinkEvent.HasTieLinkHandlers
 
- 
addChangeOnDiagramHandler
public com.google.gwt.event.shared.HandlerRegistration addChangeOnDiagramHandler(com.orange.links.client.event.ChangeOnDiagramHandler handler)
- Specified by:
 addChangeOnDiagramHandlerin interfacecom.orange.links.client.event.ChangeOnDiagramEvent.HasChangeOnDiagramHandlers
 
- 
addNewFunctionHandler
public com.google.gwt.event.shared.HandlerRegistration addNewFunctionHandler(com.orange.links.client.event.NewFunctionHandler handler)
- Specified by:
 addNewFunctionHandlerin interfacecom.orange.links.client.event.NewFunctionEvent.HasNewFunctionHandlers
 
- 
isShowGrid
public boolean isShowGrid()
- Returns:
 - true if a grid is displayed in background
 
 
- 
update
public void update()
 
- 
deleteConnection
public void deleteConnection(com.orange.links.client.connection.Connection c)
 
- 
deleteWidget
public void deleteWidget(com.google.gwt.user.client.ui.Widget widget)
 
- 
getMousePoint
public com.orange.links.client.shapes.Point getMousePoint()
 
- 
getCanvasWidth
public int getCanvasWidth()
 
- 
getCanvasHeight
public int getCanvasHeight()
 
- 
getFps
public long getFps()
- Returns:
 - the fps which are really displayed (frame per second)
 
 
- 
getUnsynchronizedConnections
public com.orange.links.client.shapes.DrawableSet<com.orange.links.client.connection.Connection> getUnsynchronizedConnections()
- Returns:
 - unsynchronized connection
 
 
- 
getDiagramModel
public com.orange.links.client.save.DiagramModel getDiagramModel()
 
- 
exportDiagram
public String exportDiagram()
 
- 
importDiagram
public void importDiagram(String diagramXmlExport, com.orange.links.client.save.DiagramWidgetFactory saveFactory)
 
- 
getShapes
public com.orange.links.client.shapes.DrawableSet<FunctionShape> getShapes()
 
 - 
 
 -