The Ptidej UI Viewer
project provide interfaces and classes used by all the viewers. In particular, it provides the ptidej.viewer.IRepresentation
interface that is the “model” (as in Model-View-Controller) of any viewer. This interface allows managing PADL models, Ptidej UI models, original sources, occurrences…
It is essential that any viewer uses this interface for its model, as it allows extensions to the viewers to work seamlessly regardless of the viewer implementation. Extensions are available in the Ptidej UI Viewer Extensions
project.
There are implementations of different viewers. The most usable currently is run through the class ptidej.viewer.ProjectViewer
in project Ptidej UI Viewer Standalone Swing
. There exists also an Eclipse plug-in using SWT to display models but this plug-in is currently outdated.
To assure the independence of the graphical representation, of the analyses and UI analyses, and of the extensions from the viewers and underlying graphical frameworks (AWT or SWT), Ptide UI Viewer
provides several layers of models and canvas. A instance of ModelGraph
is a graphical representation of an AbstractLevelModel
. Such an instance must be embedded into an instance of Canvas
. ModelGraph
and Canvas
are independent of the underlying graphical framework. Viewers and users can interact with them through two interfaces SelectionListener
and CanvasListener
following the Observer design pattern. An instance of Canvas
can be finally embedded into either an AWTCanvas
or SWTCanvas
for integration in a user-interface.