Runtime

## Package org.eclipse.gmf.runtime.notation

Notation meta-model primary package.

See:
Description

Interface Summary
Anchor: A representation of the model object 'Anchor'.
Bendpoints: A representation of the model object 'Bendpoints'.
BooleanListValueStyle: A representation of the model object 'Boolean List Value Style'
BooleanValueStyle: A representation of the model object 'Boolean Value Style'
Bounds: A representation of the model object 'Bounds'.
ByteArrayValueStyle: A representation of the model object 'Byte Array Value Style'
CanonicalStyle: A representation of the model object 'Canonical Style'.
ConnectorStyle: A representation of the model object 'Connector Style'.
DataTypeStyle: A representation of the model object 'Data Type Style'
DescriptionStyle: A representation of the model object 'Description Style'.
Diagram: A representation of the model object 'Diagram'.
DiagramLinkStyle: A representation of the model object 'Diagram Link Style'
DiagramStyle: A representation of the model object 'Diagram Style'
DobleValueStyle: A representation of the model object 'Doble Value Style'
DoubleListValueStyle: A representation of the model object 'Double List Value Style'
DoubleValueStyle: A representation of the model object 'Double Value Style'
DrawerStyle: A representation of the model object 'Drawer Style'.
Edge: A representation of the model object 'Edge'.
EObjectListValueStyle: A representation of the model object 'EObject List Value Style'
EObjectValueStyle: A representation of the model object 'EObject Value Style'
FillStyle: A representation of the model object 'Fill Style'.
FilteringStyle: A representation of the model object 'Filtering Style'.
FontStyle: A representation of the model object 'Font Style'.
Guide: A representation of the model object 'Guide'.
GuideStyle: A representation of the model object 'Guide Style'.
HintedDiagramLinkStyle: A representation of the model object 'Hinted Diagram Link Style'
IdentityAnchor: A representation of the model object 'Identity Anchor'.
Image: A representation of the model object 'Image'.
ImageBufferStyle: A representation of the model object 'Image Buffer Style'
ImageStyle: A representation of the model object 'Image Style'
IntListValueStyle: A representation of the model object 'Int List Value Style'
IntValueStyle: A representation of the model object 'Int Value Style'
LayoutConstraint: A representation of the model object 'Layout Constraint'.
LineStyle: A representation of the model object 'Line Style'.
ListValueStyle: A representation of the model object 'List Value Style'
Location: A representation of the model object 'Location'.
MultiDiagramLinkStyle: A representation of the model object 'Multi Diagram Link Style'
NamedStyle: A representation of the model object 'Named Style'
Node: A representation of the model object 'Node'.
NodeEntry: A representation of the model object 'Node Entry'
NotationFactory: The Factory for the model.
NotationPackage: The Package for the model.
NotationPackage.Literals: Defines literals for the meta objects that represent each class, each feature of each class, each enum, and each data type
PageStyle: A representation of the model object 'Page Style'.
PropertiesSetStyle: A representation of the model object 'Properties Set Style'
PropertyValue: A representation of the model object 'Property Value'
Ratio: A representation of the model object 'Ratio'.
RelativeBendpoints: A representation of the model object 'Relative Bendpoints'.
RoutingStyle: A representation of the model object 'Routing Style'.
ShapeStyle: A representation of the model object 'Shape Style'.
SingleValueStyle: A representation of the model object 'Single Value Style'
Size: A representation of the model object 'Size'.
SortingStyle: A representation of the model object 'Sorting Style'.
StringListValueStyle: A representation of the model object 'String List Value Style'
StringObjectConverter: A representation of the model object 'String Object Converter'
StringToPropertyValueMapEntry: A representation of the model object 'String To Property Value Map Entry'
StringValueStyle: A representation of the model object 'String Value Style'
Style: A representation of the model object 'Style'.
TitleStyle: A representation of the model object 'Title Style'.
View: A representation of the model object 'View'.

Class Summary
Alignment: A representation of the literals of the enumeration 'Alignment', and utility methods for working with them
Filtering: A representation of the literals of the enumeration 'Filtering', and utility methods for working with them
JumpLinkStatus: A representation of the literals of the enumeration 'Jump Link Status', and utility methods for working with them
JumpLinkType: A representation of the literals of the enumeration 'Jump Link Type', and utility methods for working with them
MeasurementUnit: A representation of the literals of the enumeration 'Measurement Unit', and utility methods for working with them
NotationPlugin: This is the central singleton for the notation model plugin.
NotationPlugin.Implementation: The actual implementation of the Eclipse Plugin .
Routing: A representation of the literals of the enumeration 'Routing', and utility methods for working with them
Smoothness: A representation of the literals of the enumeration 'Smoothness', and utility methods for working with them
Sorting: A representation of the literals of the enumeration 'Sorting', and utility methods for working with them
SortingDirection: A representation of the literals of the enumeration 'Sorting Direction', and utility methods for working with them

## Package org.eclipse.gmf.runtime.notation Description

Notation meta-model primary package.

## Package Specification

This package exposes the notation meta-model API which is used to create notation models. These models usually play the model part of a Model-View-Controller (MVC) architecture for diagrams. Notation models reference other business models (eg. UML models) and store information needed for the visualization of these business models in diagrams. One advantage of maintaining two separate models it to allow the business model to be visualized differently with each notation model.

## Description of the Notation Meta-Model Classes

### 1. View Classes

The views are the central abstraction in a notation model. View objects reference a business model and contain other notation objects that together hold all the properties needed to visualize that business model. The reason the view object does not have all the properties itself but rather delegates to other abstractions is to allow for easy extension of properties.

#### 1.1 View

The abstract view class is the super class of all view elements. It extends off EModelElement, which is in the EMF core package. It inherits from EmodelElement the ability to be extensible through annotations. The view class has the following properties:

- A 'visible' property, which determines whether the view is visible or not.
- A 'type' property, which is a user-defined type for the view
- An 'element' property, which references an EObject representing a business model element.
- A 'children' collection property, which is used to compose one or more node views if the view is a container.
- A 'styles' collection property, which is used to install one or more styles containing various notational properties on the view. The advantages of aggregating styles versus defining their properties directly on the views include the ability for more than one extension to contribute properties at the same time, to simply morphing of views which usually require style changes and to avoid redundancy by installing only those styles that are relevant to the view's context.
- A 'sourceEdges' collection property, which is a list of zero or more outgoing edges from the view.
- A 'targetEdges' collection property, which is a list of zero or more incoming edges to the view.

#### 1.2 Node

A node is a view that can composed and laid out in a container view. The node class has the following property:

- A 'layoutConstraint' property, which defines an optional constraint suitable for the container's layout manager. The reason for the aggregate pattern is to give the flexibility to change the layout constraint if the view is moved to another parent with a different layout manager.

#### 1.3 Edge

An edge is a view that represents a connection between two other views. The edge class has the following properties:

- A 'source' property, which is a reference to the source view of the edge.
- A 'target' property, which is a reference to the target view of the edge.
- A 'sourceAnchor' property, which is an object representing an anchor at the source view. The source anchor must make sense in the context of the source view.
- A 'targetAnchor' property, which is an object representing an anchor at the target view. The target anchor must make sense in the context of the target view.
- A 'bendpoints' property, which is an optional object representing a list of bendpoints constraining the edge routing.

#### 1.4 Diagram

A diagram is a view that represents the top level containment of views. The diagram class has the following properties:

- A 'name' property, which is the name of the diagram.

### 2. Style classes

A style is an object containing properties that affect the visualization of a view. An instance of a style class is created and stored in the 'styles' collection of a view instance.

#### 2.1 Style

The style interface captures the concept of a style.

#### 2.2 FillStyle

The fill style is a style to specify the fill properties of a node. The class has the following property:

- A 'fillColor' property, which specifies the fill color or the background color of figures.

#### 2.3 LineStyle

The line style is a style to be installed on views with lines. The class has the following property:

- A 'lineColor' property, which specifies the line color (the foreground) color of figures.

#### 2.4 FontStyle

The font style is a style to be installed on views with text. The class has the following properties:

- A 'fontColor' property, which specifies the font color.
- A 'fontName property, which specifies the name of the desired font.
- A 'fontHeight' property, which specifies the height of the desired font.
- A 'bold' property, which specifies whether the font style is bold.
- An 'italic' property, which specifies whether the font style is italic.
- An 'underline' property, which specifies whether the font style is underline.
- A 'strikeThrough' property, which specifies whether the font style is strike-through.

####

#### 2.5 RoutingStyle

The routing style is a style to be installed on edges to guide their routing. The class has the following properties:

- A 'routing' property, which specifies the desired routing algorithm. The different algorithms are defined by the 'Routing' enumeration as follows:
  - MANUAL
  - RECTILINEAR
  - TREE
- A 'smoothness' property, which specifies the smoothness kind of the edge's route. The kinds are defined by the 'Smoothness' enumeration as follows:
  - NONE:
  - NORMAL :
  - LESS:
  - MORE:
- An 'avoidObstructions' property, which specifies whether the edge's router should try to avoid obstructions.
- A 'closestDistance' property, which specifies whether the edge's router should try to route based on the closest distance.
- A 'jumpLinskStatus' property, which specifies what the edge's router does when it crosses another edge during routing. The values of the property are defined in the 'JumpLinkStatus' enumeration as follows:
  - NONE:
  - ALL:
  - BELOW:
  - ABOVE
- A 'jumpLinksType' property, which specifies the type of the jump a router takes when it crosses another edge during routing. The values of the property are defined in the 'JumpLinkStatus' enumeration as follows:
  - SQUARE:
- SEMICIRCLE
  - CHAMFERE
- A 'jumpLinksReverse' property, which specifies whether the router should reverse the jump links a router takes when it crosses another edge during router.

####

#### 2.6 DescriptionStyle

The description style is a style to be installed on views to give them description texts. The class has the following property:

- A 'description ' property, which specifies the notational description text owned by the view.

#### 2.7 DrawerStyle

####

The drawer style is a style to be installed on nodes that can be collapsed like a drawer. The class has the following property:

- A 'collapsed' property, which specifies whether a node is collapsed or not

#### 2.8 TitleStyle

####

The title style is a style to be installed on views that have a title. The class has the following property:

- A 'showTitle' property, which specifies whether the view's title is visible or not.

###

#### 2.9 SortingStyle

The sorting style is a style to be installed on nodes representing lists to be sorted. The class has the following property:

- A 'sorting' property, which specifies the type of sorting applied. The values of the property is defined in the 'Sorting' enumeration as follows:
  - None
  - Manual
  - Automatic
- A 'sortedObjects' collection property, which is used in the Manual case to reference the sorted objects in sequence.
- A 'sortingKeys' property, which is a java map used in the Automatic case to map a sequence of sorting keys to sorting directions. While sorting keys are strings, sorting directions are defined by the 'SortingDirection' enumeration as follows:
  - Ascending
  - Descending

###

#### 2.10 FilteringStyle

The filtering style is a style to be installed on nodes representing lists to be filtered. The class has the following property:

- A 'filteing' property, which specifies the type of filtering applied. The values of the property is defined in the 'Filtering' enumeration as follows:
  - None
  - Manual
  - Automatic
- A 'filteredObjects' collection property, which is used in the Manual case to reference the filtered objects.
- A 'filteringKeys' property, which is a java list used in the Automatic case to list the filtering keys as strings.

#### 2.11 CanonicalStyle

####

The canonical style is a style to be installed on views that need to be synchronized with business model. The class has the following property:

- A 'canonical' property, which specifies whether the view's canonical mode is on or off.

#### 2.12 PageStyle

####

The page style is a style to be installed on multi-page diagrams. The class has the following property:

- A 'pageX' property, which specifies the x-origin of the page.
- A 'pageY' property, which specifies the y-origin of the page.
- A 'pageWidth' property, which specifies the width of the page.
- A 'pageHeight' property, which specifies the height in of the page.

#### 2.13 GuideStyle

####

The guide style is a style to be installed on diagrams that support guides. A 'Guide' is an object with the following properties:

- A 'position' property, which specifies the position a long the diagram axis.
- A 'nodeMap' property, which is a map of nodes to their alignment in respect to the guide. Alignment values are:
  - Left
  - Right
  - Center
  - Top
  - Bottom

The guide style class has the following property:

- A 'horizontalGuides' collection property, which is a collection of horizontal guides on the diagram
- A

'verticalGuides' collection property, which is a collection of vertical guides on the diagram

### 3. LayoutConstraint Classes

Layout constraints are used by layout managers to properly set the location/size/bounds of a node's visuals. Since the layout constraint can be different based on the type of layout manager using it, the composition pattern is used to allow for changing the layout constraint type easily.

#### 3.1 LayoutConstraint

The layout constraint interface captures the concept of a layout constraint.

#### 3.2 Location

The location constraint specifies the position of a node. The class has the following properties:

- A 'x' property, which is a location (or distance) along the x-axis in measurement units.
- A 'y' property, which is a location (or distance) along the y-axis in measurement units.

#### 3.3 Size

The size constraint specifies the extent of a node. The class has the following properties:

- A 'width' property, which is a distance along the x-axis in measurement units. A value of -1 means there is no specific width and it is up to the layout manager to assign width.
- A 'height' property, which is a distance along the y-axis in measurement units. A value of -1 means there is no specific height and it is up to the layout manager to assign height.

#### 3.4 Bounds

The bounds constraint specifies the bounds of a node. The class inherits its properties from the super classes 'Location' and 'Size'.

#### 3.5 Ratio

The ratio constraint specifies the size ratio of a node in its container. This constraint is suitable for layout algorithms where each child gets a ratio of the container. The class has the following properties:

- A 'value' property, which is a double property representing the ratio. A value of -1 means there is no required ratio and it is up to the layout manager to assign ratio.

### 4. Bendpoints

'Bendpoints' is a routing constraint installed on edges to suggest that their routing pass through a specific collection of points.

#### 3.3 RelativeBendpoints

A type of bendpoints representing a collection of points with relative distances along the x- and y-axis to the source and target views of an edge. The class has the following properties:

- A 'points' property, which is a java list of relative bendpoints. RelativeBendpoint has the following properties:
  - A 'sourceX' property, which is the point's x-axis distance from the point of attach with the source view.
  - A 'sourceY' property, which is the point's y-axis distance from the point of attach with the source view.
  - A 'targetX' property, which is the point's x-axis distance from the point of attach with the target view.
  - A 'targetY' property, which is the point's y-axis distance from the point of attach with the target view.

### 1.1.6 Anchor

An anchor is a routing constraint installed on edges to identify where the source/target views should anchor that edge. This abstract class only captures the concept of an anchor without restricting it by properties.

#### 1.1.6.1 IdentityAnchor

The identity anchor is an anchor constraint which has a unique string id. The class has the following property:

- An 'id property, which is a unique string identifying the anchor at the source/target view. The default value is "anchor" (since most views have one anchor)

Runtime

Guidelines for using Eclipse APIs.

Copyright (c) IBM Corp., Borland Software Corp., and others 2005,2006. All rights reserved.