I think the problem was that I included both the Application interface and the Bindable interface which led to a behaviour that's not expected by a normal Pivot user... Anyway I think it's better if I do that separately.
2011/3/3 Greg Brown <[email protected]> > What is the stack trace of the exception? > > > On Mar 3, 2011, at 10:56 AM, Daniel Ziltener wrote: > > Now I'm getting an IllegalArgumentException claiming that the "location is > null". The definition of the MainWindow tag is now: > > <?xml version="1.0" encoding="UTF-8"?> > <ui:MainWindow title="SemanticNotes" maximized="true" > xmlns:bxml="http://pivot.apache.org/bxml" > xmlns:ui="ch.lyrion.semanticnotes.desktop.ui" > xmlns="org.apache.pivot.wtk"> > <bxml:define> > <MenuBar xmlns:content="org.apache.pivot.wtk.content" > bxml:id="menuBar"> > <MenuBar.Item buttonData="Testmenu"> > <Menu.Section> > <Menu.Item> > <buttonData> > <content:MenuItemData text="New" > keyboardShortcut="CMD-N"/> > </buttonData> > </Menu.Item> > </Menu.Section> > </MenuBar.Item> > </MenuBar> > </bxml:define> > > <Panel> > <bxml:include src="BookPanel.bxml" /> > </Panel> > </ui:MainWindow> > > 2011/3/3 Greg Brown <[email protected]> > >> Try changing it to something like this: >> >> <bar:MainWindow title="SemanticNotes" maximized="true" xmlns:bxml=" >> http://pivot.apache.org/bxml" >> xmlns:foo="com.foo.bar" xmlns="org.apache.pivot.wtk"> >> >> replacing "foo" and "com.foo.bar" with your preferred namespace prefix and >> the name of the package containing MainWindow. As written, you are simply >> creating an instance of org.apache.pivot.wtk.Window, which is probably not >> what you want. >> >> Also, if you don't want to set the menu bar using a <menuBar> element, you >> should probably wrap the <MenuBar> in a <bxml:define> block. Otherwise, it >> will be set as the Window's content, then replaced by the Panel when that >> element is processed. >> >> G >> >> On Mar 3, 2011, at 10:34 AM, Daniel Ziltener wrote: >> >> No, it isn't a typo. But I changed it to MainWindow, now. But it doesn't >> change anything. >> I did assign an id to the menuBar: "<MenuBar >> xmlns:content="org.apache.pivot.wtk.content" bxml:id="menuBar">". >> As I now found out, "initialize" never gets called. So I moved the code >> "setMenu" into the startup method. That doesn't work, too. And I know why: >> The menuBar instance doesn't get assigned to my menuBar variable. >> >> >> 2011/3/3 Greg Brown <[email protected]> >> >>> The root element in your example is Window, not MainWindow - is that a >>> typo? >>> >>> Couple other questions: >>> 1) Why call setMenu() manually? Why not just declare the menu in BXML? >>> >>> 2) Is it possible that you did not assign an ID to your menu bar so that >>> your menuBar member variable is null when initialize() is called? >>> >>> >>> On Mar 3, 2011, at 10:19 AM, Daniel Ziltener wrote: >>> >>> Hi all, >>> It's me again... I'm trying to add a MenuBar to a window I created. So I >>> have a class MainWindow and a corresponding MainWindow.bxml. >>> The MainWindow extends Frame and implements Application and Bindable and >>> is essentially built like the "Menu Bars" sample on the pivot page, except >>> that I manually add the MenuBar: >>> I have a "@BXML MenuBar menuBar = null" which gets injected and then I >>> use "this.setMenuBar(menuBar)" in the initialize-Method to add the MenuBar >>> to the window. The problem is: There is no menubar displayed. I just keep >>> getting a window without a menubar. >>> My BXML-File is quite short, so I include it: >>> >>> <?xml version="1.0" encoding="UTF-8"?> >>> <Window title="SemanticNotes" maximized="true" xmlns:bxml=" >>> http://pivot.apache.org/bxml" xmlns="org.apache.pivot.wtk"> >>> <MenuBar xmlns:content="org.apache.pivot.wtk.content" >>> bxml:id="menuBar"> >>> <MenuBar.Item buttonData="Testmenu"> >>> <Menu.Section> >>> <Menu.Item> >>> <buttonData> >>> <content:MenuItemData text="New" >>> keyboardShortcut="CMD-N"/> >>> </buttonData> >>> </Menu.Item> >>> </Menu.Section> >>> </MenuBar.Item> >>> </MenuBar> >>> >>> <Panel> >>> <bxml:include src="BookPanel.bxml" /> >>> </Panel> >>> </Window> >>> >>> What's wrong with that? >>> >>> >>> >> >> > >
