<@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();