This page has been updated to KIELER Pragmatics 0.11.0
Provide the source model type, e.g. via the 'Browse' button. Note that the project containing that class must exist in the workspace or at least any other workspace project must have this class in its class path, e.g. via a bundle dependency. Otherwise it won't be offered by the list of available classes. Of course you might alter the project's name, the name of the diagram synthesis implementation and its containing package. Finally choose your favorite implementation language - we like Xtend very much for this purpose! If you don't like to have a simple popup menu contribution for testing purposes, uncheck the corresponding checkbox.
You will get the following implementation template, it is already registered via KLighD's dedicated extension point (see the project's plugin.xml).
createNode()) for each element comprised by the given instance
model (usually called the business, domain, or semantic model) of your data type, here
EPackage. Add those nodes to the children of
root. Create a
KEdge for each relation or link to be contained in your diagram. Similarly to
createNode() there is
createEdge() for that purpose. Set source and target node of those edges accordingly, this will implicitly add the edges to the diagram (via EMF's
EOpposite mechanism). You can reveal an already created node representing a certain domain element by calling domainElement.
getNode(), or simply domainElement.
node. Have a look at UML2UseCaseDiagramSynthesis, which is part of our examples project, on how to do that. If you are interested in diagrams with nodes and edges connected via ports (as depicted in Figure 2 in Just Model! - ...) have a look at CircuitDiagramSynthesis. For convenience you might also want to import the examples project into your workspace. Simply switch to the Plug-ins view and import
de.cau.cs.kieler.klighd.examples as Source Project, see screen shot below.
Testing the diagram synthesis is most easiest done by means of the test menu contribution created by the project wizard. Thus, start a test Eclipse Application via 'Run As', e.g. via 'Run' in the main menu. Import or create a project with some of your model data. If your model format has been described by means of Ecore, you can open your model with a matching EMF tree editor as shown in the following screenshot (here we used the Ecore format itself, so we used an "arbitrary" Ecore model ).
Open the context menu while an instance of your source model type is selected, and hit the Open ... diagram entry. Btw.: The menu entry is enabled as far as the selected elements are of your source model type. Hence, there may be other ways (views or editors) to open the diagram beyond those EMF tree editors.
Alternatively, you might want to create your own menu contribution. Here are some instructions using the Eclipse 3.X API: Register a command with some arbitrary id and a default handler. In the
execute() method of your handler call
This statements will open an eclipse view part showing your desired diagram.
<<someId>> is an the Id that can be used to access, update, or close the view part later on programmatically, and
<<someName>> is the name of the view (shown at the view's tab),
<<yourConcreteData>> is an instance of the input type of your diagram synthesis implementation. Via the last parameter some additional instructions can be handed over. For those that are not yet familiar with Eclipse menu stuff have a look on at a corresponding tutorial, e.g. at vogella.com.
Exemplary diagram syntheses
Exemplary use case diagrams (created according to by the UML2UseCaseDiagramSynthesis) and circuit diagrams (created by the CircuitDiagramSynthesis) are shown in following screenshots, the source UML & Circuit models are part of the examples project, too. In order to obtain the those diagrams enable the automatic diagram creation by activating Visualize EMF tree editor content (KLighD) as shown below.
Now you might want to use some advanced features of KLighD diagrams, like sophisticated figure styling or diagram synthesis options. Details on that will follow soon, the
EcoreDiagramSynthesis, which allows to create is in charge of creating appealing class diagrams from Ecore models and which you will also find in the examples project, illustrates those features already. The following picture shows such a diagram , and a list of options for tailoring such diagrams in the side bar on the right.