<html>
<head>
<style><!--
.hmmessage P
{
margin:0px;
padding:0px
}
body.hmmessage
{
font-size: 10pt;
font-family:Tahoma
}
--></style></head>
<body class='hmmessage'><div dir='ltr'>
<DIV dir=ltr>
<DIV dir=ltr>Oleg,</DIV>
<DIV dir=ltr>I just saw your earlier email as well. I apologize that I do not have an automated test.&nbsp;I did review the ".2" change and I am glad that you all went with the better fix by eliminating the duplicate/triplicate state.&nbsp; Thank you&nbsp;for keeping me in the loop directly as I have not been keeping up with the digests.</DIV>
<DIV dir=ltr>&nbsp;</DIV>
<DIV dir=ltr>All,<BR>&nbsp;<BR>Thought in hindsight... maybe the original enhancement request should have just been rejected. If the user keeps picking the same item from the list, they are probably expecting the software to do something! It is possible for an event listener to check against previous state and ignore extra messages(work around possible), it is NOT possible for&nbsp;an event listener to react to an event that is NEVER fired (no work around, must redesign UI).</DIV>
<DIV dir=ltr>&nbsp;</DIV>
<DIV dir=ltr>&gt; BTW, native Choice controls fire event always on all platforms.<BR>Similar reasoning might lie behind why the native platforms choose to always fire:&nbsp;more flexibility to the developer.</DIV>
<DIV dir=ltr>&nbsp;</DIV>
<DIV dir=ltr>Another possiblity would be to add a new control state to the Choice control&nbsp;[ set/isFireAlreadySelected() ] and/or the selection Event&nbsp; [ isAlreadySelected() ].&nbsp; Default&nbsp;state for isFireAlreadySelecteded() defaults to true to retain compatibility for older JVMs.&nbsp; User requesting the original enhacement could set this to false to silence the repeated selection methods. </DIV>
<DIV dir=ltr>&nbsp;</DIV>
<DIV dir=ltr>Note that the original&nbsp;enhancement requester could have created a Choice subclass to solve the duplicate firing result. (pseudo code)</DIV>
<DIV dir=ltr>class SingleFireChoice extends Choice {</DIV>
<DIV dir=ltr>&nbsp;&nbsp;&nbsp; Listeners singleFirelisteners;</DIV>
<DIV dir=ltr>&nbsp;&nbsp;&nbsp; addSingleFireListener(Listener onlyWantsToKnowIfChanged);</DIV>
<DIV dir=ltr>&nbsp;&nbsp;&nbsp; ... code to filter out duplicate selects</DIV>
<DIV dir=ltr>}</DIV>
<DIV dir=ltr><BR>I normally consider that the behavior between radio groups and choice lists should operate on the same rules. (Just 2 different views of the same information) I wonder if radio groups fire an extra message if you keep clicking the same radio button over and over again? It might be an interesting experiment.<BR>&nbsp;<BR>I just happened to run an old Java utility that I wrote in 2000.&nbsp; I had not run it&nbsp;since Java7 has been released.<BR>It is still using an old 1.4 runtime, and as I was running it, I realized that it will NOT work with the Java 7 JVM since it performs an operation when a choice item is selected.&nbsp;The user might want to perform the same operation repeatedly via the choice&nbsp;on different inputs.<BR>&nbsp;<BR>Basic test case that will now fail in the application&nbsp;is <BR>1.&nbsp;enter some text in TextArea "left"<BR>2.&nbsp;enter some text in TextArea "right"<BR>3. select&nbsp;an operation from&nbsp;the choice (left difference, right difference, symmetric difference, union, intersection)<BR>4. review result in TextArea "result"<BR>5. change the text in "left" or "right"&nbsp;or both&nbsp;of the areas<BR>6. select the SAME operation again from the choice.<BR>&nbsp;&nbsp;&nbsp; In J6 and lower, it will perform the operation on the new inputs.<BR>&nbsp;&nbsp;&nbsp; In J7, nothing will happen and there is no way to know that the user has attempted something.<BR><BR>For step 6 to work in Java7 even after the patch for 7171412, I will have to switch to a different item and then switch back to the desired item. <BR>For upgrading the application to work reasonably with Java7&nbsp;I will need to add a separate&nbsp;"evaluate" button to "fire" the choice or else change the choice items&nbsp;into individual buttons.&nbsp;</DIV>
<DIV dir=ltr>&nbsp;<BR>Thanks for looking into this.&nbsp; With all the recent press on the security items recently, I wasn't sure when someone would get a chance to look into it. (My Personal Rant about security: Why do people allow untrusted sites to run active X or applets in the first place? duh?)<BR>&nbsp;</DIV>
<DIV dir=ltr>I thank you all for your work on this,<BR>Tim English<BR>&nbsp;<BR><BR></DIV>
<DIV dir=ltr>
<DIV id=SkyDrivePlaceholder></DIV>&gt; Date: Thu, 4 Oct 2012 13:33:59 +0400<BR>&gt; From: oleg.pekhovskiy@oracle.com<BR>&gt; To: denis.fokin@oracle.com<BR>&gt; CC: artem.ananiev@oracle.com; awt-dev@openjdk.java.net; tim_english@hotmail.com<BR>&gt; Subject: Re: [8] Review request for 7171412: awt Choice doesn't fire ItemStateChange when selecting item after select() call - approved<BR>&gt; <BR>&gt; Hi Denis,<BR>&gt; <BR>&gt; there are behavior differences for Choice across the platforms.<BR>&gt; on Windows - if we choose the same item twice ItemStateChange is not <BR>&gt; fired twice but for other platform it is so.<BR>&gt; There is a separate issue about that 7159935, so all platform should <BR>&gt; behave like Windows does.<BR>&gt; <BR>&gt; BTW, native Choice controls fire event always on all platforms.<BR>&gt; <BR>&gt; Thanks,<BR>&gt; Oleg<BR>&gt; <BR>&gt; 10/3/2012 5:47 PM, Denis S. Fokin wrote:<BR>&gt; &gt; Hi Oleg,<BR>&gt; &gt;<BR>&gt; &gt; the fix looks good. It was interesting to verify the functionality on <BR>&gt; &gt; Linux. On my Ubuntu everything works properly.<BR>&gt; &gt;<BR>&gt; &gt; Thank you,<BR>&gt; &gt; Denis.<BR>&gt; &gt;<BR>&gt; &gt; On 10/2/2012 6:48 PM, Artem Ananiev wrote:<BR>&gt; &gt;&gt; Hi, Oleg,<BR>&gt; &gt;&gt;<BR>&gt; &gt;&gt; the new version looks fine.<BR>&gt; &gt;&gt;<BR>&gt; &gt;&gt; Thanks,<BR>&gt; &gt;&gt;<BR>&gt; &gt;&gt; Artem<BR>&gt; &gt;&gt;<BR>&gt; &gt;&gt; On 10/2/2012 4:30 PM, Oleg Pekhovskiy wrote:<BR>&gt; &gt;&gt;&gt; Hi Artem,<BR>&gt; &gt;&gt;&gt;<BR>&gt; &gt;&gt;&gt; thank you for the review, I made changes you proposed there:<BR>&gt; &gt;&gt;&gt; http://cr.openjdk.java.net/~bagiras/8/7171412.2<BR>&gt; &gt;&gt;&gt;<BR>&gt; &gt;&gt;&gt; Please tell if everything is ok.<BR>&gt; &gt;&gt;&gt;<BR>&gt; &gt;&gt;&gt; Thanks,<BR>&gt; &gt;&gt;&gt; Oleg<BR>&gt; &gt;&gt;&gt;<BR>&gt; &gt;&gt;&gt; 10/1/2012 2:23 PM, Artem Ananiev wrote:<BR>&gt; &gt;&gt;&gt;&gt; Hi, Oleg,<BR>&gt; &gt;&gt;&gt;&gt;<BR>&gt; &gt;&gt;&gt;&gt; (adding Tim to copy)<BR>&gt; &gt;&gt;&gt;&gt;<BR>&gt; &gt;&gt;&gt;&gt; the fix looks fine. Could you please make selectedIndexID just a<BR>&gt; &gt;&gt;&gt;&gt; static variable in awt_Choice.cpp instead of AwtChoice member?<BR>&gt; &gt;&gt;&gt;&gt;<BR>&gt; &gt;&gt;&gt;&gt; Thanks,<BR>&gt; &gt;&gt;&gt;&gt;<BR>&gt; &gt;&gt;&gt;&gt; Artem<BR>&gt; &gt;&gt;&gt;&gt;<BR>&gt; &gt;&gt;&gt;&gt; On 10/1/2012 2:09 PM, Oleg Pekhovskiy wrote:<BR>&gt; &gt;&gt;&gt;&gt;&gt; Hi!<BR>&gt; &gt;&gt;&gt;&gt;&gt;<BR>&gt; &gt;&gt;&gt;&gt;&gt; Please review the fix for CR:<BR>&gt; &gt;&gt;&gt;&gt;&gt; http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=7171412<BR>&gt; &gt;&gt;&gt;&gt;&gt;<BR>&gt; &gt;&gt;&gt;&gt;&gt; Webrev:<BR>&gt; &gt;&gt;&gt;&gt;&gt; http://cr.openjdk.java.net/~bagiras/8/7171412.1/<BR>&gt; &gt;&gt;&gt;&gt;&gt;<BR>&gt; &gt;&gt;&gt;&gt;&gt; I left the idea of the fix CR 6770017 but refused of using doubling<BR>&gt; &gt;&gt;&gt;&gt;&gt; native variable for storing previously selected index<BR>&gt; &gt;&gt;&gt;&gt;&gt; (that also caused the problem described in the current issue).<BR>&gt; &gt;&gt;&gt;&gt;&gt;<BR>&gt; &gt;&gt;&gt;&gt;&gt; Thanks,<BR>&gt; &gt;&gt;&gt;&gt;&gt; Oleg<BR>&gt; &gt;&gt;&gt;<BR>&gt; &gt;<BR>&gt; <BR></DIV></DIV>                                               </div></body>
</html>