This is a java program that works as a canvas. what must be done is to modify the code to comply with the new functionalities explained clearly below.
Literally what you should do is create a tool to create class diagrams.
there must be relations between classes. (inheritance, implementation, association, aggregation, composition)
be able to create rectangles for classes with the name
a button to be able to generate java code.
If you know ARGOUML, it is exactly the same only that not so complicated, much simpler, a more basic version.
The things you have to do are:
1) Separate the code from the business logic of the interface as the MVC controller view model. to be able to add all these new functionalities correctly.
2) Remove the tools to draw oval and scribble.
3) Create a tool palette on the right side similar to the one on the left side only to create class diagrams.
4) Fix the function of painting "fill shape" to be able to paint several figures of different colors.
5) hide by default the right palette with the bottons up, down, above all, below all.
6) This tool palette for creating class diagrams should contain:
Button to add new class, with the respective drawing of a square with a horizontal line and the space to put the class name,
Button to add an interface that will be very similar to the new class only the interface will have a small letter i in the upper right corner
Button to add abstract class the same as new class only that will have a small letter a in the upper right corner.
Buttons to graphically represent all possible relationships between classes:
Inheritance = a line with a triangle at the end of one of the ends.
implementation = a broken line with a triangle at the end of one of the ends.
association = a line with an arrow at the end of one of the extremes
association = a simple line
aggregation = a line with a diamond at the end of one of the ends.
composition = a line with a colored rhombus at the end of one of the ends.
When you draw two or more classes on the board and want to relate them to each other you should be able to click on some relationship button and join the two classes and these should be joined both graphically and internally, that way the user should be able to draw a whole class diagram complete and be able to save it.
When you finish drawing a class diagram on the right side of the board, there must also be a button to generate code. This button must generate the respective java code of the diagram in a .java document and be able to save it.
the classes should only contain their name, they should not contain methods or attributes.
To finish the project it must be in netbeans, it must compile without any compilation error, without warnings, it must run and work correctly, and it must have some tests that run correctly.