Design tool, Relief provides a new look on Java projects.
Relying on our ability to deal with real objects by examining their shape, size or relative place in space it gives a "physical" view on java packages, types and fields and their relationships, making them easier to handle.
Lets discuss quickly how we interprete physical properties and how it can help us to grasp project characteristics.
- Do you prefer a small or a big chocolate box? so a package containing a lot of classes or interfaces will be bigger than one containing a few.
- A box is often represented as a cube, a sphere as an atom. Packages and classes are boxes, interfaces and type's fields are spheres.
- Distance to center (gravity)
- On a desk we put things we often need near us and everything else further. If class A is more used than class B, A will be nearer the center than B.
- In a bag heavy things are put in the bottom and lighter ones upper. Here weight is not related to content but to dependancy so that a class needing a lot of others will be placed deeper than an interface with few fields.
Colors are used in links and tree background to show relationships between entities.
Blue is for clients.
There are three providers color: grey for java entities, yellow for entities coming from libraries and green for ones in project (in fact those ones may be purple if not parsed with Relief, more on this in topic "Getting started").
When two entities are both client and provider of each other red color is used.
Set operations. The four first buttons perform classic set operations: union, intersection, symetric difference and difference. Only one can be selected at a time. The fifth is the complement operation.
Link filters. The next three buttons filter displayed links. The first one shows only selected entities, the second clients links and the third providers ones.
Focus buttons. The last three buttons focus on selection. First one by removing unrelated items in the tree, second one by showing only selection in a new window when doubled clicked and third one by raising entity precedence over links, which facilitates selection on area cluttered with links.
Pressing CTRL+C copy selection into clipboard (fully qualified name entities).
In tree, mouse over tooltips display clients and providers count for current entity.
In view, selecting an orbit highlights all entities tied to it.
The project listing appears first to choose which project to parse.
For each project it is possible to change its title (if you want to open many windows on same project) and the way it is parsed: if "blackbox" is checked Relief will not parse methods body and field construction to focus only on what is exchanged between objects and hide specific implementation details. If "show libraries" is not checked, Java core classes and libraries dependencies won't be displayed.
You may parse project parts by using sources tree. Keep in mind that purple entities in view are not parsed or not fully; it means you see only their provider role on parsed entities.
Other fields are informative.
The view uses standard java3d mouse manipulation: mouving it with left button pressed rotates the scene around the center. Mouving up or down with center button pressed zoom out or in. Right button moves the scene in mouse direction.
To select an entity, click on it, to select many, keep shift key pressed while clicking. You can select either on the tree or on the view.
Double click to open selection content in a new window.