Skip to main content


Eclipse Community Forums
Forum Search:

Search      Help    Register    Login    Home
Home » Eclipse Projects » Eclipse Platform » Odd enablement of menu vs. toolbar
Odd enablement of menu vs. toolbar [message #726898] Mon, 19 September 2011 20:29 Go to next message
Ric Wright is currently offline Ric WrightFriend
Messages: 70
Registered: July 2009
Member
I have implemented a menu and a toolbar for an app using the Commands
framework. All works as expected EXCEPT for one odd behaviour that
looks like a bug, but perhaps not. There is a menu entry and toolbar
button both tied to a single command handler. Initially, neither is
enabled. All fine. Then the app changes state and both the menu entry
and the toolbar button should be enabled. However, only the MENU ENTRY
gets enabled. But if I select the menu entry and it works as expected
- including that is then disabled. Then I change the app state again
and now BOTH the menu entry and the toolbar button are enabled. From
then on all works perfectly.

I find this rather baffling. Does this suggest anything to anybody?
Somehow menus and toolbars are initially different?

TIA, Ric
Re: Odd enablement of menu vs. toolbar [message #727244 is a reply to message #726898] Tue, 20 September 2011 16:57 Go to previous messageGo to next message
Ric Wright is currently offline Ric WrightFriend
Messages: 70
Registered: July 2009
Member
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<meta http-equiv="Content-Style-Type" content="text/css">
<title></title>
<meta name="Generator" content="Cocoa HTML Writer">
<meta name="CocoaVersion" content="1038.36">
<style type="text/css">
p.p1 {margin: 0.0px 0.0px 0.0px 0.0px; line-height: 15.0px; font: 14.0px Verdana}
p.p2 {margin: 0.0px 0.0px 0.0px 0.0px; line-height: 15.0px; font: 14.0px Verdana; min-height: 17.0px}
p.p3 {margin: 0.0px 0.0px 0.0px 12.0px; line-height: 17.0px; font: 14.0px Verdana; color: #150b91}
p.p4 {margin: 0.0px 0.0px 0.0px 12.0px; line-height: 17.0px; font: 14.0px Verdana; color: #150b91; min-height: 17.0px}
p.p5 {margin: 0.0px 0.0px 0.0px 0.0px; line-height: 17.0px; font: 14.0px Verdana; min-height: 17.0px}
p.p6 {margin: 0.0px 0.0px 0.0px 0.0px; line-height: 17.0px; font: 14.0px Verdana}
p.p7 {margin: 0.0px 0.0px 0.0px 0.0px; font: 13.0px 'Lucida Sans Typewriter'; color: #150b92}
p.p8 {margin: 0.0px 0.0px 0.0px 0.0px; font: 13.0px 'Lucida Sans Typewriter'; color: #0d9103}
p.p9 {margin: 0.0px 0.0px 0.0px 0.0px; font: 13.0px 'Lucida Sans Typewriter'}
span.s1 {color: #000000}
span.s2 {color: #150b92}
span.s3 {color: #0d9103}
span.Apple-tab-span {white-space:pre}
</style>
</head>
<body>
<p class="p1">On 2011-09-19 15:29:06 -0500, Ric Wright said:</p>
<p class="p2"><br></p>
<p class="p3">I have implemented a menu and a toolbar for an app using the Commands framework.<span class="Apple-converted-space">  </span>All works as expected EXCEPT for one odd behaviour that looks like a bug, but perhaps not.<span class="Apple-converted-space">  </span>There is a menu entry and toolbar button both tied to a single command handler.<span class="Apple-converted-space">  </span>Initially, neither is enabled.<span class="Apple-converted-space">  </span>All fine.<span class="Apple-converted-space">  </span>Then the app changes state and both the menu entry and the toolbar button should be enabled.<span class="Apple-converted-space">  </span>However, only the MENU ENTRY gets enabled.<span class="Apple-converted-space">  </span>But if I select the menu entry and it works as expected - including that is then disabled.<span class="Apple-converted-space">  </span>Then I change the app state again and now BOTH the menu entry and the toolbar button are enabled.<span class="Apple-converted-space">  </span>From then on all works perfectly.</p>
<p class="p4"><br></p>
<p class="p3">I find this rather baffling.<span class="Apple-converted-space">  </span>Does this suggest anything to anybody?<span class="Apple-converted-space">  </span>Somehow menus and toolbars are initially different?</p>
<p class="p4"><br></p>
<p class="p3">TIA, Ric</p>
<p class="p5"><br></p>
<p class="p6">Poked at this a little more.<span class="Apple-converted-space">  </span>Here's some additional info.<span class="Apple-converted-space">  </span>The commands are dependent on a variable (the clockstate, which is an enum) and the particular command can be enabled for two states.<span class="Apple-converted-space">  </span>This is the plugin.xml:</p>
<p class="p5"><br></p>
<p class="p7"><span class="Apple-tab-span"> </span>&lt;handler</p>
<p class="p8"><span class="s1"><span class="Apple-converted-space">           </span></span><span class="s2">class=</span>"com.geofx.gms.controller.TerminateSimHandler"</p>
<p class="p8"><span class="s1"><span class="Apple-converted-space">           </span></span><span class="s2">commandId=</span>"com.geofx.gms.commands.TerminateSim"<span class="s2">&gt;</span></p>
<p class="p7"><span class="s1"><span class="Apple-converted-space">        </span></span>&lt;enabledWhen&gt;</p>
<p class="p9"><span class="Apple-converted-space">        <span class="Apple-tab-span"> </span></span><span class="s2">&lt;or&gt;</span></p>
<p class="p9"><span class="Apple-tab-span"> </span><span class="Apple-converted-space">        <span class="Apple-tab-span"> </span></span><span class="s2">&lt;with</span><span class="Apple-converted-space"> </span></p>
<p class="p8"><span class="s1"><span class="Apple-tab-span"> </span><span class="Apple-converted-space">        <span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span></span></span><span class="s2">variable=</span>"com.geofx.gms.commands.clockState"<span class="s2">&gt;</span></p>
<p class="p9"><span class="Apple-tab-span"> </span><span class="Apple-converted-space">        <span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span></span><span class="s2">&lt;equals</span><span class="Apple-converted-space"> </span></p>
<p class="p9"><span class="Apple-tab-span"> </span><span class="Apple-converted-space">        <span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span></span><span class="s2">value=</span><span class="s3">"running"</span> <span class="s2">&gt;</span></p>
<p class="p9"><span class="Apple-tab-span"> </span><span class="Apple-converted-space">        <span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span></span><span class="s2">&lt;/equals&gt;</span></p>
<p class="p9"><span class="Apple-tab-span"> </span><span class="Apple-converted-space">        <span class="Apple-tab-span"> </span></span><span class="s2">&lt;/with&gt;</span></p>
<p class="p9"><span class="Apple-tab-span"> </span><span class="Apple-converted-space">        <span class="Apple-tab-span"> </span></span><span class="s2">&lt;with</span><span class="Apple-converted-space"> </span></p>
<p class="p8"><span class="s1"><span class="Apple-tab-span"> </span><span class="Apple-converted-space">        <span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span></span></span><span class="s2">variable=</span>"com.geofx.gms.commands.clockState"<span class="s2">&gt;</span></p>
<p class="p9"><span class="Apple-tab-span"> </span><span class="Apple-converted-space">        <span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span></span><span class="s2">&lt;equals</span><span class="Apple-converted-space"> </span></p>
<p class="p9"><span class="Apple-tab-span"> </span><span class="Apple-converted-space">        <span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span></span><span class="s2">value=</span><span class="s3">"paused"</span> <span class="s2">&gt;</span></p>
<p class="p9"><span class="Apple-tab-span"> </span><span class="Apple-converted-space">        <span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span></span><span class="s2">&lt;/equals&gt;</span></p>
<p class="p9"><span class="Apple-tab-span"> </span><span class="Apple-converted-space">        <span class="Apple-tab-span"> </span></span><span class="s2">&lt;/with&gt;</span></p>
<p class="p9"><span class="Apple-tab-span"> </span> <span class="Apple-converted-space">      </span><span class="s2">&lt;/or&gt;</span></p>
<p class="p7"><span class="s1"><span class="Apple-converted-space">        </span></span>&lt;/enabledWhen&gt;</p>
<p class="p7"><span class="s1"><span class="Apple-converted-space">     </span></span>&lt;/handler&gt;</p>
<p class="p5"><br></p>
<p class="p6">and the handler class correctly implements isEnabled and updateEnabled, even calling command.refreshElements(). <span class="Apple-converted-space"> </span></p>
<p class="p5"><br></p>
<p class="p6">The odd thing I have noted last night is that if I comment out the second "with" element above (so the command won't be enabled if the clock is "paused" and do the same in the handler class (i.e. not enabling if it is "paused") then everything works perfectly. <span class="Apple-converted-space">  </span>Is the code in plugin.xml wrong perhaps?<span class="Apple-converted-space">  </span>This is my first foray into this command handler area, so it may be pilot error on my part. Still doesn't explain why the menu would be correct and the toolbar not, initially, but... who knows?<span class="Apple-converted-space">  </span>Not I.</p>
</body>
</html>
Re: Odd enablement of menu vs. toolbar [message #727502 is a reply to message #726898] Wed, 21 September 2011 13:23 Go to previous messageGo to next message
Christian Stellwag is currently offline Christian StellwagFriend
Messages: 48
Registered: July 2009
Location: Munich
Member
Have you tried toolbar.update() ?
Re: Odd enablement of menu vs. toolbar [message #727580 is a reply to message #727502] Wed, 21 September 2011 14:38 Go to previous message
Ric Wright is currently offline Ric WrightFriend
Messages: 70
Registered: July 2009
Member
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<meta http-equiv="Content-Style-Type" content="text/css">
<title></title>
<meta name="Generator" content="Cocoa HTML Writer">
<meta name="CocoaVersion" content="1038.36">
<style type="text/css">
p.p1 {margin: 0.0px 0.0px 0.0px 0.0px; line-height: 15.0px; font: 14.0px Verdana}
p.p2 {margin: 0.0px 0.0px 0.0px 0.0px; line-height: 15.0px; font: 14.0px Verdana; min-height: 17.0px}
p.p3 {margin: 0.0px 0.0px 0.0px 12.0px; line-height: 17.0px; font: 14.0px Verdana; color: #150b91}
p.p4 {margin: 0.0px 0.0px 0.0px 0.0px; line-height: 17.0px; font: 14.0px Verdana; min-height: 17.0px}
p.p5 {margin: 0.0px 0.0px 0.0px 0.0px; line-height: 17.0px; font: 14.0px Verdana}
p.p6 {margin: 0.0px 0.0px 0.0px 0.0px; font: 13.0px 'Lucida Sans Typewriter'}
span.s1 {text-decoration: underline}
span.s2 {color: #900868}
span.Apple-tab-span {white-space:pre}
</style>
</head>
<body>
<p class="p1">On 2011-09-21 08:23:09 -0500, Christian Stellwag said:</p>
<p class="p2"><br></p>
<p class="p3">Have you tried toolbar.update() ?</p>
<p class="p4"><br></p>
<p class="p5">If you mean something like</p>
<p class="p4"><br></p>
<p class="p6"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>((<span class="s1">WorkbenchWindow</span>)window).getCoolBarManager().update(<span class="s2"><b>true</b></span>);</p>
<p class="p4"><br></p>
<p class="p5">this is discouraged.<span class="Apple-converted-space">  </span>But I tried it just to see.<span class="Apple-converted-space">  </span>No improvement.</p>
</body>
</html>
Previous Topic:Change the title bar color of a view
Next Topic:dynamic items in a views toolbar
Goto Forum:
  


Current Time: Tue Apr 23 12:30:45 GMT 2024

Powered by FUDForum. Page generated in 0.02644 seconds
.:: Contact :: Home ::.

Powered by: FUDforum 3.0.2.
Copyright ©2001-2010 FUDforum Bulletin Board Software

Back to the top