2929
3030package cc .arduino .contributions .libraries .ui ;
3131
32- import cc .arduino .contributions .DownloadableContribution ;
3332import cc .arduino .contributions .DownloadableContributionVersionComparator ;
3433import cc .arduino .contributions .VersionComparator ;
3534import cc .arduino .contributions .filters .BuiltInPredicate ;
3938import cc .arduino .contributions .ui .InstallerTableCell ;
4039import cc .arduino .contributions .ui .listeners .DelegatingKeyListener ;
4140import cc .arduino .utils .ReverseComparator ;
42- import com .google .common .base .Function ;
4341import com .google .common .collect .Lists ;
4442import processing .app .Base ;
4543
4644import javax .swing .*;
4745import javax .swing .border .EmptyBorder ;
4846import javax .swing .event .HyperlinkEvent ;
49- import javax .swing .event .HyperlinkListener ;
5047import javax .swing .text .Document ;
5148import javax .swing .text .html .HTMLDocument ;
5249import javax .swing .text .html .StyleSheet ;
5350import java .awt .*;
5451import java .awt .event .ActionEvent ;
5552import java .awt .event .ActionListener ;
56- import java .awt .event .ItemEvent ;
57- import java .awt .event .ItemListener ;
5853import java .util .Collections ;
5954import java .util .List ;
6055import java .util .stream .Collectors ;
6560@ SuppressWarnings ("serial" )
6661public class ContributedLibraryTableCell extends InstallerTableCell {
6762
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 ;
7166 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 ;
7772
7873 public ContributedLibraryTableCell () {
7974 {
8075 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 ()));
8777 int width = installButton .getPreferredSize ().width ;
8878 installButtonPlaceholder = Box .createRigidArea (new Dimension (width , 1 ));
8979 }
9080
9181 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 ());
9885 });
9986
10087 downgradeChooser = new JComboBox ();
10188 downgradeChooser .addItem ("-" );
10289 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 );
11094 });
11195
11296 versionToInstallChooser = new JComboBox ();
11397 versionToInstallChooser .addItem ("-" );
11498 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 ()));
121100
122101 panel = new JPanel ();
123102 panel .setLayout (new BoxLayout (panel , BoxLayout .Y_AXIS ));
@@ -186,12 +165,9 @@ private JTextPane makeNewDescription(JPanel panel) {
186165 description .setBorder (new EmptyBorder (4 , 7 , 7 , 7 ));
187166 description .setHighlighter (null );
188167 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 ());
195171 }
196172 });
197173 description .addKeyListener (new DelegatingKeyListener (parentTable ));
@@ -255,7 +231,7 @@ public Component getTableCellEditorComponent(JTable table, Object value,
255231 uninstalledReleases .addAll (installedBuiltIn );
256232 }
257233
258- Collections .sort (uninstalledReleases , new ReverseComparator <DownloadableContribution >(new DownloadableContributionVersionComparator ()));
234+ Collections .sort (uninstalledReleases , new ReverseComparator <>(new DownloadableContributionVersionComparator ()));
259235
260236 downgradeChooser .removeAllItems ();
261237 downgradeChooser .addItem (_ ("Select version" ));
@@ -264,32 +240,23 @@ public Component getTableCellEditorComponent(JTable table, Object value,
264240 final List <ContributedLibrary > uninstalledNewerReleases = Lists .newLinkedList ();
265241
266242 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 );
277248 }
249+
250+ return input ;
278251 }));
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 );
285254
286255 downgradeChooser .setVisible (installed != null && (!uninstalledPreviousReleases .isEmpty () || uninstalledNewerReleases .size () > 1 ));
287256 downgradeButton .setVisible (installed != null && (!uninstalledPreviousReleases .isEmpty () || uninstalledNewerReleases .size () > 1 ));
288257
289258 versionToInstallChooser .removeAllItems ();
290- for (ContributedLibrary release : uninstalledReleases ) {
291- versionToInstallChooser .addItem (release );
292- }
259+ uninstalledReleases .forEach (versionToInstallChooser ::addItem );
293260 versionToInstallChooser .setVisible (installed == null && uninstalledReleases .size () > 1 );
294261
295262 Component component = getUpdatedCellComponent (value , true , row , !installedBuiltIn .isEmpty ());
@@ -310,14 +277,12 @@ private Component getUpdatedCellComponent(Object value, boolean isSelected, int
310277 ContributedLibrary selected = releases .getSelected ();
311278 ContributedLibrary installed = releases .getInstalled ();
312279
313- boolean removable , installable , upgradable ;
280+ boolean installable , upgradable ;
314281 if (installed == null ) {
315282 installable = true ;
316- removable = false ;
317283 upgradable = false ;
318284 } else {
319285 installable = false ;
320- removable = !installed .isReadOnly () && !hasBuiltInRelease ;
321286 upgradable = new DownloadableContributionVersionComparator ().compare (selected , installed ) > 0 ;
322287 }
323288 if (installable ) {
@@ -405,7 +370,7 @@ private Component getUpdatedCellComponent(Object value, boolean isSelected, int
405370 return panel ;
406371 }
407372
408- private Timer enabler = new Timer (100 , new ActionListener () {
373+ private final Timer enabler = new Timer (100 , new ActionListener () {
409374 @ Override
410375 public void actionPerformed (ActionEvent e ) {
411376 enable (true );
0 commit comments