Skip to content

Commit 1361bce

Browse files
committed
Board manager: Update filters UI only if categories changes
1 parent 4c45ea8 commit 1361bce

File tree

1 file changed

+12
-14
lines changed

1 file changed

+12
-14
lines changed

app/src/cc/arduino/contributions/packages/ui/ContributionManagerUI.java

+12-14
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,6 @@
2929

3030
package cc.arduino.contributions.packages.ui;
3131

32-
import cc.arduino.contributions.DownloadableContribution;
3332
import cc.arduino.contributions.packages.ContributedPlatform;
3433
import cc.arduino.contributions.packages.ContributionInstaller;
3534
import cc.arduino.contributions.ui.*;
@@ -41,6 +40,7 @@
4140
import javax.swing.table.TableCellRenderer;
4241

4342
import java.awt.*;
43+
import java.util.ArrayList;
4444
import java.util.Collection;
4545
import java.util.LinkedList;
4646
import java.util.List;
@@ -92,30 +92,28 @@ public ContributionManagerUI(Frame parent, ContributionInstaller installer) {
9292
this.installer = installer;
9393
}
9494

95+
private Collection<String> oldCategories = new ArrayList<>();
96+
9597
public void updateUI() {
96-
DropdownItem<DownloadableContribution> previouslySelectedCategory = (DropdownItem<DownloadableContribution>) categoryChooser
97-
.getSelectedItem();
98+
// Check if categories have changed
99+
Collection<String> categories = BaseNoGui.indexer.getCategories();
100+
if (categories.equals(oldCategories)) {
101+
return;
102+
}
103+
oldCategories = categories;
98104

99105
categoryChooser.removeActionListener(categoryChooserActionListener);
100-
101-
filterField.setEnabled(getContribModel().getRowCount() > 0);
102-
103-
categoryChooser.addActionListener(categoryChooserActionListener);
104-
105106
// Enable categories combo only if there are two or more choices
107+
filterField.setEnabled(getContribModel().getRowCount() > 0);
106108
categoryFilter = x -> true;
107109
categoryChooser.removeAllItems();
108110
categoryChooser.addItem(new DropdownAllCoresItem());
109111
categoryChooser.addItem(new DropdownUpdatableCoresItem());
110-
Collection<String> categories = BaseNoGui.indexer.getCategories();
111112
for (String s : categories) {
112113
categoryChooser.addItem(new DropdownCoreOfCategoryItem(s));
113114
}
114-
if (previouslySelectedCategory != null) {
115-
categoryChooser.setSelectedItem(previouslySelectedCategory);
116-
} else {
117-
categoryChooser.setSelectedIndex(0);
118-
}
115+
categoryChooser.addActionListener(categoryChooserActionListener);
116+
categoryChooser.setSelectedIndex(0);
119117
}
120118

121119
public void setProgress(Progress progress) {

0 commit comments

Comments
 (0)