This Bugzilla instance is a read-only archive of historic NetBeans bug reports. To report a bug in NetBeans please follow the project's instructions for reporting issues.

Bug 86498 - [a11y] Mnemonics handling issue
Summary: [a11y] Mnemonics handling issue
Status: VERIFIED FIXED
Alias: None
Product: javame
Classification: Unclassified
Component: -- Other -- (show other bugs)
Version: 6.x
Hardware: All Mac OS X
: P2 blocker (vote)
Assignee: Adam Sotona
URL:
Keywords: A11Y, I18N, PERFORMANCE
Depends on:
Blocks: 86438
  Show dependency tree
 
Reported: 2006-10-04 16:16 UTC by Jaromir Uhrik
Modified: 2007-10-05 10:46 UTC (History)
7 users (show)

See Also:
Issue Type: DEFECT
Exception Reporter:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Jaromir Uhrik 2006-10-04 16:16:06 UTC
In the files listed below there is used calling of method setMnemonic() or
setDisplayedMnemonic(). Class org.openide.awt.Mnemonics should be used instead -
see issue #67807.

mobility\cldcplatform\src\org\netbeans\modules\mobility\cldcplatform\CustomizerPanel.java
mobility\cldcplatform\src\org\netbeans\modules\mobility\cldcplatform\customwizard\ClasspathPanel.java
mobility\cldcplatform\src\org\netbeans\modules\mobility\cldcplatform\customwizard\CommandLinesPanel.java
mobility\cldcplatform\src\org\netbeans\modules\mobility\cldcplatform\DetectPanel.java
mobility\cldcplatform\src\org\netbeans\modules\mobility\cldcplatform\libraries\J2MEVolumeCustomizer.java
mobility\cldcplatform\src\org\netbeans\modules\mobility\cldcplatform\SrcDocPathsPanel.java
mobility\cldcplatform\src\org\netbeans\modules\mobility\cldcplatform\wizard\DetectPanel.java
mobility\cldcplatform\src\org\netbeans\modules\mobility\cldcplatform\wizard\FindPanel.java
mobility\deployment\ftpscp\src\org\netbeans\modules\mobility\deployment\ftpscp\FtpCustomizerPanel.java
mobility\deployment\ftpscp\src\org\netbeans\modules\mobility\deployment\ftpscp\ScpCustomizerPanel.java
mobility\deployment\sonyericsson\src\org\netbeans\modules\mobility\deployment\sonyericsson\SonyEricssonCustomizerPanel.java
mobility\deployment\webdav\src\org\netbeans\modules\mobility\deployment\webdav\WebDAVCustomizerPanel.java
mobility\designer\nb_midp_components\nb_midp_module\src\org\netbeans\modules\vmd\components\nbmidp\InfoScreenActionPEPanel.java
mobility\designer\nb_midp_components\nb_midp_module\src\org\netbeans\modules\vmd\components\nbmidp\SimpleTableModelPropertyEditorPanel.java
mobility\designer\src\org\netbeans\modules\mvd\model\midp\DStringCodeValuePropertyEditor.java
mobility\designer\src\org\netbeans\modules\mvd\model\midp\propertyeditor\CustomCodeEditor.java
mobility\designer\src\org\netbeans\modules\mvd\model\midp\propertyeditor\JavaCodeEditorPanel.java
mobility\designer\src\org\netbeans\modules\mvd\model\midp\propertyeditor\PreferredSizePropertyEditor.java
mobility\designer\src\org\netbeans\modules\mvd\model\midp2\propertyeditor\ActionPropertyEditorPanel.java
mobility\designer\src\org\netbeans\modules\mvd\model\midp2\propertyeditor\AlertTimeoutPropertyEditor.java
mobility\designer\src\org\netbeans\modules\mvd\model\midp2\propertyeditor\AResourceChooserPropertyEditor.java
mobility\designer\src\org\netbeans\modules\mvd\model\midp2\propertyeditor\ImageResourcePropertyEditor.java
mobility\designer\src\org\netbeans\modules\mvd\model\midp2\propertyeditor\Midp2FontPropertyEditor.java
mobility\designer\src\org\netbeans\modules\mvd\model\midp2\propertyeditor\Midp2ItemLayoutTypePropertyEditor.java
mobility\designer\src\org\netbeans\modules\mvd\model\midp2\propertyeditor\Midp2TextFieldConstraintPropertyEditor.java
mobility\designer\src\org\netbeans\modules\mvd\ui\palette\wizard\SelectClassesPanel.java
mobility\designer\src\org\netbeans\modules\mvd\ui\palette\wizard\SelectProjectPanel.java
mobility\designer\src\org\netbeans\modules\mvd\ui\wizard\MIDPTargetChooserPanelGUI.java
mobility\end2end\jsr172\src\org\netbeans\modules\mobility\jsr172\multiview\ClientGeneralInfoPanel.java
mobility\end2end\jsr172\src\org\netbeans\modules\mobility\jsr172\multiview\JSR172ServicePanel.java
mobility\end2end\jsr172\src\org\netbeans\modules\mobility\jsr172\wizard\ClientInfo.java
mobility\end2end\src\org\netbeans\modules\mobility\end2end\multiview\ClientGeneralInfoPanel.java
mobility\end2end\src\org\netbeans\modules\mobility\end2end\multiview\ClientOptionsPanel.java
mobility\end2end\src\org\netbeans\modules\mobility\end2end\multiview\ServerGeneralInfoPanel.java
mobility\end2end\src\org\netbeans\modules\mobility\end2end\multiview\ServicesPanel.java
mobility\end2end\src\org\netbeans\modules\mobility\end2end\ui\treeview\MultiStateCheckBox.java
mobility\end2end\src\org\netbeans\modules\mobility\end2end\ui\wizard\ClientOptionsPanelGUI.java
mobility\end2end\src\org\netbeans\modules\mobility\end2end\ui\wizard\WebApplicationPanel.java
mobility\licensing\src\org\netbeans\modules\mobility\licensing\AcceptLicense.java
mobility\project\src\org\netbeans\modules\mobility\project\deployment\CopyCustomizerPanel.java
mobility\project\src\org\netbeans\modules\mobility\project\ui\customizer\AddAbilityPanel.java
mobility\project\src\org\netbeans\modules\mobility\project\ui\customizer\AddAPIPanel.java
mobility\project\src\org\netbeans\modules\mobility\project\ui\customizer\AddAttributePanel.java
mobility\project\src\org\netbeans\modules\mobility\project\ui\customizer\AddMIDletPanel.java
mobility\project\src\org\netbeans\modules\mobility\project\ui\customizer\AddPushRegistryPanel.java
mobility\project\src\org\netbeans\modules\mobility\project\ui\customizer\CloneConfigurationPanel.java
mobility\project\src\org\netbeans\modules\mobility\project\ui\customizer\CustomizerAbilities.java
mobility\project\src\org\netbeans\modules\mobility\project\ui\customizer\CustomizerCompile.java
mobility\project\src\org\netbeans\modules\mobility\project\ui\customizer\CustomizerConfigManager.java
mobility\project\src\org\netbeans\modules\mobility\project\ui\customizer\CustomizerDeploy.java
mobility\project\src\org\netbeans\modules\mobility\project\ui\customizer\CustomizerFiltering.java
mobility\project\src\org\netbeans\modules\mobility\project\ui\customizer\CustomizerGeneral.java
mobility\project\src\org\netbeans\modules\mobility\project\ui\customizer\CustomizerJad.java
mobility\project\src\org\netbeans\modules\mobility\project\ui\customizer\CustomizerJar.java
mobility\project\src\org\netbeans\modules\mobility\project\ui\customizer\CustomizerJavadoc.java
mobility\project\src\org\netbeans\modules\mobility\project\ui\customizer\CustomizerLibraries.java
mobility\project\src\org\netbeans\modules\mobility\project\ui\customizer\CustomizerMIDlets.java
mobility\project\src\org\netbeans\modules\mobility\project\ui\customizer\CustomizerMIDP.java
mobility\project\src\org\netbeans\modules\mobility\project\ui\customizer\CustomizerObfuscate.java
mobility\project\src\org\netbeans\modules\mobility\project\ui\customizer\CustomizerPermissions.java
mobility\project\src\org\netbeans\modules\mobility\project\ui\customizer\CustomizerPushReg.java
mobility\project\src\org\netbeans\modules\mobility\project\ui\customizer\CustomizerRun.java
mobility\project\src\org\netbeans\modules\mobility\project\ui\customizer\CustomizerSign.java
mobility\project\src\org\netbeans\modules\mobility\project\ui\customizer\J2MECustomizer.java
mobility\project\src\org\netbeans\modules\mobility\project\ui\customizer\NewConfigurationPanel.java
mobility\project\src\org\netbeans\modules\mobility\project\ui\customizer\regex\MultiStateCheckBox.java
mobility\project\src\org\netbeans\modules\mobility\project\ui\customizer\RemovalPanel.java
mobility\project\src\org\netbeans\modules\mobility\project\ui\customizer\SaveConfigurationPanel.java
mobility\project\src\org\netbeans\modules\mobility\project\ui\customizer\VisualConfigSupport.java
mobility\project\src\org\netbeans\modules\mobility\project\ui\CyclicDependencyWarningPanel.java
mobility\project\src\org\netbeans\modules\mobility\project\ui\QuickRunPanel.java
mobility\project\src\org\netbeans\modules\mobility\project\ui\security\AddKeystorePanel.java
mobility\project\src\org\netbeans\modules\mobility\project\ui\security\CreateKeyAliasPanel.java
mobility\project\src\org\netbeans\modules\mobility\project\ui\security\EnterPasswordPanel.java
mobility\project\src\org\netbeans\modules\mobility\project\ui\security\ExportPanel.java
mobility\project\src\org\netbeans\modules\mobility\project\ui\security\SecurityManagerPanel.java
mobility\project\src\org\netbeans\modules\mobility\project\ui\wizard\ConfigurationsSelectionPanelGUI.java
mobility\project\src\org\netbeans\modules\mobility\project\ui\wizard\i18n\LocalizationSupportPanelGUI.java
mobility\project\src\org\netbeans\modules\mobility\project\ui\wizard\imports\SourcesPanel.java
mobility\project\src\org\netbeans\modules\mobility\project\ui\wizard\imports\SuitePanel.java
mobility\project\src\org\netbeans\modules\mobility\project\ui\wizard\imports\WtkPanel.java
mobility\project\src\org\netbeans\modules\mobility\project\ui\wizard\MIDPTargetChooserPanelGUI.java
mobility\project\src\org\netbeans\modules\mobility\project\ui\wizard\PlatformInstallPanel.java
mobility\project\src\org\netbeans\modules\mobility\project\ui\wizard\PlatformSelectionPanelGUI.java
mobility\project\src\org\netbeans\modules\mobility\project\ui\wizard\ProjectPanel.java
mobility\project\src\org\netbeans\modules\project\support\customizer\AntArtifactChooser.java
mobility\project\src\org\netbeans\modules\project\support\customizer\LibrariesChooser.java
mobility\svg\nb_svg_midp_module\src\org\netbeans\modules\vmd\components\svg\SvgImageResourcePropertyEditor.java
Comment 1 Lukas Hasik 2006-10-04 16:22:05 UTC
cc'ing owners of affected modules.

Please fix your part and attach cvs log to this issue, thank you.
Comment 2 Adam Sotona 2006-10-04 16:50:19 UTC
You are asking to rewrite all the UI components that are a part of Mobility. The
components are mostly designed using I18N support in Form editor and manual
change  would take weeks.

I am not going to accept this issue unless there would be a strong reason and an
automated process to do so.
Comment 3 Lukas Hasik 2006-10-05 10:16:56 UTC
Mac OS isn't supported platform for Mobility Pack (yet).

I'm changing it to enhancement to don't lost the issue from radar when Mac OS
will become supported platform.


Jara, could you provide a reason why MobPack should rewrite the code different
than the Mac OS? 
Comment 4 Jaromir Uhrik 2006-10-05 14:37:27 UTC
Changing back to DEFECT.
The reason why to fix this issue is not only mnemonics problem on Mac OS.
Following example describes what happends by fixing this issue.
-----------------------------------------------------------------------------
The original code like this:
componentXYZ.setText(NbBundle.getMessage(XYZ.class, "XYZ")); 
componentXYZ.setMnemonic((NbBundle.getMessage(XYZ.class, "XYZ_mnem")).charAt(0)); 

Will look like following:
org.openide.awt.Mnemonics.setLocalizedText(componentXYZ,
NbBundle.getMessage(XYZ.class, "XYZ")); // NOI18N
------------------------------------------------------------------------------

It means that:
#1/the i18n will be assured
#2/resource bundles will be reduced (only one key will be there in the bundle
instead of two of them)
#3/performance team will be more happy as a consequence of #2/

I am cc-ing Ken. Ken, please correct me if I am wrong in I18N area.
Comment 5 Adam Sotona 2006-10-05 15:27:21 UTC
ad #1 - I18N is assured even now
ad #2 - this is not a defect
ad #3 - I am not happy to change hunderts of lines of code manually without a
strong reason

Don't you think about an automated process instead of filling tens of irracional
issues and forcing people to change thousands lines of code manually ?
Comment 6 Marian Mirilovic 2006-10-05 15:44:22 UTC
Adam and all,
I would like to clear the reasons why it's much better to do it the way Jara
suggested :
1. I18N - I remember Ken asked for these changes few times in the past, I think
it's much simpler localised one key instead of two
2. reducing the resource bundles & java classes leads to smaller jars, it leads
to  faster startup so clearly speaking this is performance iprovement as well
3. all think you have to do is to open your dialog in our form editor and change
it to use org.openide.awt.Mnemonics as well as remove unused keys in your bundles
Comment 7 Lukas Hasik 2007-06-07 12:27:19 UTC
increasing priority. It's mandatory to change it for 6.0
Comment 8 Lukas Hasik 2007-07-23 09:25:52 UTC
Reassigning to Martin R. Please decide what to do with this issue.
Comment 9 Martin Ryzl 2007-08-02 16:27:38 UTC
assigning to Adam. Since he has already changed most of the forms it should be closed as fixed soon. Changing platform
to all - assume it affects all platforms.
Comment 10 Adam Sotona 2007-08-02 18:29:38 UTC
fixed about 400 components and 800 resource bundle records in Mobility

BTW: if you are interested I've implemented semi-automated converter
Comment 11 Lukas Hasik 2007-10-05 10:46:30 UTC
v