Tuesday, November 2, 2010

Re: UiBinder fails after upgrading to gwt 2.1.0

MainMenu.ui.xml:

<ui:UiBinder xmlns:ui="urn:ui:com.google.gwt.uibinder"
xmlns:g="urn:import:com.google.gwt.user.client.ui">

<ui:with field="css"
type="org.sitebrand.ui.gwt.resources.UiResources.MainMenuCss" />
<ui:with field="lbls"
type="org.sitebrand.ui.gwt.resources.MainMenuLbls" />
<ui:with field="debugIds"
type="org.sitebrand.gwt.constants.DebugConstants" />

<g:MenuBar stylePrimaryName="{css.primary}">
<g:MenuItem ui:field="campaigns"
debugId="{debugIds.menuitem_campaigns}" text="{lbls.campaigns}">
<g:MenuBar vertical="true">
<g:MenuItem ui:field="createCampaign"
text="{lbls.createCampaign}" />
<g:MenuItem ui:field="viewCampaigns"
text="{lbls.viewCampaigns}" />
<g:MenuItem ui:field="campaignPriority"
text="{lbls.campaignPriority}" />
<g:MenuItem ui:field="reports"
text="{lbls.reports}" />
</g:MenuBar>
</g:MenuItem>

<g:MenuItem ui:field="content"
debugId="{debugIds.menuitem_content}" text="{lbls.content}">
<g:MenuBar vertical="true">
<g:MenuItem
ui:field="createContent"
text="{lbls.createContent}" />
<g:MenuItem
ui:field="viewContent"
text="{lbls.viewContent}" />
<g:MenuItem
ui:field="integrate"
text="{lbls.integrate}" />
</g:MenuBar>
</g:MenuItem>

<g:MenuItem ui:field="segments"
debugId="{debugIds.menuitem_segments}" text="{lbls.segments}">
<g:MenuBar vertical="true">
<g:MenuItem
ui:field="createSegment"
text="{lbls.createSegment}" />
<g:MenuItem
ui:field="viewSegments"
text="{lbls.viewSegments}" />
</g:MenuBar>
</g:MenuItem>

<g:MenuItem ui:field="layout"
debugId="{debugIds.menuitem_layout}" text="{lbls.layout}">
<g:MenuBar vertical="true">
<g:MenuItem
ui:field="addTemplate"
text="{lbls.addTemplate}" />
<g:MenuItem
ui:field="viewTemplates"
text="{lbls.viewTemplates}" />
</g:MenuBar>
</g:MenuItem>

<g:MenuItem ui:field="account"
debugId="{debugIds.menuitem_account_mgmt}" text="{lbls.account}">
<g:MenuBar vertical="true">
<g:MenuItem
ui:field="myAccount"
text="{lbls.myAccount}" />
<g:MenuItem
ui:field="organizations"
text="{lbls.organizations}" />
<g:MenuItem
ui:field="sites"
text="{lbls.sites}" />
<g:MenuItem
ui:field="users"
text="{lbls.users}" />
<g:MenuItem
ui:field="globalSettings"
text="{lbls.globalSettings}" />
</g:MenuBar>
</g:MenuItem>

<g:MenuItem ui:field="help" debugId="{debugIds.menuitem_help}"
text="{lbls.help}">
<g:MenuBar vertical="true">
<g:MenuItem
ui:field="manual"
text="{lbls.manual}" />
<g:MenuItem
ui:field="support"
text="{lbls.support}" />
</g:MenuBar>
</g:MenuItem>
</g:MenuBar>

</ui:UiBinder>

MainMenu.java:

public class MainMenu extends Composite {

/*
*
=========================================================================
* UiBinder
*
=========================================================================
*/

interface Binder extends UiBinder<Widget, MainMenu> {}

private static Binder uiBinder = GWT.create(Binder.class);

static {
getCss().ensureInjected();
}

@UiFactory
public static MainMenuCss getCss() {
return UiResources.INST.mainMenuCss();
}

@UiFactory
public static MainMenuLbls getLbls() {
return MainMenuLbls.INST;
}

/*
*
=========================================================================
* Instance
*
=========================================================================
*/

// Top level menu items
@UiField
MenuItem campaigns, content, segments, layout, account, help;

// Campaigns menu items
@UiField
MenuItem createCampaign, viewCampaigns, campaignPriority, reports;

// Content menu items
@UiField
MenuItem createContent, viewContent, integrate;

// Segments menu items
@UiField
MenuItem createSegment, viewSegments;

// Layout menu items
@UiField
MenuItem addTemplate, viewTemplates;

// Account menu items
@UiField
MenuItem myAccount, organizations, sites, users, globalSettings;

// Help menu items
@UiField
MenuItem manual, support;

public MainMenu() {
initWidget(uiBinder.createAndBindUi(this));

UserServiceManager.getClientSession(new GotClientSession() {
@Override
public void got(ClientSession session) {
boolean canEditDomain = session.hasAtLeastPermission(
PermissionType.EDIT, SecurableComponent.GENERAL);

if (!canEditDomain) {
createCampaign.setVisible(false);
campaignPriority.setVisible(false);

createContent.setVisible(false);

segments.setSubMenu(new MenuBar());
segments.setCommand(viewSegments.getCommand());

layout.setSubMenu(new MenuBar());
layout.setCommand(viewTemplates.getCommand());
}

boolean singleItemAccountMenu =
!session.canAdministerAtLeastOneOrganization() &&
!session.canAdministerAtLeastOneSite() &&
!session.isSitebrandAdmin();
if (singleItemAccountMenu) {
account.setSubMenu(new MenuBar());
account.setCommand(myAccount.getCommand());
} else {
if (!
session.canAdministerAtLeastOneOrganization()) {
organizations.setVisible(false);
}

if (!session.canAdministerAtLeastOneSite()) {
sites.setVisible(false);
}

boolean showUsers =
session.canAdministerAtLeastOneOrganization()
||
session.canAdministerAtLeastOneSite();
if (!showUsers) {
users.setVisible(false);
}

if (!session.isSitebrandAdmin()) {
globalSettings.setVisible(false);
}
}
}
});

createCampaign.setCommand(new Command() {
@Override
public void execute() {
new CreateCampaignWindow().show();
}
});

viewCampaigns.setCommand(new Command() {
@Override
public void execute() {
MainTabPanel.get().addTab(new MarketingMainPanel(),
getLbls().campaigns());
}
});

campaignPriority.setCommand(new Command() {
@Override
public void execute() {
MainTabPanel.get().addTab(new
CampaignPriorityMainPanel(),
getLbls().campaignPriority());
}
});

reports.setCommand(new Command() {
@Override
public void execute() {
MainTabPanel.get().addTab(new ReportsMain(),
getLbls().reports());
}
});

createContent.setCommand(new Command() {
@Override
public void execute() {
new AddContentWindow().show();
}
});

viewContent.setCommand(new Command() {
@Override
public void execute() {
MainTabPanel.get().addTab(new ContentMainPanel(),
getLbls().content());
}
});

integrate.setCommand(new Command() {
@Override
public void execute() {
MainTabPanel.get().addTab(new IntegrationMainPanel(),
getLbls().integrate());
}
});

createSegment.setCommand(new Command() {
@Override
public void execute() {
new NewSegmentWindow().show();
}
});

viewSegments.setCommand(new Command() {
@Override
public void execute() {
MainTabPanel.get().addTab(new SegmentMainPanel(),
getLbls().segments());
}
});

addTemplate.setCommand(new Command() {
@Override
public void execute() {
new CreateTemplateWindow(null).show();
}
});

viewTemplates.setCommand(new Command() {
@Override
public void execute() {
MainTabPanel.get().addTab(new TemplatesMainPanel(),
getLbls().layout());
}
});

myAccount.setCommand(new Command() {
@Override
public void execute() {
MainTabPanel.get().addTab(new MyAccountPanel(),
getLbls().myAccount());
}
});

organizations.setCommand(new Command() {
@Override
public void execute() {
MainTabPanel mtp = MainTabPanel.get();
if (!mtp.setFocus(OrganizationsMainPanel.class)) {
mtp.addTab(new OrganizationsMainPanel(), getLbls()
.organizations());
}
}
});

sites.setCommand(new Command() {
@Override
public void execute() {
MainTabPanel mtp = MainTabPanel.get();
if (!mtp.setFocus(SitesMainPanel.class)) {
mtp.addTab(new SitesMainPanel(),
getLbls().sites());
}
}
});

users.setCommand(new Command() {
@Override
public void execute() {
MainTabPanel mtp = MainTabPanel.get();
if (!mtp.setFocus(UsersAndRolesMainPanel.class)) {
mtp.addTab(new UsersAndRolesMainPanel(), getLbls()
.users());
}
}
});

globalSettings.setCommand(new Command() {
@Override
public void execute() {
MainTabPanel mtp = MainTabPanel.get();
if (!mtp.setFocus(AdminMainPanel.class)) {
mtp.addTab(new AdminMainPanel(),
getLbls().globalSettings());
}
}
});

manual.setCommand(new Command() {
@Override
public void execute() {
Window.open(MANUAL_URL, "_blank", "");
}
});

support.setCommand(new Command() {
@Override
public void execute() {
Window.open(SUPPORT_URL, "_blank", "");
}
});
}
}

On Nov 2, 1:15 pm, Jeff Schwartz <jefftschwa...@gmail.com> wrote:
> Is it possible to post both the uibinder's xml and java class files? It
> would help. Thanks.
>
> On Tue, Nov 2, 2010 at 12:03 PM, pgraham <philip.robert.gra...@gmail.com>wrote:
>
>
>
>
>
>
>
>
>
> > Hi all,
>
> > After upgrading to gwt 2.1.0 I get the following exception when
> > starting up hosted mode:
>
> > onModuleLoad() threw an exception
>
> > Exception while loading module org.sitebrand.ui.gwt.shell.MainEntry.
> > See Development Mode for details.
> > java.lang.reflect.InvocationTargetException at
> > sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> >  at
> > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:
> > 39)
> >  at
>
> > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImp l.java:
> > 25)
> >  at java.lang.reflect.Method.invoke(Method.java:597)
> >  at com.google.gwt.dev.shell.ModuleSpace.onLoad(ModuleSpace.java:396)
> >  at
>
> > com.google.gwt.dev.shell.OophmSessionHandler.loadModule(OophmSessionHandler .java:
> > 183)
> >  at
>
> > com.google.gwt.dev.shell.BrowserChannelServer.processConnection(BrowserChan nelServer.java:
> > 510)
> >  at
>
> > com.google.gwt.dev.shell.BrowserChannelServer.run(BrowserChannelServer.java :
> > 352)
> >  at java.lang.Thread.run(Thread.java:619)
>
> > Caused by: java.lang.ExceptionInInitializerError
> >  at org.sitebrand.ui.gwt.widgets.panel.TopPanel.(TopPanel.java:37)
> >  at
> > org.sitebrand.ui.gwt.shell.MainEntry.initNorthPanel(MainEntry.java:76)
> >  at org.sitebrand.ui.gwt.shell.MainEntry.onModuleLoad(MainEntry.java:
> > 62) ... 9 more
>
> > Caused by: java.lang.RuntimeException: Deferred binding failed for
> > 'org.sitebrand.ui.gwt.widgets.MainMenu$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.client.GWT.create(GWT.java:97)
> >  at org.sitebrand.ui.gwt.widgets.MainMenu.(MainMenu.java:72) ... 12
> > more
>
> > Caused by: java.lang.AbstractMethodError:
> > org.apache.xerces.dom.ElementNSImpl.setUserData(Ljava/lang/
> > String;Ljava/lang/Object;Lorg/w3c/dom/UserDataHandler;)Ljava/lang/
> > Object;
> >  at
>
> > com.google.gwt.uibinder.rebind.W3cDocumentBuilder.startElement(W3cDocumentB uilder.java:
> > 130)
> >  at org.apache.xerces.parsers.AbstractSAXParser.startElement(Unknown
> > Source)
> >  at
> > org.apache.xerces.impl.XMLNSDocumentScannerImpl.scanStartElement(Unknown
> > Source)
> >  at org.apache.xerces.impl.XMLNSDocumentScannerImpl
> > $NSContentDispatcher.scanRootElementHook(Unknown Source)
> >  at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl
> > $FragmentContentDispatcher.dispatch(Unknown Source)
> >  at
> > org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown
> > Source)
> >  at org.apache.xerces.parsers.XML11Configuration.parse(Unknown
> > Source)
> >  at org.apache.xerces.parsers.XML11Configuration.parse(Unknown
> > Source)
> >  at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
> >  at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
> >  at javax.xml.parsers.SAXParser.parse(SAXParser.java:395)
> >  at
> > com.google.gwt.uibinder.rebind.W3cDomHelper.documentFor(W3cDomHelper.java:
> > 64)
> >  at
>
> > com.google.gwt.uibinder.rebind.UiBinderGenerator.getW3cDoc(UiBinderGenerato r.java:
> > 169)
> >  at
>
> > com.google.gwt.uibinder.rebind.UiBinderGenerator.generateOnce(UiBinderGener ator.java:
> > 139)
> >  at
>
> > com.google.gwt.uibinder.rebind.UiBinderGenerator.generate(UiBinderGenerator .java:
> > 119)
> >  at
>
> > com.google.gwt.dev.javac.StandardGeneratorContext.runGenerator(StandardGene ratorContext.java:
> > 427)
> >  at
> > com.google.gwt.dev.cfg.RuleGenerateWith.realize(RuleGenerateWith.java:
> > 39)
> >  at com.google.gwt.dev.shell.StandardRebindOracle
> > $Rebinder.tryRebind(StandardRebindOracle.java:115)
> >  at com.google.gwt.dev.shell.StandardRebindOracle
> > $Rebinder.rebind(StandardRebindOracle.java:58)
> >  at
>
> > com.google.gwt.dev.shell.StandardRebindOracle.rebind(StandardRebindOracle.j ava:
> > 161)
> >  at
>
> > com.google.gwt.dev.shell.ShellModuleSpaceHost.rebind(ShellModuleSpaceHost.j ava:
> > 124)
> >  at com.google.gwt.dev.shell.ModuleSpace.rebind(ModuleSpace.java:585)
> >  at
> > com.google.gwt.dev.shell.ModuleSpace.rebindAndCreate(ModuleSpace.java:
> > 455)
> >  at com.google.gwt.dev.shell.GWTBridgeImpl.create(GWTBridgeImpl.java:
> > 49) ... 14 more
>
> > Everything was working fine with GWT 2.0.4
>
> > Any help is appreciated,
> > Thanks
>
> > --
> > You received this message because you are subscribed to the Google Groups
> > "Google Web Toolkit" group.
> > To post to this group, send email to google-web-toolkit@googlegroups.com.
> > To unsubscribe from this group, send email to
> > google-web-toolkit+unsubscribe@googlegroups.com<google-web-toolkit%2Bunsubs cribe@googlegroups.com>
> > .
> > For more options, visit this group at
> >http://groups.google.com/group/google-web-toolkit?hl=en.
>
> --
> Jeff

--
You received this message because you are subscribed to the Google Groups "Google Web Toolkit" group.
To post to this group, send email to google-web-toolkit@googlegroups.com.
To unsubscribe from this group, send email to google-web-toolkit+unsubscribe@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/google-web-toolkit?hl=en.

No comments:

Post a Comment