From: <ls...@us...> - 2011-03-05 13:27:38
|
Revision: 5804 http://jnode.svn.sourceforge.net/jnode/?rev=5804&view=rev Author: lsantha Date: 2011-03-05 13:27:27 +0000 (Sat, 05 Mar 2011) Log Message: ----------- Integrating OpenJDK 6 b22. Modified Paths: -------------- classlib6/core/src/openjdk/sun/sun/swing/BakedArrayList.java classlib6/core/src/openjdk/sun/sun/swing/CachedPainter.java classlib6/core/src/openjdk/sun/sun/swing/DefaultLookup.java classlib6/core/src/openjdk/sun/sun/swing/FilePane.java classlib6/core/src/openjdk/sun/sun/swing/ImageCache.java classlib6/core/src/openjdk/sun/sun/swing/ImageIconUIResource.java classlib6/core/src/openjdk/sun/sun/swing/MenuItemCheckIconFactory.java classlib6/core/src/openjdk/sun/sun/swing/PrintColorUIResource.java classlib6/core/src/openjdk/sun/sun/swing/StringUIClientPropertyKey.java classlib6/core/src/openjdk/sun/sun/swing/SwingLazyValue.java classlib6/core/src/openjdk/sun/sun/swing/SwingUtilities2.java classlib6/core/src/openjdk/sun/sun/swing/UIAction.java classlib6/core/src/openjdk/sun/sun/swing/UIClientPropertyKey.java classlib6/core/src/openjdk/sun/sun/swing/WindowsPlacesBar.java classlib6/core/src/openjdk/sun/sun/swing/plaf/synth/DefaultSynthStyle.java classlib6/core/src/openjdk/sun/sun/swing/plaf/synth/Paint9Painter.java classlib6/core/src/openjdk/sun/sun/swing/plaf/synth/StyleAssociation.java classlib6/core/src/openjdk/sun/sun/swing/plaf/synth/SynthFileChooserUI.java classlib6/core/src/openjdk/sun/sun/swing/plaf/synth/SynthFileChooserUIImpl.java classlib6/core/src/openjdk/sun/sun/swing/plaf/synth/SynthIcon.java classlib6/core/src/openjdk/sun/sun/swing/plaf/synth/SynthUI.java classlib6/core/src/openjdk/sun/sun/swing/table/DefaultTableCellHeaderRenderer.java classlib6/core/src/openjdk/sun/sun/tools/jar/CommandLine.java classlib6/core/src/openjdk/sun/sun/tools/jar/JarException.java classlib6/core/src/openjdk/sun/sun/tools/jar/JarImageSource.java classlib6/core/src/openjdk/sun/sun/tools/jar/JarVerifierStream.java classlib6/core/src/openjdk/sun/sun/tools/jar/Main.java classlib6/core/src/openjdk/sun/sun/tools/jar/Manifest.java classlib6/core/src/openjdk/sun/sun/tools/jar/SignatureFile.java classlib6/core/src/openjdk/sun/sun/tools/jar/resources/jar.properties classlib6/core/src/openjdk/sun/sun/tools/jar/resources/jar_de.properties classlib6/core/src/openjdk/sun/sun/tools/jar/resources/jar_es.properties classlib6/core/src/openjdk/sun/sun/tools/jar/resources/jar_fr.properties classlib6/core/src/openjdk/sun/sun/tools/jar/resources/jar_it.properties classlib6/core/src/openjdk/sun/sun/tools/jar/resources/jar_ja.properties classlib6/core/src/openjdk/sun/sun/tools/jar/resources/jar_ko.properties classlib6/core/src/openjdk/sun/sun/tools/jar/resources/jar_sv.properties classlib6/core/src/openjdk/sun/sun/tools/jar/resources/jar_zh_CN.properties classlib6/core/src/openjdk/sun/sun/tools/jar/resources/jar_zh_TW.properties classlib6/core/src/openjdk/sun/sun/tools/javac/resources/javac.properties classlib6/core/src/openjdk/sun/sun/tools/javac/resources/javac_ja.properties classlib6/core/src/openjdk/sun/sun/tools/javac/resources/javac_zh_CN.properties classlib6/core/src/openjdk/sun/sun/util/calendar/AbstractCalendar.java classlib6/core/src/openjdk/sun/sun/util/calendar/BaseCalendar.java classlib6/core/src/openjdk/sun/sun/util/calendar/CalendarDate.java classlib6/core/src/openjdk/sun/sun/util/calendar/CalendarSystem.java classlib6/core/src/openjdk/sun/sun/util/calendar/CalendarUtils.java classlib6/core/src/openjdk/sun/sun/util/calendar/Era.java classlib6/core/src/openjdk/sun/sun/util/calendar/Gregorian.java classlib6/core/src/openjdk/sun/sun/util/calendar/JulianCalendar.java classlib6/core/src/openjdk/sun/sun/util/calendar/ZoneInfo.java classlib6/core/src/openjdk/sun/sun/util/calendar/ZoneInfoFile.java classlib6/core/src/openjdk/sun/sun/util/logging/resources/logging.properties classlib6/core/src/openjdk/sun/sun/util/logging/resources/logging_de.properties classlib6/core/src/openjdk/sun/sun/util/logging/resources/logging_es.properties classlib6/core/src/openjdk/sun/sun/util/logging/resources/logging_fr.properties classlib6/core/src/openjdk/sun/sun/util/logging/resources/logging_it.properties classlib6/core/src/openjdk/sun/sun/util/logging/resources/logging_ja.properties classlib6/core/src/openjdk/sun/sun/util/logging/resources/logging_ko.properties classlib6/core/src/openjdk/sun/sun/util/logging/resources/logging_sv.properties classlib6/core/src/openjdk/sun/sun/util/logging/resources/logging_zh_CN.properties classlib6/core/src/openjdk/sun/sun/util/logging/resources/logging_zh_TW.properties classlib6/core/src/openjdk/sun/sun/util/resources/CalendarData.properties classlib6/core/src/openjdk/sun/sun/util/resources/CalendarData_ar.properties classlib6/core/src/openjdk/sun/sun/util/resources/CalendarData_be.properties classlib6/core/src/openjdk/sun/sun/util/resources/CalendarData_bg.properties classlib6/core/src/openjdk/sun/sun/util/resources/CalendarData_ca.properties classlib6/core/src/openjdk/sun/sun/util/resources/CalendarData_cs.properties classlib6/core/src/openjdk/sun/sun/util/resources/CalendarData_da.properties classlib6/core/src/openjdk/sun/sun/util/resources/CalendarData_de.properties classlib6/core/src/openjdk/sun/sun/util/resources/CalendarData_el.properties classlib6/core/src/openjdk/sun/sun/util/resources/CalendarData_el_CY.properties classlib6/core/src/openjdk/sun/sun/util/resources/CalendarData_en.properties classlib6/core/src/openjdk/sun/sun/util/resources/CalendarData_en_GB.properties classlib6/core/src/openjdk/sun/sun/util/resources/CalendarData_en_IE.properties classlib6/core/src/openjdk/sun/sun/util/resources/CalendarData_en_MT.properties classlib6/core/src/openjdk/sun/sun/util/resources/CalendarData_es.properties classlib6/core/src/openjdk/sun/sun/util/resources/CalendarData_es_ES.properties classlib6/core/src/openjdk/sun/sun/util/resources/CalendarData_es_US.properties classlib6/core/src/openjdk/sun/sun/util/resources/CalendarData_et.properties classlib6/core/src/openjdk/sun/sun/util/resources/CalendarData_fi.properties classlib6/core/src/openjdk/sun/sun/util/resources/CalendarData_fr.properties classlib6/core/src/openjdk/sun/sun/util/resources/CalendarData_fr_CA.properties classlib6/core/src/openjdk/sun/sun/util/resources/CalendarData_hi.properties classlib6/core/src/openjdk/sun/sun/util/resources/CalendarData_hr.properties classlib6/core/src/openjdk/sun/sun/util/resources/CalendarData_hu.properties classlib6/core/src/openjdk/sun/sun/util/resources/CalendarData_in_ID.properties classlib6/core/src/openjdk/sun/sun/util/resources/CalendarData_is.properties classlib6/core/src/openjdk/sun/sun/util/resources/CalendarData_it.properties classlib6/core/src/openjdk/sun/sun/util/resources/CalendarData_iw.properties classlib6/core/src/openjdk/sun/sun/util/resources/CalendarData_ja.properties classlib6/core/src/openjdk/sun/sun/util/resources/CalendarData_ko.properties classlib6/core/src/openjdk/sun/sun/util/resources/CalendarData_lt.properties classlib6/core/src/openjdk/sun/sun/util/resources/CalendarData_lv.properties classlib6/core/src/openjdk/sun/sun/util/resources/CalendarData_mk.properties classlib6/core/src/openjdk/sun/sun/util/resources/CalendarData_ms_MY.properties classlib6/core/src/openjdk/sun/sun/util/resources/CalendarData_mt.properties classlib6/core/src/openjdk/sun/sun/util/resources/CalendarData_mt_MT.properties classlib6/core/src/openjdk/sun/sun/util/resources/CalendarData_nl.properties classlib6/core/src/openjdk/sun/sun/util/resources/CalendarData_no.properties classlib6/core/src/openjdk/sun/sun/util/resources/CalendarData_pl.properties classlib6/core/src/openjdk/sun/sun/util/resources/CalendarData_pt.properties classlib6/core/src/openjdk/sun/sun/util/resources/CalendarData_pt_PT.properties classlib6/core/src/openjdk/sun/sun/util/resources/CalendarData_ro.properties classlib6/core/src/openjdk/sun/sun/util/resources/CalendarData_ru.properties classlib6/core/src/openjdk/sun/sun/util/resources/CalendarData_sk.properties classlib6/core/src/openjdk/sun/sun/util/resources/CalendarData_sl.properties classlib6/core/src/openjdk/sun/sun/util/resources/CalendarData_sq.properties classlib6/core/src/openjdk/sun/sun/util/resources/CalendarData_sr.properties classlib6/core/src/openjdk/sun/sun/util/resources/CalendarData_sv.properties classlib6/core/src/openjdk/sun/sun/util/resources/CalendarData_th.properties classlib6/core/src/openjdk/sun/sun/util/resources/CalendarData_tr.properties classlib6/core/src/openjdk/sun/sun/util/resources/CalendarData_uk.properties classlib6/core/src/openjdk/sun/sun/util/resources/CalendarData_vi.properties classlib6/core/src/openjdk/sun/sun/util/resources/CalendarData_zh.properties classlib6/core/src/openjdk/sun/sun/util/resources/CurrencyNames.properties classlib6/core/src/openjdk/sun/sun/util/resources/CurrencyNames_ar_AE.properties classlib6/core/src/openjdk/sun/sun/util/resources/CurrencyNames_ar_BH.properties classlib6/core/src/openjdk/sun/sun/util/resources/CurrencyNames_ar_DZ.properties classlib6/core/src/openjdk/sun/sun/util/resources/CurrencyNames_ar_EG.properties classlib6/core/src/openjdk/sun/sun/util/resources/CurrencyNames_ar_IQ.properties classlib6/core/src/openjdk/sun/sun/util/resources/CurrencyNames_ar_JO.properties classlib6/core/src/openjdk/sun/sun/util/resources/CurrencyNames_ar_KW.properties classlib6/core/src/openjdk/sun/sun/util/resources/CurrencyNames_ar_LB.properties classlib6/core/src/openjdk/sun/sun/util/resources/CurrencyNames_ar_LY.properties classlib6/core/src/openjdk/sun/sun/util/resources/CurrencyNames_ar_MA.properties classlib6/core/src/openjdk/sun/sun/util/resources/CurrencyNames_ar_OM.properties classlib6/core/src/openjdk/sun/sun/util/resources/CurrencyNames_ar_QA.properties classlib6/core/src/openjdk/sun/sun/util/resources/CurrencyNames_ar_SA.properties classlib6/core/src/openjdk/sun/sun/util/resources/CurrencyNames_ar_SD.properties classlib6/core/src/openjdk/sun/sun/util/resources/CurrencyNames_ar_SY.properties classlib6/core/src/openjdk/sun/sun/util/resources/CurrencyNames_ar_TN.properties classlib6/core/src/openjdk/sun/sun/util/resources/CurrencyNames_ar_YE.properties classlib6/core/src/openjdk/sun/sun/util/resources/CurrencyNames_be_BY.properties classlib6/core/src/openjdk/sun/sun/util/resources/CurrencyNames_bg_BG.properties classlib6/core/src/openjdk/sun/sun/util/resources/CurrencyNames_ca_ES.properties classlib6/core/src/openjdk/sun/sun/util/resources/CurrencyNames_cs_CZ.properties classlib6/core/src/openjdk/sun/sun/util/resources/CurrencyNames_da_DK.properties classlib6/core/src/openjdk/sun/sun/util/resources/CurrencyNames_de.properties classlib6/core/src/openjdk/sun/sun/util/resources/CurrencyNames_de_AT.properties classlib6/core/src/openjdk/sun/sun/util/resources/CurrencyNames_de_CH.properties classlib6/core/src/openjdk/sun/sun/util/resources/CurrencyNames_de_DE.properties classlib6/core/src/openjdk/sun/sun/util/resources/CurrencyNames_de_GR.properties classlib6/core/src/openjdk/sun/sun/util/resources/CurrencyNames_de_LU.properties classlib6/core/src/openjdk/sun/sun/util/resources/CurrencyNames_el_CY.properties classlib6/core/src/openjdk/sun/sun/util/resources/CurrencyNames_el_GR.properties classlib6/core/src/openjdk/sun/sun/util/resources/CurrencyNames_en_AU.properties classlib6/core/src/openjdk/sun/sun/util/resources/CurrencyNames_en_CA.properties classlib6/core/src/openjdk/sun/sun/util/resources/CurrencyNames_en_GB.properties classlib6/core/src/openjdk/sun/sun/util/resources/CurrencyNames_en_IE.properties classlib6/core/src/openjdk/sun/sun/util/resources/CurrencyNames_en_IN.properties classlib6/core/src/openjdk/sun/sun/util/resources/CurrencyNames_en_MT.properties classlib6/core/src/openjdk/sun/sun/util/resources/CurrencyNames_en_NZ.properties classlib6/core/src/openjdk/sun/sun/util/resources/CurrencyNames_en_PH.properties classlib6/core/src/openjdk/sun/sun/util/resources/CurrencyNames_en_SG.properties classlib6/core/src/openjdk/sun/sun/util/resources/CurrencyNames_en_US.properties classlib6/core/src/openjdk/sun/sun/util/resources/CurrencyNames_en_ZA.properties classlib6/core/src/openjdk/sun/sun/util/resources/CurrencyNames_es.properties classlib6/core/src/openjdk/sun/sun/util/resources/CurrencyNames_es_AR.properties classlib6/core/src/openjdk/sun/sun/util/resources/CurrencyNames_es_BO.properties classlib6/core/src/openjdk/sun/sun/util/resources/CurrencyNames_es_CL.properties classlib6/core/src/openjdk/sun/sun/util/resources/CurrencyNames_es_CO.properties classlib6/core/src/openjdk/sun/sun/util/resources/CurrencyNames_es_CR.properties classlib6/core/src/openjdk/sun/sun/util/resources/CurrencyNames_es_DO.properties classlib6/core/src/openjdk/sun/sun/util/resources/CurrencyNames_es_EC.properties classlib6/core/src/openjdk/sun/sun/util/resources/CurrencyNames_es_ES.properties classlib6/core/src/openjdk/sun/sun/util/resources/CurrencyNames_es_GT.properties classlib6/core/src/openjdk/sun/sun/util/resources/CurrencyNames_es_HN.properties classlib6/core/src/openjdk/sun/sun/util/resources/CurrencyNames_es_MX.properties classlib6/core/src/openjdk/sun/sun/util/resources/CurrencyNames_es_NI.properties classlib6/core/src/openjdk/sun/sun/util/resources/CurrencyNames_es_PA.properties classlib6/core/src/openjdk/sun/sun/util/resources/CurrencyNames_es_PE.properties classlib6/core/src/openjdk/sun/sun/util/resources/CurrencyNames_es_PR.properties classlib6/core/src/openjdk/sun/sun/util/resources/CurrencyNames_es_PY.properties classlib6/core/src/openjdk/sun/sun/util/resources/CurrencyNames_es_SV.properties classlib6/core/src/openjdk/sun/sun/util/resources/CurrencyNames_es_US.properties classlib6/core/src/openjdk/sun/sun/util/resources/CurrencyNames_es_UY.properties classlib6/core/src/openjdk/sun/sun/util/resources/CurrencyNames_es_VE.properties classlib6/core/src/openjdk/sun/sun/util/resources/CurrencyNames_et_EE.properties classlib6/core/src/openjdk/sun/sun/util/resources/CurrencyNames_fi_FI.properties classlib6/core/src/openjdk/sun/sun/util/resources/CurrencyNames_fr.properties classlib6/core/src/openjdk/sun/sun/util/resources/CurrencyNames_fr_BE.properties classlib6/core/src/openjdk/sun/sun/util/resources/CurrencyNames_fr_CA.properties classlib6/core/src/openjdk/sun/sun/util/resources/CurrencyNames_fr_CH.properties classlib6/core/src/openjdk/sun/sun/util/resources/CurrencyNames_fr_FR.properties classlib6/core/src/openjdk/sun/sun/util/resources/CurrencyNames_fr_LU.properties classlib6/core/src/openjdk/sun/sun/util/resources/CurrencyNames_ga_IE.properties classlib6/core/src/openjdk/sun/sun/util/resources/CurrencyNames_hi_IN.properties classlib6/core/src/openjdk/sun/sun/util/resources/CurrencyNames_hr_HR.properties classlib6/core/src/openjdk/sun/sun/util/resources/CurrencyNames_hu_HU.properties classlib6/core/src/openjdk/sun/sun/util/resources/CurrencyNames_in_ID.properties classlib6/core/src/openjdk/sun/sun/util/resources/CurrencyNames_is_IS.properties classlib6/core/src/openjdk/sun/sun/util/resources/CurrencyNames_it.properties classlib6/core/src/openjdk/sun/sun/util/resources/CurrencyNames_it_CH.properties classlib6/core/src/openjdk/sun/sun/util/resources/CurrencyNames_it_IT.properties classlib6/core/src/openjdk/sun/sun/util/resources/CurrencyNames_iw_IL.properties classlib6/core/src/openjdk/sun/sun/util/resources/CurrencyNames_ja.properties classlib6/core/src/openjdk/sun/sun/util/resources/CurrencyNames_ja_JP.properties classlib6/core/src/openjdk/sun/sun/util/resources/CurrencyNames_ko.properties classlib6/core/src/openjdk/sun/sun/util/resources/CurrencyNames_ko_KR.properties classlib6/core/src/openjdk/sun/sun/util/resources/CurrencyNames_lt_LT.properties classlib6/core/src/openjdk/sun/sun/util/resources/CurrencyNames_lv_LV.properties classlib6/core/src/openjdk/sun/sun/util/resources/CurrencyNames_mk_MK.properties classlib6/core/src/openjdk/sun/sun/util/resources/CurrencyNames_ms_MY.properties classlib6/core/src/openjdk/sun/sun/util/resources/CurrencyNames_mt_MT.properties classlib6/core/src/openjdk/sun/sun/util/resources/CurrencyNames_nl_BE.properties classlib6/core/src/openjdk/sun/sun/util/resources/CurrencyNames_nl_NL.properties classlib6/core/src/openjdk/sun/sun/util/resources/CurrencyNames_no_NO.properties classlib6/core/src/openjdk/sun/sun/util/resources/CurrencyNames_pl_PL.properties classlib6/core/src/openjdk/sun/sun/util/resources/CurrencyNames_pt_BR.properties classlib6/core/src/openjdk/sun/sun/util/resources/CurrencyNames_pt_PT.properties classlib6/core/src/openjdk/sun/sun/util/resources/CurrencyNames_ro_RO.properties classlib6/core/src/openjdk/sun/sun/util/resources/CurrencyNames_ru_RU.properties classlib6/core/src/openjdk/sun/sun/util/resources/CurrencyNames_sk_SK.properties classlib6/core/src/openjdk/sun/sun/util/resources/CurrencyNames_sl_SI.properties classlib6/core/src/openjdk/sun/sun/util/resources/CurrencyNames_sq_AL.properties classlib6/core/src/openjdk/sun/sun/util/resources/CurrencyNames_sr_BA.properties classlib6/core/src/openjdk/sun/sun/util/resources/CurrencyNames_sr_CS.properties classlib6/core/src/openjdk/sun/sun/util/resources/CurrencyNames_sr_ME.properties classlib6/core/src/openjdk/sun/sun/util/resources/CurrencyNames_sv.properties classlib6/core/src/openjdk/sun/sun/util/resources/CurrencyNames_sv_SE.properties classlib6/core/src/openjdk/sun/sun/util/resources/CurrencyNames_th_TH.properties classlib6/core/src/openjdk/sun/sun/util/resources/CurrencyNames_tr_TR.properties classlib6/core/src/openjdk/sun/sun/util/resources/CurrencyNames_uk_UA.properties classlib6/core/src/openjdk/sun/sun/util/resources/CurrencyNames_vi_VN.properties classlib6/core/src/openjdk/sun/sun/util/resources/CurrencyNames_zh_CN.properties classlib6/core/src/openjdk/sun/sun/util/resources/CurrencyNames_zh_HK.java classlib6/core/src/openjdk/sun/sun/util/resources/CurrencyNames_zh_SG.java classlib6/core/src/openjdk/sun/sun/util/resources/CurrencyNames_zh_TW.properties classlib6/core/src/openjdk/sun/sun/util/resources/LocaleData.java classlib6/core/src/openjdk/sun/sun/util/resources/LocaleNames.properties classlib6/core/src/openjdk/sun/sun/util/resources/LocaleNames_ar.properties classlib6/core/src/openjdk/sun/sun/util/resources/LocaleNames_be.properties classlib6/core/src/openjdk/sun/sun/util/resources/LocaleNames_bg.properties classlib6/core/src/openjdk/sun/sun/util/resources/LocaleNames_ca.properties classlib6/core/src/openjdk/sun/sun/util/resources/LocaleNames_cs.properties classlib6/core/src/openjdk/sun/sun/util/resources/LocaleNames_da.properties classlib6/core/src/openjdk/sun/sun/util/resources/LocaleNames_de.properties classlib6/core/src/openjdk/sun/sun/util/resources/LocaleNames_el.properties classlib6/core/src/openjdk/sun/sun/util/resources/LocaleNames_el_CY.properties classlib6/core/src/openjdk/sun/sun/util/resources/LocaleNames_en.properties classlib6/core/src/openjdk/sun/sun/util/resources/LocaleNames_en_MT.properties classlib6/core/src/openjdk/sun/sun/util/resources/LocaleNames_en_PH.properties classlib6/core/src/openjdk/sun/sun/util/resources/LocaleNames_en_SG.properties classlib6/core/src/openjdk/sun/sun/util/resources/LocaleNames_es.properties classlib6/core/src/openjdk/sun/sun/util/resources/LocaleNames_es_US.properties classlib6/core/src/openjdk/sun/sun/util/resources/LocaleNames_et.properties classlib6/core/src/openjdk/sun/sun/util/resources/LocaleNames_fi.properties classlib6/core/src/openjdk/sun/sun/util/resources/LocaleNames_fr.properties classlib6/core/src/openjdk/sun/sun/util/resources/LocaleNames_ga.properties classlib6/core/src/openjdk/sun/sun/util/resources/LocaleNames_hi.properties classlib6/core/src/openjdk/sun/sun/util/resources/LocaleNames_hr.properties classlib6/core/src/openjdk/sun/sun/util/resources/LocaleNames_hu.properties classlib6/core/src/openjdk/sun/sun/util/resources/LocaleNames_in.properties classlib6/core/src/openjdk/sun/sun/util/resources/LocaleNames_is.properties classlib6/core/src/openjdk/sun/sun/util/resources/LocaleNames_it.properties classlib6/core/src/openjdk/sun/sun/util/resources/LocaleNames_iw.properties classlib6/core/src/openjdk/sun/sun/util/resources/LocaleNames_ja.properties classlib6/core/src/openjdk/sun/sun/util/resources/LocaleNames_ko.properties classlib6/core/src/openjdk/sun/sun/util/resources/LocaleNames_lt.properties classlib6/core/src/openjdk/sun/sun/util/resources/LocaleNames_lv.properties classlib6/core/src/openjdk/sun/sun/util/resources/LocaleNames_mk.properties classlib6/core/src/openjdk/sun/sun/util/resources/LocaleNames_ms.properties classlib6/core/src/openjdk/sun/sun/util/resources/LocaleNames_mt.properties classlib6/core/src/openjdk/sun/sun/util/resources/LocaleNames_nl.properties classlib6/core/src/openjdk/sun/sun/util/resources/LocaleNames_no.properties classlib6/core/src/openjdk/sun/sun/util/resources/LocaleNames_no_NO_NY.properties classlib6/core/src/openjdk/sun/sun/util/resources/LocaleNames_pl.properties classlib6/core/src/openjdk/sun/sun/util/resources/LocaleNames_pt.properties classlib6/core/src/openjdk/sun/sun/util/resources/LocaleNames_pt_BR.properties classlib6/core/src/openjdk/sun/sun/util/resources/LocaleNames_pt_PT.properties classlib6/core/src/openjdk/sun/sun/util/resources/LocaleNames_ro.properties classlib6/core/src/openjdk/sun/sun/util/resources/LocaleNames_ru.properties classlib6/core/src/openjdk/sun/sun/util/resources/LocaleNames_sk.properties classlib6/core/src/openjdk/sun/sun/util/resources/LocaleNames_sl.properties classlib6/core/src/openjdk/sun/sun/util/resources/LocaleNames_sq.properties classlib6/core/src/openjdk/sun/sun/util/resources/LocaleNames_sr.properties classlib6/core/src/openjdk/sun/sun/util/resources/LocaleNames_sv.properties classlib6/core/src/openjdk/sun/sun/util/resources/LocaleNames_th.properties classlib6/core/src/openjdk/sun/sun/util/resources/LocaleNames_tr.properties classlib6/core/src/openjdk/sun/sun/util/resources/LocaleNames_uk.properties classlib6/core/src/openjdk/sun/sun/util/resources/LocaleNames_vi.properties classlib6/core/src/openjdk/sun/sun/util/resources/LocaleNames_zh.properties classlib6/core/src/openjdk/sun/sun/util/resources/LocaleNames_zh_SG.properties classlib6/core/src/openjdk/sun/sun/util/resources/LocaleNames_zh_TW.properties classlib6/core/src/openjdk/sun/sun/util/resources/OpenListResourceBundle.java classlib6/core/src/openjdk/sun/sun/util/resources/TimeZoneNames.java classlib6/core/src/openjdk/sun/sun/util/resources/TimeZoneNamesBundle.java classlib6/core/src/openjdk/sun/sun/util/resources/TimeZoneNames_de.java classlib6/core/src/openjdk/sun/sun/util/resources/TimeZoneNames_en.java classlib6/core/src/openjdk/sun/sun/util/resources/TimeZoneNames_en_CA.java classlib6/core/src/openjdk/sun/sun/util/resources/TimeZoneNames_en_GB.java classlib6/core/src/openjdk/sun/sun/util/resources/TimeZoneNames_en_IE.java classlib6/core/src/openjdk/sun/sun/util/resources/TimeZoneNames_es.java classlib6/core/src/openjdk/sun/sun/util/resources/TimeZoneNames_fr.java classlib6/core/src/openjdk/sun/sun/util/resources/TimeZoneNames_hi.java classlib6/core/src/openjdk/sun/sun/util/resources/TimeZoneNames_it.java classlib6/core/src/openjdk/sun/sun/util/resources/TimeZoneNames_ja.java classlib6/core/src/openjdk/sun/sun/util/resources/TimeZoneNames_ko.java classlib6/core/src/openjdk/sun/sun/util/resources/TimeZoneNames_sv.java classlib6/core/src/openjdk/sun/sun/util/resources/TimeZoneNames_zh_CN.java classlib6/core/src/openjdk/sun/sun/util/resources/TimeZoneNames_zh_HK.java classlib6/core/src/openjdk/sun/sun/util/resources/TimeZoneNames_zh_TW.java Added Paths: ----------- classlib6/core/src/openjdk/sun/sun/swing/MenuItemLayoutHelper.java classlib6/core/src/openjdk/sun/sun/util/calendar/TzIDOldMapping.java Modified: classlib6/core/src/openjdk/sun/sun/swing/BakedArrayList.java =================================================================== --- classlib6/core/src/openjdk/sun/sun/swing/BakedArrayList.java 2011-03-05 13:13:50 UTC (rev 5803) +++ classlib6/core/src/openjdk/sun/sun/swing/BakedArrayList.java 2011-03-05 13:27:27 UTC (rev 5804) @@ -1,12 +1,12 @@ /* - * Copyright 2003 Sun Microsystems, Inc. All Rights Reserved. + * Copyright (c) 2003, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. Sun designates this + * published by the Free Software Foundation. Oracle designates this * particular file as subject to the "Classpath" exception as provided - * by Sun in the LICENSE file that accompanied this code. + * by Oracle in the LICENSE file that accompanied this code. * * This code is distributed in the hope that it will be useful, but WITHOUT * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or @@ -18,9 +18,9 @@ * 2 along with this work; if not, write to the Free Software Foundation, * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. * - * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, - * CA 95054 USA or visit www.sun.com if you need additional information or - * have any questions. + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. */ package sun.swing; Modified: classlib6/core/src/openjdk/sun/sun/swing/CachedPainter.java =================================================================== --- classlib6/core/src/openjdk/sun/sun/swing/CachedPainter.java 2011-03-05 13:13:50 UTC (rev 5803) +++ classlib6/core/src/openjdk/sun/sun/swing/CachedPainter.java 2011-03-05 13:27:27 UTC (rev 5804) @@ -1,12 +1,12 @@ /* - * Copyright 2004-2006 Sun Microsystems, Inc. All Rights Reserved. + * Copyright (c) 2004, 2006, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. Sun designates this + * published by the Free Software Foundation. Oracle designates this * particular file as subject to the "Classpath" exception as provided - * by Sun in the LICENSE file that accompanied this code. + * by Oracle in the LICENSE file that accompanied this code. * * This code is distributed in the hope that it will be useful, but WITHOUT * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or @@ -18,9 +18,9 @@ * 2 along with this work; if not, write to the Free Software Foundation, * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. * - * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, - * CA 95054 USA or visit www.sun.com if you need additional information or - * have any questions. + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. */ package sun.swing; Modified: classlib6/core/src/openjdk/sun/sun/swing/DefaultLookup.java =================================================================== --- classlib6/core/src/openjdk/sun/sun/swing/DefaultLookup.java 2011-03-05 13:13:50 UTC (rev 5803) +++ classlib6/core/src/openjdk/sun/sun/swing/DefaultLookup.java 2011-03-05 13:27:27 UTC (rev 5804) @@ -1,12 +1,12 @@ /* - * Copyright 2003 Sun Microsystems, Inc. All Rights Reserved. + * Copyright (c) 2003, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. Sun designates this + * published by the Free Software Foundation. Oracle designates this * particular file as subject to the "Classpath" exception as provided - * by Sun in the LICENSE file that accompanied this code. + * by Oracle in the LICENSE file that accompanied this code. * * This code is distributed in the hope that it will be useful, but WITHOUT * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or @@ -18,15 +18,16 @@ * 2 along with this work; if not, write to the Free Software Foundation, * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. * - * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, - * CA 95054 USA or visit www.sun.com if you need additional information or - * have any questions. + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. */ package sun.swing; import java.awt.Color; import java.awt.Insets; import javax.swing.*; +import javax.swing.border.Border; import javax.swing.plaf.ComponentUI; import sun.awt.AppContext; @@ -46,8 +47,7 @@ /** * Key used to store DefaultLookup for AppContext. */ - private static final Object DEFAULT_LOOKUP_KEY = new - StringBuffer("DefaultLookup"); + private static final Object DEFAULT_LOOKUP_KEY = new Object(); // DefaultLookup /** * Thread that last asked for a default. */ @@ -137,6 +137,10 @@ return ((Number)iValue).intValue(); } + public static int getInt(JComponent c, ComponentUI ui, String key) { + return getInt(c, ui, key, -1); + } + public static Insets getInsets(JComponent c, ComponentUI ui, String key, Insets defaultValue) { Object iValue = get(c, ui, key); @@ -147,6 +151,10 @@ return (Insets)iValue; } + public static Insets getInsets(JComponent c, ComponentUI ui, String key) { + return getInsets(c, ui, key, null); + } + public static boolean getBoolean(JComponent c, ComponentUI ui, String key, boolean defaultValue) { Object iValue = get(c, ui, key); @@ -157,6 +165,10 @@ return ((Boolean)iValue).booleanValue(); } + public static boolean getBoolean(JComponent c, ComponentUI ui, String key) { + return getBoolean(c, ui, key, false); + } + public static Color getColor(JComponent c, ComponentUI ui, String key, Color defaultValue) { Object iValue = get(c, ui, key); @@ -167,8 +179,36 @@ return (Color)iValue; } + public static Color getColor(JComponent c, ComponentUI ui, String key) { + return getColor(c, ui, key, null); + } + public static Icon getIcon(JComponent c, ComponentUI ui, String key, + Icon defaultValue) { + Object iValue = get(c, ui, key); + if (iValue == null || !(iValue instanceof Icon)) { + return defaultValue; + } + return (Icon)iValue; + } + public static Icon getIcon(JComponent c, ComponentUI ui, String key) { + return getIcon(c, ui, key, null); + } + + public static Border getBorder(JComponent c, ComponentUI ui, String key, + Border defaultValue) { + Object iValue = get(c, ui, key); + if (iValue == null || !(iValue instanceof Border)) { + return defaultValue; + } + return (Border)iValue; + } + + public static Border getBorder(JComponent c, ComponentUI ui, String key) { + return getBorder(c, ui, key, null); + } + public Object getDefault(JComponent c, ComponentUI ui, String key) { // basic return UIManager.get(key, c.getLocale()); Modified: classlib6/core/src/openjdk/sun/sun/swing/FilePane.java =================================================================== --- classlib6/core/src/openjdk/sun/sun/swing/FilePane.java 2011-03-05 13:13:50 UTC (rev 5803) +++ classlib6/core/src/openjdk/sun/sun/swing/FilePane.java 2011-03-05 13:27:27 UTC (rev 5804) @@ -1,13 +1,13 @@ /* - * Copyright 2003-2006 Sun Microsystems, Inc. All Rights Reserved. + * Copyright (c) 2003, 2006, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. Sun designates this + * published by the Free Software Foundation. Oracle designates this * particular file as subject to the "Classpath" exception as provided - * by Sun in the LICENSE file that accompanied this code. + * by Oracle in the LICENSE file that accompanied this code. * * This code is distributed in the hope that it will be useful, but WITHOUT * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or @@ -19,9 +19,9 @@ * 2 along with this work; if not, write to the Free Software Foundation, * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. * - * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, - * CA 95054 USA or visit www.sun.com if you need additional information or - * have any questions. + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. */ package sun.swing; @@ -263,6 +263,7 @@ private Color listViewBackground; private boolean listViewWindowsStyle; private boolean readOnly; + private boolean fullRowSelection = false; private ListSelectionModel listSelectionModel; private JList list; @@ -446,6 +447,7 @@ kiloByteString = UIManager.getString("FileChooser.fileSizeKiloBytes", l); megaByteString = UIManager.getString("FileChooser.fileSizeMegaBytes", l); gigaByteString = UIManager.getString("FileChooser.fileSizeGigaBytes", l); + fullRowSelection = UIManager.getBoolean("FileView.fullRowSelection"); renameErrorTitleText = UIManager.getString("FileChooser.renameErrorTitleText", l); renameErrorText = UIManager.getString("FileChooser.renameErrorText", l); @@ -976,6 +978,7 @@ public DetailsTableCellEditor(JTextField tf) { super(tf); this.tf = tf; + tf.setName("Table.editor"); tf.addFocusListener(editorFocusListener); } @@ -1003,7 +1006,8 @@ } public void setBounds(int x, int y, int width, int height) { - if (getHorizontalAlignment() == SwingConstants.LEADING) { + if (getHorizontalAlignment() == SwingConstants.LEADING && + !fullRowSelection) { // Restrict width to actual text width = Math.min(width, this.getPreferredSize().width+4); } else { @@ -1024,9 +1028,9 @@ public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) { - if (table.convertColumnIndexToModel(column) != COLUMN_FILENAME || - (listViewWindowsStyle && !table.isFocusOwner())) { - + if ((table.convertColumnIndexToModel(column) != COLUMN_FILENAME || + (listViewWindowsStyle && !table.isFocusOwner())) && + !fullRowSelection) { isSelected = false; } @@ -1322,6 +1326,7 @@ Rectangle r = list.getCellBounds(index, index); if (editCell == null) { editCell = new JTextField(); + editCell.setName("Tree.cellEditor"); editCell.addActionListener(new EditActionListener()); editCell.addFocusListener(editorFocusListener); editCell.setNextFocusableComponent(list); @@ -1774,10 +1779,11 @@ Point p = evt.getPoint(); index = table.rowAtPoint(p); - if (SwingUtilities2.pointOutsidePrefSize(table, - index, - table.columnAtPoint(p), p)) { + boolean pointOutsidePrefSize = + SwingUtilities2.pointOutsidePrefSize( + table, index, table.columnAtPoint(p), p); + if (pointOutsidePrefSize && !fullRowSelection) { return; } Modified: classlib6/core/src/openjdk/sun/sun/swing/ImageCache.java =================================================================== --- classlib6/core/src/openjdk/sun/sun/swing/ImageCache.java 2011-03-05 13:13:50 UTC (rev 5803) +++ classlib6/core/src/openjdk/sun/sun/swing/ImageCache.java 2011-03-05 13:27:27 UTC (rev 5804) @@ -1,12 +1,12 @@ /* - * Copyright 2006 Sun Microsystems, Inc. All Rights Reserved. + * Copyright (c) 2006, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. Sun designates this + * published by the Free Software Foundation. Oracle designates this * particular file as subject to the "Classpath" exception as provided - * by Sun in the LICENSE file that accompanied this code. + * by Oracle in the LICENSE file that accompanied this code. * * This code is distributed in the hope that it will be useful, but WITHOUT * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or @@ -18,9 +18,9 @@ * 2 along with this work; if not, write to the Free Software Foundation, * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. * - * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, - * CA 95054 USA or visit www.sun.com if you need additional information or - * have any questions. + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. */ package sun.swing; Modified: classlib6/core/src/openjdk/sun/sun/swing/ImageIconUIResource.java =================================================================== --- classlib6/core/src/openjdk/sun/sun/swing/ImageIconUIResource.java 2011-03-05 13:13:50 UTC (rev 5803) +++ classlib6/core/src/openjdk/sun/sun/swing/ImageIconUIResource.java 2011-03-05 13:27:27 UTC (rev 5804) @@ -1,12 +1,12 @@ /* - * Copyright 2004 Sun Microsystems, Inc. All Rights Reserved. + * Copyright (c) 2004, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. Sun designates this + * published by the Free Software Foundation. Oracle designates this * particular file as subject to the "Classpath" exception as provided - * by Sun in the LICENSE file that accompanied this code. + * by Oracle in the LICENSE file that accompanied this code. * * This code is distributed in the hope that it will be useful, but WITHOUT * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or @@ -18,9 +18,9 @@ * 2 along with this work; if not, write to the Free Software Foundation, * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. * - * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, - * CA 95054 USA or visit www.sun.com if you need additional information or - * have any questions. + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. */ package sun.swing; Modified: classlib6/core/src/openjdk/sun/sun/swing/MenuItemCheckIconFactory.java =================================================================== --- classlib6/core/src/openjdk/sun/sun/swing/MenuItemCheckIconFactory.java 2011-03-05 13:13:50 UTC (rev 5803) +++ classlib6/core/src/openjdk/sun/sun/swing/MenuItemCheckIconFactory.java 2011-03-05 13:27:27 UTC (rev 5804) @@ -1,12 +1,12 @@ /* - * Copyright 2006 Sun Microsystems, Inc. All Rights Reserved. + * Copyright (c) 2006, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. Sun designates this + * published by the Free Software Foundation. Oracle designates this * particular file as subject to the "Classpath" exception as provided - * by Sun in the LICENSE file that accompanied this code. + * by Oracle in the LICENSE file that accompanied this code. * * This code is distributed in the hope that it will be useful, but WITHOUT * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or @@ -18,9 +18,9 @@ * 2 along with this work; if not, write to the Free Software Foundation, * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. * - * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, - * CA 95054 USA or visit www.sun.com if you need additional information or - * have any questions. + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. */ package sun.swing; Added: classlib6/core/src/openjdk/sun/sun/swing/MenuItemLayoutHelper.java =================================================================== --- classlib6/core/src/openjdk/sun/sun/swing/MenuItemLayoutHelper.java (rev 0) +++ classlib6/core/src/openjdk/sun/sun/swing/MenuItemLayoutHelper.java 2011-03-05 13:27:27 UTC (rev 5804) @@ -0,0 +1,1339 @@ +/* + * Copyright (c) 2002, 2008, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +package sun.swing; + +import static sun.swing.SwingUtilities2.BASICMENUITEMUI_MAX_TEXT_OFFSET; + +import javax.swing.*; +import javax.swing.plaf.basic.BasicHTML; +import javax.swing.text.View; +import java.awt.*; +import java.awt.event.KeyEvent; +import java.util.Map; +import java.util.HashMap; + +/** + * Calculates preferred size and layouts menu items. + */ +public class MenuItemLayoutHelper { + + /* Client Property keys for calculation of maximal widths */ + public static final StringUIClientPropertyKey MAX_ARROW_WIDTH = + new StringUIClientPropertyKey("maxArrowWidth"); + public static final StringUIClientPropertyKey MAX_CHECK_WIDTH = + new StringUIClientPropertyKey("maxCheckWidth"); + public static final StringUIClientPropertyKey MAX_ICON_WIDTH = + new StringUIClientPropertyKey("maxIconWidth"); + public static final StringUIClientPropertyKey MAX_TEXT_WIDTH = + new StringUIClientPropertyKey("maxTextWidth"); + public static final StringUIClientPropertyKey MAX_ACC_WIDTH = + new StringUIClientPropertyKey("maxAccWidth"); + public static final StringUIClientPropertyKey MAX_LABEL_WIDTH = + new StringUIClientPropertyKey("maxLabelWidth"); + + private JMenuItem mi; + private JComponent miParent; + + private Font font; + private Font accFont; + private FontMetrics fm; + private FontMetrics accFm; + + private Icon icon; + private Icon checkIcon; + private Icon arrowIcon; + private String text; + private String accText; + + private boolean isColumnLayout; + private boolean useCheckAndArrow; + private boolean isLeftToRight; + private boolean isTopLevelMenu; + private View htmlView; + + private int verticalAlignment; + private int horizontalAlignment; + private int verticalTextPosition; + private int horizontalTextPosition; + private int gap; + private int leadingGap; + private int afterCheckIconGap; + private int minTextOffset; + + private Rectangle viewRect; + + private RectSize iconSize; + private RectSize textSize; + private RectSize accSize; + private RectSize checkSize; + private RectSize arrowSize; + private RectSize labelSize; + + /** + * The empty protected constructor is necessary for derived classes. + */ + protected MenuItemLayoutHelper() { + } + + public MenuItemLayoutHelper(JMenuItem mi, Icon checkIcon, Icon arrowIcon, + Rectangle viewRect, int gap, String accDelimiter, + boolean isLeftToRight, Font font, Font accFont, + boolean useCheckAndArrow, String propertyPrefix) { + reset(mi, checkIcon, arrowIcon, viewRect, gap, accDelimiter, + isLeftToRight, font, accFont, useCheckAndArrow, propertyPrefix); + } + + protected void reset(JMenuItem mi, Icon checkIcon, Icon arrowIcon, + Rectangle viewRect, int gap, String accDelimiter, + boolean isLeftToRight, Font font, Font accFont, + boolean useCheckAndArrow, String propertyPrefix) { + this.mi = mi; + this.miParent = getMenuItemParent(mi); + this.accText = getAccText(accDelimiter); + this.verticalAlignment = mi.getVerticalAlignment(); + this.horizontalAlignment = mi.getHorizontalAlignment(); + this.verticalTextPosition = mi.getVerticalTextPosition(); + this.horizontalTextPosition = mi.getHorizontalTextPosition(); + this.useCheckAndArrow = useCheckAndArrow; + this.font = font; + this.accFont = accFont; + this.fm = mi.getFontMetrics(font); + this.accFm = mi.getFontMetrics(accFont); + this.isLeftToRight = isLeftToRight; + this.isColumnLayout = isColumnLayout(isLeftToRight, + horizontalAlignment, horizontalTextPosition, + verticalTextPosition); + this.isTopLevelMenu = (this.miParent == null) ? true : false; + this.checkIcon = checkIcon; + this.icon = getIcon(propertyPrefix); + this.arrowIcon = arrowIcon; + this.text = mi.getText(); + this.gap = gap; + this.afterCheckIconGap = getAfterCheckIconGap(propertyPrefix); + this.minTextOffset = getMinTextOffset(propertyPrefix); + this.htmlView = (View) mi.getClientProperty(BasicHTML.propertyKey); + this.viewRect = viewRect; + + this.iconSize = new RectSize(); + this.textSize = new RectSize(); + this.accSize = new RectSize(); + this.checkSize = new RectSize(); + this.arrowSize = new RectSize(); + this.labelSize = new RectSize(); + calcWidthsAndHeights(); + setOriginalWidths(); + calcMaxWidths(); + + this.leadingGap = getLeadingGap(propertyPrefix); + calcMaxTextOffset(viewRect); + } + + private void setOriginalWidths() { + iconSize.origWidth = iconSize.width; + textSize.origWidth = textSize.width; + accSize.origWidth = accSize.width; + checkSize.origWidth = checkSize.width; + arrowSize.origWidth = arrowSize.width; + } + + private String getAccText(String acceleratorDelimiter) { + String accText = ""; + KeyStroke accelerator = mi.getAccelerator(); + if (accelerator != null) { + int modifiers = accelerator.getModifiers(); + if (modifiers > 0) { + accText = KeyEvent.getKeyModifiersText(modifiers); + accText += acceleratorDelimiter; + } + int keyCode = accelerator.getKeyCode(); + if (keyCode != 0) { + accText += KeyEvent.getKeyText(keyCode); + } else { + accText += accelerator.getKeyChar(); + } + } + return accText; + } + + private Icon getIcon(String propertyPrefix) { + // In case of column layout, .checkIconFactory is defined for this UI, + // the icon is compatible with it and useCheckAndArrow() is true, + // then the icon is handled by the checkIcon. + Icon icon = null; + MenuItemCheckIconFactory iconFactory = + (MenuItemCheckIconFactory) UIManager.get(propertyPrefix + + ".checkIconFactory"); + if (!isColumnLayout || !useCheckAndArrow || iconFactory == null + || !iconFactory.isCompatible(checkIcon, propertyPrefix)) { + icon = mi.getIcon(); + } + return icon; + } + + private int getMinTextOffset(String propertyPrefix) { + int minimumTextOffset = 0; + Object minimumTextOffsetObject = + UIManager.get(propertyPrefix + ".minimumTextOffset"); + if (minimumTextOffsetObject instanceof Integer) { + minimumTextOffset = (Integer) minimumTextOffsetObject; + } + return minimumTextOffset; + } + + private int getAfterCheckIconGap(String propertyPrefix) { + int afterCheckIconGap = gap; + Object afterCheckIconGapObject = + UIManager.get(propertyPrefix + ".afterCheckIconGap"); + if (afterCheckIconGapObject instanceof Integer) { + afterCheckIconGap = (Integer) afterCheckIconGapObject; + } + return afterCheckIconGap; + } + + private int getLeadingGap(String propertyPrefix) { + if (checkSize.getMaxWidth() > 0) { + return getCheckOffset(propertyPrefix); + } else { + return gap; // There is no any check icon + } + } + + private int getCheckOffset(String propertyPrefix) { + int checkIconOffset = gap; + Object checkIconOffsetObject = + UIManager.get(propertyPrefix + ".checkIconOffset"); + if (checkIconOffsetObject instanceof Integer) { + checkIconOffset = (Integer) checkIconOffsetObject; + } + return checkIconOffset; + } + + protected void calcWidthsAndHeights() { + // iconRect + if (icon != null) { + iconSize.width = icon.getIconWidth(); + iconSize.height = icon.getIconHeight(); + } + + // accRect + if (!accText.equals("")) { + accSize.width = SwingUtilities2.stringWidth(mi, accFm, accText); + accSize.height = accFm.getHeight(); + } + + // textRect + if (text == null) { + text = ""; + } else if (!text.equals("")) { + if (htmlView != null) { + // Text is HTML + textSize.width = + (int) htmlView.getPreferredSpan(View.X_AXIS); + textSize.height = + (int) htmlView.getPreferredSpan(View.Y_AXIS); + } else { + // Text isn't HTML + textSize.width = SwingUtilities2.stringWidth(mi, fm, text); + textSize.height = fm.getHeight(); + } + } + + if (useCheckAndArrow) { + // checkIcon + if (checkIcon != null) { + checkSize.width = checkIcon.getIconWidth(); + checkSize.height = checkIcon.getIconHeight(); + } + // arrowRect + if (arrowIcon != null) { + arrowSize.width = arrowIcon.getIconWidth(); + arrowSize.height = arrowIcon.getIconHeight(); + } + } + + // labelRect + if (isColumnLayout) { + labelSize.width = iconSize.width + textSize.width + gap; + labelSize.height = max(checkSize.height, iconSize.height, + textSize.height, accSize.height, arrowSize.height); + } else { + Rectangle textRect = new Rectangle(); + Rectangle iconRect = new Rectangle(); + SwingUtilities.layoutCompoundLabel(mi, fm, text, icon, + verticalAlignment, horizontalAlignment, + verticalTextPosition, horizontalTextPosition, + viewRect, iconRect, textRect, gap); + Rectangle labelRect = iconRect.union(textRect); + labelSize.height = labelRect.height; + labelSize.width = labelRect.width; + } + } + + protected void calcMaxWidths() { + calcMaxWidth(checkSize, MAX_CHECK_WIDTH); + calcMaxWidth(arrowSize, MAX_ARROW_WIDTH); + calcMaxWidth(accSize, MAX_ACC_WIDTH); + + if (isColumnLayout) { + calcMaxWidth(iconSize, MAX_ICON_WIDTH); + calcMaxWidth(textSize, MAX_TEXT_WIDTH); + int curGap = gap; + if ((iconSize.getMaxWidth() == 0) + || (textSize.getMaxWidth() == 0)) { + curGap = 0; + } + labelSize.maxWidth = + calcMaxValue(MAX_LABEL_WIDTH, iconSize.maxWidth + + textSize.maxWidth + curGap); + } else { + // We shouldn't use current icon and text widths + // in maximal widths calculation for complex layout. + iconSize.maxWidth = getParentIntProperty(MAX_ICON_WIDTH); + calcMaxWidth(labelSize, MAX_LABEL_WIDTH); + // If maxLabelWidth is wider + // than the widest icon + the widest text + gap, + // we should update the maximal text witdh + int candidateTextWidth = labelSize.maxWidth - iconSize.maxWidth; + if (iconSize.maxWidth > 0) { + candidateTextWidth -= gap; + } + textSize.maxWidth = calcMaxValue(MAX_TEXT_WIDTH, candidateTextWidth); + } + } + + protected void calcMaxWidth(RectSize rs, Object key) { + rs.maxWidth = calcMaxValue(key, rs.width); + } + + /** + * Calculates and returns maximal value through specified parent component + * client property. + * + * @param propertyName name of the property, which stores the maximal value. + * @param value a value which pretends to be maximal + * @return maximal value among the parent property and the value. + */ + protected int calcMaxValue(Object propertyName, int value) { + // Get maximal value from parent client property + int maxValue = getParentIntProperty(propertyName); + // Store new maximal width in parent client property + if (value > maxValue) { + if (miParent != null) { + miParent.putClientProperty(propertyName, value); + } + return value; + } else { + return maxValue; + } + } + + /** + * Returns parent client property as int. + * @param propertyName name of the parent property. + * @return value of the property as int. + */ + protected int getParentIntProperty(Object propertyName) { + Object value = null; + if (miParent != null) { + value = miParent.getClientProperty(propertyName); + } + if ((value == null) || !(value instanceof Integer)) { + value = 0; + } + return (Integer) value; + } + + public static boolean isColumnLayout(boolean isLeftToRight, + JMenuItem mi) { + assert(mi != null); + return isColumnLayout(isLeftToRight, mi.getHorizontalAlignment(), + mi.getHorizontalTextPosition(), mi.getVerticalTextPosition()); + } + + /** + * Answers should we do column layout for a menu item or not. + * We do it when a user doesn't set any alignments + * and text positions manually, except the vertical alignment. + */ + public static boolean isColumnLayout(boolean isLeftToRight, + int horizontalAlignment, + int horizontalTextPosition, + int verticalTextPosition) { + if (verticalTextPosition != SwingConstants.CENTER) { + return false; + } + if (isLeftToRight) { + if (horizontalAlignment != SwingConstants.LEADING + && horizontalAlignment != SwingConstants.LEFT) { + return false; + } + if (horizontalTextPosition != SwingConstants.TRAILING + && horizontalTextPosition != SwingConstants.RIGHT) { + return false; + } + } else { + if (horizontalAlignment != SwingConstants.LEADING + && horizontalAlignment != SwingConstants.RIGHT) { + return false; + } + if (horizontalTextPosition != SwingConstants.TRAILING + && horizontalTextPosition != SwingConstants.LEFT) { + return false; + } + } + return true; + } + + /** + * Calculates maximal text offset. + * It is required for some L&Fs (ex: Vista L&F). + * The offset is meaningful only for L2R column layout. + * + * @param viewRect the rectangle, the maximal text offset + * will be calculated for. + */ + private void calcMaxTextOffset(Rectangle viewRect) { + if (!isColumnLayout || !isLeftToRight) { + return; + } + + // Calculate the current text offset + int offset = viewRect.x + leadingGap + checkSize.maxWidth + + afterCheckIconGap + iconSize.maxWidth + gap; + if (checkSize.maxWidth == 0) { + offset -= afterCheckIconGap; + } + if (iconSize.maxWidth == 0) { + offset -= gap; + } + + // maximal text offset shouldn't be less than minimal text offset; + if (offset < minTextOffset) { + offset = minTextOffset; + } + + // Calculate and store the maximal text offset + calcMaxValue(SwingUtilities2.BASICMENUITEMUI_MAX_TEXT_OFFSET, offset); + } + + /** + * Layout icon, text, check icon, accelerator text and arrow icon + * in the viewRect and return their positions. + * + * If horizontalAlignment, verticalTextPosition and horizontalTextPosition + * are default (user doesn't set any manually) the layouting algorithm is: + *... [truncated message content] |