Make my custome class work with XML & UiBinder
Hello!
-- In our project we doesn`t use UiBinder and Xml. Whole interface we write by java code. I dont like this approach. I want to do it with Xml (I think there is less code because all forms are similar).
So I have a class UiForm. That has an method whitch create FieldLabel and cover Witdget withch I send to it.
public final <X extends Field<?>> X add(String key, String title, X field) {return add(key, title, field, 1);}
This looks like this:
SimpleComboBox<SettingsProfileType> type = new SimpleComboBox<SettingsProfileType>(new LabelProvider<SettingsProfileType>() {
@Override
public String getLabel(SettingsProfileType item) {
return item.name();
}
});
form.setLabelWidth(100);
form.add("profileType", "Тип профиля", type);
textField = new TextField();
textField.setAllowBlank(false);
form.setLabelWidth(60);
form.add("name", "Имя", textField);
I want to made all of this work using XML and UiBinder
1) I mark methood as "@UiChild"
2) I write XML like this
<!DOCTYPE ui:UiBinder SYSTEM "http://dl.google.com/gwt/DTD/xhtml.ent"><ui:UiBinder xmlns:ui='urn:ui:com.google.gwt.uibinder' xmlns:gxt="urn:import:com.sencha.gxt.widget.core.client"xmlns:form="urn:import:com.google.gwt.user.client.ui"><ui:with type="com.sigma.utility.web.gxt.main.ui.UIForm" field="uiform"></ui:with><gxt:Window ui:field="window" modal="true" blinkModal="true" headingText="Hello Window"><uiform ui:field="form"><add key="test" title="help!"><form:TextField/></add></uiform></gxt:Window></ui:UiBinder>
But I have an error like this:
com.google.gwt.event.shared.UmbrellaException: Exception caught: nullat com.google.gwt.event.shared.HandlerManager.fireEvent(HandlerManager.java:129)at com.sencha.gxt.cell.core.client.AbstractEventCell.fireEvent(AbstractEventCell.java:89)at com.sencha.gxt.cell.core.client.ButtonCell.onClick(ButtonCell.java:428)at com.sencha.gxt.cell.core.client.ButtonCell.onBrowserEvent(ButtonCell.java:289)at com.sencha.gxt.widget.core.client.cell.CellComponent.onBrowserEvent(CellComponent.java:221)at com.sencha.gxt.widget.core.client.button.CellButtonBase.onBrowserEvent(CellButtonBase.java:163)at com.google.gwt.user.client.DOM.dispatchEventImpl(DOM.java:1351)at com.google.gwt.user.client.DOM.dispatchEvent(DOM.java:1307)at sun.reflect.GeneratedMethodAccessor286.invoke(Unknown Source)at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)at java.lang.reflect.Method.invoke(Method.java:597)at com.google.gwt.dev.shell.MethodAdaptor.invoke(MethodAdaptor.java:103)at com.google.gwt.dev.shell.MethodDispatch.invoke(MethodDispatch.java:71)at com.google.gwt.dev.shell.OophmSessionHandler.invoke(OophmSessionHandler.java:172)at com.google.gwt.dev.shell.BrowserChannelServer.reactToMessagesWhileWaitingForReturn(BrowserChannelServer.java:338)at com.google.gwt.dev.shell.BrowserChannelServer.invokeJavascript(BrowserChannelServer.java:219)at com.google.gwt.dev.shell.ModuleSpaceOOPHM.doInvoke(ModuleSpaceOOPHM.java:136)at com.google.gwt.dev.shell.ModuleSpace.invokeNative(ModuleSpace.java:571)at com.google.gwt.dev.shell.ModuleSpace.invokeNativeObject(ModuleSpace.java:279)at com.google.gwt.dev.shell.JavaScriptHost.invokeNativeObject(JavaScriptHost.java:91)at com.google.gwt.core.client.impl.Impl.apply(Impl.java)at com.google.gwt.core.client.impl.Impl.entry0(Impl.java:242)at sun.reflect.GeneratedMethodAccessor284.invoke(Unknown Source)at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)at java.lang.reflect.Method.invoke(Method.java:597)at com.google.gwt.dev.shell.MethodAdaptor.invoke(MethodAdaptor.java:103)at com.google.gwt.dev.shell.MethodDispatch.invoke(MethodDispatch.java:71)at com.google.gwt.dev.shell.OophmSessionHandler.invoke(OophmSessionHandler.java:172)at com.google.gwt.dev.shell.BrowserChannelServer.reactToMessages(BrowserChannelServer.java:293)at com.google.gwt.dev.shell.BrowserChannelServer.processConnection(BrowserChannelServer.java:547)at com.google.gwt.dev.shell.BrowserChannelServer.run(BrowserChannelServer.java:364)at java.lang.Thread.run(Thread.java:662)Caused by: java.lang.ExceptionInInitializerErrorat com.sigma.ascip.v2.office.errorconversion.ErrorConversion$3.onClick(ErrorConversion.java:67)at com.sigma.utility.web.gxt.main.ui.button.UIButton.onClick(UIButton.java:192)at com.sigma.utility.web.gxt.main.ui.button.UIButton.access$1(UIButton.java:185)at com.sigma.utility.web.gxt.main.ui.button.UIButton$2.onSelect(UIButton.java:161)at com.sencha.gxt.widget.core.client.event.SelectEvent.dispatch(SelectEvent.java:65)at com.sencha.gxt.widget.core.client.event.SelectEvent.dispatch(SelectEvent.java:1)at com.google.gwt.event.shared.GwtEvent.dispatch(GwtEvent.java:1)at com.google.web.bindery.event.shared.EventBus.dispatchEvent(EventBus.java:40)at com.google.web.bindery.event.shared.SimpleEventBus.doFire(SimpleEventBus.java:193)at com.google.web.bindery.event.shared.SimpleEventBus.fireEvent(SimpleEventBus.java:88)at com.google.gwt.event.shared.HandlerManager.fireEvent(HandlerManager.java:127)... 31 moreCaused by: java.lang.RuntimeException: Deferred binding failed for 'com.sigma.ascip.v2.office.errorconversion.OutcomeMessageEdit$Binder' (did you forget to inherit a required module?)at com.google.gwt.dev.shell.GWTBridgeImpl.create(GWTBridgeImpl.java:53)at com.google.gwt.core.shared.GWT.create(GWT.java:57)at com.google.gwt.core.client.GWT.create(GWT.java:85)at com.sigma.ascip.v2.office.errorconversion.OutcomeMessageEdit.<clinit>(OutcomeMessageEdit.java:22)... 42 moreCaused by: com.google.gwt.core.ext.UnableToCompleteException: (see previous log entries)at com.google.gwt.dev.shell.ModuleSpace.rebind(ModuleSpace.java:605)at com.google.gwt.dev.shell.ModuleSpace.rebindAndCreate(ModuleSpace.java:465)at com.google.gwt.dev.shell.GWTBridgeImpl.create(GWTBridgeImpl.java:49)... 45 more
public class OutcomeMessageEdit {
interface Binder extends UiBinder<Widget, OutcomeMessageEdit> {
}
private static Binder uiBinder = GWT.create(Binder.class);
@UiField
Window window;
@UiField
Object form;
public OutcomeMessageEdit() {
uiBinder.createAndBindUi(this);
window.show();
}
}
You received this message because you are subscribed to the Google Groups "Google Web Toolkit" group.
To unsubscribe from this group and stop receiving emails from it, send an email to google-web-toolkit+unsubscribe@googlegroups.com.
To post to this group, send email to google-web-toolkit@googlegroups.com.
Visit this group at http://groups.google.com/group/google-web-toolkit.
For more options, visit https://groups.google.com/groups/opt_out.
0 Comments:
Post a Comment
Subscribe to Post Comments [Atom]
<< Home