protected void setAttribute(String attribute, BaseWidget value, boolean allowPostCreate) { JavaScriptObject valueJS = value.isConfigOnly() ? value.getConfig() : value.getOrCreateJsObj(); if (!isCreated()) { JSOHelper.setAttribute(config, attribute, valueJS); } else if (allowPostCreate) { setProperty(attribute, valueJS); } else { error(attribute, value.toString()); } }
JSOHelper.setArrayValue(jsArray, i, ((BaseClass) val).getJsObj()); } else if (val instanceof BaseWidget) { JSOHelper.setArrayValue(jsArray, i, ((BaseWidget) val).getOrCreateJsObj()); } else if (val instanceof Record) { JSOHelper.setArrayValue(jsArray, i, ((Record) val).getJsObj());
public Element getElement(boolean allowPreRender) { if (!isElementSet) { JavaScriptObject jsObj = getJsObj(); if (!allowPreRender) { error("This method should only be called after the component has been rendered"); } if (jsObj == null) { getOrCreateJsObj(); } Element wrapperDiv = DOM.createDiv(); DOMUtil.setID(wrapperDiv, getID() + "_wrapper"); //the wrapper div must be attached to the dom, or else this widgets children don't get //a handle to this widgets dom element (via getHandle()). For example if this self is a // HLayout and containts a Canvas and IButton child member. RootPanel.getBodyElement().appendChild(wrapperDiv); Canvas self = ((Canvas) this); //need to set properties before calling clear else the properties are not set on the jsObj (it ends up on the config) setProperty("position", Positioning.RELATIVE.getValue()); setProperty("redrawOnResize", true); setProperty("htmlElement", wrapperDiv); self.clear(); self.draw(); setElement(wrapperDiv); return wrapperDiv; } return super.getElement(); }