@@ -227,7 +227,11 @@ public void actionPerformed(ActionEvent e) {
227
227
@ Override
228
228
public void run () {
229
229
while (androidMode == null || androidMode .getSDK () == null ) {
230
- System .out .println ("Still null" );
230
+ try {
231
+ Thread .sleep (3000 );
232
+ } catch (InterruptedException e ) {
233
+ e .printStackTrace ();
234
+ }
231
235
}
232
236
updateSdkMenu (sdkMenu );
233
237
}
@@ -271,16 +275,49 @@ public void actionPerformed(ActionEvent e) {
271
275
return menu ;
272
276
}
273
277
274
- private void updateSdkMenu (JMenu sdkMenu ) {
278
+ private void updateSdkMenu (final JMenu sdkMenu ) {
275
279
try {
276
280
ArrayList <AndroidSDK .SDKTarget > targets = androidMode .getSDK ().getAvailableSdkTargets ();
277
281
278
282
if (targets .size () != 0 ) sdkMenu .removeAll ();
279
283
280
- for (AndroidSDK .SDKTarget target : targets ) {
281
- JCheckBoxMenuItem item = new JCheckBoxMenuItem ("API " + target .name + " (" + target .version + ")" );
284
+ AndroidSDK .SDKTarget lowestTargetAvailable = null ;
285
+ JCheckBoxMenuItem lowestTargetMenuItem = null ;
286
+
287
+ for (final AndroidSDK .SDKTarget target : targets ) {
288
+ final JCheckBoxMenuItem item = new JCheckBoxMenuItem ("API " + target .name + " (" + target .version + ")" );
289
+
290
+ if (lowestTargetAvailable == null || lowestTargetAvailable .version > target .version ) {
291
+ lowestTargetAvailable = target ;
292
+ lowestTargetMenuItem = item ;
293
+ }
294
+
295
+ item .addChangeListener (new ChangeListener () {
296
+ @ Override
297
+ public void stateChanged (ChangeEvent e ) {
298
+ if (target .name .equals (AndroidBuild .sdkName )) item .setState (true );
299
+ else item .setState (false );
300
+ }
301
+ });
302
+
303
+ item .addActionListener (new ActionListener () {
304
+ @ Override
305
+ public void actionPerformed (ActionEvent e ) {
306
+ AndroidBuild .setSdkTarget (target );
307
+
308
+ for (int i = 0 ; i < sdkMenu .getItemCount (); i ++) {
309
+ ((JCheckBoxMenuItem ) sdkMenu .getItem (i )).setState (false );
310
+ }
311
+
312
+ item .setState (true );
313
+ }
314
+ });
315
+
282
316
sdkMenu .add (item );
283
317
}
318
+
319
+ AndroidBuild .setSdkTarget (lowestTargetAvailable );
320
+ lowestTargetMenuItem .setState (true );
284
321
} catch (IOException e ) {
285
322
e .printStackTrace ();
286
323
}
0 commit comments