# Issue Analysis

Since Graphiti is based upon writing code against a Java-API, clients can make excellent usage of Java VM features like debugging and hotcode replacement while writing Graphiti editors and viewers. An incremental way to develop is very nicely supported by this.

However, sometimes debugging might not help, e.g. when you have to analyze rendering issues that happen at coding locations that are called often or during special UI states that are focus relevant.

To ease analyzing issues in such situation, Graphiti offers a preference page for test settings. It is part of the org.eclipse.graphiti.examples.common plugin and is being installed e.g. when you install the Graphiti SDK. To open the preferences page, click the main menu entry "Window", then "Preferences" and select the page "Graphiti Test Preferences". (Note that the page is not part of the Graphiti framework install, so it will not appear in any Graphiti-based tool-installations, unless explicitly added or the Graphiti SDK is installed along with the tool).

The following settings are available on the preference page:

- Category "Visually Playing Around" - Contains options to influence the rendering in the Graphiti framework. They are not that helpful in finding or analysing issues, but offer some options that are not (yet?) part of the standard Graphiti framework behavior.
- Category "Debugging" - This category is the most interesting for clients:

- Add debug actions to the context menu of each shape - add special entries (e.g. to print a dump of the shapes in a diagram) into the context menu of shapes on Graphiti diagrams. These entries are available at runtime of the tool and are helpful for analysing issues in e.g. rendering.
- Activate CPU profiling trace - Enables tracing of the time needed to execute some Graphiti framework methods. Useful for analysing performance issues.
- Show invisble rectangles - Can be enabled to show rectangles that are actually defined as being not visible.
- Use generic outline view - Opens a generic Outline view together with any Graphiti editor; this outline view hosts a tree representation of the shapes, graphics algorithms and connections inside a diagram and also a movable Miniature View of the diagram.
- Use generic property sheet - Open a generic table based property sheet along with any Graphiti editor showing the attributes of any selected shape or connection.

- Category "Graphiti Internal" - Contain internal Graphiti settings that should not be changed unless you really know what you are doing.
- Category "Graphiti Tracing" - Can be used to enable the tracing in the Graphiti framework, available levels are "Info" and "Debug".