<Swing Dev> When running with the Nimbus look and feel, the JFileChooser does not display mnemonics for its controls.

Pavel Porvatov pavel.porvatov at oracle.com
Wed Aug 3 12:49:40 UTC 2011


Hi Charles,
> On 08/02/2011 03:53 PM, Pavel Porvatov wrote:
>> Hi Charles,
>>> On 08/02/2011 05:04 AM, Pavel Porvatov wrote:
>>>> Hi Charles,
>>>>> On 07/29/2011 05:44 PM, Pavel Porvatov wrote:
>>>>>> Hi Charles,
>>>>>>> On 07/29/2011 04:34 PM, Pavel Porvatov wrote:
>>>>>>>> Hi Charles,
>>>>>>>>> On 07/27/2011 06:44 PM, Pavel Porvatov wrote:
>>>>>>>>>> Hi Charles,
>>>>>>>>>>
>>>>>>>>>> I attached your patch to the CR. Not sure I'll have time to 
>>>>>>>>>> test and commit the fix.
>>>>>>>>>>
>>>>>>>>>> Regards, Pavel
>>>>>>>>>>
>>>>>>>>>>> On 03/30/2011 07:43 PM, Pavel Porvatov wrote:
>>>>>>>>>>>> Hi Charles,
>>>>>>>>>>>>> Hi guys,
>>>>>>>>>>>>>
>>>>>>>>>>>>> When running with Nimbus LaF, JFileChooser does not 
>>>>>>>>>>>>> display mnemonics for its controls, see 
>>>>>>>>>>>>> FileNameAndTypeNomnemonics.png (attached)
>>>>>>>>>>>>> After patch (attached)
>>>>>>>>>>>>> You will find FileNameAndTypeWithMnemonics.png (attached)
>>>>>>>>>>>>>
>>>>>>>>>>>> I filed CR 7032436 (When running with the Nimbus look and 
>>>>>>>>>>>> feel, the JFileChooser does not display mnemonics) for the 
>>>>>>>>>>>> described problem
>>>>>>>>>>>>
>>>>>>>>>>>> Thanks, Pavel
>>>>>>>>>>> Hi guys,
>>>>>>>>>>>
>>>>>>>>>>> I have tested this issue on the openjdk 8 and it still 
>>>>>>>>>>> there. Attached is a patch which rebased on the openjdk8.
>>>>>>>>>>>
>>>>>>>>>>> Would anyone like to put this patch into the openjdk8 and 
>>>>>>>>>>> fix this issue?
>>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>> Thanks Pavel.
>>>>>>>>>
>>>>>>>>> Does anyone else have time to take a look at this issue? I 
>>>>>>>>> will treat him one beer :-)
>>>>>>>>>
>>>>>>>> Oops, then I'll take participation in this =)
>>>>>>>>
>>>>>>>> Seriously, there are several comments to your fix:
>>>>>>>>
>>>>>>>> 1. You changed windows.properties and metal.properties, but you 
>>>>>>>> shouldn't do this (e.g. because of CR description "When running 
>>>>>>>> with the Nimbus look and feel, the JFileChooser does not 
>>>>>>>> display mnemonics"). If you take a look at current JFileChooser 
>>>>>>>> you will see that mnemonics are exist... That's because of CR 
>>>>>>>> 7024118 (possible hardcoded mnemonic for JFileChooser metal and 
>>>>>>>> motif l&f) and it will be great if you fix this also after CR 
>>>>>>>> 7032436. Your current implementation for Win/Metal LAFs is 
>>>>>>>> uncompleted actually...
>>>>>>>>
>>>>>>>> 2. You should COPY new mnemonics into all synth properties like 
>>>>>>>> synth_de.properties etc... Our i18n team will update them later.
>>>>>>>>
>>>>>>>> 3. To be consistent with other LAFs could you use something 
>>>>>>>> like "lookInLabelMnemonic = 
>>>>>>>> UIManager.getInt("FileChooser.lookInLabelMnemonic");" (like in 
>>>>>>>> Metal/Windows)? That means also that you should use VK_XXX 
>>>>>>>> codes instead of chars in properties files
>>>>>>>>
>>>>>>>> 4. Could you please use something like "hg diff -g" for patch 
>>>>>>>> creating (see http://openjdk.org/contribute/ for details). I 
>>>>>>>> have some problems with your patch format.
>>>>>>>>
>>>>>>>> Thanks, Pavel
>>>>>>> Hi Pavel,
>>>>>>>
>>>>>>> Would you please tell me which repository you see the mnemonics 
>>>>>>> are exist? openjdk7, openjdk8? openjdk8_tl? openjdk8_2d? 
>>>>>>> openjdk8_*?
>>>>>> All described above. Mnemonics are hardcoded, see 
>>>>>> http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=7024118 for 
>>>>>> details. Just run JFileChooserDemo or SwingSet2 demo and you will 
>>>>>> see that mnemonics are exist.
>>>>>>> The patch issue maybe related to the different repo you and me 
>>>>>>> are using. I am using git to clone the openjdk8 repo and patch 
>>>>>>> apply well with patch command.
>>>>>> Ok, I found the command that works with your patch format...
>>>>>>>
>>>>>>> I will try to refine the patch according to your comments.
>>>>>>>
>>>>>>> Thanks for quick response :-)
>>>>>>>
>>>>>> You are welcome
>>>>>>
>>>>>> Regards, Pavel
>>>>> Hi Pavel,
>>>>>
>>>>> Has sunbug 7024118 already been committed in the repository? I can 
>>>>> not find "7024118" related commit log and the latest build from 
>>>>> the repo forest http://hg.openjdk.java.net/jdk8/jdk8 still shows 
>>>>> the problem.  I will try to refine the patch if I can access 
>>>>> sunbug 7024118 and 7032436 to check whether the patch is necessary.
>>>>>
>>>> Oops, when I sent the bug URL it was available.... Anyway below are 
>>>> details about 7024118:
>>>>
>>>> Synopsis: possible hardcoded mnemonic for JFileChooser metal and 
>>>> motif l&f
>>>> Description:
>>>> As seen in following, 3 mnemonic keys seems to be hardcoded and 
>>>> making them unable to localize. Please consider externalizing them 
>>>> to 
>>>> src/share/classes/com/sun/swing/internal/plaf/metal/resources/metal.properties 
>>>> for example.
>>>>
>>>> src/share/classes/javax/swing/plaf/metal/MetalLookAndFeel.java
>>>>
>>>>             "FileChooser.lookInLabelMnemonic", new 
>>>> Integer(KeyEvent.VK_I),
>>>>             "FileChooser.fileNameLabelMnemonic", new 
>>>> Integer(KeyEvent.VK_N),
>>>>             "FileChooser.filesOfTypeLabelMnemonic", new 
>>>> Integer(KeyEvent.VK_T),
>>>> *** (#1 of 2): 2011-03-03 13:22:48 MSK shinya.ogino at oracle.com
>>>>
>>>> Similar hardcode also found in motif L&F.
>>>>
>>>> src/share/classes/com/sun/java/swing/plaf/motif/MotifLookAndFeel.java
>>>>
>>>>             "FileChooser.pathLabelMnemonic", new 
>>>> Integer(KeyEvent.VK_P), // 'p'
>>>>             "FileChooser.filterLabelMnemonic", new Integer 
>>>> (KeyEvent.VK_R), // 'r'
>>>>             "FileChooser.foldersLabelMnemonic", new Integer 
>>>> (KeyEvent.VK_L), // 'l'
>>>>             "FileChooser.filesLabelMnemonic", new Integer 
>>>> (KeyEvent.VK_I), // 'i'
>>>>             "FileChooser.enterFileNameLabelMnemonic", new Integer 
>>>> (KeyEvent.VK_N), // 'n'
>>>>
>>>> Since following keys in 
>>>> src/share/classes/com/sun/java/swing/plaf/motif/resources/motif_xx.properties 
>>>> being translated, in some languages mnemonic character is not in 
>>>> label string and won't show up in gui.
>>>>
>>>> FileChooser.pathLabelText=Enter path or folder name:
>>>> FileChooser.filterLabelText=Filter
>>>> FileChooser.foldersLabelText=Folders
>>>> FileChooser.filesLabelText=Files
>>>> FileChooser.enterFileNameLabelText=Enter file name:
>>>> FileChooser.enterFolderNameLabelText=Enter folder name:
>>>> *** (#2 of 2): 2011-03-04 09:24:58 MSK shinya.ogino at oracle.com
>>>>
>>>>
>>>> CR 7024118 is not fixed and therefore you cannot find fix in 
>>>> openjdk8. I don't see now any reasons to fix CR 7024118 and CR 
>>>> 7032436 in one patch.
>>>>
>>>> Regards, Pavel
>>> I see. Thanks Pavel. I have to wait for 7024118 and 7032436 (maybe). 
>>> :-)
>>>
>> I didn't catch, what do you mean in "I have to wait for 7024118". 
>> Actually I'm waiting new patch version of CR 7032436 from you :)
>>
>> Regards, Pavel
> Ooops, Here it is (attached).
> 1. I am not sure whether I understand "Our i18n team will update them 
> later" correctly. I just put the same things in different properties.
Yes, that's what I meant...

> 2. I do not think we should use VK_XXXX code. CR7024118 recommends to 
> remove the VK_XXX code right?
I don't see such recommendations. Anyway we cannot use chars now because 
of backward compatibility requirement.
> 3. If the patch is ok, I would like to fix CR7024118 also.
>
So, there are two comments about the patch:
1. We must use VK_XXX codes for backward compatibility in WindowsLAF and 
MetalLAFs . Therefore NimbusLAF should use VK_XXX codes as well to be 
consistent with other LAFs

2. Could you please put mnemonics near labels? E.g.
FileChooser.lookInLabelText=Look In:
FileChooser.lookInLabelMnemonic=<VK_CODE>

It looks much more convenient I believe

Regards, Pavel



More information about the swing-dev mailing list