28
28
*/
29
29
package cc .arduino .packages .contributions .ui ;
30
30
31
- import java .util .ArrayList ;
32
- import java .util .List ;
33
-
34
31
import cc .arduino .packages .contributions .ContributedPackage ;
35
32
import cc .arduino .packages .contributions .ContributedPlatform ;
36
33
import cc .arduino .packages .contributions .ContributionsIndex ;
37
34
import cc .arduino .ui .FilteredAbstractTableModel ;
38
35
36
+ import java .util .ArrayList ;
37
+ import java .util .LinkedList ;
38
+ import java .util .List ;
39
+
40
+ import static processing .app .I18n ._ ;
41
+
39
42
@ SuppressWarnings ("serial" )
40
43
public class ContributionIndexTableModel extends FilteredAbstractTableModel {
41
44
@@ -69,9 +72,21 @@ public void add(ContributedPlatform platform) {
69
72
}
70
73
71
74
public ContributedPlatform getInstalled () {
72
- for (ContributedPlatform plat : releases )
73
- if (plat .isInstalled ())
74
- return plat ;
75
+ List <ContributedPlatform > installedPlatforms = new LinkedList <ContributedPlatform >();
76
+ for (ContributedPlatform platform : releases ) {
77
+ if (platform .isInstalled ()) {
78
+ installedPlatforms .add (platform );
79
+ }
80
+ }
81
+
82
+ if (installedPlatforms .size () > 1 ) {
83
+ throw new IllegalStateException (_ ("More than one platform is currently installed! Only one can be installed at any given time" ));
84
+ }
85
+
86
+ if (!installedPlatforms .isEmpty ()) {
87
+ return installedPlatforms .get (0 );
88
+ }
89
+
75
90
return null ;
76
91
}
77
92
@@ -112,9 +127,9 @@ public void select(ContributedPlatform value) {
112
127
113
128
private List <ContributedPlatformReleases > contributions = new ArrayList <ContributedPlatformReleases >();
114
129
115
- private String [] columnNames = { "Description" };
130
+ private String [] columnNames = {"Description" };
116
131
117
- private Class <?>[] columnTypes = { ContributedPlatform .class };
132
+ private Class <?>[] columnTypes = {ContributedPlatform .class };
118
133
119
134
private ContributionsIndex index ;
120
135
@@ -141,11 +156,11 @@ public void updateIndexFilter(String category, String filters[]) {
141
156
/**
142
157
* Check if <b>string</b> contains all the substrings in <b>set</b>. The
143
158
* compare is case insensitive.
144
- *
159
+ *
145
160
* @param string
146
161
* @param set
147
162
* @return <b>true<b> if all the strings in <b>set</b> are contained in
148
- * <b>string</b>.
163
+ * <b>string</b>.
149
164
*/
150
165
private boolean stringContainsAll (String string , String set []) {
151
166
if (set == null )
0 commit comments