You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@pivot.apache.org by Daniel Ziltener <zi...@lyrion.ch> on 2011/03/03 16:19:07 UTC

Problems with MenuBar

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?

Re: Problems with MenuBar

Posted by Greg Brown <gk...@verizon.net>.
You should be able to do that, but I agree that it is probably better not to.

On Mar 3, 2011, at 2:38 PM, Daniel Ziltener wrote:

> 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 <gk...@verizon.net>
> 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 <gk...@verizon.net>
>> 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 <gk...@verizon.net>
>>> 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?
>>> 
>>> 
>> 
>> 
> 
> 


Re: Problems with MenuBar

Posted by Daniel Ziltener <zi...@lyrion.ch>.
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 <gk...@verizon.net>

> 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 <gk...@verizon.net>
>
>> 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 <gk...@verizon.net>
>>
>>> 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?
>>>
>>>
>>>
>>
>>
>
>

Re: Problems with MenuBar

Posted by Greg Brown <gk...@verizon.net>.
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 <gk...@verizon.net>
> 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 <gk...@verizon.net>
>> 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?
>> 
>> 
> 
> 


Re: Problems with MenuBar

Posted by Daniel Ziltener <zi...@lyrion.ch>.
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 <gk...@verizon.net>

> 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 <gk...@verizon.net>
>
>> 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?
>>
>>
>>
>
>

Re: Problems with MenuBar

Posted by Greg Brown <gk...@verizon.net>.
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 <gk...@verizon.net>
> 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?
> 
> 


Re: Problems with MenuBar

Posted by Daniel Ziltener <zi...@lyrion.ch>.
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 <gk...@verizon.net>

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

Re: Problems with MenuBar

Posted by Greg Brown <gk...@verizon.net>.
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?