I need to insert [number] of ujBinder widgets in another, in a specific place. The widget you entered has a somewhat complicated layout, so I'm trying to define it in HTML.
referencePanel.add (...) does not work with java.lang.IllegalStateException: the parent of this widget does not implement HasWidgets. I donβt know which widget the parent is unhappy with - innerPanel or referencePanel.
If the ReferenceUI object is added to the RootPanel, then it is added at the bottom of the page. But if he first adds a RootPanel, then when added to the referencePanel there is JavaScriptException 3 (HIERARCHY_REQUEST_ERR) code.
Any suggestions?
public class AppUIDemo extends Composite { @UiTemplate("AppUIDemo.ui.xml") interface AppUIDemoUiBinder extends UiBinder<Widget, AppUIDemo> { } @UiTemplate("ReferenceUI.ui.xml") interface ReferenceUIUiBinder extends UiBinder<Widget, ReferenceUI> { } private static AppUIDemoUiBinder uiBinder = GWT .create(AppUIDemoUiBinder.class); private static ReferenceUIUiBinder refUIBinder = GWT .create(ReferenceUIUiBinder.class); @UiField FlowPanel referencePanel; public AppUIDemo() { initWidget(uiBinder.createAndBindUi(this)); ReferenceUI reference = new ReferenceUI(refUIBinder); HTMLPanel innerPanel = reference.getRefPanel(); innerPanel.getElement().setId(HTMLPanel.createUniqueId()); referencePanel.add(innerPanel); } }
public class ReferenceUI extends Composite { interface ReferenceUIUiBinder extends UiBinder<Widget,ReferenceUI> { } private static ReferenceUIUiBinder uiBinder = GWT .create(ReferenceUIUiBinder.class); @UiField HTMLPanel refPanel; public ReferenceUI() { initWidget(uiBinder.createAndBindUi(this)); } public CreditReferenceUI(final UiBinder<Widget, CreditReferenceUI> binder) { initWidget(binder.createAndBindUi(this)); } public HTMLPanel getRefPanel() { return refPanel; } }
ReferenceUI.ui.xml
<!DOCTYPE ui:UiBinder SYSTEM "http://dl.google.com/gwt/DTD/xhtml.ent"> <ui:UiBinder xmlns:ui="urn:ui:com.google.gwt.uibinder" xmlns:g="urn:import:com.google.gwt.user.client.ui" xmlns:gwittir="urn:import:com.totsp.gwittir.client.ui"> <g:HTMLPanel ui:field="referencePanel"> <table> <tr> <td> <b>First Name</b></td> <td> <b>Last Name</b></td> <td> <b>Phone</b></td> <td> <b>Fax</b></td> </tr> <tr> <td> <gwittir:TextBox ui:field="referenceFirstName" styleName="input"/></td> <td> <gwittir:TextBox ui:field="referenceLastName" styleName="input"/></td> <td> <table><tr> <td> ( </td> <td> <gwittir:TextBox ui:field="referencePhoneAreaCode" styleName="input" maxLength="3"/></td> <td> ) </td> <td> <gwittir:TextBox ui:field="referencePhoneNumber" styleName="input" maxLength="7"/></td> <td> # </td> <td> <gwittir:TextBox ui:field="referencePhoneExtension" styleName="input" maxLength="25"/></td> </tr></table></td> <td> <table><tr> <td> ( </td> <td> <gwittir:TextBox ui:field="referenceFaxAreaCode" styleName="input" maxLength="3"/></td> <td> ) </td> <td> <gwittir:TextBox ui:field="referenceFaxNumber" styleName="input" maxLength="7"/></td> </tr></table></td> </tr> <tr> <td style="text-align:right"> <b>Address: </b> Street</td> <td> <gwittir:TextBox ui:field="referenceStreet" styleName="input"/></td> <td colspan="2" style="width:50%"> <table><tr><td> City</td> <td><gwittir:TextBox ui:field="referenceCity" styleName="input" maxLength="25"/></td> <td> State </td> <td class="state"><gwittir:TextBox ui:field="referenceState" styleName="input" maxLength="2"/></td> <td> ZIP</td> <td><gwittir:TextBox ui:field="referenceZIP" styleName="input" maxLength="9"/></td></tr></table> </td> </tr> </table> </g:HTMLPanel> </ui:UiBinder>
AppUIDemo.ui.xml
<!DOCTYPE ui:UiBinder SYSTEM "http://dl.google.com/gwt/DTD/xhtml.ent"> <ui:UiBinder xmlns:ui="urn:ui:com.google.gwt.uibinder" xmlns:g="urn:import:com.google.gwt.user.client.ui" xmlns:gwittir="urn:import:com.totsp.gwittir.client.ui"> <g:HTMLPanel ui:field="basePanel"> <p><h2><b>Application Demo</b></h2></p> <g:FlowPanel ui:field="referencePanel"> </g:FlowPanel> </g:HTMLPanel> </ui:UiBinder>
java xml gwt widget uibinder
jprusakova
source share