Merge pull request #3842 from Akarshit/CM-Update

ContributionPanel are not getting duplicated in panelByContribution
This commit is contained in:
Ben Fry
2015-09-21 14:03:31 -04:00
2 changed files with 59 additions and 12 deletions
@@ -101,18 +101,7 @@ public class ContributionManagerDialog {
this.editor = editor;
// Calculating index to switch to the required tab
int index;
if (contributionType == ContributionType.LIBRARY) {
index = 0;
} else if (contributionType == ContributionType.MODE) {
index = 1;
} else if (contributionType == ContributionType.TOOL) {
index = 2;
} else if (contributionType == ContributionType.EXAMPLES) {
index = 3;
} else {
index = 4;
}
int index = getIndex(contributionType);
if (dialog == null) {
makeFrame(editor);
// done before as downloadAndUpdateContributionListing()
@@ -134,6 +123,36 @@ public class ContributionManagerDialog {
}
int getIndex(ContributionType contributionType) {
int index;
if (contributionType == ContributionType.LIBRARY) {
index = 0;
} else if (contributionType == ContributionType.MODE) {
index = 1;
} else if (contributionType == ContributionType.TOOL) {
index = 2;
} else if (contributionType == ContributionType.EXAMPLES) {
index = 3;
} else {
index = 4;
}
return index;
}
ContributionTab getTab(ContributionType contributionType) {
if (contributionType == ContributionType.LIBRARY) {
return librariesContributionTab;
} else if (contributionType == ContributionType.MODE) {
return modesContributionTab;
} else if (contributionType == ContributionType.TOOL) {
return toolsContributionTab;
} else if (contributionType == ContributionType.EXAMPLES) {
return examplesContributionTab;
}
return updatesContributionTab;
}
private void makeFrame(final Editor editor) {
dialog = new JFrame(title);
dialog.setMinimumSize(new Dimension(750, 500));
@@ -2,6 +2,7 @@ package processing.app.contrib;
import java.awt.Color;
import java.awt.Component;
import java.awt.EventQueue;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.event.ActionEvent;
@@ -297,6 +298,33 @@ public class UpdateContributionTab extends ContributionTab {
}
((UpdateStatusPanel)statusPanel).update();
}
@Override
public void contributionAdded(final Contribution contribution) {
if (filter.matches(contribution)) {
EventQueue.invokeLater(new Runnable() {
public void run() {
ContributionPanel newPanel = contributionManagerDialog
.getTab(contribution.getType()).contributionListPanel.panelByContribution
.get(contribution);
if (newPanel == null) {
newPanel = new ContributionPanel(UpdateContribListingPanel.this);
}
if (!panelByContribution.containsKey(contribution)) {
synchronized (panelByContribution) {
panelByContribution.put(contribution, newPanel);
}
}
if (newPanel != null) {
newPanel.setContribution(contribution);
add(newPanel);
updatePanelOrdering(panelByContribution.keySet());
updateColors(); // XXX this is the place
}
}
});
}
}
}