A lightweight UML editor designed to create, manage, and edit UML diagrams with ease. This project implements the core functionalities of a UML editor as specified in the requirement document.
- Basic Objects: Create UML elements like Class and Use Case diagrams.
- Connection Lines: Support for Association, Generalization, and Composition lines with precise port-based connections.
- Select/Unselect:
- Single object or group of objects.
- Display connection ports for selected objects.
- Group/Ungroup:
- Combine multiple basic objects into a composite object.
- Decompose composite objects back into individual components.
- Move Objects: Drag and drop objects while maintaining connected lines.
- Edit Object Names: Rename selected objects using a text input dialog.
- Delete Objects: Remove selected objects or lines from the canvas.
- Object Depth: Render overlapping objects based on depth hierarchy.
- User-friendly UI: Button-based mode switching for object and line creation.
- Programming Language: Java
- Framework: Swing/JavaFX (for GUI development)
- Design Paradigm: Object-Oriented Design and UML principles
- Precondition: User selects
Class
orUse Case
button. - Steps:
- Click the button (turns active).
- Click on the canvas to create the object at the clicked position.
- Alternative: Clicking another button switches to its mode.
- Precondition: User selects a connection line type (e.g.,
Association
). - Steps:
- Click and drag from one object to another.
- Release to establish the connection with appropriate line styles.
- Single Select:
- Click an object to highlight it.
- Group Select:
- Drag a rectangle to select multiple objects.
- All objects fully enclosed within the rectangle are selected.
- Group:
- Select multiple objects and choose
Group
from theEdit Menu
.
- Select multiple objects and choose
- Ungroup:
- Select a composite object and choose
Ungroup
from theEdit Menu
.
- Select a composite object and choose
- Drag and drop selected objects.
- Connections adjust dynamically based on the new position.
- Select an object, open the
Edit Menu
, and chooseChange Object Name
.
- Select an object or connection, and delete it via the
Edit Menu
.
- Clone the repository:
git clone https://github.com/your-username/UML-Editor.git cd UML-Editor