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?
>>
>>
>>
>
>