@doc hierarchy="GMLDOM">
Implements a prototype of an object that can be operated by the layout editor (@LayoutEditor).
Such object typically has HTML element and implements HTML painting and positioning functions.
(c) SAP AG 2003-2006. All rights reserved.
Interface ILayoutable;
// NOTE: Remove all methods/properties that are not common to both Diagram and Widget!!!
// HTML element
virtual property elem = null;
// Parent HTML element
virtual property parentElement = null;
virtual property board = null;
virtual property doc = null;
virtual property id = null;
// Layoutable type: none | diagram | box | control | viewbar | toolbar
virtual property type = 'none';
// parentElement is optional, otherwise this.getParent().elem or board.canvas are used
abstract method paint(parentElement)
<@method name="repaint">
Repaints the box after a specified attribute or field has changed
The name of the attribute that has changed. Pass ~field to indicate that a single field has changed. If omitted, the box will be fully repainted.
The id of the control that has changed, if %0 is equal to ~field.
The name of the control property that has changed, if %0 is equal to ~field and exactly one control property was modified.
abstract method repaint(attr);
/*
<@method name="setZOrder">
Sets the z-order
The new z order index
abstract method setZOrder(z);
*/
<@method name="setPos">
Sets the box position
The new position
Indicates whether to snap to the nearest valid position
abstract method setPos(pos, snap);
<@method name="capturePos">
Called once before starting a move operation.
This method can be used to capture the box position before it is moved.
abstract method capturePos();
<@method name="applyPos">
Called once after finishing a move operation.
This method can be used to apply custom behavior when the box is moved
abstract method applyPos();
<@method name="setSize">
Sets the box size
The new width
The new height
Indicates whether to snap to the nearest valid size
abstract method setSize(size, snap);
<@method name="setRect">
Sets the box position and size
The new x position
The new y position
The new width
The new height
Indicates whether to snap to the nearest valid size
abstract method setRect(rect, snap);
<@method name="captureRect">
Called once before starting a resize operation.
This method can be used to capture the box sized before it is resized.
abstract method captureRect();
<@method name="applyRect">
Called once after finishing a resize operation.
This method can be used to apply custom behavior when the box is resized
abstract method applyRect();
<@method name="resetRect">
Resets the box position and size to cancel any pending move/resize operation
abstract method resetRect();
<@method name="setVisibility">
Sets the box visibility
The box opacity level, between 0 (invisible) and 1 (visible)
abstract method setVisibility(opacity);
////////////////////////////////////////////
// VC05 new stuff
abstract method applyLayout(focusWidget, operation, repaint);
abstract method getPos();
abstract method getSize();
abstract method getRect();
<@method name="setResizePolicy">
Updates box resize policy, used by Selection Manager
abstract method setResizePolicy(policy);
<@doc scope="private">
Handles an update of base object property
abstract method onModelUpdate(evt);
<@doc scope="private">
Handles an insertion of a child object into base object
abstract method onModelInsert(evt);
<@doc scope="private">
Handles a removal of a child object from the base object
abstract method onModelRemove(evt);
// DOC: derived implementations should also take care of setBaseRect
abstract method setBasePos(pos);
abstract method setBaseSize(size);
// DOC: derived implementations should also take care of setBasePos
abstract method setBaseRect(rect);
abstract method getBasePos();
abstract method getBaseSize();
abstract method getBaseRect();
abstract method getBaseZOrder();