@@ -227,7 +227,11 @@ public void actionPerformed(ActionEvent e) {
227227 @ Override
228228 public void run () {
229229 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+ }
231235 }
232236 updateSdkMenu (sdkMenu );
233237 }
@@ -271,16 +275,49 @@ public void actionPerformed(ActionEvent e) {
271275 return menu ;
272276 }
273277
274- private void updateSdkMenu (JMenu sdkMenu ) {
278+ private void updateSdkMenu (final JMenu sdkMenu ) {
275279 try {
276280 ArrayList <AndroidSDK .SDKTarget > targets = androidMode .getSDK ().getAvailableSdkTargets ();
277281
278282 if (targets .size () != 0 ) sdkMenu .removeAll ();
279283
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+
282316 sdkMenu .add (item );
283317 }
318+
319+ AndroidBuild .setSdkTarget (lowestTargetAvailable );
320+ lowestTargetMenuItem .setState (true );
284321 } catch (IOException e ) {
285322 e .printStackTrace ();
286323 }
0 commit comments