Controller as in
in our case consists of two parts. Controllers and
. Controllers also consist of two parts, ElementControllers and CommandControllers.
Classes providing methods for changing the model (or
, each PIM and PSM element has its own controller providing means to rename, add/remove attributes, operations etc. Used mainly by view elements, so they do not create Commands on their own.
Controls PSMClass Model element, is used by PSMClass View element. Provides methods such as DeriveNewRootPSMClass, AddClassSpecialization, GroupBy, AddChildren, ManageAttributes etc., which are usually wrappers for
There is one for each diagram, stores diagram-specific settings like Diagram (model class representing a Diagram), and provides diagram-specific methods like NewAssociation, NewGeneralization etc., which are usually also wrappers for
creation and initialization.
One per project (we support only one project so far), stores the undo stack and the redo stack, provides model-specific methods like IsElementUsedInDiagrams, HasElementPSMDependencies, CreateSimpleType etc.
Provides methods for moving and resizing view elements, which are usually also wrappers for
like MoveElement, ResizeElement, BreakLine etc.
Controllers inheritance diagram