Graphic Design

01/04/2019 -> the design of the Identifying Relationships was simplified. 
The "upper stack" was removed from the entity drawing. The normal "side stack" has been used for the Identifying Relationships.
Potential risk: the simultaneous input and output relationships of the same primary key of the entity might produce a messy result.
The possible alternative solution would be a Child- end connected to the Primary Key Stack.


16/01/2019 -> the first concept of the View Port, embedded into the application. Based on the Apricot DB testing structure

06/01/2019 -> the automatic sorting of the relationship was implemented for optimisation of the View Port.
The following items need to be implemented on the View Port:
* recalculation of the relationships for intersections between relationships (the mutual intersection between relationships) and relationships to entities. The Topology package was implemented and might be used as a working prototype;
* Implementation of the key handlers: Ctrl->, Ctrl<-, ShiftCtlr->, ShiftCtrl<-, CtrlUp, CtrlDown;
* Implementation of the full fledged undo operation of the View Port

31/12/2018 -> Viewport: Christmas 2018 edition.

20/12/2018 -> design of the apricot viewport:
Viewport: the first draft;
Viewport: advancing the relationships

10/12/2018 -> new "detours" on the intersecting relationships. The prototype manager- class name is: LineMutualIntersectionManager.

07/12/2018 -> the prototype of the topology manager.

New "tildas" design:

Left: the testing path and rectangles with intersections.
Right: the topology manager handled the intersections and blurred the hidden segments of the path.



20/11/2018 -> multiple entities implemented as ApricotEntity (extension of VBox)


On this condition: 

- entities are movable, resizable along the X- axis

- the main entities canvas is scrollable, and its size is automatically adjustable.


* The entity size is changing when the entity gets/lost the focus. Potentially, this is a bad issue (the links lines might swing due to the size changes).


TODO (planned on 14/11/2018):

1) Get back to the Entity Canvas- model. There must be unified representation of the Entity- definitions between Reports and Graphics;

2) Implement the adaptive relationships between entities;

3) Merge the JavaFX application and the Spring- modules under the Maven control. Spring Boot runs the JavaFX application and initialize the Spring application context. Move the matured code from incubator- space into the ApricotDB- application;

4) The graphic representation of the current repository data on the Entity canvas with the simplest alignment algorithm.