This document provides a cross-reference between most of the features of Viewpoint and concrete example usages of them in the Family example modeler.
To get the source of the example, including the meta-model and the Viewpoint Specification Model for the various family modelers:
This will create five new projects in your workspace:
com.obeodesigner.sample.family
contain the
definition of the Family DSL.com.obeodesigner.sample.family.edit
and
com.obeodesigner.sample.family.editor
contain support
code for the DSL: general edit support and a sample hierarchical
editor for family models generated by EMF itself.com.obeodesigner.sample.family.design
contains the
source of the graphical modeling environment for Family
models, made with Viewpoint. This is where you will find the
concrete examples referenced in this document.com.obeodesigner.sample.family.demo
contains a ready-to-use family model and some representations of it
made using the graphical modeling environment.Features | In Diagram | Domain Class | Usages in FullFamily designer |
Diagram | |||
Diagram | PersonsDiagram | World | Edition of men, women and their parental relationships |
LocationsDiagram | World | Edition of countries, cities, houses and their inhabitants | |
GenealogyDiagram | Person | Display of a person's descendants and ascendants | |
HousesDiagrams | World | Display of relations between houses (links women and men to their parents in other houses) | |
StylesLibrary | Country | Display of different styles | |
FamiliesDiagram | Family | Display of relations between families (links perons to their parents in the same family, and families containing the same persons) | |
Styles Library | EObject | Display several styles you can give to a specific object of your model | |
ReusedDescriptions | EObject | Best practice: we define reused tools in this diagram. The diagram is not allowed to be created by the user. | |
Representations | |||
Optional Layer | PersonsDiagram | World | Layer "show homes" to apply the conditional style which shows the house's icon on persons with house!=null |
Layer "show parents" to apply the conditional style which shows the couple's icon on persons whom have children with another person | |||
HousesDiagrams | World | Layer "Parental Relationships" to display links between children and their parents | |
Layer "Houses Relationships" to display links between houses if a house contains a child of one or more persons of the other house | |||
FamiliesDiagram | Family | Layer "Families Relations" to display links between families if a family contains a child of one or more members of the other family | |
Conditional Style | PersonsDiagram | Man | Changes the man style, if man has children in the optional layer "show parents", to display the man name in bold and add number of children to his label |
Woman | Changes the woman style, if woman has children in the optional layer "show parents", to display the woman name in bold and add number of children to her label | ||
GenealogyDiagram | Person | Display the man icon if the person is an instance of Man and the woman icon if he is an instance of Woman | |
FamiliesDiagram | Person | Display the man icon if the person is an instance of Man and the woman icon if he is an instance of Woman | |
ValidationRule | PersonsDiagram | World | Control of uncyclic parental relationship (generates an Error) |
PersonsDiagram | World | Control of couple parents (generates a Warning) | |
Node | PersonsDiagram | Man/Woman | Representation of men and women |
Representation which import the above representation of men and women (used in the optional layer "Show parents") | |||
GenealogyDiagram | Person | Representation of the person and his ancestors and descendants | |
LocationsDiagram | Person | Representation of homeless persons and other persons | |
FamiliesDiagram | Person | Representation of members of families | |
Decorator | PersonsDiagram | man/woman | House icon on persons whom have a house and couple icon on persons whom have children |
Container | LocationsDiagram | World | To display homeless persons |
Country | To display countries | ||
City | To display cities | ||
House | To display houses | ||
HousesDiagrams | House | To display houses | |
FamiliesDiagram | Family | To display families | |
Border Node | HousesDiagrams | Man/Woman | To display men and women in houses as a bordered nodes |
Filter | HousesDiagrams | To filter empty houses | |
Styles | |||
Custom Style | |||
Square | StylesLibrary | EObject | To display styles of: a node, a node with border nodes, a node with bordered label, bordered nodes and nodes in containers |
Lozenge | StylesLibrary | Eobject | To display style of a node |
Ellipse | StylesLibrary | Eobject | To display style of a node, bordered nodes in a container |
Basic Shape | StylesLibrary | Eobject | To display style of a node as a : square, a stroke, a triangle, a dot, a ring and to display a bordered node as a square |
Image | StylesLibrary | Eobject | To display the style of a node as an image |
PersonsDiagram | Man/Woman | To display the style of a man or a woman as an image | |
GenealogyDiagram | Person | To display styles of the current person, his descendants and his ancestors | |
HousesDiagram | Man/Woman | To display the style of a man or a woman as an image | |
FamiliesDiagram | Person | To display the style of persons as an image | |
Gauge | StylesLibrary | Eobject | To display style of calculated Gauges (vertical, horizontal) with 2 gauge sections each |
Gradient | StylesLibrary | Eobject | To display style of containers and sub containers |
LocationsDiagram | World | To display the container of homeless persons | |
Country | To display style of countries containers | ||
City | To display style of cities containers | ||
House | To display style of houses containers | ||
HousesDiagram | House | To display style of houses containers | |
FamiliesDiagram | Family | To display style of families containers | |
Parralelogram | --- | --- | |
Edge Style | PersonsDiagram | man/woman | To display style of edges which link between a child and his parents |
GenealogyDiagram | Person | To display style of edges which link between a child and his father or mother, the parents between each otherand the link between a child and the edge which display the couple (his parents) | |
HousesDiagram | man/woman | To display style of edges which link between a child and his parents if they are not in the same house | |
houses | To display style of edges which link between houses if a house contains one or more child of other houses persons | ||
FamiliesDiagram | Man/Woman | To display style of edges which link between a child and his parents if they are not in the same family | |
families | To display style of edges which link between families if a family contains one or more child of other families members | ||
Tools | |||
Create Node Tool | PersonsDiagram | man/woman | Creation of man or woman |
Create Container Tool | LocationsDiagram | country/city/house | Creation of a new country, city or house |
FamiliesDiagram | family | Creation of a new family | |
Create Edge Tool | PersonsDiagram | mother/father | Creation of father and mother relationships |
Edit label Tool | PersonsDiagram | person.name | Edition of persons names |
LocationsDiagram | (country/city/house).name | Edition of countries, cities, houses and persons names | |
HousesDiagram | (house/person).name | Edition of houses and persons names | |
FamiliesDiagram | (family/person).name | Edition of families and persons names | |
GenealogyDiagram | person.name | Edition of persons names | |
Drop Tool | LocationsDiagram | persons mapping | Drag and drop a person from a house to another |
HousesDiagram | persons mapping | Drag and drop a person from a house to another | |
FamiliesDiagram | persons mapping | Drag and drop a person from a family to another | |
Delete Tool | PersonsDiagram | persons mapping / father/mother | Deletion of persons from the model |
Deletion of parental relationships | |||
LocationsDiagram | country/city/house/person mappings | Deletion of countries, cities and houses from the model | |
Removal of persons from their houses | |||
prevent deletion of homeless persons | |||
HousesDiagram | house/ person mappings | Deletion of a house from the model | |
Removal of persons from their houses | |||
FamiliesDiagram | family/ person mappings | Deletion of a family from the model | |
Removal of persons from the family | |||
Paste Tool | PersonsDiagram | Persons Diagram | Creation of a new person with the same name suffixed by "copy" |
Double Click Tool | PersonsDiagram | persons | Opening/creating a person's genealogy diagram |
LocationsDiagram | persons | Opening/creating a person's genealogy diagram | |
HousesDiagram | persons | Opening/creating a person's genealogy diagram | |
FamiliesDiagram | persons | Opening/creating a person's genealogy diagram | |
GenealogyDiagram | persons | Opening/creating a person's genealogy diagram | |
Reconnect Edge Tool | PersonsDiagram | mother/father | Reconnect mother or father relationships |
HousesDiagram | mother/father | Reconnect mother or father relationships | |
FamiliesDiagram | mother/father | Reconnect mother or father relationships | |
Tool | PersonsDiagram | son/ daughter | Create a son or a daughter fro a person with the parental relationship |
Import Mapping | PersonsDiagram | optional layer: "Show parents" | Imports the man/woman mappings from the default layer |
Popup Menu | LocationsDiagram | house | Operation Action: move persons into the selected house |
Operation Action: move persons to another house | |||
person | Operation Action: move the selected person to a house | ||
Group | LocationsDiagram | ---- | |
Pane Based Selection Wizard | LocationsDiagram | house | Pane Based Selection: select persons to add to a house |
Pane Based Selection: select homeless persons to add to a house | |||
Pane Based Selection: select men to add to a house | |||
Pane Based Selection: select women to add to a house | |||
Diagram Creation Description | ReusedDescriptions | perons mapping of all other diagrams | By Right clicking on a person mapping we can create a new genealogy diagram |
Diagram Navigation Description | ReusedDescriptions | perons mapping of all other diagrams | By Right clicking on a person mapping we can navigate to its genealogy diagram or to the genealogy diagram of his parents |
Operations | |||
If | PersonsDiagram | Son and daughter creation tools | set the father of the created son or daughter if the selected person is a man |
set the mother of the created son or daughter if the selected person is a woman | |||
LocationsDiagram | delete country/city or house | deletes the country/city or the house from the model if the selected elements is a country/city or a house respect. | |
D&D persons from a house to another or from a house to homeless and vise versa | unset the house of a peron if the D&D dargs it from a house to the homeless persons area | ||
Unset | |||
For | LocationsDiagram | Group pane based selections | for each selected person using the wizard we set the house to the current house |
Popups applied on a house | for each selected person using the wizard we set the house to the current house | ||
Move | LocationsDiagram | D&D persons Tool | moves persons from the old to the new semantic container |
HousesDiagram | D&D persons Tool | moves persons from the old to the new semantic container | |
FamiliesDiagram | D&D persons Tool | moves persons from the old to the new semantic container | |
Navigation | LocationsDiagram | doube Click Tool | allow the navigation and the creation of the genealogy diagram by doucle clicking on the concerned person |
HousesDiagram | doube Click Tool | allow the navigation and the creation of the genealogy diagram by doucle clicking on the concerned person | |
FamiliesDiagram | doube Click Tool | allow the navigation and the creation of the genealogy diagram by doucle clicking on the concerned person | |
GenealogyDiagram | doube Click Tool | allow the navigation and the creation of the genealogy diagram by doucle clicking on the concerned person | |
Java Extension: Java Services | FamiliesDiagram | optional layer: "Families Relations" | One java service is defined to get for a selected family the set of families in which we can find one or more parent of the selected family members |
Java Extension: Template Acceleo | HousesDiagram | optional layer: "Houses Relationships" | 2 templates are defined. The first helps to get the houses of parents of all persons in a house, the second returns the associated parents. |
GenealogyDiagram | Ancestors/descendants and labels | several templates are defined to get the ancestors/descendants of a person and to calculate the label of the current person to displat the number of his ancestors and his descendants | |
Matrix | |||
Cross Table | PersonsMatrix | World | Display of membership between a person and the city where he lives |
Matrix content | |||
Line Mapping | PersonsMatrix | Person | Display persons |
Column Mapping | PersonsMatrix | City | Display cities |
intersection Mapping | PersonsMatrix | Display the relation in case of a person lives in a house of the concerned city | |
Table | |||
Edition Table | PersonsTable | World | Display persons in a house which is in a city which is in a country and foreach of these elements in the table we display the number of persons, the father of the concerned person, his mother and the corresponding number of children |
Table content | |||
Line Mapping | PersonsTable | Country | Display the country |
cityLine | Display cities in a country | ||
houseLine | Display houses in a city of a country | ||
manLine | Display all men living in a house in the city of the country | ||
womanLine | Display all women living in a house in the city of the country | ||
Feature Column Mapping | PersonsTable | Person | Display the number of persons in a country, city or a house |
Display the father name of a person | |||
Display the mother name of a person | |||
Display the children number of a person | |||
Conditional Style | PersonsTable | Man | If the father exists we display it with a blue background |
Woman | If the mother exists we display it with a purple background | ||
Tools | |||
Create Line Tool | PersonsTable | Country | Creation of a country |
City | Creation of a City | ||
House | Creation of a House | ||
Man | Creation of a Man | ||
Woman | Creation of a Woman | ||
Delete Line Tool | PersonsTable | Man | Right Click to delete a man from the table (it deletes the man from the concerned house, does not delete him from the model) |
Woman | Right Click to delete a woman from the table (it deletes the woman from the concerned house, does not delete her from the model) | ||
Tree | |||
Tree | PersonsTree | World | Display a tree with all persons, houses, cities, countries of the World. It displays foreach person his children and his parents |
Tree content | |||
Tree Item | PersonsTree | World | Display the root element of the tree |
Country | Display all countries of the world | ||
City | Display all cities of a country | ||
House | Display all houses of a city | ||
Person | Display all persons of a house | ||
Display all children of a person | |||
Display the father of the person | |||
Display the mother of the person | |||
Family | Display all families of the world | ||
Woman | Display all homeless women | ||
Man | Display all homeless men | ||
Style | PersonsTree | World | Display "World" |
Country | Display the name of the country | ||
City | Display the name of the city | ||
House | Display the name of the house | ||
Person | Display the name of the person | ||
Display "children:" + the name of the child | |||
Display "father:" + the name of the father | |||
Display "mother:" + the name of the mother | |||
Family | Display the name of the family | ||
Woman | Display the name of the woman | ||
Man | Display the name of the man | ||
Tools | |||
Create | |||
Direct Edit | Persons Tree | country/city/house/persons | Applied on all tree items: Permit the direct edit of tree item label |
Drop Tool | Persons Tree | city/house/persons | Applied on cities/ houses and persons: Allow to D&D a person from a house to another, a house from a city to another and a city from a country to another |
Delete Item | |||
Menu | |||
Popup Menu | Persons Tree | World | "New .. ": Right click to get it. It permit the creation of a new country, family, woman, man |
Country | "New .. ": Right click to get it. It permit the creation of a new city | ||
City | "New .. ": Right click to get it. It permit the creation of a new house |