From 0c01f49705c42fed445d5aac79378554b3bcc53e Mon Sep 17 00:00:00 2001 From: pesckal Date: Sat, 24 Sep 2011 03:16:19 +0000 Subject: [PATCH] Minor UI updates and bug fixes. -Fixed issue where categories were displayed for contributions that weren't present in the manager dialog -Fixed issue where status bar stated contribution listing was being downloaded after it already was --- .../processing/app/ContributionListing.java | 18 +++++++++++++++--- .../app/ContributionManagerDialog.java | 17 ++++++++++++++--- 2 files changed, 29 insertions(+), 6 deletions(-) diff --git a/app/src/processing/app/ContributionListing.java b/app/src/processing/app/ContributionListing.java index 5defeb974..987008922 100644 --- a/app/src/processing/app/ContributionListing.java +++ b/app/src/processing/app/ContributionListing.java @@ -197,10 +197,22 @@ public class ContributionListing { return null; } - public Set getCategories() { - return librariesByCategory.keySet(); + public Set getCategories(Filter filter) { + Set ret = new HashSet(); + + Set cats = librariesByCategory.keySet(); + for (String cat : cats) { + for (Contribution contrib : librariesByCategory.get(cat)) { + if (filter.matches(contrib)) { + ret.add(cat); + break; + } + } + } + + return ret; } - + public List getAllContributions() { return new ArrayList(allContributions); } diff --git a/app/src/processing/app/ContributionManagerDialog.java b/app/src/processing/app/ContributionManagerDialog.java index a817c863d..05af86c25 100644 --- a/app/src/processing/app/ContributionManagerDialog.java +++ b/app/src/processing/app/ContributionManagerDialog.java @@ -31,6 +31,7 @@ import java.util.List; import javax.swing.*; import javax.swing.event.*; +import processing.app.ContributionListing.Filter; import processing.app.contribution.*; public class ContributionManagerDialog { @@ -39,7 +40,9 @@ public class ContributionManagerDialog { JFrame dialog; - private String title; + String title; + + Filter permaFilter; JComboBox categoryChooser; @@ -62,6 +65,7 @@ public class ContributionManagerDialog { ContributionListing.Filter filter) { this.title = title; + this.permaFilter = filter; contribListing = ContributionListing.getInstance(); @@ -104,6 +108,8 @@ public class ContributionManagerDialog { if (isError()) { statusBar.setErrorMessage("An error occured when downloading " + "the list of available contributions."); + } else { + statusBar.updateUI(); } } }); @@ -136,8 +142,13 @@ public class ContributionManagerDialog { categorySelector.setLayout(new BoxLayout(categorySelector, BoxLayout.X_AXIS)); pane.add(categorySelector, c); - categorySelector.add(new Label("Filter by Category:")); + categorySelector.add(Box.createHorizontalStrut(6)); + JLabel categoryLabel = new JLabel("Filter by Category:"); + categorySelector.add(categoryLabel); + + categorySelector.add(Box.createHorizontalStrut(5)); + categoryChooser = new JComboBox(); categoryChooser.setMaximumRowCount(20); updateCategoryChooser(); @@ -237,7 +248,7 @@ public class ContributionManagerDialog { ArrayList categories; categoryChooser.removeAllItems(); - categories = new ArrayList(contribListing.getCategories()); + categories = new ArrayList(contribListing.getCategories(permaFilter)); Collections.sort(categories); categories.add(0, ContributionManagerDialog.ANY_CATEGORY); for (String s : categories) {