RFR: 6513512: MetalLookAndFeel.initClassDefaults does not install an entry for MetalMenuBarUI [v3]
Phil Race
prr at openjdk.org
Sat Jan 7 02:21:55 UTC 2023
On Thu, 29 Dec 2022 06:22:01 GMT, Prasanta Sadhukhan <psadhukhan at openjdk.org> wrote:
>> Spec for [MetalLookAndFeel](https://github.com/openjdk/jdk/blob/master/src/java.desktop/share/classes/javax/swing/plaf/metal/MetalLookAndFeel.java#L247)
>> says:
>> "...MetalLookAndFeel registers an entry for each of the classes
>> in the package javax.swing.plaf.metal that are named MetalXXXUI.
>> The string XXX is one of Swing's uiClassIDs. For the uiClassIDs
>> that do not have a class in metal, the corresponding class in
>> javax.swing.plaf.basic is used. For example, metal does not
>> have a class named "MetalColorChooserUI", as such,
>> javax.swing.plaf.basic.BasicColorChooserUI is used".
>>
>> There is class MetalMenuBarUI, but the method populates given defaults table with the value
>> "javax.swing.plaf.basic.BasicMenuBarUI".
>>
>> Added entry for MetalMenuBarUI..
>> CI tests including JCK tests are ok.
>
> Prasanta Sadhukhan has updated the pull request incrementally with one additional commit since the last revision:
>
> Spec update
We need to clarify here what we want before the CSR can be completed.
One comment in the draft CSR got my attention -
"MetalMenuBarUI entry is not registered in this method although is is part of javax.swing.plaf.metal since it is registered in OceanTheme class, which is used by MetalLookAndFeel by default."
Hmm .. so now I'm wondering if we are phrasing things correctly.
If themes register the UIs they use why does this method do *anything* ?
Or is there some *assumption* that all themes use MOST of them and so they are always registerr but
some UIs are registered only by themes that use them ?
You tell me what actually happens and I can help you word it.
-------------
PR: https://git.openjdk.org/jdk/pull/11646
More information about the client-libs-dev
mailing list