...
- Right-click in the Package Explorer and select New -> Other. From the list, select KIELER Lightweight Diagrams -> KLighD Project.
- Give your new project a proper name and select the base element of the model you want to visualize. Here's what you should enter here before clicking Finish:
...
Programming the Visualization
The wizard should have created a new project and opened a file that contains a skeleton synthesis:
Code Block | ||||
---|---|---|---|---|
| ||||
package de.cau.cs.kieler.tutorials.klighd.turingvis
import javax.inject.Inject
import de.cau.cs.kieler.core.kgraph.KNode
import de.cau.cs.kieler.core.krendering.KRenderingFactory
import de.cau.cs.kieler.core.krendering.extensions.KNodeExtensions
import de.cau.cs.kieler.core.krendering.extensions.KEdgeExtensions
import de.cau.cs.kieler.core.krendering.extensions.KPortExtensions
import de.cau.cs.kieler.core.krendering.extensions.KLabelExtensions
import de.cau.cs.kieler.core.krendering.extensions.KRenderingExtensions
import de.cau.cs.kieler.core.krendering.extensions.KContainerRenderingExtensions
import de.cau.cs.kieler.core.krendering.extensions.KPolylineExtensions
import de.cau.cs.kieler.core.krendering.extensions.KColorExtensions
import de.cau.cs.kieler.klighd.syntheses.AbstractDiagramSynthesis
import static extension de.cau.cs.kieler.klighd.syntheses.DiagramSyntheses.*
import de.cau.cs.kieler.tutorials.klighd.turingmachine.TuringMachine
class TuringMachineDiagramSynthesis extends AbstractDiagramSynthesis<TuringMachine> {
@Inject extension KNodeExtensions
@Inject extension KEdgeExtensions
@Inject extension KPortExtensions
@Inject extension KLabelExtensions
@Inject extension KRenderingExtensions
@Inject extension KContainerRenderingExtensions
@Inject extension KPolylineExtensions
@Inject extension KColorExtensions
extension KRenderingFactory = KRenderingFactory.eINSTANCE
override KNode transform(TuringMachine model) {
val root = model.createNode().associateWith(model);
// Your dsl element <-> diagram figure mapping goes here!!
return root;
}
} |