5
5
6
6
import java .util .Arrays ;
7
7
import java .util .Collection ;
8
- import java .util .HashMap ;
8
+ import java .util .Collections ;
9
9
import java .util .LinkedList ;
10
10
import java .util .List ;
11
+ import java .util .TreeMap ;
11
12
12
13
import org .eclipse .core .runtime .IProgressMonitor ;
13
14
import org .eclipse .core .runtime .IStatus ;
50
51
public class PlatformSelectionPage extends PreferencePage implements IWorkbenchPreferencePage {
51
52
private static final String EMPTY_STRING = "" ; //$NON-NLS-1$
52
53
// platform index json, package,platform,versions structure
53
- private HashMap <String , HashMap <String , HashMap <String , InstallableVersion []>>> myShownPlatforms = new HashMap <>();
54
+ private TreeMap <String , TreeMap <String , TreeMap <String , InstallableVersion []>>> myShownPlatforms = new TreeMap <>();
54
55
55
56
private boolean mustBeInstalled (ArduinoPlatform platform ) {
56
57
ArduinoPackage parentPkg = platform .getParent ();
@@ -66,9 +67,9 @@ private boolean mustBeInstalled(ArduinoPlatform platform) {
66
67
}
67
68
68
69
private boolean mustBeInstalled (ArduinoPlatformPackageIndex packageIndex ) {
69
- HashMap <String , HashMap <String , InstallableVersion []>> inScopeVersions = myShownPlatforms
70
+ TreeMap <String , TreeMap <String , InstallableVersion []>> inScopeVersions = myShownPlatforms
70
71
.get (packageIndex .getID ());
71
- for (HashMap <String , InstallableVersion []> platform : inScopeVersions .values ()) {
72
+ for (TreeMap <String , InstallableVersion []> platform : inScopeVersions .values ()) {
72
73
for (InstallableVersion [] versions : platform .values ()) {
73
74
for (InstallableVersion version : versions ) {
74
75
if (version .mustBeInstalled ()) {
@@ -82,7 +83,7 @@ private boolean mustBeInstalled(ArduinoPlatformPackageIndex packageIndex) {
82
83
83
84
private boolean mustBeInstalled (ArduinoPackage pkg ) {
84
85
ArduinoPlatformPackageIndex parentIndex = pkg .getPackageIndex ();
85
- HashMap <String , InstallableVersion []> inScopeVersions = myShownPlatforms .get (parentIndex .getID ())
86
+ TreeMap <String , InstallableVersion []> inScopeVersions = myShownPlatforms .get (parentIndex .getID ())
86
87
.get (pkg .getID ());
87
88
for (InstallableVersion [] versions : inScopeVersions .values ()) {
88
89
for (InstallableVersion version : versions ) {
@@ -133,9 +134,9 @@ public ArduinoPlatformVersion getPlatform() {
133
134
public PlatformSelectionPage () {
134
135
for (ArduinoPlatformPackageIndex curPackageIndex : BoardsManager .getPackageIndices ()) {
135
136
String pkgIndexID = curPackageIndex .getID ();
136
- HashMap <String , HashMap <String , InstallableVersion []>> packageMap = new HashMap <>();
137
+ TreeMap <String , TreeMap <String , InstallableVersion []>> packageMap = new TreeMap <>();
137
138
for (ArduinoPackage curPackage : curPackageIndex .getPackages ()) {
138
- HashMap <String , InstallableVersion []> platformMap = new HashMap <>();
139
+ TreeMap <String , InstallableVersion []> platformMap = new TreeMap <>();
139
140
String pkgID = curPackage .getID ();
140
141
for (ArduinoPlatform curPlatform : curPackage .getPlatforms ()) {
141
142
String platformID = curPlatform .getID ();
@@ -302,11 +303,11 @@ public void checkStateChanged(CheckStateChangedEvent event) {
302
303
public Object [] getElements (Object inputElement ) {
303
304
if (PlatformSelectionPage .this .myHideJson ) {
304
305
List <ArduinoPackage > packages = BoardsManager .getPackages ();
306
+ Collections .sort (packages );
305
307
return packages .toArray (new Object [packages .size ()]);
306
308
}
307
- Collection <ArduinoPlatformPackageIndex > indexFiles = BoardsManager .getPackageIndices ();
309
+ List <ArduinoPlatformPackageIndex > indexFiles = BoardsManager .getPackageIndices ();
308
310
return indexFiles .toArray (new Object [indexFiles .size ()]);
309
-
310
311
}
311
312
312
313
@ Override
@@ -322,7 +323,8 @@ public void inputChanged(Viewer viewer11, Object oldInput, Object newInput) {
322
323
@ Override
323
324
public Object [] getChildren (Object parentElement ) {
324
325
if (parentElement instanceof ArduinoPlatformPackageIndex ) {
325
- Collection <ArduinoPackage > packages = ((ArduinoPlatformPackageIndex ) parentElement ).getPackages ();
326
+ Collection <ArduinoPackage > packages = ((ArduinoPlatformPackageIndex ) parentElement )
327
+ .getPackages ();
326
328
return packages .toArray (new Object [packages .size ()]);
327
329
}
328
330
if (parentElement instanceof ArduinoPackage ) {
@@ -440,8 +442,8 @@ public void update(ViewerCell cell) {
440
442
protected IStatus updateInstallation (IProgressMonitor monitor ) {
441
443
List <ArduinoPlatformVersion > platformsToInstall = new LinkedList <>();
442
444
List <ArduinoPlatformVersion > platformsToRemove = new LinkedList <>();
443
- for (HashMap <String , HashMap <String , InstallableVersion []>> packageIndex : myShownPlatforms .values ()) {
444
- for (HashMap <String , InstallableVersion []> arduinoPackage : packageIndex .values ()) {
445
+ for (TreeMap <String , TreeMap <String , InstallableVersion []>> packageIndex : myShownPlatforms .values ()) {
446
+ for (TreeMap <String , InstallableVersion []> arduinoPackage : packageIndex .values ()) {
445
447
for (InstallableVersion [] versions : arduinoPackage .values ()) {
446
448
for (InstallableVersion version : versions ) {
447
449
if (version .isInstalled () != version .mustBeInstalled ()) {
0 commit comments