Enhanced dynamic behavior of symbols

MetaEdit+ lets you define rich graphical notations with dynamic behavior. A video (15min) is available to demonstrate the new features for defining dynamic behavior of symbols.

Templates for repeating common elements in multiple symbols

A new kind of symbol element, Template, lets you construct symbols from other model data, allowing modular symbols of any depth. The template's content is fetched dynamically and displayed within the host symbol, repeating as necessary. Templates can be customized for various needs, such as: 

  • The path along which the subsymbols will be placed in the host symbol
  • Rules for filling the content of a template (what elements to show, and what subsymbols to use for them)
  • Size, alignment and scaling rules for the subsymbols

In the Class Diagram below, a template is defined for showing the visibility of attributes and operations of a class: A ball colored according to the visibility is displayed before the name of the attribute or operation. Of course templates are more than just simple compartments: have a look at Santa's DSL to see more of their power.

Dynamic ports based on component interfaces etc.

Templates can be used as dynamic ports, allowing relationships to connect directly to subsymbols. Rules can be defined to ensure only legal connections are made, e.g. an Out port can only be connected to an In port.

The screenshots below show a typical example of applying dynamic ports: a component's interfaces are fetched from its subgraph and shown as ports on the edges of its symbol. 

Multiple conditional role lines

The role lines connecting objects may have different colors, thicknesses, and line styles. A single role line symbol may include several such lines, choosing between them with conditions based on the role's properties or other model data. A single role can even display multiple lines.

The line symbol definition below shows a role symbol with three different lines: green, yellow and red. Each line has a condition defined with a generator, e.g. a red line is shown for private attributes.

Symbol Browser

The new Symbol Browser lets you reuse and manage common notational elements. Symbols or parts of symbols common to many types can be saved in the Symbol Library. Templates can use the existing symbols of types or specify a different symbol from the library.