29
29
30
30
package cc .arduino .contributions .libraries .ui ;
31
31
32
- import cc .arduino .contributions .DownloadableContribution ;
33
32
import cc .arduino .contributions .DownloadableContributionVersionComparator ;
34
33
import cc .arduino .contributions .VersionComparator ;
35
34
import cc .arduino .contributions .filters .BuiltInPredicate ;
39
38
import cc .arduino .contributions .ui .InstallerTableCell ;
40
39
import cc .arduino .contributions .ui .listeners .DelegatingKeyListener ;
41
40
import cc .arduino .utils .ReverseComparator ;
42
- import com .google .common .base .Function ;
43
41
import com .google .common .collect .Lists ;
44
42
import processing .app .Base ;
45
43
46
44
import javax .swing .*;
47
45
import javax .swing .border .EmptyBorder ;
48
46
import javax .swing .event .HyperlinkEvent ;
49
- import javax .swing .event .HyperlinkListener ;
50
47
import javax .swing .text .Document ;
51
48
import javax .swing .text .html .HTMLDocument ;
52
49
import javax .swing .text .html .StyleSheet ;
53
50
import java .awt .*;
54
51
import java .awt .event .ActionEvent ;
55
52
import java .awt .event .ActionListener ;
56
- import java .awt .event .ItemEvent ;
57
- import java .awt .event .ItemListener ;
58
53
import java .util .Collections ;
59
54
import java .util .List ;
60
55
import java .util .stream .Collectors ;
65
60
@ SuppressWarnings ("serial" )
66
61
public class ContributedLibraryTableCell extends InstallerTableCell {
67
62
68
- private JPanel panel ;
69
- private JButton installButton ;
70
- private Component installButtonPlaceholder ;
63
+ private final JPanel panel ;
64
+ private final JButton installButton ;
65
+ private final Component installButtonPlaceholder ;
71
66
private JComboBox downgradeChooser ;
72
- private JComboBox versionToInstallChooser ;
73
- private JButton downgradeButton ;
74
- private JPanel buttonsPanel ;
75
- private JPanel inactiveButtonsPanel ;
76
- private JLabel statusLabel ;
67
+ private final JComboBox versionToInstallChooser ;
68
+ private final JButton downgradeButton ;
69
+ private final JPanel buttonsPanel ;
70
+ private final JPanel inactiveButtonsPanel ;
71
+ private final JLabel statusLabel ;
77
72
78
73
public ContributedLibraryTableCell () {
79
74
{
80
75
installButton = new JButton (_ ("Install" ));
81
- installButton .addActionListener (new ActionListener () {
82
- @ Override
83
- public void actionPerformed (ActionEvent e ) {
84
- onInstall (editorValue .getSelected (), editorValue .getInstalled ());
85
- }
86
- });
76
+ installButton .addActionListener (e -> onInstall (editorValue .getSelected (), editorValue .getInstalled ()));
87
77
int width = installButton .getPreferredSize ().width ;
88
78
installButtonPlaceholder = Box .createRigidArea (new Dimension (width , 1 ));
89
79
}
90
80
91
81
downgradeButton = new JButton (_ ("Install" ));
92
- downgradeButton .addActionListener (new ActionListener () {
93
- @ Override
94
- public void actionPerformed (ActionEvent e ) {
95
- ContributedLibrary selected = (ContributedLibrary ) downgradeChooser .getSelectedItem ();
96
- onInstall (selected , editorValue .getInstalled ());
97
- }
82
+ downgradeButton .addActionListener (e -> {
83
+ ContributedLibrary selected = (ContributedLibrary ) downgradeChooser .getSelectedItem ();
84
+ onInstall (selected , editorValue .getInstalled ());
98
85
});
99
86
100
87
downgradeChooser = new JComboBox ();
101
88
downgradeChooser .addItem ("-" );
102
89
downgradeChooser .setMaximumSize (downgradeChooser .getPreferredSize ());
103
- downgradeChooser .addItemListener (new ItemListener () {
104
- @ Override
105
- public void itemStateChanged (ItemEvent e ) {
106
- Object selectVersionItem = downgradeChooser .getItemAt (0 );
107
- boolean disableDowngrade = (e .getItem () == selectVersionItem );
108
- downgradeButton .setEnabled (!disableDowngrade );
109
- }
90
+ downgradeChooser .addItemListener (e -> {
91
+ Object selectVersionItem = downgradeChooser .getItemAt (0 );
92
+ boolean disableDowngrade = (e .getItem () == selectVersionItem );
93
+ downgradeButton .setEnabled (!disableDowngrade );
110
94
});
111
95
112
96
versionToInstallChooser = new JComboBox ();
113
97
versionToInstallChooser .addItem ("-" );
114
98
versionToInstallChooser .setMaximumSize (versionToInstallChooser .getPreferredSize ());
115
- versionToInstallChooser .addItemListener (new ItemListener () {
116
- @ Override
117
- public void itemStateChanged (ItemEvent e ) {
118
- editorValue .select ((ContributedLibrary ) versionToInstallChooser .getSelectedItem ());
119
- }
120
- });
99
+ versionToInstallChooser .addItemListener (e -> editorValue .select ((ContributedLibrary ) versionToInstallChooser .getSelectedItem ()));
121
100
122
101
panel = new JPanel ();
123
102
panel .setLayout (new BoxLayout (panel , BoxLayout .Y_AXIS ));
@@ -186,12 +165,9 @@ private JTextPane makeNewDescription(JPanel panel) {
186
165
description .setBorder (new EmptyBorder (4 , 7 , 7 , 7 ));
187
166
description .setHighlighter (null );
188
167
description .setEditable (false );
189
- description .addHyperlinkListener (new HyperlinkListener () {
190
- @ Override
191
- public void hyperlinkUpdate (HyperlinkEvent e ) {
192
- if (e .getEventType () == HyperlinkEvent .EventType .ACTIVATED ) {
193
- Base .openURL (e .getDescription ());
194
- }
168
+ description .addHyperlinkListener (e -> {
169
+ if (e .getEventType () == HyperlinkEvent .EventType .ACTIVATED ) {
170
+ Base .openURL (e .getDescription ());
195
171
}
196
172
});
197
173
description .addKeyListener (new DelegatingKeyListener (parentTable ));
@@ -255,7 +231,7 @@ public Component getTableCellEditorComponent(JTable table, Object value,
255
231
uninstalledReleases .addAll (installedBuiltIn );
256
232
}
257
233
258
- Collections .sort (uninstalledReleases , new ReverseComparator <DownloadableContribution >(new DownloadableContributionVersionComparator ()));
234
+ Collections .sort (uninstalledReleases , new ReverseComparator <>(new DownloadableContributionVersionComparator ()));
259
235
260
236
downgradeChooser .removeAllItems ();
261
237
downgradeChooser .addItem (_ ("Select version" ));
@@ -264,32 +240,23 @@ public Component getTableCellEditorComponent(JTable table, Object value,
264
240
final List <ContributedLibrary > uninstalledNewerReleases = Lists .newLinkedList ();
265
241
266
242
final VersionComparator versionComparator = new VersionComparator ();
267
- Lists .newLinkedList (Lists .transform (uninstalledReleases , new Function <ContributedLibrary , ContributedLibrary >() {
268
- @ Override
269
- public ContributedLibrary apply (ContributedLibrary input ) {
270
- if (installed == null || versionComparator .greaterThan (installed .getParsedVersion (), input .getParsedVersion ())) {
271
- uninstalledPreviousReleases .add (input );
272
- } else {
273
- uninstalledNewerReleases .add (input );
274
- }
275
-
276
- return input ;
243
+ Lists .newLinkedList (Lists .transform (uninstalledReleases , input -> {
244
+ if (installed == null || versionComparator .greaterThan (installed .getParsedVersion (), input .getParsedVersion ())) {
245
+ uninstalledPreviousReleases .add (input );
246
+ } else {
247
+ uninstalledNewerReleases .add (input );
277
248
}
249
+
250
+ return input ;
278
251
}));
279
- for (ContributedLibrary release : uninstalledNewerReleases ) {
280
- downgradeChooser .addItem (release );
281
- }
282
- for (ContributedLibrary release : uninstalledPreviousReleases ) {
283
- downgradeChooser .addItem (release );
284
- }
252
+ uninstalledNewerReleases .forEach (downgradeChooser ::addItem );
253
+ uninstalledPreviousReleases .forEach (downgradeChooser ::addItem );
285
254
286
255
downgradeChooser .setVisible (installed != null && (!uninstalledPreviousReleases .isEmpty () || uninstalledNewerReleases .size () > 1 ));
287
256
downgradeButton .setVisible (installed != null && (!uninstalledPreviousReleases .isEmpty () || uninstalledNewerReleases .size () > 1 ));
288
257
289
258
versionToInstallChooser .removeAllItems ();
290
- for (ContributedLibrary release : uninstalledReleases ) {
291
- versionToInstallChooser .addItem (release );
292
- }
259
+ uninstalledReleases .forEach (versionToInstallChooser ::addItem );
293
260
versionToInstallChooser .setVisible (installed == null && uninstalledReleases .size () > 1 );
294
261
295
262
Component component = getUpdatedCellComponent (value , true , row , !installedBuiltIn .isEmpty ());
@@ -310,14 +277,12 @@ private Component getUpdatedCellComponent(Object value, boolean isSelected, int
310
277
ContributedLibrary selected = releases .getSelected ();
311
278
ContributedLibrary installed = releases .getInstalled ();
312
279
313
- boolean removable , installable , upgradable ;
280
+ boolean installable , upgradable ;
314
281
if (installed == null ) {
315
282
installable = true ;
316
- removable = false ;
317
283
upgradable = false ;
318
284
} else {
319
285
installable = false ;
320
- removable = !installed .isReadOnly () && !hasBuiltInRelease ;
321
286
upgradable = new DownloadableContributionVersionComparator ().compare (selected , installed ) > 0 ;
322
287
}
323
288
if (installable ) {
@@ -405,7 +370,7 @@ private Component getUpdatedCellComponent(Object value, boolean isSelected, int
405
370
return panel ;
406
371
}
407
372
408
- private Timer enabler = new Timer (100 , new ActionListener () {
373
+ private final Timer enabler = new Timer (100 , new ActionListener () {
409
374
@ Override
410
375
public void actionPerformed (ActionEvent e ) {
411
376
enable (true );
0 commit comments