User Tools

Site Tools


Ptidej UI Viewer Standalone Swing

The Ptidej UI Viewer Standalone Swing project provides the class ptidej.viewer.ProjectViewer, which is currently the most usable graphical interface to the Ptidej Tool Suite.


Here are some steps to use it:

Clickable Screenshots Steps
Starting-up the project viewer
Using the File menu to create a new model from some C++ source files
Giving a name to the model
Selecting a directory containing C++ source files
After reverse-engineering the C++ source code files, displaying the model
Selecting the Tools tab…
… and showing the list of micro-architectures similar to some motifs (either from design patterns, design anti-patterns, code smells, or micro-patterns)
At first, the list is empty…
… but selecting the Code Smells tab and the AbstractClass code smell reveals some potential problems
These problem can be investigated by selecting the displayed occurrence in the list…
… or in the model view


The current implementation of the Ptidej UI Viewer Standaline Swing is actually a mini-framework. It makes it easy for third-parties to integrate their own extensions and visualisations. It provides currently three types of visualisation: one purely graphical, one showing a hierarchical tree and a graphical representation, and one showing two hierarchical trees and graphical representations to distinguish types and their implementation classes.

The class DesktopPane is the world in which various visualisations can live. These visualisations are typically displayed as internal Windows. Extensions and other lists listens to the visualisations by implementing the CanvasListener interface. The canvas also listens to the DesktopPane to receive notification of changes, for example in the choice of graphical elements to display. Hence, interactions can go in three directions without strong coupling (from the DesktopPane to its Windows, from the Windows to the lists, and from the lists to the Windows.

ptidej_ui_viewer_standalone_swing.txt · Last modified: 2019/10/06 20:37 (external edit)