Stardust/Enhancing and Embedding Stardust/Browser Modeler/Javascript Extension Points
Contents
- 1 Overview
- 2 Prerequisites
- 3 Properties Page Extension Point
- 4 Toolbar Extension Points
- 5 Application Type Extension Point
- 6 Application Overlay Extension Point =
- 7 Data Type Extension Point
- 8 Toolbar Palette Extension Point
- 9 Toolbar Palette Entry Extension Point
- 10 Diagram Decoration Extension Point
- 11 Define a New Extension Point
Overview
Extension Points and Extensions - analogous to the concepts in Eclipse - allow you to plug-in JavaScript logic and HTML UI into various parts of the Browser Modeler (Lightdust).
E.g. by defining
propertiesPage : [{ panelId: "activityPropertiesPanel", pageId: "controllingPropertiesPage", pageHtmlUrl: "activityControllingPropertiesPage.html", provider: m_activityControllingPropertiesPage, visibility: "always" }]
you add an additional Properties Page to the Properties Pages for Activities whose code is to be found in the file activityControllingPropertiesPage.html and whose JavaScript Controller is created by invoking
m_activityControllingPropertiesPage.create()
whereby m_activityControllingPropertiesPage
is a JavaScript module in the file m_activityControllingPropertiesPage.js.
In other words: you only have to program JavaScript and HTML!
The Extension Point mechanism described here is very close to the Plug-In mechanism of Orion. It is intended to extend Lightdust's Extension Points towards the Orion Model.
Prerequisites
In order to understand the concepts in this document you need to familiarize yourself with
- JavaScript programming in general
- jQuery
- jQuery UI
- require for JavaScript
- the JavaScript Metamodel for Lightdust
Properties Page Extension Point
The Extension Point propertiesPage
allows to specify additional Properties Pages with the Properties Panel for a Diagram Element in Lightdust Diagrams.
Properties
Property | Content |
---|---|
panelId
|
ID of the Panel containing the Page, e.g. activityPropertiesPanel .
|
pageId
|
ID of the Properties Page, must be unique in the Properties Panel |
pageUrl
|
URL of the HTML content of the page |
handlerMethod
|
function of the JavaScript Controller to be invoked |
visibility
|
Flag to indicate whether the Entry is always visible (always ) or only for preview purposes (preview )
|
Example
propertiesPage : [ ..., { panelId: "activityPropertiesPanel", pageId: "controllingPropertiesPage", pageHtmlUrl: "activityControllingPropertiesPage.html", provider: m_activityControllingPropertiesPage, visibility: "always" }, ...]
Toolbar Extension Points
The Extension Point propertiesPage
allows to specify additional Properties Pages with the Properties Panel for a Diagram Element in Lightdust Diagrams.
Properties
Property | Content |
---|---|
panelId
|
ID of the Panel containing the Page, e.g. activityPropertiesPanel .
|
pageId
|
ID of the Properties Page, must be unique in the Properties Panel |
pageUrl
|
URL of the HTML content of the page |
handlerMethod
|
function of the JavaScript Controller to be invoked |
visibility
|
Flag to indicate whether the Entry is always visible (always ) or only for preview purposes (preview )
|
Example
propertiesPage : [ ..., { panelId: "activityPropertiesPanel", pageId: "controllingPropertiesPage", pageHtmlUrl: "activityControllingPropertiesPage.html", provider: m_activityControllingPropertiesPage, visibility: "always" }, ...]
Application Type Extension Point
The Extension Point propertiesPage
allows to specify additional Properties Pages with the Properties Panel for a Diagram Element in Lightdust Diagrams.
Properties
Property | Content |
---|---|
panelId
|
ID of the Panel containing the Page, e.g. activityPropertiesPanel .
|
pageId
|
ID of the Properties Page, must be unique in the Properties Panel |
pageUrl
|
URL of the HTML content of the page |
handlerMethod
|
function of the JavaScript Controller to be invoked |
visibility
|
Flag to indicate whether the Entry is always visible (always ) or only for preview purposes (preview )
|
Example
propertiesPage : [ ..., { panelId: "activityPropertiesPanel", pageId: "controllingPropertiesPage", pageHtmlUrl: "activityControllingPropertiesPage.html", provider: m_activityControllingPropertiesPage, visibility: "always" }, ...]
Application Overlay Extension Point =
Properties
Example
More Details
More details can be found here.
Data Type Extension Point
The Extension Point dataType
allows to specify additional Properties Pages with the Properties Panel for a Diagram Element in Lightdust Diagrams.
Properties
Property | Content |
---|---|
panelId
|
ID of the Panel containing the Page, e.g. activityPropertiesPanel .
|
pageId
|
ID of the Properties Page, must be unique in the Properties Panel |
readableName
|
Readable name of the Data Type |
handlerMethod
|
function of the JavaScript Controller to be invoked |
visibility
|
Flag to indicate whether the Entry is always visible (always ) or only for preview purposes (preview )
|
Example
dataType : [ ..., { panelId: "activityPropertiesPanel", pageId: "controllingPropertiesPage", readableName: "activityControllingPropertiesPage.html" }, ...]
Toolbar Palette Extension Point
The Extension Point diagramToolbarPalette
allows to specify additional Properties Pages with the Properties Panel for a Diagram Element in Lightdust Diagrams.
Properties
Property | Content |
---|---|
panelId
|
ID of the Panel containing the Page, e.g. activityPropertiesPanel .
|
pageId
|
ID of the Properties Page, must be unique in the Properties Panel |
pageUrl
|
URL of the HTML content of the page |
handlerMethod
|
function of the JavaScript Controller to be invoked |
visibility
|
Flag to indicate whether the Entry is always visible (always ) or only for preview purposes (preview )
|
Example
diagramToolbarPalette : [ ..., { panelId: "activityPropertiesPanel", pageId: "controllingPropertiesPage", pageHtmlUrl: "activityControllingPropertiesPage.html", provider: m_activityControllingPropertiesPage, visibility: "always" }, ...]
Toolbar Palette Entry Extension Point
The Extension Point diagramToolbarPaletteEntry
allows to specify single entries in a palette in a diagram toolbar.
Properties
Property | Content |
---|---|
id
|
ID of the toolbar entry |
paletteId
|
ID of the Palette the Toolbar Palette Entry is added to. |
iconUrl
|
URL of the icon for the Entry |
provider
|
require module reference for the code module providing the create() function for the JavaScript Controller of the Entry
|
handlerMethod
|
function of the JavaScript Controller to be invoked |
visibility
|
Flag to indicate whether the Entry is always visible (always ) or only for preview purposes (preview )
|
Example
diagramToolbarPaletteEntry : [ ..., { id: "selectModeButton", paletteId: "drawingPalette", title: m_i18nUtils.getProperty("modeler.diagram.toolbar.tool.selectMode.title"), iconUrl: "../../images/icons/select.png", provider: m_defaultPaletteHandler, handlerMethod: "setSelectMode", visibility: "always" }, ...]
Diagram Decoration Extension Point
The Extension Point modelDecoration
allows to specify additional Properties Pages with the Properties Panel for a Diagram Element in Lightdust Diagrams.
Properties
Property | Content |
---|---|
panelId
|
ID of the Panel containing the Page, e.g. activityPropertiesPanel .
|
pageId
|
ID of the Properties Page, must be unique in the Properties Panel |
pageUrl
|
URL of the HTML content of the page |
handlerMethod
|
function of the JavaScript Controller to be invoked |
Example
modelDecoration : [ ..., { panelId: "activityPropertiesPanel", pageId: "controllingPropertiesPage", pageHtmlUrl: "activityControllingPropertiesPage.html", provider: m_activityControllingPropertiesPage, visibility: "always" }, ...]
Define a New Extension Point
You may define your own extension points and evaluate those in the JavaScript code.
Extension Point Registration
Extension Registration
Extensions need to be registered in JavaScript files underneath the /modelerExtensions/<Extension Point Id> folder.