UML Class Editor

This demo allows you to visualize and edit UML class diagrams. It shows how to

Class Description
demo.view.uml.UmlDemoAllows to visualize and edit UML class diagrams.
demo.view.uml.UmlEditMode A customized EditMode that also handles animated edge creation buttons.
demo.view.uml.UmlEdgeCreationButtons A Drawable that displays circular, zoom-independent edge creation buttons that can be animated.
demo.view.uml.UmlRealizerFactory A Factory that provides methods to create node realizers, edge realizers and to access custom properties of the realizers.
demo.view.uml.UmlCreateEdgeMode A ViewMode that creates a new edge with a target node when dragging.
demo.view.uml.UmlClassConfiguration A custom configuration for a UML class node that paints a class node with buttons to edit the node.
demo.view.uml.UmlClassButton An abstract class for interaction with and painting of a button of a class node.
demo.view.uml.UmlClassOpenCloseClassButton A button of class node that shows or hides the attributes and operations area when clicked.
demo.view.uml.UmlClassOpenCloseSectionButton A button of class node that shows or hides the attributes area or the operations area, respectively, when clicked.
demo.view.uml.UmlClassAddItemButton A button of class node that adds a label to the attributes list or the operations list, respectively, when clicked.
demo.view.uml.UmlClassRemoveItemButton A button of class node that removes a label from the attributes list or the operations list, respectively, when clicked.
demo.view.uml.UmlClassAnimation Animates opening and closing in a class node. That way, when a button is pressed to open or close the node, one of its sections or also when adding or removing a label, the node's size will change smoothly.
demo.view.uml.UmlClassLabelPainter A label painter that does not paint selection marks when a label is selected.
demo.view.uml.UmlClassLabelEditMode A ViewMode that opens a label editor when a label is double-clicked and shows a selection background for the selected label while the mouse is over the node.
demo.view.uml.UmlClassLabelSupport A class that provides methods to change the model and update the labels in a class node.
demo.view.uml.UmlClassModel The model of a class node consisting of the name of the class and lists of attributes and operations.
demo.view.uml.UmlClassModelIOHandler A GraphMLIOHandler that serializes and deserializes the UmlClassModel stored as user data of the node realizer representing an UML class.

Running the Demos

From Within an IDE

Set <yFilesDir>/src as your source directory. Then add <yFilesDir>/lib/y.jar and the source folder <yFilesDir>/src to your classpath. Now you should be ready to compile and run all executable demo classes.

With Ant

First make sure you have the build tool Ant installed on your system. Now you can use the demo build script build.xml located in <yFilesDir>/src/demo to launch each demo by specifying its simple class name as a target. Alternatively, launch the interactive demo driver by specifying run as target to conveniently access all demos.