Wednesday

Mapping Model

GMF distinguishes between two independent aspects of diagram definition – Graphical and Tooling. Another important aspect of future diagram is underlying (semantic) meta-model. Since GMF was designed to create diagrams based on EMF, this aspect is covered with a user-defined EMF model (.ecore file). To fulfill the diagram description, it is necessary to bind these three aspects together, and this is responsibility of Mapping model. While working with mapping definition, the toolsmith can create such elements as: CanvasMapping, NodeMapping, LinkMapping. These mappings are used to fully describe the diagram surface, diagram nodes, and diagram links, respectively. Each mapping connects the domain model element from EMF model with its corresponding visual representation from Graphical Definition model, and to a necessary set of tools from Tooling model. In addition, LinkMappings and NodeMappings could own LabelMappings used to visualize some attributes of underlying semantic model elements as a diagram labels. The LabelMapping keeps references to attributes from semantic model and to a Label element from Graphical Definition model. NodeMappings optionally own CompartmentMappings, which are used to logically group a set of child nodes inside compartment figure. CompartmentMapping keep a reference to Compartment from Graphical Definition model. Node and LinkMappings store all the necessary information to present some particular semantic model element as a diagram link, or a node with labels and compartments. However, this information is not enough to embed one diagram node into another. ChildReference instances were designed to solve this problem. Each Canvas or NodeMapping can contain arbitrary number of ChildReferences. A ChildReference used to point to another NodeMapping which could be located in this Canvas or NodeMapping. In addition, a ChildReference keeps the necessary information for getting corresponding semantic children and storing a newly created one. In other words, ChildReferences capture information about the child-parent relationship for different types of diagram nodes. Each Mapping model represents complete diagram description while Tooling and Graphical models are used to describe only some particular aspects of diagram definition. As a result, the same Tooling/Graphical models could be reused across different Mapping models representing different diagrams.



2 comments:

Anonymous said...

Pretty nice post. I just stumbled upon your blog and wanted to say that I have really enjoyed browsing your blog posts. In any case I’ll be subscribing to your feed and I hope you write again soon!

Amit S said...

@Anonymous

Thank you for appreciation.
I fear I may not continue writing. I will be happy to open blog for improvement.