diff --git a/app/src/cc/arduino/contributions/packages/ui/ContributedPlatformReleases.java b/app/src/cc/arduino/contributions/packages/ui/ContributedPlatformReleases.java index 3545b1ff4..fc516512d 100644 --- a/app/src/cc/arduino/contributions/packages/ui/ContributedPlatformReleases.java +++ b/app/src/cc/arduino/contributions/packages/ui/ContributedPlatformReleases.java @@ -44,12 +44,14 @@ public class ContributedPlatformReleases { public final List releases; public final List versions; public ContributedPlatform selected = null; + public boolean deprecated; public ContributedPlatformReleases(ContributedPlatform platform) { packager = platform.getParentPackage(); arch = platform.getArchitecture(); releases = new LinkedList<>(); versions = new LinkedList<>(); + deprecated = platform.isDeprecated(); add(platform); } @@ -65,7 +67,9 @@ public class ContributedPlatformReleases { if (version != null) { versions.add(version); } - selected = getLatest(); + ContributedPlatform latest = getLatest(); + selected = latest; + deprecated = latest.isDeprecated(); } public ContributedPlatform getInstalled() { @@ -89,6 +93,10 @@ public class ContributedPlatformReleases { return selected; } + public boolean isDeprecated() { + return deprecated; + } + public void select(ContributedPlatform value) { for (ContributedPlatform plat : releases) { if (plat == value) { diff --git a/app/src/cc/arduino/contributions/packages/ui/ContributedPlatformTableCellJPanel.java b/app/src/cc/arduino/contributions/packages/ui/ContributedPlatformTableCellJPanel.java index 75e26783d..19961c1c9 100644 --- a/app/src/cc/arduino/contributions/packages/ui/ContributedPlatformTableCellJPanel.java +++ b/app/src/cc/arduino/contributions/packages/ui/ContributedPlatformTableCellJPanel.java @@ -232,6 +232,9 @@ public class ContributedPlatformTableCellJPanel extends JPanel { + format(tr("version {0}"), installed.getParsedVersion()) + " INSTALLED"; } + if (releases.isDeprecated()) { + desc += " DEPRECATED"; + } desc += "
"; desc += tr("Boards included in this package:") + "
"; diff --git a/app/src/cc/arduino/contributions/packages/ui/ContributionIndexTableModel.java b/app/src/cc/arduino/contributions/packages/ui/ContributionIndexTableModel.java index 7472c6247..f7dbd95d7 100644 --- a/app/src/cc/arduino/contributions/packages/ui/ContributionIndexTableModel.java +++ b/app/src/cc/arduino/contributions/packages/ui/ContributionIndexTableModel.java @@ -36,6 +36,7 @@ import cc.arduino.contributions.ui.FilteredAbstractTableModel; import processing.app.BaseNoGui; import java.util.ArrayList; +import java.util.Collections; import java.util.List; import java.util.function.Predicate; import java.util.stream.Collectors; @@ -73,6 +74,18 @@ public class ContributionIndexTableModel addContribution(platform); } } + Collections.sort(contributions, (x,y)-> { + if (x.isDeprecated() != y.isDeprecated()) { + return x.isDeprecated() ? 1 : -1; + } + ContributedPlatform x1 = x.getLatest(); + ContributedPlatform y1 = y.getLatest(); + int category = (x1.getCategory().equals("Arduino") ? -1 : 0) + (y1.getCategory().equals("Arduino") ? 1 : 0); + if (category != 0) { + return category; + } + return x1.getName().compareToIgnoreCase(y1.getName()); + }); fireTableDataChanged(); } diff --git a/arduino-core/src/cc/arduino/contributions/packages/ContributedPlatform.java b/arduino-core/src/cc/arduino/contributions/packages/ContributedPlatform.java index 5fea546c1..6c11a4cc2 100644 --- a/arduino-core/src/cc/arduino/contributions/packages/ContributedPlatform.java +++ b/arduino-core/src/cc/arduino/contributions/packages/ContributedPlatform.java @@ -29,11 +29,18 @@ package cc.arduino.contributions.packages; -import cc.arduino.contributions.DownloadableContribution; +import java.io.File; +import java.util.ArrayList; +import java.util.Collection; +import java.util.Comparator; +import java.util.HashMap; +import java.util.LinkedList; +import java.util.List; +import java.util.Map; + import com.fasterxml.jackson.annotation.JsonIgnore; -import java.io.File; -import java.util.*; +import cc.arduino.contributions.DownloadableContribution; public class ContributedPlatform extends DownloadableContribution { @@ -45,21 +52,26 @@ public class ContributedPlatform extends DownloadableContribution { private String category; private String architecture; private String checksum; - private ArrayList toolsDependencies = new ArrayList(); - private ArrayList boards = new ArrayList(); + private ArrayList toolsDependencies = new ArrayList<>(); + private ArrayList boards = new ArrayList<>(); private ContributedHelp help; private boolean installed; private File installedFolder; private boolean builtIn; private Map resolvedToolReferences; private ContributedPackage parentPackage; + private boolean deprecated; + @Override public String getUrl() { return url; } + @Override public String getVersion() { return version; } + @Override public long getSize() { return size; } + @Override public String getArchiveFileName() { return archiveFileName; } public String getName() { return name; } @@ -146,6 +158,14 @@ public class ContributedPlatform extends DownloadableContribution { this.parentPackage = parentPackage; } + public boolean isDeprecated() { + return deprecated; + } + + public void setDeprecated(boolean deprecated) { + this.deprecated = deprecated; + } + @Override public String toString() { return getParsedVersion();