Master degree MIAGE2014
This 3 students JAVA project is the final project into we put what we learned during the course.
Specifically, we learned how to manage plugins in a JAVA Application and hot-plugs.
This project is basically a paint application, providing the possibility to create/modify/delete some shapes.
Theses shapes are plugins, which are load at the beginning.
We had to develop this application by using some patterns that we learned which are th following:Adaptator, Composite, Decorator
Usine, Singleton, Visitor, Listener, Memento.
We chose the patern Memento for the serialization of our shapes into the panel. With this one, we can save every state of our shape.
For example after changiond the color, we can come back easily to the previous state.
We chose to apply the listener pattern to manage the mouse into our drawing panel in term of
creating, saving, loading, changing mode (edit/select) and undoing.
The pattern Adaptator has been performed to manage the dynamic loading of plugins : we ginving to the adaptator a classes list
and it returns back the list of button which will be display on the top of the frame. That allows to develop another way to get back
the classes (for example, by requesting a database, by the network...) without changing the actual implementation.
The Visitor pattern has been performed in order to display as text, all the informations of the current shape. This implementation
let the possibility to develop another features, operations, which should be implemented in the visitor.