class Ens.BPL.UI.Diagram
extends %RegisteredObject, Ens.Util.PortalModelBase
Represents a BPL Diagram within the Studio graphical editor.
parameter XSPACE = 270;
Used for shape placement
parameter XSTART = 200;
Used for shape placement
parameter YSPACE = 100;
Used for shape placement
parameter YSTART = 150;
Used for shape placement
property Annotation
as %String(MAXLEN="");
Annotation for this diagram
property BranchList
as %String [ MultiDimensional ];
Transient list of branch elements within the diagram.
Subscripted by Index.
property Component
as %Boolean;
Flag indicating whether this is a "Component" Business Process.
property Context
as Ens.BPL.Context;
Definition of context for this diagram
property ContextSuperClass
as %String;
This holds the [ optional ] name of the context superclass
property HasErrors
as %Boolean [ InitialExpression = 0 ];
Set by BPL editor if there are logical errors within this diagram
property Height
as %Integer(MAXVAL=10000,MINVAL=0) [ InitialExpression = 2000 ];
height of the diagram
property Includes
as %String;
This holds an [ optional ] list of include files.
property LabelList
as %String [ MultiDimensional ];
Transient list of label elements within the diagram.
Subscripted by Name.
property Language
as %String(MAXLEN=20) [ InitialExpression = "objectscript" ];
This holds the language of the class
property LastModified
as %TimeStamp;
Time the source for this diagram was last modified
property Layout
as %String(MAXLEN=20) [ InitialExpression = "automatic" ];
This holds the layout flag for the diagram
property Name
as %String(MAXLEN=50);
Name of this diagram
property PyFromImport
as %String;
This holds optional list of Python "from" and "import" statements supporting modules available to each Python sub-context.
property Request
as %String(MAXLEN=255) [ Required ];
This holds the type of the input message
property Response
as %String(MAXLEN=255) [ Required ];
This holds the type of the output message
property ShapeList
as list of Shape;
List of all top-level shapes within this diagram.
property ShowAnnotation
as %Boolean;
Flag indicating whether to show the annotation
property Version
as %Integer(MINVAL=0);
This holds the version # for the diagram
property Width
as %Integer(MAXVAL=10000,MINVAL=0) [ InitialExpression = 2000 ];
width of the diagram
classmethod ArrangeShapes(xp As %Integer, yp As %Integer, shape As Shape, ByRef depthArray, ByRef widthArray)
Duplicate of client logic used to auto-arrange shapes
method ConvertToBPL(pOutStream As %BinaryStream, Output pConverted As %Boolean)
as %Status
Convert this diagram to BPL
classmethod CreateBPLFromXML(pInStream As %Stream.Object, pOutStream As %Stream.Object)
as %Status
Convert an xml diagram-document into a set of BPL objects
classmethod CreateDiagramFromBPL(pName As %String, pProcess As Ens.BPL.Process = "")
as Diagram
Create a Diagram from a BPL parse tree
If pProcess is missing, create a default diagram.
classmethod CreateDiagramFromXML(pInStream As %Stream.Object, ByRef pDiagram As Diagram)
as %Status
Convert an xml diagram-document into a Diagram and its related objects.
classmethod CreateNewDiagram(pName As %String)
as Diagram
Create an empty default diagram (with start and end tags)
classmethod GetBPLStream(cls As %String, ByRef pXDataName As %String, ByRef pDesc As %String, Output pTimestamp As %TimeStamp, pConcurrency As %Integer = -1)
as %Stream.Object
Find the BPL definition (as a stream) for the given
BPL class; return "" if not found.
Returns if this is a BPL or an BPLError XDATA block
Also returns Description for this class
method InsertShape(pShape As Shape, pParent As Shape = "")
Add a shape to this Diagram.
pParent, if present, is the parent shape to insert into.
classmethod Open(id As %String, ByRef pDiagram As Diagram, pConcurrency As %Integer = -1)
as %Status
Called by Studio interface to open a diagram
classmethod ProcessGroup(diagram As Diagram, pParent As Shape, pActivities As Ens.BPL.ActivityList, pSequence As Ens.BPL.Activity)
Create a sub-group of shapes
method Serialize(pState As %CharacterStream)
Serialize this diagram for use by the editor.
classmethod WalkActivityList(diagram As Diagram, pParent As Shape, pActivities As Ens.BPL.ActivityList, ByRef xPos As %Integer, ByRef yPos As %Integer, ByRef prevAct As Shape, connectLabel As %String = "", connectCondition As %String = "", connectDisabled As %Boolean = 0, connectType As %String = "", connectLanguageOverride As %String = "")