[Esbox-commits] r1564 - in branches/work_Fabricio/org.maemo.esbox.scratchbox.sb1/src/org/maemo/esbox/internal/scratchbox/sb1/ui/wizard: . nokiabin

fabricioepa at garage.maemo.org fabricioepa at garage.maemo.org
Sat May 9 00:38:22 EEST 2009


Author: fabricioepa
Date: 2009-05-09 00:38:21 +0300 (Sat, 09 May 2009)
New Revision: 1564

Modified:
   branches/work_Fabricio/org.maemo.esbox.scratchbox.sb1/src/org/maemo/esbox/internal/scratchbox/sb1/ui/wizard/NewScratchbox1TargetWizard.java
   branches/work_Fabricio/org.maemo.esbox.scratchbox.sb1/src/org/maemo/esbox/internal/scratchbox/sb1/ui/wizard/nokiabin/NokiaBinariesInstallWizard.java
   branches/work_Fabricio/org.maemo.esbox.scratchbox.sb1/src/org/maemo/esbox/internal/scratchbox/sb1/ui/wizard/nokiabin/SDKTargetSelectionPage.java
Log:
Fixed BUG #4003

Modified: branches/work_Fabricio/org.maemo.esbox.scratchbox.sb1/src/org/maemo/esbox/internal/scratchbox/sb1/ui/wizard/NewScratchbox1TargetWizard.java
===================================================================
--- branches/work_Fabricio/org.maemo.esbox.scratchbox.sb1/src/org/maemo/esbox/internal/scratchbox/sb1/ui/wizard/NewScratchbox1TargetWizard.java	2009-05-08 18:59:23 UTC (rev 1563)
+++ branches/work_Fabricio/org.maemo.esbox.scratchbox.sb1/src/org/maemo/esbox/internal/scratchbox/sb1/ui/wizard/NewScratchbox1TargetWizard.java	2009-05-08 21:38:21 UTC (rev 1564)
@@ -161,6 +161,7 @@
 				public void run() {
 					//get installed targets
 					Scratchbox1TargetInstallerData data = targetPage.getTargetInstallerData();
+					data.getScratchbox1SDK().refresh();
 					ISDKTarget[] targets = data.getScratchbox1SDK().getSDKTargets();
 					List<ISDKTarget> installed = new ArrayList<ISDKTarget>();
 					for(ISDKTarget t: targets){

Modified: branches/work_Fabricio/org.maemo.esbox.scratchbox.sb1/src/org/maemo/esbox/internal/scratchbox/sb1/ui/wizard/nokiabin/NokiaBinariesInstallWizard.java
===================================================================
--- branches/work_Fabricio/org.maemo.esbox.scratchbox.sb1/src/org/maemo/esbox/internal/scratchbox/sb1/ui/wizard/nokiabin/NokiaBinariesInstallWizard.java	2009-05-08 18:59:23 UTC (rev 1563)
+++ branches/work_Fabricio/org.maemo.esbox.scratchbox.sb1/src/org/maemo/esbox/internal/scratchbox/sb1/ui/wizard/nokiabin/NokiaBinariesInstallWizard.java	2009-05-08 21:38:21 UTC (rev 1564)
@@ -14,7 +14,6 @@
 import java.util.HashMap;
 import java.util.Map;
 
-import org.eclipse.core.runtime.NullProgressMonitor;
 import org.eclipse.jface.resource.ImageDescriptor;
 import org.eclipse.jface.viewers.IStructuredSelection;
 import org.eclipse.jface.viewers.StructuredSelection;
@@ -28,7 +27,6 @@
 import org.maemo.mica.common.core.machine.IBuildMachine;
 import org.maemo.mica.common.core.machine.MachineRegistry;
 import org.maemo.mica.common.core.sdk.ISDKTarget;
-import org.maemo.mica.common.core.sdk.SDKFactory;
 import org.maemo.mica.internal.api.maemosdk.ui.wizards.BadInstallationPage;
 
 /**
@@ -115,7 +113,6 @@
 			addPage(new BadInstallationPage());
 			return;
 		}
-
 		addPage(targetPage);
 	}
 
@@ -198,10 +195,9 @@
 		}
 		
 		NokiaBinariesInstallWizard wizard = new NokiaBinariesInstallWizard();
-		establishTargetsPlatform(defaultTargets);
-		wizard.setDefaultTargets(defaultTargets);
 		wizard.init(activeWorkbenchWindow.getWorkbench(),
 				StructuredSelection.EMPTY);
+		wizard.setDefaultTargets(defaultTargets);
 		Shell parent = activeWorkbenchWindow.getShell();
 		WizardDialog dialog = new WizardDialog(parent, wizard);
 		dialog.create();
@@ -211,12 +207,4 @@
 		dialog.open();
 	}
 
-	private static void establishTargetsPlatform(ISDKTarget[] defaultTargets) {
-		if(defaultTargets !=null){
-			for(ISDKTarget t: defaultTargets){
-				if(t !=null)
-					SDKFactory.getInstance().establishPlatform(t, new NullProgressMonitor());
-			}
-		}
-	}
 }

Modified: branches/work_Fabricio/org.maemo.esbox.scratchbox.sb1/src/org/maemo/esbox/internal/scratchbox/sb1/ui/wizard/nokiabin/SDKTargetSelectionPage.java
===================================================================
--- branches/work_Fabricio/org.maemo.esbox.scratchbox.sb1/src/org/maemo/esbox/internal/scratchbox/sb1/ui/wizard/nokiabin/SDKTargetSelectionPage.java	2009-05-08 18:59:23 UTC (rev 1563)
+++ branches/work_Fabricio/org.maemo.esbox.scratchbox.sb1/src/org/maemo/esbox/internal/scratchbox/sb1/ui/wizard/nokiabin/SDKTargetSelectionPage.java	2009-05-08 21:38:21 UTC (rev 1564)
@@ -11,12 +11,16 @@
  *******************************************************************************/
 package org.maemo.esbox.internal.scratchbox.sb1.ui.wizard.nokiabin;
 
+import java.lang.reflect.InvocationTargetException;
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.List;
 
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.jface.dialogs.ProgressMonitorDialog;
 import org.eclipse.jface.layout.GridDataFactory;
 import org.eclipse.jface.layout.GridLayoutFactory;
+import org.eclipse.jface.operation.IRunnableWithProgress;
 import org.eclipse.jface.viewers.CheckStateChangedEvent;
 import org.eclipse.jface.viewers.CheckboxTreeViewer;
 import org.eclipse.jface.viewers.ICheckStateListener;
@@ -34,8 +38,10 @@
 import org.eclipse.swt.widgets.Label;
 import org.maemo.esbox.internal.scratchbox.sb1.Activator;
 import org.maemo.esbox.scratchbox.core.sdk.IScratchboxSDK;
+import org.maemo.esbox.scratchbox.sb1.sdk.IScratchbox1SDKTarget;
 import org.maemo.mica.common.core.sdk.ISDK;
 import org.maemo.mica.common.core.sdk.ISDKTarget;
+import org.maemo.mica.common.core.sdk.SDKFactory;
 import org.maemo.mica.common.project.core.IBuildTargetFilter;
 import org.maemo.mica.common.ui.BuildTargetUI;
 
@@ -126,6 +132,7 @@
 		clabel.setText(label);
 		GridDataFactory.fillDefaults().align(SWT.LEFT, SWT.CENTER).span(2,1).applyTo(clabel);
 		
+		detectTargetsPlatform();
 		targetTree = BuildTargetUI.createConfiguredBuildTargetCheckboxViewer(
 				container, BuildTargetUI.DEFAULT_STYLE, targetFilter);
 
@@ -151,6 +158,27 @@
 		targetTree.setInput(new Object());
 	}
 
+	private void detectTargetsPlatform() {
+		ProgressMonitorDialog dialog = new ProgressMonitorDialog(getShell());
+		try {
+			dialog.run(true, false, new IRunnableWithProgress() {
+				public void run(IProgressMonitor monitor)
+						throws InvocationTargetException,
+						InterruptedException {
+					monitor.beginTask("Establishing platforms of sdk targets", 2);
+					for (ISDKTarget t : SDKFactory.getInstance().getAllSDKTargets()) {
+						if(IScratchbox1SDKTarget.class.isAssignableFrom(t.getClass()))
+							SDKFactory.getInstance().establishPlatform(t,monitor);
+					}
+				}
+
+			});
+		} catch (Exception e) {
+			Activator.getErrorLogger().logAndShowError(
+					"Failed to establish platforms of sdk targets", e);
+		}
+	}
+
 	
 	/* (non-Javadoc)
 	 * @see org.eclipse.jface.dialogs.DialogPage#setVisible(boolean)
@@ -158,20 +186,35 @@
 	@Override
 	public void setVisible(boolean visible) {
 		super.setVisible(visible);
-	
+		
 		selectDefaults();
 	}
 	private void selectDefaults() {
-		//Select default platform
-		ISDKTarget[] targets = getDefaultTargets();
+
+		//Select default platform		
+		//FIXME: Main contains a target that references an unknown platform
+		ISDKTarget[] defaults = getDefaultTargets();
+		
+		if(defaults ==null)
+			return;
+		
+		//HACK: Get refreshed targets with detected platform 
+		for(int i = 0; i < defaults.length; i++){
+			ISDKTarget t = defaults[i];
+			for(ISDKTarget refreshed : SDKFactory.getInstance().getAllSDKTargets()){
+				if(t != null && t.compareTo(refreshed) == 0)
+					defaults[i] = refreshed;
+			}
+		}
+		
 		ISDKTarget target = null;
-		if(targets !=null && targets.length != 0 && (target = targets[0]) !=null){
+		if(defaults.length != 0 && (target = defaults[0]) !=null){
 			int index = Arrays.asList(SDK_NAMES).indexOf(target.getPlatform().getName().toUpperCase());
 			if(index != -1){ 
 				fmaemoSDKCombo.select(index);
 				updateUI();
 				targetTree.expandToLevel(target, TreeViewer.ALL_LEVELS);
-				targetTree.setCheckedElements(targets);
+				targetTree.setCheckedElements(defaults);
 			}
 			setPageComplete(validatePage());
 		}



More information about the Esbox-commits mailing list