|
Re: Odd enablement of menu vs. toolbar [message #727244 is a reply to message #726898] |
Tue, 20 September 2011 16:57 |
Ric Wright 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><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">></span></p>
<p class="p7"><span class="s1"><span class="Apple-converted-space"> </span></span><enabledWhen></p>
<p class="p9"><span class="Apple-converted-space"> <span class="Apple-tab-span"> </span></span><span class="s2"><or></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"><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">></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"><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">></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"></equals></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"></with></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"><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">></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"><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">></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"></equals></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"></with></span></p>
<p class="p9"><span class="Apple-tab-span"> </span> <span class="Apple-converted-space"> </span><span class="s2"></or></span></p>
<p class="p7"><span class="s1"><span class="Apple-converted-space"> </span></span></enabledWhen></p>
<p class="p7"><span class="s1"><span class="Apple-converted-space"> </span></span></handler></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>
|
|
|
|
|
Powered by
FUDForum. Page generated in 0.02644 seconds