<@doc alias="layout" hierarchy="GMLDOM"> Interactor Layout Aspect (c) SAP AG 2003-2006. All rights reserved. Aspect FormViewLayout for core.lyt:Layout; inherit InteractorLayout; override virtual method layoutContents(focusWidget) // debugger; var pos = SPLIT(base.pos); // NOTE: DOM dependency var size = SPLIT(base.size); // NOTE: DOM dependency var rootCtlInfo = { object: base, // this object (interactor/group/control) group : true, // does this object contains 'children' melting : false, // is this group a melting group (layed out like regular control) interactor: true, // is this object is the interactor itself x : INT(pos[0]||0), y : INT(pos[1]||0), w : INT(size[0]||320), h : INT(size[1]||240), label : null, // if label participates in calculations, this is the label text labelw : -1, // if label participates in calculations, this is the label width index : -1, // object's index in its parent focus: null, // if children contain focusWidget's ctlInfo, this points to it. children: [] // ctlInfo of child objects (groups/controls) }; fillInfo(this, rootCtlInfo); var changes = []; RULE('rearrangeWidgets', base, this.board, rootCtlInfo, changes); if (changes.length > 0) { RULE('doApplyLayout', base, changes); this.repaint('contents'); } return; function fillInfo(parentWidget, parentInfo) { var controls = parentWidget.controls||{}; for (var iter in controls) { var ctlWidget = controls[iter]; var ctl = ctlWidget.base; var pos = SPLIT(ctl.pos); // NOTE: DOM dependency var size = SPLIT(ctl.size); // NOTE: DOM dependency var ctlInfo = { object : ctl, group : false, melting : false, interactor : false, x : INT(pos[0]||0), y : INT(pos[1]||0), w : INT(size[0]||100), h : INT(size[1]||16), label : ctlWidget.getLabelText(), labelw : ctlWidget.getLabelWidth(), index : ctl.index, scaleMode : ctlWidget.scaleMode, minWidth : ctlWidget.minWidth, defaultWidth: ctlWidget.defaultWidth, focus : false, children : null }; parentInfo.children.push(ctlInfo); if (focusWidget && focusWidget.id == ctlWidget.id) parentInfo.focus = ctlInfo; if (ctlWidget.isa('#NS[SectionLayout]')) { ctlInfo.group = true; ctlInfo.children = []; fillInfo(ctlWidget, ctlInfo); } if (ctlWidget.isa('#NS[MeltingGroupLayout]')) { ctlInfo.group = true; ctlInfo.melting = true; ctlInfo.children = []; fillInfo(ctlWidget, ctlInfo); } }// for each control } // fillInfo end