- Software Requirements
- Features
- Program Flow Overview
- Usage
- Class Diagram
- Future Work
- Project File Structure
- References
- IDE: IntelliJ IDEA
- Java JDK 17.0.1
- GUI Library: Java Swing
- SonarLint Plugin - Code quality and security analysis tool
- Maven - Dependency Management
- Figma - UI and components design
- Documentation
- Generate JavaDoc - IntelliJ IDEA Tool
- Deploy - Publish Javadoc - GitHub Action
- Select
- Association
- Generalization
- Composition
- Class
- Use Case
- Create basic object: Class, UseCase
- Select/Unselect/Move a single basic object: Class, UseCase
- Create UMLConnectionLine: AssociationLine, CompositionLine, GeneralizationLine
- Change Object Name
- Select/Unselect/Move connection line
- Select/Unselect a UMLGroup of objects
- Group/UpGroup
- Select and Move BaseUMLObject (include Group)
- Delete UMLObject
Caution
This part will be updated soon.
- Click Tool Button
- Mode
- Create UMLObject
- Create UMLConnectionLine
- Create UMLBasicObject
- Select
- If selection is UMLObjects
- can Move (UMLConnectionLine movement are not supported yet.)
- If selection is UMLBasicObject
- can change it’s ObjectName
- If selection is an Area including several UMLObjects
- can Group
- If selection is an UMLGroup
- can UnGroup
- If selection is UMLObjects
- Create UMLObject
- Canvas Repaint
graph TD
A[Initialize UML Editor] --> B{Button Clicked}
B -->|Select| C[Set Select Mode]
B -->|Association| D[Set Association Mode]
B -->|Generalization| E[Set Generalization Mode]
B -->|Composition| F[Set Composition Mode]
B -->|Class| G[Set Class Creation Mode]
B -->|Use Case| H[Set Use Case Creation Mode]
C --> I{Mouse Event on Canvas}
D --> I
E --> I
F --> I
G --> I
H --> I
I -->|Left Click on Object| J[Select/Unselect Object]
I -->|Left Click on Canvas| K[Unselect All Objects]
I -->|Left Press on Object| L[Start Line Creation]
I -->|Mouse Drag| M[Update Line Endpoint]
I -->|Left Release on Object| N[Create Connection Line]
I -->|Left Press on Object| O[Start Object Movement]
I -->|Mouse Drag| P[Move Object]
I -->|Left Release| Q[Update Object Position]
J --> R{Edit Menu}
K --> R
R -->|Group Selected| S[Merge Selected Objects]
R -->|Ungroup Selected| T[Decompose Composite Object]
R -->|Change Object Name| U[Open Name Change Window]
U -->|OK with New Name| V[Update Object Name]
U -->|Cancel| W[Close Window]
V --> W
W --> I
You can just download 🌔 v1.0 and run the jar file.
mvn clean package
java -jar target/uml-editor-1.0-jar-with-dependencies.jar
Tip
Generated by UML class diagrams
Class Diagram
Class Diagram with Dependency
- Improve code quality. More OO.
- Documentations: Java API Docs, README.md
.
|
+---assets
+---docs
+---src
| +---main
| | +---java
| | | \---com
| | | \---xxrjun
| | | | UMLEditorApplication.java
| | | |
| | | +---components
| | | | | Canvas.java
| | | | | MenuBar.java
| | | | | ToolPanel.java
| | | | |
| | | | \---uml
| | | | | UMLGroup.java
| | | | | UMLObject.java
| | | | | UMLPort.java
| | | | |
| | | | +---basics
| | | | | ClassBasicObject.java
| | | | | UMLBasicObject.java
| | | | | UseCaseBasicObject.java
| | | | |
| | | | \---connectionlines
| | | | AssociationLine.java
| | | | CompositionLine.java
| | | | GeneralizationLine.java
| | | | UMLConnectionLine.java
| | | |
| | | +---enums
| | | | EditFunctionTypes.java
| | | | ToolButtonConfig.java
| | | | UMLObjectTypes.java
| | | |
| | | +---factories
| | | | UMLObjectFactory.java
| | | |
| | | \---modes
| | | CreateBasicUMLObject.java
| | | CreateUMLConnectionLine.java
| | | Select.java
| | | UMLFactory.java
| | | UMLMode.java
| | |
| | \---resources
| | \---images
...
- Requirement - Use Case Format
- Java Design Pattern
- Package javax.swing
- Java Swing Tutorial
- The Java™ Tutorials | Creating a GUI With Swing
Caution
Code similarity will be checked and updated. Expecting to use MOSS