On 08/11/2011 10:02 PM, Pavel Porvatov wrote:
Hi Charles,
On 08/08/2011 10:17 PM, Pavel Porvatov wrote:
Hi Charles,
On 08/05/2011 05:00 PM, Pavel Porvatov wrote:
Hi Charles,
On 08/03/2011 08:49 PM, Pavel Porvatov wrote:
Hi Charles,
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.
CR7024118 says:
"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"
and
"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. "
It means the hardcoded VK_XXX codes can not be localized and in
some situation the mnemonic character is not shown in the label.
So we should use localized character as mnemonic. right?
The last your sentence is incorrect. Hardcoded mnemonics cannot be
localized via properties files and therefore they works only for
for English, but not for other supported languages. So we should
use localized VK_XXX as mnemonics... Because, as I said before, we
MUST keep backward compatibility.
Regards, Pavel
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
Hi Pavel,
I do not quite understand why we should keep VK_CODE, so I make two
patches for first review, I will modify other properties if one of
the patches is ok :-)
No problem. I wrote the example (see attach) that shows the problem.
The test works fine without patches, with the patch.review1 an
exception is thrown, with the patch.review2 mnemonic is missed. When
I told about regressions I meant that we MUST keep
FileChooser.lookInLabelMnemonic as an Integer. Therefore we have
only one possible way: to use integer values (VK_XXX codes), but not
VK_XXX names or characters.
[1] is the patch which is not use VK_CODE. (attached)
[2] is the patch which is use VK_CODE, I have to use reflect in
that patch. Maybe I miss something. (attached)
Regards, Pavel
Here is another one :-) it uses VK_code hard coded as mental does.
If it is ok, I will like to take CR7024118. Is reflection ok to you,
Pavel?
Your current fix has a localization problem: it doesn't not work for
other languages (the same problem described in
http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=7024118). I see the
fix in the following way:
1. Change getting mnemonics in SynthFileChooserUIImpl like in
WindowsFileChooserUI:
lookInLabelMnemonic =
UIManager.getInt("FileChooser.lookInLabelMnemonic");
2. Add in synth.properties, synth_de.properties and other synth
properties files:
FileChooser.lookInLabelMnemonic=49
FileChooser.folderNameLabelMnemonic=...
FileChooser.filesOfTypeLabelMnemonic=...
FileChooser.filesOfTypeMnemonic=...
where "..." is an appropriate integer numbers. BTW: we are using
integer mnemonics in other properties files, e.g. in
src\share\classes\com\sun\swing\internal\plaf\basic\resources\basic.properties
I agree that mnemonics in integer numbers is not very readable, but
this way is most compatible and localizable way, I think.
Regards, Pavel
Wow. I am fully agree with you. Let me explain a little bit about this
patch:
1. This patch is just want to keep the same things as Metal things.
2. After this patch, I would like to take CR7024118, and fix the
localization problem in CR7024118 plus in Nimbus Laf. It will be more
readable.
What do you think of it, Pavel?
--
Yours Charles