In this sample dragging from one Diagram to the other effectively "moves" the selection. It does this by having an "ExternalObjectsDropped" Diagram listener on each Diagram, which deletes the selection in the original Diagram when it is dropped on an external one.

The two Diagrams do not share a Model, but the two Models do share the same UndoManager:

myDiagram.model.undoManager = myDiagram2.model.undoManager;

Hence an undo or redo in one Diagram affects the other Diagram. This allows Node "moves" to be undone across Diagrams.

(This is different from the Update Demo, which is an example of two Diagrams sharing/showing the same Model.)

Using the Robot extension class:


GoJS Features in this sample

HTML Interaction

GoJS Diagrams can be used alongside other HTML elements in a webapp. For custom Text Editors, Context Menus, and ToolTips, which are invoked and hidden via GoJS tool operations, it is best to use the HTMLInfo class.

More information can be found in the GoJS Intro.

Related samples