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-tool...@googlegroups.com.
> > To unsubscribe from this group, send email to
> > google-web-toolkit+unsubscr...@googlegroups.com<google-web-toolkit%2Bunsubs 
> > cr...@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-tool...@googlegroups.com.
To unsubscribe from this group, send email to 
google-web-toolkit+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/google-web-toolkit?hl=en.

Reply via email to