mirror of
https://github.com/processing/processing4.git
synced 2026-06-16 04:26:26 +02:00
renaming DetailPanel because it is no longer a standalone Panel
This commit is contained in:
@@ -393,16 +393,16 @@ public class ContributionTab extends JPanel {
|
||||
}
|
||||
|
||||
|
||||
public void updateStatusPanel(DetailPanel contributionPanel) {
|
||||
statusPanel.update(contributionPanel);
|
||||
public void updateStatusDetail(StatusPanelDetail detail) {
|
||||
statusPanel.updateDetail(detail);
|
||||
}
|
||||
|
||||
|
||||
protected void updateAll() {
|
||||
Collection<DetailPanel> collection =
|
||||
contributionListPanel.panelByContribution.values();
|
||||
for (DetailPanel detailPanel : collection) {
|
||||
detailPanel.update();
|
||||
Collection<StatusPanelDetail> collection =
|
||||
contributionListPanel.detailForContrib.values();
|
||||
for (StatusPanelDetail detail : collection) {
|
||||
detail.update();
|
||||
}
|
||||
contributionListPanel.model.fireTableDataChanged();
|
||||
}
|
||||
|
||||
@@ -42,11 +42,11 @@ import processing.app.ui.Toolkit;
|
||||
public class ListPanel extends JPanel
|
||||
implements Scrollable, ContributionListing.ChangeListener {
|
||||
ContributionTab contributionTab;
|
||||
TreeMap<Contribution, DetailPanel> panelByContribution = new TreeMap<>(ContributionListing.COMPARATOR);
|
||||
TreeMap<Contribution, StatusPanelDetail> detailForContrib = new TreeMap<>(ContributionListing.COMPARATOR);
|
||||
|
||||
Contribution.Filter filter;
|
||||
|
||||
private DetailPanel selectedPanel;
|
||||
private StatusPanelDetail selectedDetail;
|
||||
protected ContributionRowFilter rowFilter;
|
||||
protected JTable table;
|
||||
protected TableRowSorter<ContributionTableModel> sorter;
|
||||
@@ -147,7 +147,7 @@ implements Scrollable, ContributionListing.ChangeListener {
|
||||
int row = table.getSelectedRow();
|
||||
if (row != -1) {
|
||||
Contribution contrib = (Contribution) table.getValueAt(row, 0);
|
||||
setSelectedPanel(panelByContribution.get(contrib));
|
||||
setSelectedDetail(detailForContrib.get(contrib));
|
||||
// Preventing the focus to move out of filterField after typing every character
|
||||
if (!contributionTab.filterHasFocus()) {
|
||||
table.requestFocusInWindow();
|
||||
@@ -335,11 +335,11 @@ implements Scrollable, ContributionListing.ChangeListener {
|
||||
private void configureStatusColumnLabel(JLabel label, Contribution contribution) {
|
||||
Icon icon = null;
|
||||
label.setFont(ManagerFrame.NORMAL_PLAIN);
|
||||
DetailPanel panel = panelByContribution.get(contribution);
|
||||
if (panel == null) {
|
||||
System.out.println("no panel for " + contribution.name + " inside " + contributionTab.contribType);
|
||||
}
|
||||
if (panel.updateInProgress || panel.installInProgress) {
|
||||
StatusPanelDetail detail = detailForContrib.get(contribution);
|
||||
// if (detail == null) {
|
||||
// System.out.println("no panel for " + contribution.name + " inside " + contributionTab.contribType);
|
||||
// }
|
||||
if (detail.updateInProgress || detail.installInProgress) {
|
||||
// Display "loading" icon if download/install in progress
|
||||
icon = downloadingIcon;
|
||||
} else if (contribution.isInstalled()) {
|
||||
@@ -347,7 +347,7 @@ implements Scrollable, ContributionListing.ChangeListener {
|
||||
icon = incompatibleIcon;
|
||||
} else if (ContributionListing.getInstance().hasUpdates(contribution)) {
|
||||
icon = updateAvailableIcon;
|
||||
} else if (panel.installInProgress || panel.updateInProgress) {
|
||||
} else if (detail.installInProgress || detail.updateInProgress) {
|
||||
icon = downloadingIcon;
|
||||
} else {
|
||||
icon = upToDateIcon;
|
||||
@@ -566,11 +566,11 @@ implements Scrollable, ContributionListing.ChangeListener {
|
||||
// Thread: EDT
|
||||
public void contributionAdded(final Contribution contribution) {
|
||||
if (true || filter.matches(contribution)) {
|
||||
if (!panelByContribution.containsKey(contribution)) {
|
||||
if (!detailForContrib.containsKey(contribution)) {
|
||||
// new Exception().printStackTrace(System.out);
|
||||
// long t1 = System.currentTimeMillis();
|
||||
DetailPanel newPanel = new DetailPanel(this);
|
||||
panelByContribution.put(contribution, newPanel);
|
||||
StatusPanelDetail newPanel = new StatusPanelDetail(this);
|
||||
detailForContrib.put(contribution, newPanel);
|
||||
newPanel.setContrib(contribution);
|
||||
// add(newPanel);
|
||||
model.fireTableDataChanged();
|
||||
@@ -586,9 +586,9 @@ implements Scrollable, ContributionListing.ChangeListener {
|
||||
// Thread: EDT
|
||||
public void contributionRemoved(final Contribution contribution) {
|
||||
if (true || filter.matches(contribution)) {
|
||||
DetailPanel panel = panelByContribution.get(contribution);
|
||||
StatusPanelDetail panel = detailForContrib.get(contribution);
|
||||
if (panel != null) {
|
||||
panelByContribution.remove(contribution);
|
||||
detailForContrib.remove(contribution);
|
||||
}
|
||||
model.fireTableDataChanged();
|
||||
updateUI();
|
||||
@@ -600,13 +600,13 @@ implements Scrollable, ContributionListing.ChangeListener {
|
||||
public void contributionChanged(final Contribution oldContrib,
|
||||
final Contribution newContrib) {
|
||||
if (true || filter.matches(oldContrib)) {
|
||||
DetailPanel panel = panelByContribution.get(oldContrib);
|
||||
StatusPanelDetail panel = detailForContrib.get(oldContrib);
|
||||
if (panel == null) {
|
||||
contributionAdded(newContrib);
|
||||
} else {
|
||||
panelByContribution.remove(oldContrib);
|
||||
detailForContrib.remove(oldContrib);
|
||||
panel.setContrib(newContrib);
|
||||
panelByContribution.put(newContrib, panel);
|
||||
detailForContrib.put(newContrib, panel);
|
||||
model.fireTableDataChanged();
|
||||
}
|
||||
}
|
||||
@@ -622,15 +622,15 @@ implements Scrollable, ContributionListing.ChangeListener {
|
||||
|
||||
|
||||
// Thread: EDT
|
||||
protected void setSelectedPanel(DetailPanel contributionPanel) {
|
||||
contributionTab.updateStatusPanel(contributionPanel);
|
||||
protected void setSelectedDetail(StatusPanelDetail contribDetail) {
|
||||
contributionTab.updateStatusDetail(contribDetail);
|
||||
|
||||
if (selectedPanel == contributionPanel) {
|
||||
if (selectedDetail == contribDetail) {
|
||||
// selectedPanel.setSelected(true);
|
||||
|
||||
} else {
|
||||
// DetailPanel lastSelected = selectedPanel;
|
||||
selectedPanel = contributionPanel;
|
||||
selectedDetail = contribDetail;
|
||||
|
||||
// if (lastSelected != null) {
|
||||
// lastSelected.setSelected(false);
|
||||
@@ -643,8 +643,8 @@ implements Scrollable, ContributionListing.ChangeListener {
|
||||
}
|
||||
|
||||
|
||||
protected DetailPanel getSelectedPanel() {
|
||||
return selectedPanel;
|
||||
protected StatusPanelDetail getSelectedDetail() {
|
||||
return selectedDetail;
|
||||
}
|
||||
|
||||
|
||||
@@ -689,11 +689,6 @@ implements Scrollable, ContributionListing.ChangeListener {
|
||||
int bottomOfScrollArea = visibleRect.y + visibleRect.height;
|
||||
|
||||
for (Component c : getComponents()) {
|
||||
// "if not a visible DetailPanel"
|
||||
// (will never be true, b/c DetailPanel never visible)
|
||||
// if (!(c.isVisible() && c instanceof DetailPanel)) {
|
||||
// continue;
|
||||
// }
|
||||
Dimension d = c.getPreferredSize();
|
||||
|
||||
int nextHeight = height + d.height;
|
||||
|
||||
@@ -99,10 +99,10 @@ class StatusPanel extends JPanel {
|
||||
installButton.setHorizontalAlignment(SwingConstants.LEFT);
|
||||
installButton.addActionListener(e -> {
|
||||
installButton.setEnabled(false);
|
||||
DetailPanel currentPanel =
|
||||
contributionTab.contributionListPanel.getSelectedPanel();
|
||||
currentPanel.install();
|
||||
StatusPanel.this.update(currentPanel);
|
||||
StatusPanelDetail currentDetail =
|
||||
contributionTab.contributionListPanel.getSelectedDetail();
|
||||
currentDetail.install();
|
||||
updateDetail(currentDetail);
|
||||
});
|
||||
progressPanel = new JPanel();
|
||||
progressPanel.setLayout(new BorderLayout());
|
||||
@@ -117,10 +117,10 @@ class StatusPanel extends JPanel {
|
||||
updateButton.setHorizontalAlignment(SwingConstants.LEFT);
|
||||
updateButton.addActionListener(e -> {
|
||||
updateButton.setEnabled(false);
|
||||
DetailPanel currentPanel =
|
||||
contributionTab.contributionListPanel.getSelectedPanel();
|
||||
currentPanel.update();
|
||||
StatusPanel.this.update(currentPanel);
|
||||
StatusPanelDetail currentDetail =
|
||||
contributionTab.contributionListPanel.getSelectedDetail();
|
||||
currentDetail.update();
|
||||
updateDetail(currentDetail);
|
||||
});
|
||||
|
||||
removeButton = Toolkit.createIconButton("Remove", removeIcon);
|
||||
@@ -128,10 +128,10 @@ class StatusPanel extends JPanel {
|
||||
removeButton.setHorizontalAlignment(SwingConstants.LEFT);
|
||||
removeButton.addActionListener(e -> {
|
||||
removeButton.setEnabled(false);
|
||||
DetailPanel currentPanel =
|
||||
contributionTab.contributionListPanel.getSelectedPanel();
|
||||
StatusPanelDetail currentPanel =
|
||||
contributionTab.contributionListPanel.getSelectedDetail();
|
||||
currentPanel.remove();
|
||||
StatusPanel.this.update(currentPanel);
|
||||
updateDetail(currentPanel);
|
||||
});
|
||||
|
||||
int labelWidth = (width != 0) ?
|
||||
@@ -305,7 +305,7 @@ class StatusPanel extends JPanel {
|
||||
}
|
||||
|
||||
|
||||
void update(DetailPanel panel) {
|
||||
void updateDetail(StatusPanelDetail panel) {
|
||||
// System.out.println("rebuilding status panel for " + panel.getContrib().name);
|
||||
// new Exception("rebuilding status panel for " + panel.getContrib().name).printStackTrace(System.out);
|
||||
progressPanel.removeAll();
|
||||
|
||||
+2
-2
@@ -36,7 +36,7 @@ import processing.app.ui.Toolkit;
|
||||
* Vestigial class that was formerly a detail panel, but since 3.x
|
||||
* has only been used to track install/remove state information.
|
||||
*/
|
||||
class DetailPanel {
|
||||
class StatusPanelDetail {
|
||||
private final ListPanel listPanel;
|
||||
private final ContributionListing contribListing = ContributionListing.getInstance();
|
||||
|
||||
@@ -51,7 +51,7 @@ class DetailPanel {
|
||||
boolean removeInProgress;
|
||||
|
||||
|
||||
DetailPanel(ListPanel contributionListPanel) {
|
||||
StatusPanelDetail(ListPanel contributionListPanel) {
|
||||
// System.out.println("DetailPanel.<init>");
|
||||
// new Exception().printStackTrace(System.out);
|
||||
listPanel = contributionListPanel;
|
||||
@@ -68,8 +68,9 @@ public class UpdateContributionTab extends ContributionTab {
|
||||
setBackground(Color.WHITE);
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void updateStatusPanel(DetailPanel contributionPanel) {
|
||||
public void updateStatusDetail(StatusPanelDetail detail) {
|
||||
// Do nothing
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
package processing.app.contrib;
|
||||
|
||||
public class UpdateListPanel extends ListPanel {
|
||||
|
||||
Contribution.Filter contribFilter;
|
||||
|
||||
public UpdateListPanel(ContributionTab contributionTab,
|
||||
@@ -17,6 +16,7 @@ public class UpdateListPanel extends ListPanel {
|
||||
table.getTableHeader().setEnabled(false);
|
||||
}
|
||||
|
||||
|
||||
// Thread: EDT
|
||||
@Override
|
||||
public void contributionAdded(final Contribution contribution) {
|
||||
@@ -27,6 +27,7 @@ public class UpdateListPanel extends ListPanel {
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// Thread: EDT
|
||||
@Override
|
||||
public void contributionRemoved(final Contribution contribution) {
|
||||
@@ -34,17 +35,17 @@ public class UpdateListPanel extends ListPanel {
|
||||
((UpdateStatusPanel) contributionTab.statusPanel).update(); // Disables update button on last contribution
|
||||
}
|
||||
|
||||
|
||||
// Thread: EDT
|
||||
@Override
|
||||
public void contributionChanged(final Contribution oldContrib,
|
||||
final Contribution newContrib) {
|
||||
DetailPanel panel = panelByContribution.get(oldContrib);
|
||||
if (panel == null) {
|
||||
StatusPanelDetail detail = detailForContrib.get(oldContrib);
|
||||
if (detail == null) {
|
||||
contributionAdded(newContrib);
|
||||
} else if (newContrib.isInstalled()) {
|
||||
panelByContribution.remove(oldContrib);
|
||||
detailForContrib.remove(oldContrib);
|
||||
}
|
||||
model.fireTableDataChanged();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user