[Esbox-commits] r1522 - in branches/work_Ed: . org.maemo.esbox.product org.maemo.esbox.product.repository-feature org.maemo.esbox.scratchbox.sb1/src/org/maemo/esbox/internal/scratchbox/sb1/ui/wizard org.maemo.esbox.scratchbox.sb1/src/org/maemo/esbox/internal/scratchbox/sb1/ui/wizard/nokiabin

eswartz at garage.maemo.org eswartz at garage.maemo.org
Mon May 4 17:14:13 EEST 2009


Author: eswartz
Date: 2009-05-04 17:14:13 +0300 (Mon, 04 May 2009)
New Revision: 1522

Removed:
   branches/work_Ed/org.maemo.esbox.product.supplement-feature/
   branches/work_Ed/org.maemo.esbox.scratchbox.sb1/src/org/maemo/esbox/internal/scratchbox/sb1/ui/wizard/nokiabin/FremantleBinariesInstallerEngine.java
Modified:
   branches/work_Ed/org.maemo.esbox.product.repository-feature/feature.xml
   branches/work_Ed/org.maemo.esbox.product/ESbox.product
   branches/work_Ed/org.maemo.esbox.scratchbox.sb1/src/org/maemo/esbox/internal/scratchbox/sb1/ui/wizard/NewScratchbox1TargetWizard.java
   branches/work_Ed/org.maemo.esbox.scratchbox.sb1/src/org/maemo/esbox/internal/scratchbox/sb1/ui/wizard/nokiabin/FremantleLicenseAgreementPage.java
   branches/work_Ed/org.maemo.esbox.scratchbox.sb1/src/org/maemo/esbox/internal/scratchbox/sb1/ui/wizard/nokiabin/FremantleWorkPage.java
   branches/work_Ed/org.maemo.esbox.scratchbox.sb1/src/org/maemo/esbox/internal/scratchbox/sb1/ui/wizard/nokiabin/NokiaBinariesInstallWizard.java
   branches/work_Ed/org.maemo.esbox.scratchbox.sb1/src/org/maemo/esbox/internal/scratchbox/sb1/ui/wizard/nokiabin/SDKTargetSelectionPage.java
Log:
Merge revs 1508:1521 from trunk

Modified: branches/work_Ed/org.maemo.esbox.product/ESbox.product
===================================================================
--- branches/work_Ed/org.maemo.esbox.product/ESbox.product	2009-05-04 14:04:36 UTC (rev 1521)
+++ branches/work_Ed/org.maemo.esbox.product/ESbox.product	2009-05-04 14:14:13 UTC (rev 1522)
@@ -131,7 +131,7 @@
 
    <features>
       <feature id="org.maemo.esbox.product" version="0.0.0"/>
-      <feature id="org.maemo.esbox.product.supplement" version="0.0.0"/>
+      <feature id="org.maemo.mica.supplement" version="0.0.0"/>
       <feature id="org.eclipse.linuxtools.cdt.autotools.feature" version="0.0.0"/>
       <feature id="org.eclipse.dd.dsf.gdb" version="0.0.0"/>
       <feature id="org.eclipse.dd.dsf.gdb_launch" version="0.0.0"/>

Modified: branches/work_Ed/org.maemo.esbox.product.repository-feature/feature.xml
===================================================================
--- branches/work_Ed/org.maemo.esbox.product.repository-feature/feature.xml	2009-05-04 14:04:36 UTC (rev 1521)
+++ branches/work_Ed/org.maemo.esbox.product.repository-feature/feature.xml	2009-05-04 14:14:13 UTC (rev 1522)
@@ -28,7 +28,7 @@
    <includes
          id="org.maemo.esbox.scratchbox"
          version="0.0.0"/>
-         
+
    <requires>
       <import feature="org.eclipse.cdt" version="5.0.2" match="greaterOrEqual"/>
       <import feature="org.eclipse.platform" version="3.4.2" match="greaterOrEqual"/>
@@ -42,6 +42,14 @@
       <import feature="org.maemo.mica.protocol" version="2.0.0" match="greaterOrEqual"/>
       <import feature="org.maemo.mica.protocol.rse" version="2.0.0" match="greaterOrEqual"/>
       <import feature="org.maemo.mica.python" version="2.0.0" match="greaterOrEqual"/>
+      <import feature="org.maemo.mica.supplement" version="2.0.0" match="greaterOrEqual"/>
    </requires>
 
+   <plugin
+         id="org.maemo.esbox.product"
+         download-size="0"
+         install-size="0"
+         version="0.0.0"
+         unpack="false"/>
+
 </feature>

Modified: branches/work_Ed/org.maemo.esbox.scratchbox.sb1/src/org/maemo/esbox/internal/scratchbox/sb1/ui/wizard/NewScratchbox1TargetWizard.java
===================================================================
--- branches/work_Ed/org.maemo.esbox.scratchbox.sb1/src/org/maemo/esbox/internal/scratchbox/sb1/ui/wizard/NewScratchbox1TargetWizard.java	2009-05-04 14:04:36 UTC (rev 1521)
+++ branches/work_Ed/org.maemo.esbox.scratchbox.sb1/src/org/maemo/esbox/internal/scratchbox/sb1/ui/wizard/NewScratchbox1TargetWizard.java	2009-05-04 14:14:13 UTC (rev 1522)
@@ -14,6 +14,8 @@
 package org.maemo.esbox.internal.scratchbox.sb1.ui.wizard;
 
 import java.lang.reflect.InvocationTargetException;
+import java.util.ArrayList;
+import java.util.List;
 
 import org.eclipse.core.runtime.IProgressMonitor;
 import org.eclipse.core.runtime.IStatus;
@@ -157,7 +159,17 @@
 						"Would you like to install Nokia-closed binaries for installed targets now?")) {
 			Display.getDefault().asyncExec(new Runnable() {
 				public void run() {
-					NokiaBinariesInstallWizard.startWizard();
+					//get installed targets
+					Scratchbox1TargetInstallerData data = targetPage.getTargetInstallerData();
+					ISDKTarget[] targets = data.getScratchbox1SDK().getSDKTargets();
+					List<ISDKTarget> installed = new ArrayList<ISDKTarget>();
+					for(ISDKTarget t: targets){
+						if(t.getName().equalsIgnoreCase(data.getARMELTargetName())
+								|| t.getName().equalsIgnoreCase(data.getX86TargetName()))
+							installed.add(t);
+					}
+					//call wizard with targets pre selected
+					NokiaBinariesInstallWizard.startWizard(installed.toArray(new ISDKTarget[2]));
 				}
 			});
 		}

Deleted: branches/work_Ed/org.maemo.esbox.scratchbox.sb1/src/org/maemo/esbox/internal/scratchbox/sb1/ui/wizard/nokiabin/FremantleBinariesInstallerEngine.java
===================================================================
--- branches/work_Ed/org.maemo.esbox.scratchbox.sb1/src/org/maemo/esbox/internal/scratchbox/sb1/ui/wizard/nokiabin/FremantleBinariesInstallerEngine.java	2009-05-04 14:04:36 UTC (rev 1521)
+++ branches/work_Ed/org.maemo.esbox.scratchbox.sb1/src/org/maemo/esbox/internal/scratchbox/sb1/ui/wizard/nokiabin/FremantleBinariesInstallerEngine.java	2009-05-04 14:14:13 UTC (rev 1522)
@@ -1,83 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007-2008 INdT, (c) 2008 Nokia Corporation
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    Fabrício S Epaminondas (UFCG)
- *    
- *******************************************************************************/
-package org.maemo.esbox.internal.scratchbox.sb1.ui.wizard.nokiabin;
-
-import java.util.List;
-
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.MultiStatus;
-import org.eclipse.swt.widgets.Shell;
-import org.maemo.esbox.internal.scratchbox.sb1.Activator;
-import org.maemo.mica.common.core.IProgressReporter;
-import org.maemo.mica.common.core.Policy;
-import org.maemo.mica.common.core.sdk.ISDKTarget;
-
-/**
- * @author Fabrício S Epaminondas (UFCG)
- * 
- */
-public class FremantleBinariesInstallerEngine {
-
-	private List<ISDKTarget> targets;
-	private IProgressReporter progressReporter;
-	private String repositoryURL;
-
-	/**
-	 * @param shell
-	 * @param targets
-	 * @param progressReporter
-	 */
-	public FremantleBinariesInstallerEngine(Shell shell,
-			List<ISDKTarget> targets, String repoURL,
-			IProgressReporter progressReporter) {
-		this.targets = targets;
-		this.progressReporter = progressReporter;
-		this.repositoryURL = repoURL;
-	}
-
-	/**
-	 * @param monitor
-	 * @return
-	 */
-	public IStatus install(IProgressMonitor monitor) {
-
-		MultiStatus multiStatus = new MultiStatus(Activator.PLUGIN_ID, 0, null,
-				null);
-
-		IStatus status;
-		monitor.beginTask("", IProgressMonitor.UNKNOWN);
-
-		
-		
-		
-		
-//		
-//		for (ISDKTarget target : targets) {
-//			installFromRepository(target, repositoryURL, monitor);
-//		}
-
-		return multiStatus;
-	}
-
-	/**
-	 * @param target
-	 * @param monitor 
-	 * @param repositoryURL2
-	 */
-	private void installFromRepository(ISDKTarget target, String repoURL, IProgressMonitor monitor) {
-		progressReporter.logInfo("Installing on target " + target.getDisplayName());
-
-		
-	}
-
-}

Modified: branches/work_Ed/org.maemo.esbox.scratchbox.sb1/src/org/maemo/esbox/internal/scratchbox/sb1/ui/wizard/nokiabin/FremantleLicenseAgreementPage.java
===================================================================
--- branches/work_Ed/org.maemo.esbox.scratchbox.sb1/src/org/maemo/esbox/internal/scratchbox/sb1/ui/wizard/nokiabin/FremantleLicenseAgreementPage.java	2009-05-04 14:04:36 UTC (rev 1521)
+++ branches/work_Ed/org.maemo.esbox.scratchbox.sb1/src/org/maemo/esbox/internal/scratchbox/sb1/ui/wizard/nokiabin/FremantleLicenseAgreementPage.java	2009-05-04 14:14:13 UTC (rev 1522)
@@ -11,20 +11,27 @@
  *******************************************************************************/
 package org.maemo.esbox.internal.scratchbox.sb1.ui.wizard.nokiabin;
 
+import java.text.MessageFormat;
 import java.util.HashSet;
 import java.util.Set;
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
 
+import org.eclipse.jface.layout.GridDataFactory;
 import org.eclipse.jface.wizard.IWizardPage;
 import org.eclipse.jface.wizard.WizardPage;
 import org.eclipse.swt.SWT;
-import org.eclipse.swt.SWTError;
-import org.eclipse.swt.browser.Browser;
-import org.eclipse.swt.browser.ProgressEvent;
-import org.eclipse.swt.browser.ProgressListener;
+import org.eclipse.swt.events.ModifyEvent;
+import org.eclipse.swt.events.ModifyListener;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.events.SelectionListener;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.program.Program;
 import org.eclipse.swt.widgets.Composite;
-import org.maemo.esbox.internal.scratchbox.sb1.Activator;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.swt.widgets.Link;
+import org.eclipse.swt.widgets.Text;
 import org.maemo.esbox.internal.scratchbox.sb1.ui.process.ValidateNokiaBinariesInstallation;
 
 /**
@@ -32,26 +39,19 @@
  */
 public class FremantleLicenseAgreementPage extends WizardPage {
 
-	private Browser browser;
 	
-	/**
-	 * The confirmation message
-	 */
-	private static final String ACCEPTED_TOKEN = "End User License Agreement Accepted";
-	private static final Pattern ACCEPTED_PATTERN = Pattern.compile(ACCEPTED_TOKEN);
 	
 	/**
 	 * Maemo repository url token
 	 */
-	private static final String  REPO_TOKEN = "<CODE>deb.*nokia-binaries</CODE>";
+	private static final String  REPO_TOKEN = "deb\\s+http://repository\\.maemo\\.org/\\s+fremantle/(.*)\\s+nokia\\-binaries";
 	
 	/**
 	 * Maemo repository URL pattern
 	 */
 	private static final Pattern  REPO_PATTERN = Pattern.compile(REPO_TOKEN);
 	
-	private String repoURL;
-	
+	private Text fRepository;
 	private WizardPage next;
 	
 	
@@ -61,7 +61,7 @@
 	protected FremantleLicenseAgreementPage(NokiaBinariesInstallWizard wizard) {
 		super("fremantle_license_agreement");
 		setTitle("License Agreement");
-		setDescription("End User License Agreement from... http://tablets-dev.nokia.com/eula/index.php");
+		setDescription("End User License Agreement PAge");
 		setPageComplete(false);
 		setWizard(wizard);
 		this.next = new FremantleWorkPage(wizard);
@@ -78,30 +78,54 @@
 	/*
 	 * see @WizardPage.createControl(Composite)
 	 */
-	public void createControl(Composite parentComposite) {
-		try {
-			browser = new Browser(parentComposite, SWT.FILL);
-			browser.setUrl("http://tablets-dev.nokia.com/eula/index.php");
-			browser.addProgressListener(new ProgressListener(){
-				public void changed(ProgressEvent event) {
-					validatePage();
-				}
-				public void completed(ProgressEvent event) {
-					retrieveToken();
-					validatePage();
-				}
-				
-			});
-			
-			setControl(browser);
-		} catch (SWTError e) {
-			setPageComplete(false);
-			String msg = "Could not instantiate Web Browser to show License Agreement";
-			setErrorMessage(msg);
-			Activator
-					.getErrorLogger().logAndShowError(msg,e);
-			return;
-		}
+	public void createControl(Composite parent) {
+		Composite composite = new Composite(parent, SWT.NONE);
+		composite.setLayout(new GridLayout(2, true));
+		GridDataFactory.fillDefaults().grab(true, false).applyTo(composite);
+		setControl(composite);
+
+		
+		Link link = new Link(composite, SWT.NONE);
+		final String url = "http://tablets-dev.nokia.com/eula/index.php";
+		String msg = MessageFormat
+				.format(
+						"Inorder to obtain Nokia-closed binaries, you are required to accept The End User\n" +
+						"License Agreement. Visit <a href=\"''{0}''\"> {0} </a> to do so.\n" +
+						"Upon acceptance, you are given a specific \"Token\" to access the Nokia binaries\nrepository."+
+						" Please note that such obtained token may not be re-distributed or \ndisclosed. Along with the"
+						+" token, you are also given a repository url.\nPlease, paste the url here:",url);
+		link
+				.setText(msg);
+		
+		link.addSelectionListener(new SelectionListener(){
+
+            public void widgetDefaultSelected(SelectionEvent e) {
+            }
+
+            public void widgetSelected(SelectionEvent e) {
+                Program.launch(url);
+            }}
+        );
+        
+
+		GridDataFactory.fillDefaults().span(2,0).grab(true, false).applyTo(link);
+		
+		fRepository = new Text(composite, SWT.BORDER);
+		fRepository.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
+		fRepository.addModifyListener(new ModifyListener(){
+			public void modifyText(ModifyEvent e) {
+				validatePage();
+			}});
+		GridDataFactory.fillDefaults().span(2,0).grab(true, false).applyTo(fRepository);
+		
+		Label lb= new Label(composite, SWT.NONE);
+		lb.setText("The the wizard will automatically add the url to your /etc/apt/sources.list in scratchbox.");
+		GridData data = new GridData(GridData.FILL_HORIZONTAL
+				| GridData.GRAB_HORIZONTAL);
+		data.horizontalSpan = 2;
+		data.widthHint = 150;
+		lb.setLayoutData(data);
+		
 	}
 	
 	
@@ -118,13 +142,13 @@
 	 * @return
 	 */
 	public String getRepositoryURL(){
-		return this.repoURL;
+		return fRepository !=null? fRepository.getText() : null;
 	}
 
 	public boolean validatePage() {
-		 if (repoURL == null || repoURL.length() == 0) {
+		 if (!validateURL()) {
 			 setErrorMessage("You must accept the End User License Agreement from " +
-			 		"http://tablets-dev.nokia.com/eula/index.php to retrieve a nokia token code.");
+			 		"http://tablets-dev.nokia.com/eula/index.php to retrieve a valid nokia repository url.");
 			 setMessage(null);
 			 return false;
 		 }
@@ -141,40 +165,27 @@
 
 	}
 
-	private void retrieveToken() {
-		try {
-			String response = browser.getText();
-			Matcher matcher = ACCEPTED_PATTERN.matcher(response);
-			if (matcher.find()) {
-				// It means the TOKEN was received
-				matcher = REPO_PATTERN.matcher(response);
+	private boolean validateURL() {
+		String repoURL = fRepository.getText();
+		
+		if(repoURL == null || repoURL.length() == 0) return false;
+		
+		// It means the TOKEN was received
+		Matcher	matcher = REPO_PATTERN.matcher(repoURL);
 
-				if (matcher.find()) {
-					repoURL = matcher.group();
-				}
-
-				// Remove tag <CODE></CODE>
-				repoURL = Pattern.compile("(<CODE>|</CODE>)",
-						Pattern.CASE_INSENSITIVE).matcher(repoURL)
-						.replaceAll("");
+		if (!matcher.find()) 
+			return false;
 				
-				//Debian Repository of Nokia binaries
-				getWizard().putParamter("repoURL", repoURL);
-				
-				//Packages to install
-				Set<String> meta_packages = new HashSet<String>();
-				meta_packages.add(ValidateNokiaBinariesInstallation.FREMANTLE_NOKIABIN_PKG);
-				getWizard().putParamter("packages", meta_packages);
-				
-				setPageComplete(true);
-			}
+		//Debian Repository of Nokia binaries
+		getWizard().putParamter("repoURL", repoURL);
 			
-
-		} catch (Exception e) {
-			String msg = "Could not retrieve nokia TOKEN. Please contact support team.";
-			setErrorMessage(msg);
-			Activator.getErrorLogger().logAndShowError(msg , e);
-		}
+		//Packages to install
+		Set<String> meta_packages = new HashSet<String>();
+		meta_packages.add(ValidateNokiaBinariesInstallation.FREMANTLE_NOKIABIN_PKG);
+		getWizard().putParamter("packages", meta_packages);
+		setPageComplete(true);
+		
+		return true;
 	}
 
 }
\ No newline at end of file

Modified: branches/work_Ed/org.maemo.esbox.scratchbox.sb1/src/org/maemo/esbox/internal/scratchbox/sb1/ui/wizard/nokiabin/FremantleWorkPage.java
===================================================================
--- branches/work_Ed/org.maemo.esbox.scratchbox.sb1/src/org/maemo/esbox/internal/scratchbox/sb1/ui/wizard/nokiabin/FremantleWorkPage.java	2009-05-04 14:04:36 UTC (rev 1521)
+++ branches/work_Ed/org.maemo.esbox.scratchbox.sb1/src/org/maemo/esbox/internal/scratchbox/sb1/ui/wizard/nokiabin/FremantleWorkPage.java	2009-05-04 14:14:13 UTC (rev 1522)
@@ -15,7 +15,6 @@
 import java.util.List;
 import java.util.Set;
 
-import org.eclipse.core.runtime.CoreException;
 import org.eclipse.core.runtime.IProgressMonitor;
 import org.eclipse.core.runtime.IStatus;
 import org.eclipse.jface.layout.GridDataFactory;

Modified: branches/work_Ed/org.maemo.esbox.scratchbox.sb1/src/org/maemo/esbox/internal/scratchbox/sb1/ui/wizard/nokiabin/NokiaBinariesInstallWizard.java
===================================================================
--- branches/work_Ed/org.maemo.esbox.scratchbox.sb1/src/org/maemo/esbox/internal/scratchbox/sb1/ui/wizard/nokiabin/NokiaBinariesInstallWizard.java	2009-05-04 14:04:36 UTC (rev 1521)
+++ branches/work_Ed/org.maemo.esbox.scratchbox.sb1/src/org/maemo/esbox/internal/scratchbox/sb1/ui/wizard/nokiabin/NokiaBinariesInstallWizard.java	2009-05-04 14:14:13 UTC (rev 1522)
@@ -26,6 +26,7 @@
 import org.maemo.esbox.internal.scratchbox.sb1.Activator;
 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.internal.api.maemosdk.ui.wizards.BadInstallationPage;
 
 /**
@@ -68,6 +69,14 @@
 		setForcePreviousAndNextButtons(true);
 		targetPage = new SDKTargetSelectionPage();
 	}
+	
+	/**
+	 * Default selected targets to install the binaries
+	 * @param defaultTargets it can be null
+	 */
+	public void setDefaultTargets(ISDKTarget[] defaultTargets){
+		targetPage.setDefaultTargets(defaultTargets);
+	}
 
 	/*
 	 * @see org.eclipse.ui.IWorkbenchWizard#init(org.eclipse.ui.IWorkbench,
@@ -168,12 +177,17 @@
 
 	/**
 	 * Starts a new Wizard instance
+	 */
+	public static void startWizard() {
+		startWizard(null);
+	}
+	
+	/**
+	 * Starts a new Wizard instance
+	 * @param defaultTargets If not null the default selected targets will be these
 	 * 
-	 * @param selection
-	 * @param the
-	 *            status
 	 */
-	public static void startWizard() {
+	public static void startWizard(ISDKTarget[] defaultTargets) {
 		IWorkbenchWindow activeWorkbenchWindow = Activator.getDefault()
 				.getWorkbench().getActiveWorkbenchWindow();
 		if (activeWorkbenchWindow == null) {
@@ -182,6 +196,7 @@
 		}
 
 		NokiaBinariesInstallWizard wizard = new NokiaBinariesInstallWizard();
+		wizard.setDefaultTargets(defaultTargets);
 		wizard.init(activeWorkbenchWindow.getWorkbench(),
 				StructuredSelection.EMPTY);
 		Shell parent = activeWorkbenchWindow.getShell();

Modified: branches/work_Ed/org.maemo.esbox.scratchbox.sb1/src/org/maemo/esbox/internal/scratchbox/sb1/ui/wizard/nokiabin/SDKTargetSelectionPage.java
===================================================================
--- branches/work_Ed/org.maemo.esbox.scratchbox.sb1/src/org/maemo/esbox/internal/scratchbox/sb1/ui/wizard/nokiabin/SDKTargetSelectionPage.java	2009-05-04 14:04:36 UTC (rev 1521)
+++ branches/work_Ed/org.maemo.esbox.scratchbox.sb1/src/org/maemo/esbox/internal/scratchbox/sb1/ui/wizard/nokiabin/SDKTargetSelectionPage.java	2009-05-04 14:14:13 UTC (rev 1522)
@@ -12,15 +12,19 @@
 package org.maemo.esbox.internal.scratchbox.sb1.ui.wizard.nokiabin;
 
 import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.List;
 
 import org.eclipse.jface.layout.GridDataFactory;
 import org.eclipse.jface.layout.GridLayoutFactory;
+import org.eclipse.jface.viewers.CheckStateChangedEvent;
 import org.eclipse.jface.viewers.CheckboxTreeViewer;
+import org.eclipse.jface.viewers.ICheckStateListener;
 import org.eclipse.jface.viewers.ISelectionChangedListener;
 import org.eclipse.jface.viewers.SelectionChangedEvent;
 import org.eclipse.jface.viewers.TreePath;
 import org.eclipse.jface.viewers.TreeSelection;
+import org.eclipse.jface.viewers.TreeViewer;
 import org.eclipse.jface.wizard.IWizardPage;
 import org.eclipse.jface.wizard.WizardPage;
 import org.eclipse.swt.SWT;
@@ -62,6 +66,7 @@
 	private final MyBuildTargetFilter targetFilter = new MyBuildTargetFilter(
 			SCRATCHBOX_1, "");
 	private final WizardPage _page = this;
+	private ISDKTarget[] defaultTargets;
 
 	/**
 	 * @param pageName
@@ -111,6 +116,9 @@
 
 		fmaemoSDKCombo = new Combo(container, SWT.READ_ONLY | SWT.DROP_DOWN);
 		fmaemoSDKCombo.setItems(SDK_NAMES);
+		
+			
+		
 		fmaemoSDKCombo.addSelectionListener(new SelectionListener() {
 			public void widgetDefaultSelected(SelectionEvent e) {
 				updateUI();
@@ -122,6 +130,7 @@
 				_page.setPageComplete(validatePage());
 			}
 		});
+		
 		GridDataFactory.fillDefaults().grab(true, false).applyTo(fmaemoSDKCombo);
 
 		Label clabel = new Label(container, SWT.NONE);
@@ -136,20 +145,53 @@
 		targetTree.getTree().setLayoutData(data);
 
 		targetTree.addSelectionChangedListener(new ISelectionChangedListener() {
-
 			public void selectionChanged(SelectionChangedEvent event) {
 				_page.setPageComplete(validatePage());
+				updateUI();
 			}
-
 		});
+		
+		targetTree.addCheckStateListener(new ICheckStateListener() {
+			public void checkStateChanged(CheckStateChangedEvent event) {
+				targetTree.setSubtreeChecked(event.getElement(), event.getChecked());
+				if (event.getChecked())
+					targetTree.expandToLevel(event.getElement(), TreeViewer.ALL_LEVELS);
+			}
+		});
+		
 
 		targetTree.setInput(new Object());
 
-//		GridLayoutFactory.fillDefaults().numColumns(2).margins(6, 6)
-//				.generateLayout(container);
+		
+	}
 
+	
+	/* (non-Javadoc)
+	 * @see org.eclipse.jface.dialogs.DialogPage#setVisible(boolean)
+	 */
+	@Override
+	public void setVisible(boolean visible) {
+		super.setVisible(visible);
+	
+		selectDefaults();
 	}
+	private void selectDefaults() {
+		//Select default platform
+		ISDKTarget[] targets = getDefaultTargets();
+		if(targets !=null && targets.length != 0 ){
+			int index = Arrays.asList(SDK_NAMES).indexOf(targets[0].getPlatform().getName().toLowerCase());
+			if(index != -1){ 
+				fmaemoSDKCombo.select(index);
+				updateUI();
+				targetTree.expandToLevel(targets[0], TreeViewer.ALL_LEVELS);
+				targetTree.setCheckedElements(targets);
+			}
+			setPageComplete(validatePage());
+		}
+	}
 
+	
+	
 	/* (non-Javadoc)
 	 * @see org.eclipse.jface.wizard.WizardPage#setPageComplete(boolean)
 	 */
@@ -220,7 +262,8 @@
 
 	private void updateUI() {
 		targetFilter.sdkname = fmaemoSDKCombo.getText();
-		targetTree.refresh();
+		targetTree.refresh(true);
+		targetTree.expandAll();
 	}
 
 	public boolean validatePage() {
@@ -278,4 +321,20 @@
 			return page;
 		}
 	}
-}
\ No newline at end of file
+
+	/**
+	 * @return the defaultTargets
+	 */
+	public ISDKTarget[] getDefaultTargets() {
+		return defaultTargets;
+	}
+
+	/**
+	 * Default selected targets to install the binaries
+	 * @param defaultTargets it can be null
+	 */
+	public void setDefaultTargets(ISDKTarget[] defaultTargets) {
+		this.defaultTargets = defaultTargets;
+	}
+
+}



More information about the Esbox-commits mailing list