<Swing Dev> [15] Review Request: 8237746 Fixing compiler warnings in src/demo/share/jfc
Marc Hoffmann
hoffmann at mountainminds.com
Mon Feb 17 19:55:33 UTC 2020
Thanks Alexey for the detailed review! I attached a updated version.
The examples have many cleanup opportunities. I wanted to focus on compiler warnings for now and keep the changeset minimal.
> *Font2DTest.java*
> 674 if ( selectedText == fp.USER_TEXT )
> 675 userTextDialog.setVisible(true);
> 676 else
> 677 userTextDialog.setVisible(false);
>
> I'd put the braces around and indent the statements by 4 spaces.
> However, it's the style used throughout the file: if there's only one statement, there are no braces and the statement is indented by 2 spaces rather than 4. Probably, to keep the code consistent, it's better to leave it as is.
>
> 797 else
> 798 fontInfoDialog.setVisible(false);
Maybe separate issue for formatting?
>
> *FontPanel.java*
> 1248 if (valArray == null) {
> 1249 valArray = EnumSet.allOf(FMValues.class).toArray(new FMValues[0]);
> 1250 }
> 1259 if (valArray == null) {
> 1260 valArray = EnumSet.allOf(FMValues.class).toArray(new FMValues[0]);
> 1261 }
> Can it be replaced with FMValues.values() as you did in Font2DTest.java lines 153, 156?
>
> And below
> 1311 valArray = EnumSet.allOf(AAValues.class).toArray(new AAValues[0]);
> 1324 valArray = EnumSet.allOf(AAValues.class).toArray(new AAValues[0]);
Done.
>
> *ButtonDemo.java*
> 64 Vector<Component> buttons = new Vector<>();
> Shall it be JComponent?
Doesn’t because JPanel.add() returns Component:
buttons.add(p2.add(new JButton(getString("ButtonDemo.button1"))));
Should I introduce a local variable?
>
>
> *ComboBoxDemo.java*
> 60 JComboBox<?> hairCB;
> Why not JComboBox<String> ?
> All createXXX methods use this type.
> Then the cast below would be unnecessary:
> 282 String name = (String) parts.get(hairCB.getSelectedItem());
This comes from the lookup in the parts Hashtable. Unfortunately it has String an ImageIcon values.
>
>
> 114 presetCB = (JComboBox<?>) comboBoxPanel.add(createPresetComboBox());
> To avoid cast, you can use two statements:
> presetCB = createPresetComboBox();
> comboBoxPanel.add(presetCB);
Done for all 4 occurrences.
>
>
> *DirectionPanel.java*
> 97 AbstractButton b = e.nextElement();
> 98 if( b.getActionCommand().equals(selection) ) {
> Indentation on line 97 seems incorrect, it should align to line 98, shouldn't it?
Done (replace tab with spaces).
>
>
> *SliderDemo.java*
> 167 @SuppressWarnings("unchecked")
> 168 Dictionary<Object, Object> labelTable = s.getLabelTable();
> Would using Dictionary<?, ?> suppress the warning automatically?
> I mean that @SuppressWarning would become unnecessary.
Dictionary<?,?> does not allow put of specific types in the next line. But fixed tabs in the same line.
>
>
> *SplitPaneDemo.java*
> 168 divSize.setText(Integer.valueOf(splitPane.getDividerSize()).toString());
> can be simplified to
> divSize.setText(Integer.toString(splitPane.getDividerSize()));
> by using static method Integer.toString() method.
Done.
>
>
> Shall the copyright year be updated in all the modified files?
Please let me know what would be the correct process.
Cheers,
-marc
> On 17. Feb 2020, at 15:40, Alexey Ivanov <alexey.ivanov at oracle.com> wrote:
>
> Thank you, Marc, for your contribution.
> And thank you to Sergey for creating the review.
>
> *Font2DTest.java*
> 674 if ( selectedText == fp.USER_TEXT )
> 675 userTextDialog.setVisible(true);
> 676 else
> 677 userTextDialog.setVisible(false);
>
> I'd put the braces around and indent the statements by 4 spaces.
> However, it's the style used throughout the file: if there's only one statement, there are no braces and the statement is indented by 2 spaces rather than 4. Probably, to keep the code consistent, it's better to leave it as is.
>
> 797 else
> 798 fontInfoDialog.setVisible(false);
>
>
> *FontPanel.java*
> 1248 if (valArray == null) {
> 1249 valArray = EnumSet.allOf(FMValues.class).toArray(new FMValues[0]);
> 1250 }
> 1259 if (valArray == null) {
> 1260 valArray = EnumSet.allOf(FMValues.class).toArray(new FMValues[0]);
> 1261 }
> Can it be replaced with FMValues.values() as you did in Font2DTest.java lines 153, 156?
>
> And below
> 1311 valArray = EnumSet.allOf(AAValues.class).toArray(new AAValues[0]);
> 1324 valArray = EnumSet.allOf(AAValues.class).toArray(new AAValues[0]);
>
>
> *ButtonDemo.java*
> 64 Vector<Component> buttons = new Vector<>();
> Shall it be JComponent?
>
>
> *ComboBoxDemo.java*
> 60 JComboBox<?> hairCB;
> Why not JComboBox<String> ?
> All createXXX methods use this type.
> Then the cast below would be unnecessary:
> 282 String name = (String) parts.get(hairCB.getSelectedItem());
>
>
> 114 presetCB = (JComboBox<?>) comboBoxPanel.add(createPresetComboBox());
> To avoid cast, you can use two statements:
> presetCB = createPresetComboBox();
> comboBoxPanel.add(presetCB);
>
>
> *DirectionPanel.java*
> 97 AbstractButton b = e.nextElement();
> 98 if( b.getActionCommand().equals(selection) ) {
> Indentation on line 97 seems incorrect, it should align to line 98, shouldn't it?
>
>
> *SliderDemo.java*
> 167 @SuppressWarnings("unchecked")
> 168 Dictionary<Object, Object> labelTable = s.getLabelTable();
> Would using Dictionary<?, ?> suppress the warning automatically?
> I mean that @SuppressWarning would become unnecessary.
>
>
> *SplitPaneDemo.java*
> 168 divSize.setText(Integer.valueOf(splitPane.getDividerSize()).toString());
> can be simplified to
> divSize.setText(Integer.toString(splitPane.getDividerSize()));
> by using static method Integer.toString() method.
>
>
> Shall the copyright year be updated in all the modified files?
>
>
> On 23/01/2020 08:54, Marc Hoffmann wrote:
>> Hi Sergey,
>>
>> thanks for sponsoring this patch!
>>
>> I successfully applied the webrev patch on current JDK head (57807:7bae17e00566). The build runs without warnings on the demo code :)
>>
>> But I noticed a minor glitch: I inserted a tab in src/demo/share/jfc/SwingSet2/DirectionPanel.java Line 97 where only spaces are used in the rest of the file. Probably this should be fixed before merge.
>>
>> Regards,
>> -marc
>>
>>
>>> On 23. Jan 2020, at 01:35, Sergey Bylokhov <Sergey.Bylokhov at oracle.com> wrote:
>>>
>>> Hello.
>>> Please review the fix for compiler warnings in the demo/jfc in JDK 15.
>>>
>>> Bug: https://bugs.openjdk.java.net/browse/JDK-8237746
>>> Fix: http://cr.openjdk.java.net/~serb/8237746/webrev.00
>>>
>>> This fix contributed by the Marc Hoffmann:
>>> https://mail.openjdk.java.net/pipermail/swing-dev/2019-October/009846.html
>>>
>>> Fixed warnings: raw types, deprecated APIs, deprecated Applet APIs.
>>>
>>> --
>>> Best regards, Sergey.
>>
> --
> Regards,
> Alexey
-------------- next part --------------
A non-text attachment was scrubbed...
Name: JDK8237746-review.01.patch
Type: application/octet-stream
Size: 91426 bytes
Desc: not available
URL: <https://mail.openjdk.java.net/pipermail/swing-dev/attachments/20200217/8aa84bb9/JDK8237746-review.01-0001.patch>
-------------- next part --------------
More information about the swing-dev
mailing list