[Esbox-commits] r1183 - in branches/work_Ed: org.maemo.esbox-feature org.maemo.esbox.analysis org.maemo.esbox.maemosdk.core org.maemo.esbox.maemosdk.core/META-INF org.maemo.esbox.maemosdk.core/src/org/maemo/esbox/internal/api/maemosdk/core org.maemo.esbox.maemosdk.core/src/org/maemo/esbox/internal/api/maemosdk/core/tools org.maemo.esbox.maemosdk.core/src/org/maemo/esbox/internal/maemosdk/core org.maemo.esbox.maemosdk.core/src/org/maemo/esbox/internal/maemosdk/core/adapters org.maemo.esbox.maemosdk.core/src/org/maemo/esbox/maemosdk/core org.maemo.esbox.maemosdk.tests org.maemo.esbox.maemosdk.tests/src/org/maemo/esbox/scratchbox/tests org.maemo.esbox.maemosdk.ui org.maemo.esbox.maemosdk.ui/icons/full/obj16 org.maemo.esbox.product-feature org.maemo.esbox.project.cpp org.maemo.esbox.project.cpp/src/org/maemo/esbox/internal/project/cpp/core org.maemo.esbox.project.cpp/src/org/maemo/esbox/internal/project/cpp/ui/wizards org.maemo.esbox.project.python org.maemo.esbox.project.python/src/org/maemo/esbox/internal/project/python/core org.maemo.esbox.scratchbox-feature org.maemo.esbox.scratchbox.core org.maemo.esbox.scratchbox.core/META-INF org.maemo.esbox.scratchbox.core/src/org/maemo/esbox/internal/api/scratchbox/core org.maemo.esbox.scratchbox.core/src/org/maemo/esbox/internal/api/scratchbox/core/execEnv org.maemo.esbox.scratchbox.core/src/org/maemo/esbox/internal/api/scratchbox/core/sdk org.maemo.esbox.scratchbox.core/src/org/maemo/esbox/internal/scratchbox/adapters org.maemo.esbox.scratchbox.core/src/org/maemo/esbox/internal/scratchbox/core org.maemo.esbox.vm/META-INF org.maemo.esbox.vm/src/org/maemo/esbox/vm/ui

eswartz at garage.maemo.org eswartz at garage.maemo.org
Sun Feb 1 04:02:28 EET 2009


Author: eswartz
Date: 2009-02-01 04:02:28 +0200 (Sun, 01 Feb 2009)
New Revision: 1183

Added:
   branches/work_Ed/org.maemo.esbox.maemosdk.core/src/org/maemo/esbox/maemosdk/core/MaemoEnvironmentUtils.java
   branches/work_Ed/org.maemo.esbox.maemosdk.tests/test.xml
   branches/work_Ed/org.maemo.esbox.maemosdk.ui/icons/full/obj16/package_install.png
   branches/work_Ed/org.maemo.esbox.project.cpp/src/org/maemo/esbox/internal/project/cpp/core/CppDebianProjectImportConfigurationComposite.java
   branches/work_Ed/org.maemo.esbox.project.cpp/src/org/maemo/esbox/internal/project/cpp/core/CppDebianProjectSupport.java
   branches/work_Ed/org.maemo.esbox.project.cpp/src/org/maemo/esbox/internal/project/cpp/core/CppProjectDebianSupportAdapterFactory.java
   branches/work_Ed/org.maemo.esbox.project.cpp/src/org/maemo/esbox/internal/project/cpp/core/CppProjectImportConfigurationComposite.java
   branches/work_Ed/org.maemo.esbox.project.python/src/org/maemo/esbox/internal/project/python/core/PythonDebianProjectImportConfigurationComposite.java
   branches/work_Ed/org.maemo.esbox.project.python/src/org/maemo/esbox/internal/project/python/core/PythonDebianProjectSupport.java
   branches/work_Ed/org.maemo.esbox.project.python/src/org/maemo/esbox/internal/project/python/core/PythonProjectDebianSupportAdapterFactory.java
   branches/work_Ed/org.maemo.esbox.scratchbox.core/src/org/maemo/esbox/internal/api/scratchbox/core/OldStyleProjectProperties.java
   branches/work_Ed/org.maemo.esbox.scratchbox.core/src/org/maemo/esbox/internal/api/scratchbox/core/OldStyleWorkspaceProjectPropertiesProvider.java
   branches/work_Ed/org.maemo.esbox.scratchbox.core/src/org/maemo/esbox/internal/api/scratchbox/core/execEnv/
   branches/work_Ed/org.maemo.esbox.scratchbox.core/src/org/maemo/esbox/internal/api/scratchbox/core/execEnv/GTKExecutionEnvironmentHandler.java
   branches/work_Ed/org.maemo.esbox.scratchbox.core/src/org/maemo/esbox/internal/api/scratchbox/core/execEnv/MaemoExecutionEnvironmentHandler.java
   branches/work_Ed/org.maemo.esbox.scratchbox.core/src/org/maemo/esbox/internal/api/scratchbox/core/execEnv/X11ExecutionEnvironmentHandler.java
   branches/work_Ed/org.maemo.esbox.scratchbox.core/src/org/maemo/esbox/internal/scratchbox/adapters/ESboxMaemoEmulatorExecutionEnvironmentProviderAdapter.java
   branches/work_Ed/org.maemo.esbox.scratchbox.core/src/org/maemo/esbox/internal/scratchbox/adapters/ESboxMaemoEmulatorExecutionEnvironmentProviderAdapterFactory.java
   branches/work_Ed/org.maemo.esbox.scratchbox.core/src/org/maemo/esbox/internal/scratchbox/adapters/ESboxMaemoTargetEnvironmentModifierAdapter.java
   branches/work_Ed/org.maemo.esbox.scratchbox.core/src/org/maemo/esbox/internal/scratchbox/adapters/ESboxMaemoTargetEnvironmentModifierAdapterFactory.java
Removed:
   branches/work_Ed/org.maemo.esbox.maemosdk.core/src/org/maemo/esbox/internal/api/maemosdk/core/MaemoEnvironmentUtils.java
   branches/work_Ed/org.maemo.esbox.maemosdk.core/src/org/maemo/esbox/internal/api/maemosdk/core/execEnv/
   branches/work_Ed/org.maemo.esbox.maemosdk.core/src/org/maemo/esbox/internal/maemosdk/core/OldStyleProjectProperties.java
   branches/work_Ed/org.maemo.esbox.maemosdk.core/src/org/maemo/esbox/internal/maemosdk/core/OldStyleWorkspaceProjectPropertiesProvider.java
   branches/work_Ed/org.maemo.esbox.maemosdk.core/src/org/maemo/esbox/internal/maemosdk/core/adapters/MaemoTargetEnvironmentModifierAdapter.java
   branches/work_Ed/org.maemo.esbox.maemosdk.core/src/org/maemo/esbox/internal/maemosdk/core/adapters/MaemoTargetEnvironmentModifierAdapterFactory.java
   branches/work_Ed/org.maemo.esbox.scratchbox.core/src/org/maemo/esbox/internal/api/scratchbox/core/execEnv/GTKExecutionEnvironmentHandler.java
   branches/work_Ed/org.maemo.esbox.scratchbox.core/src/org/maemo/esbox/internal/api/scratchbox/core/execEnv/MaemoExecutionEnvironmentHandler.java
   branches/work_Ed/org.maemo.esbox.scratchbox.core/src/org/maemo/esbox/internal/api/scratchbox/core/execEnv/X11ExecutionEnvironmentHandler.java
   branches/work_Ed/org.maemo.esbox.scratchbox.core/src/org/maemo/esbox/internal/scratchbox/core/PersistentCache.java
Modified:
   branches/work_Ed/org.maemo.esbox-feature/feature.xml
   branches/work_Ed/org.maemo.esbox.analysis/plugin.xml
   branches/work_Ed/org.maemo.esbox.maemosdk.core/META-INF/MANIFEST.MF
   branches/work_Ed/org.maemo.esbox.maemosdk.core/plugin.xml
   branches/work_Ed/org.maemo.esbox.maemosdk.core/src/org/maemo/esbox/internal/api/maemosdk/core/tools/MaemoLauncher.java
   branches/work_Ed/org.maemo.esbox.maemosdk.core/src/org/maemo/esbox/internal/maemosdk/core/adapters/MaemoDefaultExecutionEnvironmentAdapter.java
   branches/work_Ed/org.maemo.esbox.maemosdk.tests/build.properties
   branches/work_Ed/org.maemo.esbox.maemosdk.tests/src/org/maemo/esbox/scratchbox/tests/TestSB2ProcessLauncher.java
   branches/work_Ed/org.maemo.esbox.maemosdk.ui/plugin.xml
   branches/work_Ed/org.maemo.esbox.product-feature/feature.xml
   branches/work_Ed/org.maemo.esbox.project.cpp/plugin.xml
   branches/work_Ed/org.maemo.esbox.project.cpp/src/org/maemo/esbox/internal/project/cpp/core/MaemoCppProjectPackageGatherer.java
   branches/work_Ed/org.maemo.esbox.project.cpp/src/org/maemo/esbox/internal/project/cpp/ui/wizards/ConvertToESboxCppProjectWizard.java
   branches/work_Ed/org.maemo.esbox.project.python/plugin.xml
   branches/work_Ed/org.maemo.esbox.scratchbox-feature/feature.xml
   branches/work_Ed/org.maemo.esbox.scratchbox.core/META-INF/MANIFEST.MF
   branches/work_Ed/org.maemo.esbox.scratchbox.core/plugin.xml
   branches/work_Ed/org.maemo.esbox.scratchbox.core/src/org/maemo/esbox/internal/api/scratchbox/core/ScratchboxPackageManagerProvider.java
   branches/work_Ed/org.maemo.esbox.scratchbox.core/src/org/maemo/esbox/internal/api/scratchbox/core/sdk/CacheUtils.java
   branches/work_Ed/org.maemo.esbox.vm/META-INF/MANIFEST.MF
   branches/work_Ed/org.maemo.esbox.vm/src/org/maemo/esbox/vm/ui/SelectVirtualMachineDialog.java
Log:
Finish up apt project importer. 
Merge revs 1176:1182 from trunk.

Modified: branches/work_Ed/org.maemo.esbox-feature/feature.xml
===================================================================
--- branches/work_Ed/org.maemo.esbox-feature/feature.xml	2009-01-30 23:27:49 UTC (rev 1182)
+++ branches/work_Ed/org.maemo.esbox-feature/feature.xml	2009-02-01 02:02:28 UTC (rev 1183)
@@ -1,97 +1,89 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<feature
-      id="org.maemo.esbox"
-      label="ESbox Feature"
-      version="2.0.0.qualifier"
-      provider-name="INdT / NOKIA">
-
-   <description>
-      ESbox feature, containing all the ESbox-specific plugins.
-   </description>
-
-   <copyright>
+<?xml version="1.0" encoding="UTF-8"?>
+<feature
+      id="org.maemo.esbox"
+      label="ESbox Feature"
+      version="2.0.0.qualifier"
+      provider-name="INdT / NOKIA">
+
+   <description>
+      ESbox feature, containing all the ESbox-specific plugins.
+   </description>
+
+   <copyright>
       Copyright (c) 2007-2008 INdT, (c) 2007-2008 Nokia. All rights
-reserved.
-   </copyright>
-
-   <license url="http://www.eclipse.org/legal/epl-v10.html">
-      For legal terms, see the Eclipse Public License.
-   </license>
-
-   <url>
-      <update label="Update site for ESbox project" url="http://esbox.garage.maemo.org/update"/>
-   </url>
-
-   <requires>
-      <import plugin="org.eclipse.core.runtime"/>
-      <import plugin="org.maemo.mica.common.core" version="2.0.0" match="greaterOrEqual"/>
-      <import plugin="org.maemo.mica.maemosdk.core" version="2.0.0" match="greaterOrEqual"/>
-      <import plugin="org.maemo.mica.common.analysis" version="2.0.0" match="greaterOrEqual"/>
-      <import plugin="org.maemo.esbox.scratchbox.core" version="2.0.0" match="greaterOrEqual"/>
-      <import plugin="com.nokia.carbide.templatewizard" version="2.1.0" match="greaterOrEqual"/>
-      <import plugin="org.eclipse.ui"/>
-   </requires>
-
-   <plugin
-         id="org.maemo.esbox.analysis"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="org.maemo.esbox.help"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"/>
-
-   <plugin
-         id="org.maemo.esbox.maemosdk.core"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="org.maemo.esbox.maemosdk.ui"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="org.maemo.esbox.vm.qemu"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="org.maemo.esbox.vm"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="org.maemo.esbox.vm.vmware"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="org.maemo.esbox.project.cpp"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="org.maemo.esbox.project.python"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-</feature>
+reserved.
+   </copyright>
+
+   <license url="http://www.eclipse.org/legal/epl-v10.html">
+      For legal terms, see the Eclipse Public License.
+   </license>
+
+   <url>
+      <update label="Update site for ESbox project" url="http://esbox.garage.maemo.org/update"/>
+   </url>
+
+   <requires>
+      <import plugin="org.eclipse.core.runtime"/>
+      <import plugin="org.maemo.mica.common.core" version="2.0.0" match="greaterOrEqual"/>
+      <import plugin="org.maemo.mica.maemosdk.core" version="2.0.0" match="greaterOrEqual"/>
+      <import plugin="org.maemo.mica.common.analysis" version="2.0.0" match="greaterOrEqual"/>
+      <import plugin="com.nokia.carbide.templatewizard" version="2.1.0" match="greaterOrEqual"/>
+      <import plugin="org.eclipse.ui"/>
+   </requires>
+
+   <plugin
+         id="org.maemo.esbox.help"
+         download-size="0"
+         install-size="0"
+         version="0.0.0"/>
+
+   <plugin
+         id="org.maemo.esbox.maemosdk.core"
+         download-size="0"
+         install-size="0"
+         version="0.0.0"
+         unpack="false"/>
+
+   <plugin
+         id="org.maemo.esbox.maemosdk.ui"
+         download-size="0"
+         install-size="0"
+         version="0.0.0"
+         unpack="false"/>
+
+   <plugin
+         id="org.maemo.esbox.vm.qemu"
+         download-size="0"
+         install-size="0"
+         version="0.0.0"
+         unpack="false"/>
+
+   <plugin
+         id="org.maemo.esbox.vm"
+         download-size="0"
+         install-size="0"
+         version="0.0.0"
+         unpack="false"/>
+
+   <plugin
+         id="org.maemo.esbox.vm.vmware"
+         download-size="0"
+         install-size="0"
+         version="0.0.0"
+         unpack="false"/>
+
+   <plugin
+         id="org.maemo.esbox.project.cpp"
+         download-size="0"
+         install-size="0"
+         version="0.0.0"
+         unpack="false"/>
+
+   <plugin
+         id="org.maemo.esbox.project.python"
+         download-size="0"
+         install-size="0"
+         version="0.0.0"
+         unpack="false"/>
+
+</feature>

Modified: branches/work_Ed/org.maemo.esbox.analysis/plugin.xml
===================================================================
--- branches/work_Ed/org.maemo.esbox.analysis/plugin.xml	2009-01-30 23:27:49 UTC (rev 1182)
+++ branches/work_Ed/org.maemo.esbox.analysis/plugin.xml	2009-02-01 02:02:28 UTC (rev 1183)
@@ -4,7 +4,7 @@
    <extension
          point="org.eclipse.core.runtime.adapters">
       <factory
-            adaptableType="org.maemo.mica.common.core.sdk.ISDKTarget"
+            adaptableType="org.maemo.mica.maemosdk.core.IMaemoSDKTarget"
             class="org.maemo.esbox.internal.analysis.adapters.AnalysisAdapterFactory">
          <adapter
                type="org.maemo.mica.common.analysis.adapters.IValgrindSupportAdapter">

Modified: branches/work_Ed/org.maemo.esbox.maemosdk.core/META-INF/MANIFEST.MF
===================================================================
--- branches/work_Ed/org.maemo.esbox.maemosdk.core/META-INF/MANIFEST.MF	2009-01-30 23:27:49 UTC (rev 1182)
+++ branches/work_Ed/org.maemo.esbox.maemosdk.core/META-INF/MANIFEST.MF	2009-02-01 02:02:28 UTC (rev 1183)
@@ -9,12 +9,9 @@
  org.eclipse.core.runtime,
  org.maemo.mica.common.project.core;bundle-version="2.0.0",
  org.maemo.mica.common.launch;bundle-version="2.0.0",
- org.maemo.esbox.scratchbox.core;bundle-version="2.0.0",
  org.maemo.mica.maemosdk.core;bundle-version="2.0.0"
 Bundle-RequiredExecutionEnvironment: J2SE-1.5
 Bundle-ActivationPolicy: lazy
 Export-Package: org.maemo.esbox.internal.api.maemosdk.core,
- org.maemo.esbox.internal.api.maemosdk.core.execEnv,
  org.maemo.esbox.internal.api.maemosdk.core.tools,
- org.maemo.esbox.internal.maemosdk.core.adapters,
  org.maemo.esbox.maemosdk.core

Modified: branches/work_Ed/org.maemo.esbox.maemosdk.core/plugin.xml
===================================================================
--- branches/work_Ed/org.maemo.esbox.maemosdk.core/plugin.xml	2009-01-30 23:27:49 UTC (rev 1182)
+++ branches/work_Ed/org.maemo.esbox.maemosdk.core/plugin.xml	2009-02-01 02:02:28 UTC (rev 1183)
@@ -1,46 +1,9 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <?eclipse version="3.2"?>
 <plugin>
+ 
    <extension
          point="org.eclipse.core.runtime.adapters">
-         <!-- scratchbox-specific -->
-       <factory
-            adaptableType="org.maemo.esbox.internal.api.scratchbox.core.sdk.AbstractScratchboxSDKTarget"
-            class="org.maemo.esbox.internal.maemosdk.core.adapters.MaemoTargetEnvironmentModifierAdapterFactory">
-         <adapter
-               type="org.maemo.mica.common.launch.adapters.ITargetEnvironmentModifierAdapter">
-         </adapter>
-      </factory>
-      <!-- scratchbox-specific -->
-       <factory
-            adaptableType="org.maemo.esbox.internal.api.scratchbox.core.sdk.AbstractScratchboxSDKTarget"
-            class="org.maemo.esbox.internal.api.maemosdk.core.execEnv.MaemoEmulatorExecutionEnvironmentProviderAdapterFactory">
-         <adapter
-               type="org.maemo.mica.common.core.execEnv.IExecutionEnvironmentProviderAdapter">
-         </adapter>
-      </factory>
-   </extension>
-
-  <extension
-         id="org.maemo.mica.common.core.execution_environments"
-         name="name"
-         point="org.maemo.mica.common.core.execution_environment">
-      <execution_environment
-      		id="x11"
-            name="X11">
-      </execution_environment>
-      <execution_environment
-      		id="gtk"
-            name="GTK">
-      </execution_environment>
-      <execution_environment
-      		id="maemo"
-            name="Maemo AF">
-      </execution_environment>
-   </extension>
-  
-   <extension
-         point="org.eclipse.core.runtime.adapters">
          <!-- generic maemo -->
        <factory
             adaptableType="org.maemo.mica.common.core.sdk.ISDKTarget"
@@ -62,13 +25,5 @@
            version="17">
      </preferenceSetProvider>
   </extension>
-
-  <extension
-        point="org.maemo.mica.common.project.core.oldStyleProjectPropertiesProvider">
-     <projectPropertiesProvider
-           class="org.maemo.esbox.internal.maemosdk.core.OldStyleWorkspaceProjectPropertiesProvider">
-     </projectPropertiesProvider>
-  </extension>
-
   
 </plugin>

Deleted: branches/work_Ed/org.maemo.esbox.maemosdk.core/src/org/maemo/esbox/internal/api/maemosdk/core/MaemoEnvironmentUtils.java
===================================================================
--- branches/work_Ed/org.maemo.esbox.maemosdk.core/src/org/maemo/esbox/internal/api/maemosdk/core/MaemoEnvironmentUtils.java	2009-01-30 23:27:49 UTC (rev 1182)
+++ branches/work_Ed/org.maemo.esbox.maemosdk.core/src/org/maemo/esbox/internal/api/maemosdk/core/MaemoEnvironmentUtils.java	2009-02-01 02:02:28 UTC (rev 1183)
@@ -1,43 +0,0 @@
-/*******************************************************************************
- * Copyright (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:
- *    Ed Swartz (Nokia) - initial API and implementation
- *******************************************************************************/
-
-package org.maemo.esbox.internal.api.maemosdk.core;
-
-import org.maemo.esbox.maemosdk.core.MaemoPreferenceConstants;
-import org.maemo.mica.common.core.CorePreferenceManager;
-import org.maemo.mica.common.core.env.IEnvironmentModifierBlock;
-import org.maemo.mica.common.core.machine.IMachine;
-
-/**
- * @author eswartz
- *
- */
-public class MaemoEnvironmentUtils {
-	/**
-	 * Define DISPLAY for launches under the emulator that need a connection to the X server.
-	 * <p>
-	 * This uses the setting from the X Server preferences.
-	 * @param serverMachine the machine that hosts X
-	 * @param envBlock
-	 */
-	public static void defineEmulatorXDisplayVariable(IMachine serverMachine, IEnvironmentModifierBlock envBlock) {
-		// local launches need DISPLAY that points back to the host machine
-		String display = CorePreferenceManager.getInstance().getRegisteredKeyValue(
-				MaemoPreferenceConstants.X_DISPLAY);
-		if (display != null && display.length() > 0) {
-			String host = serverMachine.getLocalMachineAddress();
-			if (host.equals(IMachine.LOCALHOST_ADDRESS)) {
-				host = "";
-			}
-			envBlock.define("DISPLAY", host + display);
-		}
-	}
-}

Modified: branches/work_Ed/org.maemo.esbox.maemosdk.core/src/org/maemo/esbox/internal/api/maemosdk/core/tools/MaemoLauncher.java
===================================================================
--- branches/work_Ed/org.maemo.esbox.maemosdk.core/src/org/maemo/esbox/internal/api/maemosdk/core/tools/MaemoLauncher.java	2009-01-30 23:27:49 UTC (rev 1182)
+++ branches/work_Ed/org.maemo.esbox.maemosdk.core/src/org/maemo/esbox/internal/api/maemosdk/core/tools/MaemoLauncher.java	2009-02-01 02:02:28 UTC (rev 1183)
@@ -17,8 +17,8 @@
 
 import org.eclipse.jface.text.BadLocationException;
 import org.eclipse.ui.console.*;
-import org.maemo.esbox.internal.api.maemosdk.core.MaemoEnvironmentUtils;
 import org.maemo.esbox.internal.maemosdk.core.Activator;
+import org.maemo.esbox.maemosdk.core.MaemoEnvironmentUtils;
 import org.maemo.esbox.maemosdk.core.MaemoPreferenceConstants;
 import org.maemo.mica.common.core.*;
 import org.maemo.mica.common.core.env.IEnvironmentModifierBlock;

Deleted: branches/work_Ed/org.maemo.esbox.maemosdk.core/src/org/maemo/esbox/internal/maemosdk/core/OldStyleProjectProperties.java
===================================================================
--- branches/work_Ed/org.maemo.esbox.maemosdk.core/src/org/maemo/esbox/internal/maemosdk/core/OldStyleProjectProperties.java	2009-01-30 23:27:49 UTC (rev 1182)
+++ branches/work_Ed/org.maemo.esbox.maemosdk.core/src/org/maemo/esbox/internal/maemosdk/core/OldStyleProjectProperties.java	2009-02-01 02:02:28 UTC (rev 1183)
@@ -1,192 +0,0 @@
-/*******************************************************************************
- * Copyright (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:
- *    Ed Swartz (Nokia) - initial API and implementation
- *******************************************************************************/
-
-package org.maemo.esbox.internal.maemosdk.core;
-
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.QualifiedName;
-import org.maemo.esbox.internal.api.maemosdk.core.execEnv.MaemoExecutionEnvironments;
-import org.maemo.esbox.scratchbox.core.scratchbox.ScratchboxException;
-import org.maemo.esbox.scratchbox.core.sdk.IScratchboxSDK;
-import org.maemo.esbox.scratchbox.core.sdk.ScratchboxSDKFacade;
-import org.maemo.mica.common.core.MicaException;
-import org.maemo.mica.common.core.execEnv.*;
-import org.maemo.mica.common.core.sdk.*;
-import org.maemo.mica.common.project.core.IProjectProperties;
-
-import java.text.MessageFormat;
-import java.util.List;
-
-/**
- * This class retrieves the old-style C/C++ or Python project properties stored
- * in workspace metadata.
- * 
- * @author eswartz
- * 
- */
-public class OldStyleProjectProperties implements IProjectProperties {
-	private static final String TARGET_NAME_ID = "org.indt.esbox.project.targetName";
-
-	private static final String SCRATCHBOX_VERSION_ID = "org.indt.esbox.project.scratchboxVersion";
-
-	private static final String EXECUTION_ENVIRONMENT_ID = "org.indt.esbox.project.execEnv";
-
-	static final QualifiedName targetNameProperty = new QualifiedName(
-			TARGET_NAME_ID, "Scratchbox Target");
-
-	static final QualifiedName scratchboxVersionProperty = new QualifiedName(
-			SCRATCHBOX_VERSION_ID, "Scratchbox Version");
-
-	static final QualifiedName executionEnvironmentProperty = new QualifiedName(
-			EXECUTION_ENVIRONMENT_ID, "Execution Environment");
-
-	private IProject project;
-
-	public OldStyleProjectProperties(IProject project) {
-		this.project = project;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.maemo.esbox.common.core.IPropertyAccess#read(java.lang.String)
-	 */
-	private String readProperty(QualifiedName property) {
-		try {
-			return project.getPersistentProperty(property);
-		} catch (CoreException e) {
-			Activator.getErrorLogger().logError(
-					"Could not read project property", e);
-			return null;
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see
-	 * org.maemo.esbox.common.project.core.IProjectProperties#getExecutionEnvironment()
-	 */
-	public IExecutionEnvironment getExecutionEnvironment() {
-		IExecutionEnvironment execEnv = null;
-		String execEnvId = readProperty(executionEnvironmentProperty);
-		if (execEnvId == null) {
-			execEnvId = MaemoExecutionEnvironments.MAEMO;
-		}
-		execEnv = ExecutionEnvironmentFactory.getInstance()
-				.findExecutionEnvironment(execEnvId);
-		return execEnv;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see
-	 * org.maemo.esbox.common.project.core.IProjectProperties#getExecutionEnvironmentId
-	 * ()
-	 */
-	public String getExecutionEnvironmentId() {
-		return readProperty(executionEnvironmentProperty);
-	}
-
-	/**
-	 * Get the SDK target (SDK + target name) for the project's configured SDK
-	 * 
-	 * @return SDK target, never <code>null</code>
-	 * @throws MicaException
-	 *             if no target known
-	 */
-	public ISDKTarget getSDKTarget() throws MicaException {
-		if (!project.isOpen())
-			throw new MicaException(MessageFormat.format(
-					"Project ''{0}'' is not open", project.getName()));
-
-		ISDK sdk = getSDK();
-		String targetName = getTargetName();
-
-		ISDKTarget target = sdk.findSDKTarget(targetName);
-		if (target == null) {
-			throw new MicaException(MessageFormat.format(
-					"Project ''{0}'' references an unavailable target ''{1}''",
-					project.getName(), targetName));
-		}
-
-		return target;
-	}
-
-	/**
-	 * Get the SDK for the project
-	 * 
-	 * @return SDK, never <code>null</code>
-	 * @throws MicaException
-	 *             if no SDK known
-	 */
-	public ISDK getSDK() throws MicaException {
-		ISDK sdk = null;
-
-		String version = readProperty(scratchboxVersionProperty);
-		if (version == null) {
-			// old projects
-			version = "1";
-		}
-
-		SDKFactory.getInstance().waitForRefreshComplete(null);
-		
-		List<IScratchboxSDK> sboxSDKs = ScratchboxSDKFacade.getInstance()
-				.getAllScratchboxSDKs();
-		for (IScratchboxSDK sboxSDK : sboxSDKs) {
-			if (version.equals(Integer.toString(sboxSDK.getSboxVersion()))) {
-				sdk = sboxSDK;
-				break;
-			}
-		}
-
-		if (sdk == null) {
-			throw new MicaException(
-					MessageFormat
-							.format(
-									"Project ''{0}'' uses an unsupported scratchbox version {1}",
-									project.getName(), version));
-		}
-
-		return sdk;
-	}
-
-	public synchronized String getTargetName() {
-		return readProperty(targetNameProperty);
-	}
-
-	public synchronized String getSDKName() {
-		String sboxVersion = readProperty(scratchboxVersionProperty);
-	
-		if (sboxVersion == null)
-			return null;
-		
-		List<IScratchboxSDK> sboxSDKs;
-		try {
-			sboxSDKs = ScratchboxSDKFacade.getInstance().getAllScratchboxSDKs();
-		} catch (ScratchboxException e) {
-			return null;
-		}
-		for (IScratchboxSDK sboxSDK : sboxSDKs) {
-			if (sboxVersion.equals(Integer.toString(sboxSDK.getSboxVersion()))) {
-				return sboxSDK.getName();
-			}
-		}
-		return null;
-	}
-
-	// public synchronized String getScratchboxVersion(IProject project) {
-	// return readProperty(scratchboxVersionProperty);
-	// }
-
-}

Deleted: branches/work_Ed/org.maemo.esbox.maemosdk.core/src/org/maemo/esbox/internal/maemosdk/core/OldStyleWorkspaceProjectPropertiesProvider.java
===================================================================
--- branches/work_Ed/org.maemo.esbox.maemosdk.core/src/org/maemo/esbox/internal/maemosdk/core/OldStyleWorkspaceProjectPropertiesProvider.java	2009-01-30 23:27:49 UTC (rev 1182)
+++ branches/work_Ed/org.maemo.esbox.maemosdk.core/src/org/maemo/esbox/internal/maemosdk/core/OldStyleWorkspaceProjectPropertiesProvider.java	2009-02-01 02:02:28 UTC (rev 1183)
@@ -1,63 +0,0 @@
-/*******************************************************************************
- * Copyright (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:
- *    Ed Swartz (Nokia) - initial API and implementation
- *******************************************************************************/
-
-package org.maemo.esbox.internal.maemosdk.core;
-
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IProjectNature;
-import org.eclipse.core.runtime.CoreException;
-import org.maemo.mica.common.project.core.IOldStyleProjectPropertiesProvider;
-import org.maemo.mica.common.project.core.IProjectProperties;
-
-/**
- * Implementation of oldStyleProjectPropertiesProvider to allow converting old
- * projects to the current format.
- * 
- * @author eswartz
- * 
- */
-public class OldStyleWorkspaceProjectPropertiesProvider implements
-		IOldStyleProjectPropertiesProvider {
-
-	// NOTE: these nature IDs are stored here to avoid forcing this feature
-	// to depend on C/C++ or Python.
-	private static final String ESBOX_NATURE_ID = "org.indt.esbox.core.ESboxNature";
-	private static final String ESBOX_PYTHON_NATURE_ID = "org.indt.esbox.core.esboxPythonNature";
-
-	private boolean isNatureInProject(IProject _project, String id) {
-		if (_project != null && _project.isOpen()) {
-			try {
-				IProjectNature nature = _project.getNature(id);
-				if (nature != null) {
-					return true;
-				}
-			} catch (CoreException e) {
-				Activator.getErrorLogger().logError(
-						"Cannot detect project nature", e);
-			}
-		}
-		return false;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @seeorg.maemo.esbox.project.core.IOldStyleProjectPropertiesProvider#
-	 * createProjectProperties(org.eclipse.core.resources.IProject)
-	 */
-	public IProjectProperties createProjectProperties(IProject project) {
-		if (isNatureInProject(project, ESBOX_NATURE_ID)
-				|| isNatureInProject(project, ESBOX_PYTHON_NATURE_ID))
-			return new OldStyleProjectProperties(project);
-		return null;
-	}
-
-}

Modified: branches/work_Ed/org.maemo.esbox.maemosdk.core/src/org/maemo/esbox/internal/maemosdk/core/adapters/MaemoDefaultExecutionEnvironmentAdapter.java
===================================================================
--- branches/work_Ed/org.maemo.esbox.maemosdk.core/src/org/maemo/esbox/internal/maemosdk/core/adapters/MaemoDefaultExecutionEnvironmentAdapter.java	2009-01-30 23:27:49 UTC (rev 1182)
+++ branches/work_Ed/org.maemo.esbox.maemosdk.core/src/org/maemo/esbox/internal/maemosdk/core/adapters/MaemoDefaultExecutionEnvironmentAdapter.java	2009-02-01 02:02:28 UTC (rev 1183)
@@ -12,11 +12,11 @@
 package org.maemo.esbox.internal.maemosdk.core.adapters;
 
 import org.eclipse.core.resources.IProject;
-import org.maemo.esbox.internal.api.maemosdk.core.execEnv.MaemoExecutionEnvironments;
 import org.maemo.mica.common.core.adapters.IDefaultExecutionEnvironmentAdapter;
 import org.maemo.mica.common.core.execEnv.ExecutionEnvironmentFactory;
 import org.maemo.mica.common.core.execEnv.IExecutionEnvironment;
 import org.maemo.mica.common.core.sdk.ISDKTarget;
+import org.maemo.mica.maemosdk.core.MaemoExecutionEnvironmentIds;
 
 /**
  * Implementation of default execution environment adapter
@@ -41,7 +41,7 @@
 	public IExecutionEnvironment getDefaultExecutionEnvironment(IProject project) {
 		// TODO: more intelligent check
 		return ExecutionEnvironmentFactory.getInstance()
-				.findExecutionEnvironment(MaemoExecutionEnvironments.MAEMO);
+				.findExecutionEnvironment(MaemoExecutionEnvironmentIds.MAEMO);
 	}
 
 }

Deleted: branches/work_Ed/org.maemo.esbox.maemosdk.core/src/org/maemo/esbox/internal/maemosdk/core/adapters/MaemoTargetEnvironmentModifierAdapter.java
===================================================================
--- branches/work_Ed/org.maemo.esbox.maemosdk.core/src/org/maemo/esbox/internal/maemosdk/core/adapters/MaemoTargetEnvironmentModifierAdapter.java	2009-01-30 23:27:49 UTC (rev 1182)
+++ branches/work_Ed/org.maemo.esbox.maemosdk.core/src/org/maemo/esbox/internal/maemosdk/core/adapters/MaemoTargetEnvironmentModifierAdapter.java	2009-02-01 02:02:28 UTC (rev 1183)
@@ -1,61 +0,0 @@
-/*******************************************************************************
- * Copyright (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:
- *    Ed Swartz (Nokia) - initial API and implementation
- *******************************************************************************/
-
-package org.maemo.esbox.internal.maemosdk.core.adapters;
-
-import org.maemo.esbox.internal.api.maemosdk.core.MaemoEnvironmentUtils;
-import org.maemo.mica.common.core.env.EnvironmentManager;
-import org.maemo.mica.common.core.env.IEnvironmentModifierBlock;
-import org.maemo.mica.common.core.sdk.ISDKTarget;
-import org.maemo.mica.common.launch.adapters.ITargetEnvironmentModifierAdapter;
-import org.maemo.mica.common.launch.core.AbstractLocalLaunchProxy;
-import org.maemo.mica.common.launch.core.ILaunchProxy;
-
-/**
- * Provide the necessary variables for maemo launches.
- * @author eswartz
- *
- */
-public class MaemoTargetEnvironmentModifierAdapter implements ITargetEnvironmentModifierAdapter {
-
-	private final ISDKTarget sdkTarget;
-
-	/**
-	 * @param sdkTarget
-	 */
-	public MaemoTargetEnvironmentModifierAdapter(ISDKTarget sdkTarget) {
-		this.sdkTarget = sdkTarget;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.maemo.mica.common.launch.adapters.ITargetEnvironmentModifierAdapter#getTargetEnvironmentModifierBlock(org.maemo.mica.common.launch.core.ILaunchProxy)
-	 */
-	public IEnvironmentModifierBlock getTargetEnvironmentModifierBlock(ILaunchProxy launchProxy) {
-		IEnvironmentModifierBlock envBlock = EnvironmentManager.getInstance().createEnvironmentModifierBlock();
-		
-		// first, all launches need proper DBUS access
-		envBlock.define("DBUS_SESSION_BUS_ADDRESS", "unix:path=/tmp/session_bus_socket");
-		
-		if (launchProxy instanceof AbstractLocalLaunchProxy) {
-			MaemoEnvironmentUtils.defineEmulatorXDisplayVariable(sdkTarget.getMachine(), envBlock);
-			
-		} else {
-			// remote launches need DISPLAY for its own machine
-			
-			envBlock.define("DISPLAY", ":0");
-			
-		}
-		
-		return envBlock;
-	}
-
-}
-

Deleted: branches/work_Ed/org.maemo.esbox.maemosdk.core/src/org/maemo/esbox/internal/maemosdk/core/adapters/MaemoTargetEnvironmentModifierAdapterFactory.java
===================================================================
--- branches/work_Ed/org.maemo.esbox.maemosdk.core/src/org/maemo/esbox/internal/maemosdk/core/adapters/MaemoTargetEnvironmentModifierAdapterFactory.java	2009-01-30 23:27:49 UTC (rev 1182)
+++ branches/work_Ed/org.maemo.esbox.maemosdk.core/src/org/maemo/esbox/internal/maemosdk/core/adapters/MaemoTargetEnvironmentModifierAdapterFactory.java	2009-02-01 02:02:28 UTC (rev 1183)
@@ -1,49 +0,0 @@
-/*******************************************************************************
- * Copyright (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:
- *    Ed Swartz (Nokia) - initial API and implementation
- *******************************************************************************/
-
-package org.maemo.esbox.internal.maemosdk.core.adapters;
-
-import org.eclipse.core.runtime.IAdapterFactory;
-import org.maemo.mica.common.launch.adapters.ITargetEnvironmentModifierAdapter;
-import org.maemo.mica.maemosdk.core.IMaemoSDKTarget;
-
-/**
- * 
- * @author eswartz
- *
- */
- at SuppressWarnings("unchecked")
-public class MaemoTargetEnvironmentModifierAdapterFactory implements IAdapterFactory {
-
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.core.runtime.IAdapterFactory#getAdapter(java.lang.Object, java.lang.Class)
-	 */
-	public Object getAdapter(Object adaptableObject, Class adapterType) {
-		if (adapterType.equals(ITargetEnvironmentModifierAdapter.class)) {
-			// only handle maemo ESbox targets here
-			// XXX: this will be different for a target hosted on a device -- see PluThon
-			if (adaptableObject instanceof IMaemoSDKTarget) {
-				IMaemoSDKTarget sdkTarget = (IMaemoSDKTarget) adaptableObject;
-				return new MaemoTargetEnvironmentModifierAdapter(sdkTarget);
-			}
-		}
-		return null;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.core.runtime.IAdapterFactory#getAdapterList()
-	 */
-	public Class[] getAdapterList() {
-		return new Class[] { ITargetEnvironmentModifierAdapter.class };
-	}
-
-}

Copied: branches/work_Ed/org.maemo.esbox.maemosdk.core/src/org/maemo/esbox/maemosdk/core/MaemoEnvironmentUtils.java (from rev 1182, trunk/org.maemo.esbox.maemosdk.core/src/org/maemo/esbox/maemosdk/core/MaemoEnvironmentUtils.java)
===================================================================
--- branches/work_Ed/org.maemo.esbox.maemosdk.core/src/org/maemo/esbox/maemosdk/core/MaemoEnvironmentUtils.java	                        (rev 0)
+++ branches/work_Ed/org.maemo.esbox.maemosdk.core/src/org/maemo/esbox/maemosdk/core/MaemoEnvironmentUtils.java	2009-02-01 02:02:28 UTC (rev 1183)
@@ -0,0 +1,42 @@
+/*******************************************************************************
+ * Copyright (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:
+ *    Ed Swartz (Nokia) - initial API and implementation
+ *******************************************************************************/
+
+package org.maemo.esbox.maemosdk.core;
+
+import org.maemo.mica.common.core.CorePreferenceManager;
+import org.maemo.mica.common.core.env.IEnvironmentModifierBlock;
+import org.maemo.mica.common.core.machine.IMachine;
+
+/**
+ * @author eswartz
+ *
+ */
+public class MaemoEnvironmentUtils {
+	/**
+	 * Define DISPLAY for launches under the emulator that need a connection to the X server.
+	 * <p>
+	 * This uses the setting from the X Server preferences.
+	 * @param serverMachine the machine that hosts X
+	 * @param envBlock
+	 */
+	public static void defineEmulatorXDisplayVariable(IMachine serverMachine, IEnvironmentModifierBlock envBlock) {
+		// local launches need DISPLAY that points back to the host machine
+		String display = CorePreferenceManager.getInstance().getRegisteredKeyValue(
+				MaemoPreferenceConstants.X_DISPLAY);
+		if (display != null && display.length() > 0) {
+			String host = serverMachine.getLocalMachineAddress();
+			if (host.equals(IMachine.LOCALHOST_ADDRESS)) {
+				host = "";
+			}
+			envBlock.define("DISPLAY", host + display);
+		}
+	}
+}

Modified: branches/work_Ed/org.maemo.esbox.maemosdk.tests/build.properties
===================================================================
--- branches/work_Ed/org.maemo.esbox.maemosdk.tests/build.properties	2009-01-30 23:27:49 UTC (rev 1182)
+++ branches/work_Ed/org.maemo.esbox.maemosdk.tests/build.properties	2009-02-01 02:02:28 UTC (rev 1183)
@@ -2,4 +2,5 @@
 output.. = bin/
 bin.includes = META-INF/,\
                .,\
-               plugin.xml
+               plugin.xml,\
+               test.xml

Modified: branches/work_Ed/org.maemo.esbox.maemosdk.tests/src/org/maemo/esbox/scratchbox/tests/TestSB2ProcessLauncher.java
===================================================================
--- branches/work_Ed/org.maemo.esbox.maemosdk.tests/src/org/maemo/esbox/scratchbox/tests/TestSB2ProcessLauncher.java	2009-01-30 23:27:49 UTC (rev 1182)
+++ branches/work_Ed/org.maemo.esbox.maemosdk.tests/src/org/maemo/esbox/scratchbox/tests/TestSB2ProcessLauncher.java	2009-02-01 02:02:28 UTC (rev 1183)
@@ -89,9 +89,9 @@
 				// be sure no variables are left unexpanded
 				assertFalse(CommandLineArguments.toCommandLine(args).contains("${"));
 
-				// assume the pattern is still sb2 -e -t ...
+				// assume the pattern is still sb2 [-e|-m <mode>] -J ...
 				assertEquals("sb2", args.get(0));
-				assertTrue(args.contains("-t"));
+				assertTrue(args.contains("-J"));
 				assertTrue(args.contains("-e") || args.contains("-m"));
 			}
 		});

Copied: branches/work_Ed/org.maemo.esbox.maemosdk.tests/test.xml (from rev 1182, trunk/org.maemo.esbox.maemosdk.tests/test.xml)
===================================================================
--- branches/work_Ed/org.maemo.esbox.maemosdk.tests/test.xml	                        (rev 0)
+++ branches/work_Ed/org.maemo.esbox.maemosdk.tests/test.xml	2009-02-01 02:02:28 UTC (rev 1183)
@@ -0,0 +1,51 @@
+<?xml version="1.0"?>
+
+<project name="testsuite" default="run" basedir=".">
+  <!-- sets the properties eclipse-home, and library-file -->
+  <!-- The property ${eclipse-home} should be passed into this script -->
+  <!-- Set a meaningful default value for when it is not. -->
+  <property name="eclipse-home" value="${basedir}\..\.."/>
+<property name="plugin-name" value="org.maemo.esbox.scratchbox.tests"/>
+  <property name="library-file"
+            value="${eclipse-home}/plugins/org.eclipse.test_3.2.0/library.xml"/>
+ 
+  <!-- This target holds all initialization code that needs to be done for -->
+  <!-- all tests that are to be run. Initialization for individual tests -->
+  <!-- should be done within the body of the suite target. -->
+  <target name="init">
+    <tstamp/>
+    <delete>
+      <fileset dir="${eclipse-home}" includes="org*.xml"/>
+    </delete>
+  </target>
+
+  <!-- This target defines the tests that need to be run. -->
+  <target name="suite">
+    <property name="esbox-scratchbox-folder" 
+              value="${eclipse-home}/esbox-scratchbox-folder"/>
+    <delete dir="${esbox-scratchbox-folder}" quiet="true"/>
+  	<echo message="Library file: ${library-file}"/>	
+    <ant target="ui-test" antfile="${library-file}" dir="${eclipse-home}">
+      <property name="data-dir" value="${esbox-scratchbox-folder}"/>
+      <property name="plugin-name" value="${plugin-name}"/>
+      <property name="classname" 
+                value="org.maemo.esbox.scratchbox.tests.ESboxProductTestSuite"/>
+    </ant>  
+  </target>
+
+  <!-- This target holds code to cleanup the testing environment after -->
+  <!-- after all of the tests have been run. You can use this target to -->
+  <!-- delete temporary files that have been created. -->
+  <target name="cleanup">
+  </target>
+
+  <!-- This target runs the test suite. Any actions that need to happen -->
+  <!-- after all the tests have been run should go here. -->
+  <target name="run" depends="init,suite,cleanup">
+    <ant target="collect" antfile="${library-file}" dir="${eclipse-home}">
+      <property name="includes" value="org*.xml"/>
+      <property name="output-file" value="${plugin-name}.xml"/>
+    </ant>
+  </target>
+	
+</project>
\ No newline at end of file

Added: branches/work_Ed/org.maemo.esbox.maemosdk.ui/icons/full/obj16/package_install.png
===================================================================
(Binary files differ)


Property changes on: branches/work_Ed/org.maemo.esbox.maemosdk.ui/icons/full/obj16/package_install.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Modified: branches/work_Ed/org.maemo.esbox.maemosdk.ui/plugin.xml
===================================================================
--- branches/work_Ed/org.maemo.esbox.maemosdk.ui/plugin.xml	2009-01-30 23:27:49 UTC (rev 1182)
+++ branches/work_Ed/org.maemo.esbox.maemosdk.ui/plugin.xml	2009-02-01 02:02:28 UTC (rev 1183)
@@ -78,18 +78,21 @@
 
  <extension
         point="org.eclipse.ui.importWizards">
-         <wizard
-            category="org.eclipse.ui.Basic"
+     <wizard
+            category="org.maemo.esbox.Import"
            class="org.maemo.esbox.internal.maemosdk.ui.wizards.ESboxImportDebianSourcePackageProjectWizard"
-           icon="icons/full/obj16/maemo_convert.png"
+           icon="icons/full/obj16/package_install.png"
            id="org.maemo.esbox.maemosdk.ui.wizards.ImportDebianSourcePackageProject"
-           name="Import ESbox Project from Repository">
+           name="Project from Debian Repository">
         <description>
-           Import a project from sources in an apt repository.
+           Import a project from sources in an Debian apt repository.
         </description>
         <selection
               class="org.eclipse.core.resources.IProject">
         </selection>
      </wizard>
+      <category
+            id="org.maemo.esbox.Import"
+            name="ESbox"/>
   </extension>   
 </plugin>

Modified: branches/work_Ed/org.maemo.esbox.product-feature/feature.xml
===================================================================
--- branches/work_Ed/org.maemo.esbox.product-feature/feature.xml	2009-01-30 23:27:49 UTC (rev 1182)
+++ branches/work_Ed/org.maemo.esbox.product-feature/feature.xml	2009-02-01 02:02:28 UTC (rev 1183)
@@ -28,31 +28,31 @@
          version="0.0.0"/>
 
    <includes
-         id="org.maemo.mica.cpp"
+         id="org.maemo.mica.linux"
          version="0.0.0"/>
 
-   <includes
-         id="org.maemo.mica.protocol"
+	<includes
+         id="org.maemo.mica.maemosdk"
          version="0.0.0"/>
 
-   <includes
-         id="org.maemo.mica.linux"
+	<includes
+         id="org.maemo.mica.protocol"
          version="0.0.0"/>
 
    <includes
-         id="org.maemo.mica.maemosdk"
+         id="org.maemo.mica.cpp"
          version="0.0.0"/>
-
+   
    <includes
-         id="org.maemo.esbox.scratchbox"
+         id="org.maemo.mica.python"
          version="0.0.0"/>
 
    <includes
-         id="org.maemo.mica.python"
+         id="org.maemo.mica.protocol.rse"
          version="0.0.0"/>
 
    <includes
-         id="org.maemo.mica.protocol.rse"
+         id="org.maemo.mica.linux.autotools"
          version="0.0.0"/>
 
    <includes
@@ -60,7 +60,7 @@
          version="0.0.0"/>
 
    <includes
-         id="org.maemo.mica.linux.autotools"
+         id="org.maemo.esbox.scratchbox"
          version="0.0.0"/>
 
    <requires>

Modified: branches/work_Ed/org.maemo.esbox.project.cpp/plugin.xml
===================================================================
--- branches/work_Ed/org.maemo.esbox.project.cpp/plugin.xml	2009-01-30 23:27:49 UTC (rev 1182)
+++ branches/work_Ed/org.maemo.esbox.project.cpp/plugin.xml	2009-02-01 02:02:28 UTC (rev 1183)
@@ -62,6 +62,89 @@
      </wizard>
   </extension>
   
+  
+  <extension
+        point="org.eclipse.ui.navigator.navigatorContent">
+     <commonWizard
+           associatedExtensionId="org.eclipse.cdt.ui.navigator.content"
+           menuGroupId="org.eclipse.cdt.ui.newProject"
+           type="new"
+           wizardId="org.maemo.mica.cpp.project.ui.wizards.ConvertToESboxWizard">
+        <enablement>
+           <and>
+              <adapt
+                    type="org.eclipse.core.resources.IProject">
+              </adapt>
+              <not>
+                 <adapt
+                       type="org.eclipse.core.resources.IProject">
+                    <test
+                          property="org.eclipse.core.resources.projectNature"
+                          value="org.maemo.mica.cpp.project.core.ESboxCppNature">
+                    </test>
+                 </adapt>
+              </not>
+           </and>
+        </enablement>
+     </commonWizard>
+  </extension>
+   <extension
+         point="org.eclipse.ui.navigator.navigatorContent">
+      <commonWizard
+            menuGroupId="org.eclipse.cdt.ui.newProject"
+            type="new"
+            wizardId="org.maemo.mica.cpp.project.ui.wizards.ESboxCppCProjectWizard">
+         <enablement></enablement>
+      </commonWizard>
+      <commonWizard
+            menuGroupId="org.eclipse.cdt.ui.newProject"
+            type="new"
+            wizardId="org.maemo.mica.cpp.project.ui.wizards.ESboxCppCCProjectWizard">
+         <enablement></enablement>
+      </commonWizard>
+   </extension>
+
+  <extension
+        point="org.eclipse.ui.navigator.navigatorContent">
+     <commonWizard
+           associatedExtensionId="org.eclipse.cdt.ui.navigator.content"
+           menuGroupId="org.eclipse.cdt.ui.newProject"
+           type="new"
+           wizardId="org.maemo.mica.cpp.project.ui.wizards.ConvertToESboxCppBuildConfigWizard">
+		 <enablement>
+		 	<and>
+	            <adapt type="org.eclipse.core.resources.IProject" />
+				<not>
+		            <adapt type="org.eclipse.core.resources.IProject" >
+		               <test
+		                     property="org.eclipse.core.resources.projectNature"
+		                     value="org.maemo.mica.cpp.project.core.ESboxCppNature"/>
+		            </adapt>
+				</not>
+		 	</and>
+			<and>
+	            <adapt type="org.eclipse.core.resources.IProject" />
+				<not>
+		            <adapt type="org.eclipse.core.resources.IProject" >
+		               <test
+		                     property="org.eclipse.core.resources.projectNature"
+		                     value="org.maemo.mica.python.project.core.ESboxPythonNature"/>
+		            </adapt>
+				</not>
+		 	</and>		 	
+         </enablement>
+      </commonWizard>
+
+     <commonWizard
+           associatedExtensionId="org.eclipse.cdt.ui.navigator.content"
+           menuGroupId="org.eclipse.cdt.ui.newProject"
+           type="new"
+           wizardId="org.maemo.mica.cpp.project.ui.wizards.ESboxNewCppBuildConfigProjectWizard">
+		 <enablement>
+         </enablement>
+      </commonWizard>      
+  </extension>
+  
 <extension
      point="org.eclipse.ui.propertyPages">
       <page
@@ -95,4 +178,15 @@
      </projectPackageGatherer>
   </extension>
 
+ <extension
+       point="org.eclipse.core.runtime.adapters">
+    <factory
+          adaptableType="org.maemo.mica.cpp.project.core.MicaCppProjectType"
+          class="org.maemo.esbox.internal.project.cpp.core.CppProjectDebianSupportAdapterFactory">
+       <adapter
+             type="org.maemo.mica.linux.packages.core.adapters.IDebianProjectConvertImportSupport">
+       </adapter>
+    </factory>
+ </extension>
+
 </plugin>

Added: branches/work_Ed/org.maemo.esbox.project.cpp/src/org/maemo/esbox/internal/project/cpp/core/CppDebianProjectImportConfigurationComposite.java
===================================================================
--- branches/work_Ed/org.maemo.esbox.project.cpp/src/org/maemo/esbox/internal/project/cpp/core/CppDebianProjectImportConfigurationComposite.java	                        (rev 0)
+++ branches/work_Ed/org.maemo.esbox.project.cpp/src/org/maemo/esbox/internal/project/cpp/core/CppDebianProjectImportConfigurationComposite.java	2009-02-01 02:02:28 UTC (rev 1183)
@@ -0,0 +1,82 @@
+/*******************************************************************************
+ * Copyright (c) 2009 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:
+ *    Ed Swartz (Nokia) - initial API and implementation
+ *******************************************************************************/
+
+package org.maemo.esbox.internal.project.cpp.core;
+
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.runtime.IPath;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.widgets.Composite;
+import org.maemo.mica.common.core.IValidatingDialogPage;
+import org.maemo.mica.common.project.core.IProjectTypeConfigKeys;
+import org.maemo.mica.common.project.core.ProjectConfigHandler;
+import org.maemo.mica.cpp.project.core.MicaCppProjectType;
+
+/**
+ * This composite contains the configurable aspects of a project for a Debian
+ * source package.
+ * @author eswartz
+ *
+ */
+public class CppDebianProjectImportConfigurationComposite extends CppProjectImportConfigurationComposite {
+
+	private String[] rules;
+
+	public CppDebianProjectImportConfigurationComposite(
+			Composite parent,
+			IValidatingDialogPage dialogPage, MicaCppProjectType projectType,
+			final IProject project,
+			final IPath projectLocation,
+			ProjectConfigHandler configHandler,
+			String[] rules) {
+		super(parent, SWT.NONE, dialogPage, projectType, project, projectLocation, configHandler,
+				false, true);
+		this.rules = rules;
+	}
+	
+	/* (non-Javadoc)
+	 * @see org.maemo.esbox.internal.project.cpp.core.CppProjectImportConfigurationComposite#init()
+	 */
+	@Override
+	protected void setFieldContents() {
+		super.setFieldContents();
+		
+		buildConfigureTargetField.setItems(rules);
+		buildIncrTargetField.setItems(rules);
+		buildAutoTargetField.setItems(rules);
+		buildCleanTargetField.setItems(rules);
+	}
+	
+	/* (non-Javadoc)
+	 * @see org.maemo.esbox.internal.project.cpp.core.CppProjectImportConfigurationComposite#initRules(boolean, boolean, boolean, boolean)
+	 */
+	@Override
+	protected void initRules(boolean gotConfigureRule, boolean gotCleanRule,
+			boolean gotIncrRule) {
+		super.initRules(gotConfigureRule, gotCleanRule, gotIncrRule);
+		
+		// get default rules based on guesses
+		for (String rule : rules) {
+			if (!gotConfigureRule && rule.contains("config")) {
+				setRule(IProjectTypeConfigKeys.KEY_CONFIGURE_BUILD_SETTING, rule, buildConfigureTargetField);
+				gotConfigureRule = true;
+			}
+			if (!gotCleanRule && rule.contains("clean")) {
+				setRule(IProjectTypeConfigKeys.KEY_CLEAN_BUILD_SETTING, rule, buildCleanTargetField);
+				gotCleanRule = true;
+			}
+			if (!gotIncrRule && (rule.contains("build") || rule.contains("all"))) {
+				setRule(IProjectTypeConfigKeys.KEY_INCREMENTAL_BUILD_SETTING, rule, buildIncrTargetField);
+				gotIncrRule = true;
+			}
+		}
+	}
+}

Added: branches/work_Ed/org.maemo.esbox.project.cpp/src/org/maemo/esbox/internal/project/cpp/core/CppDebianProjectSupport.java
===================================================================
--- branches/work_Ed/org.maemo.esbox.project.cpp/src/org/maemo/esbox/internal/project/cpp/core/CppDebianProjectSupport.java	                        (rev 0)
+++ branches/work_Ed/org.maemo.esbox.project.cpp/src/org/maemo/esbox/internal/project/cpp/core/CppDebianProjectSupport.java	2009-02-01 02:02:28 UTC (rev 1183)
@@ -0,0 +1,60 @@
+/*******************************************************************************
+ * Copyright (c) 2009 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:
+ *    Ed Swartz (Nokia) - initial API and implementation
+ *******************************************************************************/
+
+package org.maemo.esbox.internal.project.cpp.core;
+
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.runtime.IPath;
+import org.eclipse.swt.widgets.Composite;
+import org.maemo.mica.common.core.IValidatingDialogPage;
+import org.maemo.mica.common.project.core.ProjectConfigHandler;
+import org.maemo.mica.cpp.project.core.MicaCppProjectType;
+import org.maemo.mica.linux.packages.core.adapters.IDebianProjectConvertImportSupport;
+
+/**
+ * @author eswartz
+ *
+ */
+public class CppDebianProjectSupport implements IDebianProjectConvertImportSupport {
+
+	private final MicaCppProjectType projectType;
+
+	/**
+	 * @param adaptableObject
+	 */
+	public CppDebianProjectSupport(MicaCppProjectType projectType) {
+		this.projectType = projectType;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.maemo.mica.linux.packages.core.adapters.IDebianProjectSupport#createProjectImportConfigurationComposite(org.eclipse.swt.widgets.Composite, org.eclipse.jface.dialogs.IDialogPage, org.eclipse.core.resources.IProject, org.eclipse.core.runtime.IPath, org.maemo.mica.common.project.core.ProjectConfigHandler)
+	 */
+	public Composite createDebianProjectImportConfigurationComposite(Composite parent,
+			int style, IValidatingDialogPage dialogPage, IProject project,
+			IPath projectLocation, ProjectConfigHandler configHandler, String[] debianRules) {
+
+		CppProjectImportConfigurationComposite configComposite =
+			new CppDebianProjectImportConfigurationComposite(
+					parent,
+					dialogPage,
+					projectType,
+					project,
+					projectLocation,
+					configHandler,
+					debianRules
+					);
+		
+		configComposite.init();
+		
+		return configComposite;
+	}
+
+}

Added: branches/work_Ed/org.maemo.esbox.project.cpp/src/org/maemo/esbox/internal/project/cpp/core/CppProjectDebianSupportAdapterFactory.java
===================================================================
--- branches/work_Ed/org.maemo.esbox.project.cpp/src/org/maemo/esbox/internal/project/cpp/core/CppProjectDebianSupportAdapterFactory.java	                        (rev 0)
+++ branches/work_Ed/org.maemo.esbox.project.cpp/src/org/maemo/esbox/internal/project/cpp/core/CppProjectDebianSupportAdapterFactory.java	2009-02-01 02:02:28 UTC (rev 1183)
@@ -0,0 +1,44 @@
+/*******************************************************************************
+ * Copyright (c) 2009 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:
+ *    Ed Swartz (Nokia) - initial API and implementation
+ *******************************************************************************/
+
+package org.maemo.esbox.internal.project.cpp.core;
+
+import org.eclipse.core.runtime.IAdapterFactory;
+import org.maemo.mica.cpp.project.core.MicaCppProjectType;
+import org.maemo.mica.linux.packages.core.adapters.IDebianProjectConvertImportSupport;
+
+/**
+ * This factory proclaims Debian support for a project type.
+ * @author eswartz
+ *
+ */
+public class CppProjectDebianSupportAdapterFactory implements IAdapterFactory {
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.core.runtime.IAdapterFactory#getAdapter(java.lang.Object, java.lang.Class)
+	 */
+	public Object getAdapter(Object adaptableObject, Class adapterType) {
+		if (adaptableObject instanceof MicaCppProjectType) {
+			if (adapterType.equals(IDebianProjectConvertImportSupport.class)) {
+				return new CppDebianProjectSupport((MicaCppProjectType) adaptableObject);
+			}
+		}
+		return null;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.core.runtime.IAdapterFactory#getAdapterList()
+	 */
+	public Class[] getAdapterList() {
+		return new Class[] { IDebianProjectConvertImportSupport.class };
+	}
+
+}

Added: branches/work_Ed/org.maemo.esbox.project.cpp/src/org/maemo/esbox/internal/project/cpp/core/CppProjectImportConfigurationComposite.java
===================================================================
--- branches/work_Ed/org.maemo.esbox.project.cpp/src/org/maemo/esbox/internal/project/cpp/core/CppProjectImportConfigurationComposite.java	                        (rev 0)
+++ branches/work_Ed/org.maemo.esbox.project.cpp/src/org/maemo/esbox/internal/project/cpp/core/CppProjectImportConfigurationComposite.java	2009-02-01 02:02:28 UTC (rev 1183)
@@ -0,0 +1,333 @@
+/*******************************************************************************
+ * Copyright (c) 2009 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:
+ *    Ed Swartz (Nokia) - initial API and implementation
+ *******************************************************************************/
+
+package org.maemo.esbox.internal.project.cpp.core;
+
+import java.io.File;
+import java.io.FileFilter;
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.runtime.IPath;
+import org.eclipse.core.runtime.Path;
+import org.eclipse.jface.layout.GridDataFactory;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.SelectionAdapter;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Combo;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Group;
+import org.eclipse.swt.widgets.Label;
+import org.maemo.mica.common.core.IValidatingDialogPage;
+import org.maemo.mica.common.project.core.IProjectType;
+import org.maemo.mica.common.project.core.ProjectConfigHandler;
+import org.maemo.mica.common.project.ui.wizards.BaseProjectImportConfigurationComposite;
+import org.maemo.mica.common.ui.common.ComboDialogField;
+import org.maemo.mica.common.ui.common.GridLayoutWrappedTextUtils;
+import org.maemo.mica.cpp.project.core.MicaCppProjectType;
+
+import com.nokia.cpp.internal.api.utils.core.FileUtils;
+
+/**
+ * This is the basic UI for configuring a C/C++ project on import or conversion.
+ * @author eswartz
+ *
+ */
+public class CppProjectImportConfigurationComposite extends BaseProjectImportConfigurationComposite {
+
+	protected ComboDialogField buildLocationField;
+	protected ComboDialogField buildConfigureTargetField;
+	protected ComboDialogField buildIncrTargetField;
+	protected ComboDialogField buildAutoTargetField;
+	protected ComboDialogField buildCleanTargetField;
+	protected String[] allDirs;
+	protected IPath projectLocation;
+	protected MicaCppProjectType projectType;
+	private boolean showBuildLocation;
+	private boolean showConfigureRule;
+
+	/**
+	 * @param parent
+	 * @param style
+	 * @param dialogPage 
+	 */
+	public CppProjectImportConfigurationComposite(Composite parent, int style,
+			IValidatingDialogPage dialogPage, MicaCppProjectType projectType,
+			final IProject project,
+			final IPath projectLocation,
+			ProjectConfigHandler configHandler,
+			boolean showBuildLocation, boolean showConfigureRule) {
+		super(parent, style, dialogPage, project, projectLocation, configHandler);
+		this.projectType = projectType;
+		this.projectLocation = projectLocation;
+		this.showBuildLocation = showBuildLocation;
+		this.showConfigureRule = showConfigureRule;
+		
+	}
+	
+	/**
+	 * @param parent
+	 * @param style
+	 * @param dialogPage 
+	 */
+	public CppProjectImportConfigurationComposite(Composite parent, int style,
+			IValidatingDialogPage dialogPage, MicaCppProjectType projectType,
+			final IProject project,
+			final IPath projectLocation,
+			ProjectConfigHandler configHandler) {
+		this(parent, style, dialogPage, projectType, project, projectLocation, configHandler, true, false);
+	}
+
+	public void init() {
+
+		final List<String> allPathsList = new ArrayList<String>();
+		File dir = projectLocation.toFile();
+		final String base = dir.getAbsolutePath();
+		
+		allPathsList.add("");
+		
+		// just walking here
+		FileUtils.listFilesInTree(dir, new FileFilter() { 
+				public boolean accept(File pathname) {
+					if (pathname.isDirectory()) {
+						allPathsList.add(pathname.getAbsolutePath().substring(base.length() + 1));
+					}
+					return true;
+				}
+			},
+			true
+		);
+		
+		allDirs = (String[]) allPathsList.toArray(new String[allPathsList.size()]);
+		
+		buildLocationField = new ComboDialogField(SWT.READ_ONLY);
+		buildConfigureTargetField = new ComboDialogField(SWT.READ_ONLY);
+		buildIncrTargetField = new ComboDialogField(SWT.READ_ONLY);
+		buildAutoTargetField = new ComboDialogField(SWT.READ_ONLY);
+		buildCleanTargetField = new ComboDialogField(SWT.READ_ONLY);
+
+		setFieldContents();
+		super.init();
+	}
+	
+	/**
+	 * 
+	 */
+	protected void setFieldContents() {
+		buildLocationField.setItems(allDirs);
+		
+		String[] stockRules = new String[] { "", "all", "clean" };
+		
+		
+		buildConfigureTargetField.setItems(stockRules);
+		buildIncrTargetField.setItems(stockRules);
+		buildAutoTargetField.setItems(stockRules);
+		buildCleanTargetField.setItems(stockRules);
+				
+	}
+
+	protected void createProjectUI(Composite composite) {
+		if (showBuildLocation) {
+			createBuildLocationUI(composite);
+		}
+		
+		createBuildRuleUI(composite);
+	}
+
+	/**
+	 * @param composite
+	 */
+	protected void createBuildLocationUI(Composite composite) {
+		Composite twoWay = new Composite(composite, SWT.NONE);
+		twoWay.setLayout(new GridLayout(2, false));
+		GridDataFactory.fillDefaults().grab(true, false).applyTo(twoWay);
+
+		buildLocationField.setLabelText("Build location:");
+		buildLocationField.doFillIntoGrid(twoWay, 2);
+		Combo combo = buildLocationField.getComboControl(twoWay);
+		combo.setToolTipText("Specify the project-relative build location.");
+		GridDataFactory.fillDefaults().grab(true, false).applyTo(combo);
+		combo.addSelectionListener(new SelectionAdapter() {
+			@Override
+			public void widgetSelected(SelectionEvent e) {
+				IPath path = new Path(buildLocationField.getText());
+				if (path.isEmpty())
+					path = null;
+				configHandler.getConfigProperties().put(MicaCppProjectType.KEY_BUILD_LOCATION,
+						path);
+				dialogPage.validatePage();
+			}
+		});
+	}
+
+	/**
+	 * @param composite
+	 */
+	protected void createBuildRuleUI(Composite composite) {
+		Control control;
+		Label helpLabel = new Label(composite, SWT.WRAP);
+		//GridDataFactory.swtDefaults().grab(false, false).hint(textSize, SWT.DEFAULT).applyTo(label);
+		GridDataFactory.swtDefaults().align(SWT.FILL, SWT.TOP).grab(true, false).applyTo(helpLabel);
+		helpLabel.setText("Select the targets to use when building the project.\n\n"
+				+"(See Project > Properties > Maemo Build Configurations > Build Settings to change these settings after the project is created.)");
+		
+		GridData helpLabelGridData = GridDataFactory.swtDefaults().span(2,1).create();
+			
+		GridLayoutWrappedTextUtils.setupLabel(getShell(), helpLabel, helpLabelGridData);
+	
+		Group group = new Group(composite, SWT.NONE);
+		GridDataFactory.fillDefaults().grab(true, true).indent(6, 6).applyTo(group);
+		group.setText("Build Targets");
+		group.setLayout(new GridLayout(2, false));
+		
+		if (showConfigureRule)
+			createConfigureRuleUI(group);
+		
+		buildIncrTargetField.setLabelText("Incremental/full build rule:");
+		buildIncrTargetField.doFillIntoGrid(group, 2);
+		control = buildIncrTargetField.getComboControl(group);
+		control.setToolTipText("Specify the rule that builds the project on a Project > Build command.");
+		GridDataFactory.fillDefaults().grab(true, false).applyTo(control);
+		buildIncrTargetField.getComboControl(group).addSelectionListener(new SelectionAdapter() {
+			@Override
+			public void widgetSelected(SelectionEvent e) {
+				updateRule(IProjectType.KEY_INCREMENTAL_BUILD_SETTING, buildIncrTargetField);
+			}
+		});
+		
+		buildAutoTargetField.setLabelText("Auto build rule:");
+		buildAutoTargetField.doFillIntoGrid(group, 2);
+		control = buildAutoTargetField.getComboControl(group);
+		control.setToolTipText("Specify the rule that builds the project when Project > Build Automatically is enabled.");
+		GridDataFactory.fillDefaults().grab(true, false).applyTo(control);
+		buildAutoTargetField.getComboControl(group).addSelectionListener(new SelectionAdapter() {
+			@Override
+			public void widgetSelected(SelectionEvent e) {
+				updateRule(IProjectType.KEY_AUTO_BUILD_SETTING, buildAutoTargetField);
+			}
+		});
+		
+		buildCleanTargetField.setLabelText("Clean build rule:");
+		buildCleanTargetField.doFillIntoGrid(group, 2);
+		control = buildCleanTargetField.getComboControl(group);
+		control.setToolTipText("Specify the rule that cleans the project on a Project > Clean command.");
+		GridDataFactory.fillDefaults().grab(true, false).applyTo(control);
+		buildCleanTargetField.getComboControl(group).addSelectionListener(new SelectionAdapter() {
+			@Override
+			public void widgetSelected(SelectionEvent e) {
+				updateRule(IProjectType.KEY_CLEAN_BUILD_SETTING, buildCleanTargetField);
+			}
+		});
+	}
+
+	/**
+	 * @param showConfigureRule
+	 * @param group
+	 */
+	protected void createConfigureRuleUI(Group group) {
+		Control control;
+		buildConfigureTargetField.setLabelText("Configure build rule:");
+		buildConfigureTargetField.doFillIntoGrid(group, 2);
+		control = buildConfigureTargetField.getComboControl(group);
+		control.setToolTipText("Specify the rule that builds the project on a Project > Build Application > Configure command.");
+		GridDataFactory.fillDefaults().grab(true, false).applyTo(control);
+		
+		buildConfigureTargetField.getComboControl(group).addSelectionListener(new SelectionAdapter() {
+			@Override
+			public void widgetSelected(SelectionEvent e) {
+				updateRule(IProjectType.KEY_CONFIGURE_BUILD_SETTING,
+						buildConfigureTargetField);
+			}
+		});
+	}
+
+	/**
+	 * Return text unless it is empty or null.
+	 * @param text
+	 * @return
+	 */
+	protected String nonEmptyOrNull(String text) {
+		return text == null || text.length() == 0 ? null : text;
+	}
+
+	/**
+	 * @param firstElement
+	 */
+	protected void setBuildLocation(IPath path) {
+		
+	}
+
+	/**
+	 * Set the current rules into the fields and initialize the rest with guesses.
+	 * @param configHandler
+	 * @param rules
+	 */
+	protected void initFromConfig() {
+		super.initFromConfig();
+		
+		boolean gotConfigureRule = false, gotCleanRule = false, gotIncrRule = false;
+		
+		// get any existing rules
+		initRule(IProjectType.KEY_AUTO_BUILD_SETTING, buildAutoTargetField);
+		gotIncrRule = initRule(IProjectType.KEY_INCREMENTAL_BUILD_SETTING, buildIncrTargetField);
+		gotCleanRule = initRule(IProjectType.KEY_CLEAN_BUILD_SETTING, buildCleanTargetField);
+		gotConfigureRule = initRule(IProjectType.KEY_CONFIGURE_BUILD_SETTING, buildConfigureTargetField);
+		
+		initRules(gotConfigureRule, gotCleanRule, gotIncrRule);
+	}
+
+	/**
+	 * 
+	 */
+	protected boolean initRule(String setting, ComboDialogField field) {
+		String rule = (String) configHandler.getConfigProperties().get(setting);
+		rule = nonEmptyOrNull(rule);
+		if (rule != null) {
+			field.setText(rule);
+			return true;
+		}
+		configHandler.getConfigProperties().remove(setting);
+		field.setText("");
+		return false;
+	}
+
+	/**
+	 * 
+	 */
+	protected void setRule(String setting, String value, ComboDialogField field) {
+		configHandler.getConfigProperties().put(setting, value);
+		field.setText(value);
+	}
+
+	/**
+	 */
+	protected void updateRule(String setting,
+			ComboDialogField field) {
+		String rule = nonEmptyOrNull(field.getText());
+		if (rule == null)
+			configHandler.getConfigProperties().remove(setting);
+		else
+			configHandler.getConfigProperties().put(setting, rule);
+		dialogPage.validatePage();		
+	}
+
+	/**
+	 */
+	protected void initRules(boolean gotConfigureRule, boolean gotCleanRule,
+			boolean gotIncrRule) {
+		
+	}
+
+}
\ No newline at end of file

Modified: branches/work_Ed/org.maemo.esbox.project.cpp/src/org/maemo/esbox/internal/project/cpp/core/MaemoCppProjectPackageGatherer.java
===================================================================
--- branches/work_Ed/org.maemo.esbox.project.cpp/src/org/maemo/esbox/internal/project/cpp/core/MaemoCppProjectPackageGatherer.java	2009-01-30 23:27:49 UTC (rev 1182)
+++ branches/work_Ed/org.maemo.esbox.project.cpp/src/org/maemo/esbox/internal/project/cpp/core/MaemoCppProjectPackageGatherer.java	2009-02-01 02:02:28 UTC (rev 1183)
@@ -14,7 +14,6 @@
 import org.eclipse.core.resources.IProject;
 import org.eclipse.core.runtime.CoreException;
 import org.eclipse.core.runtime.IProgressMonitor;
-import org.maemo.mica.common.core.sdk.ISDKTarget;
 import org.maemo.mica.cpp.project.core.MicaCppProjectNature;
 import org.maemo.mica.linux.packages.core.aptpkgconfig.install.IProjectPackageGatherer;
 import org.maemo.mica.linux.packages.core.aptpkgconfig.install.ProjectPackageInfo;

Modified: branches/work_Ed/org.maemo.esbox.project.cpp/src/org/maemo/esbox/internal/project/cpp/ui/wizards/ConvertToESboxCppProjectWizard.java
===================================================================
--- branches/work_Ed/org.maemo.esbox.project.cpp/src/org/maemo/esbox/internal/project/cpp/ui/wizards/ConvertToESboxCppProjectWizard.java	2009-01-30 23:27:49 UTC (rev 1182)
+++ branches/work_Ed/org.maemo.esbox.project.cpp/src/org/maemo/esbox/internal/project/cpp/ui/wizards/ConvertToESboxCppProjectWizard.java	2009-02-01 02:02:28 UTC (rev 1183)
@@ -34,8 +34,4 @@
 		ImageDescriptor image = Activator.getImageDescriptor("./icons/full/wizban/maemo_convert.gif");
 		setDefaultPageImageDescriptor(image);
 	}
-	
-	protected String getProductName() {
-		return "ESbox";
-	}
 }

Modified: branches/work_Ed/org.maemo.esbox.project.python/plugin.xml
===================================================================
--- branches/work_Ed/org.maemo.esbox.project.python/plugin.xml	2009-01-30 23:27:49 UTC (rev 1182)
+++ branches/work_Ed/org.maemo.esbox.project.python/plugin.xml	2009-02-01 02:02:28 UTC (rev 1183)
@@ -30,6 +30,7 @@
       </commonWizard>
    </extension>
    
+   
   <extension
         point="org.maemo.mica.linux.packages.core.projectPackageGatherer">
      <projectPackageGatherer
@@ -37,4 +38,16 @@
      </projectPackageGatherer>
   </extension>
 
+ <extension
+       point="org.eclipse.core.runtime.adapters">
+    <factory
+          adaptableType="org.maemo.mica.python.project.core.MicaPythonProjectType"
+          class="org.maemo.esbox.internal.project.python.core.PythonProjectDebianSupportAdapterFactory">
+       <adapter
+             type="org.maemo.mica.linux.packages.core.adapters.IDebianProjectConvertImportSupport">
+       </adapter>
+    </factory>
+    
+ </extension>
+
 </plugin>

Added: branches/work_Ed/org.maemo.esbox.project.python/src/org/maemo/esbox/internal/project/python/core/PythonDebianProjectImportConfigurationComposite.java
===================================================================
--- branches/work_Ed/org.maemo.esbox.project.python/src/org/maemo/esbox/internal/project/python/core/PythonDebianProjectImportConfigurationComposite.java	                        (rev 0)
+++ branches/work_Ed/org.maemo.esbox.project.python/src/org/maemo/esbox/internal/project/python/core/PythonDebianProjectImportConfigurationComposite.java	2009-02-01 02:02:28 UTC (rev 1183)
@@ -0,0 +1,61 @@
+/*******************************************************************************
+ * Copyright (c) 2009 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:
+ *    Ed Swartz (Nokia) - initial API and implementation
+ *******************************************************************************/
+
+package org.maemo.esbox.internal.project.python.core;
+
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.runtime.IPath;
+import org.eclipse.jface.layout.GridDataFactory;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Label;
+import org.maemo.mica.common.core.IValidatingDialogPage;
+import org.maemo.mica.common.project.core.ProjectConfigHandler;
+import org.maemo.mica.common.ui.common.GridLayoutWrappedTextUtils;
+import org.maemo.mica.python.project.ui.wizards.PythonProjectImportConfigurationComposite;
+
+/**
+ * This composite contains the configurable aspects of a project for a Debian
+ * source package.
+ * @author eswartz
+ *
+ */
+public class PythonDebianProjectImportConfigurationComposite extends PythonProjectImportConfigurationComposite {
+
+	/*private*/ String[] rules;
+
+	public PythonDebianProjectImportConfigurationComposite(
+			Composite parent,
+			IValidatingDialogPage dialogPage, 
+			final IProject project,
+			final IPath projectLocation,
+			ProjectConfigHandler configHandler,
+			String[] rules) {
+		super(parent, SWT.NONE, dialogPage, project, projectLocation, configHandler);
+		this.rules = rules;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.maemo.mica.python.project.ui.wizards.PythonProjectImportConfigurationComposite#createProjectUI(org.eclipse.swt.widgets.Composite)
+	 */
+	@Override
+	protected void createProjectUI(Composite composite) {
+		super.createProjectUI(composite);
+		
+		Label label = new Label(composite, SWT.NONE);
+		GridData labelData = GridDataFactory.swtDefaults().create();
+		label.setText("Python projects cannot (currently) be built with the 'debian/rules' script since this requires a Make-based builder.");
+		
+		GridLayoutWrappedTextUtils.setupLabel(getShell(), label, labelData);
+
+	}
+}

Added: branches/work_Ed/org.maemo.esbox.project.python/src/org/maemo/esbox/internal/project/python/core/PythonDebianProjectSupport.java
===================================================================
--- branches/work_Ed/org.maemo.esbox.project.python/src/org/maemo/esbox/internal/project/python/core/PythonDebianProjectSupport.java	                        (rev 0)
+++ branches/work_Ed/org.maemo.esbox.project.python/src/org/maemo/esbox/internal/project/python/core/PythonDebianProjectSupport.java	2009-02-01 02:02:28 UTC (rev 1183)
@@ -0,0 +1,58 @@
+/*******************************************************************************
+ * Copyright (c) 2009 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:
+ *    Ed Swartz (Nokia) - initial API and implementation
+ *******************************************************************************/
+
+package org.maemo.esbox.internal.project.python.core;
+
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.runtime.IPath;
+import org.eclipse.swt.widgets.Composite;
+import org.maemo.mica.common.core.IValidatingDialogPage;
+import org.maemo.mica.common.project.core.ProjectConfigHandler;
+import org.maemo.mica.linux.packages.core.adapters.IDebianProjectConvertImportSupport;
+import org.maemo.mica.python.project.core.MicaPythonProjectType;
+import org.maemo.mica.python.project.ui.wizards.PythonProjectImportConfigurationComposite;
+
+/**
+ * @author eswartz
+ *
+ */
+public class PythonDebianProjectSupport implements IDebianProjectConvertImportSupport {
+
+	/**
+	 * @param micaPythonProjectType 
+	 * @param adaptableObject
+	 */
+	public PythonDebianProjectSupport(MicaPythonProjectType micaPythonProjectType) {
+	}
+
+	/* (non-Javadoc)
+	 * @see org.maemo.mica.linux.packages.core.adapters.IDebianProjectSupport#createProjectImportConfigurationComposite(org.eclipse.swt.widgets.Composite, org.eclipse.jface.dialogs.IDialogPage, org.eclipse.core.resources.IProject, org.eclipse.core.runtime.IPath, org.maemo.mica.common.project.core.ProjectConfigHandler)
+	 */
+	public Composite createDebianProjectImportConfigurationComposite(Composite parent,
+			int style, IValidatingDialogPage dialogPage, IProject project,
+			IPath projectLocation, ProjectConfigHandler configHandler, String[] debianRules) {
+
+		PythonDebianProjectImportConfigurationComposite configComposite =
+			new PythonDebianProjectImportConfigurationComposite(
+					parent,
+					dialogPage,
+					project,
+					projectLocation,
+					configHandler,
+					debianRules
+					);
+		
+		configComposite.init();
+		
+		return configComposite;
+	}
+
+}

Added: branches/work_Ed/org.maemo.esbox.project.python/src/org/maemo/esbox/internal/project/python/core/PythonProjectDebianSupportAdapterFactory.java
===================================================================
--- branches/work_Ed/org.maemo.esbox.project.python/src/org/maemo/esbox/internal/project/python/core/PythonProjectDebianSupportAdapterFactory.java	                        (rev 0)
+++ branches/work_Ed/org.maemo.esbox.project.python/src/org/maemo/esbox/internal/project/python/core/PythonProjectDebianSupportAdapterFactory.java	2009-02-01 02:02:28 UTC (rev 1183)
@@ -0,0 +1,44 @@
+/*******************************************************************************
+ * Copyright (c) 2009 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:
+ *    Ed Swartz (Nokia) - initial API and implementation
+ *******************************************************************************/
+
+package org.maemo.esbox.internal.project.python.core;
+
+import org.eclipse.core.runtime.IAdapterFactory;
+import org.maemo.mica.linux.packages.core.adapters.IDebianProjectConvertImportSupport;
+import org.maemo.mica.python.project.core.MicaPythonProjectType;
+
+/**
+ * This factory proclaims Debian support for a project type.
+ * @author eswartz
+ *
+ */
+public class PythonProjectDebianSupportAdapterFactory implements IAdapterFactory {
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.core.runtime.IAdapterFactory#getAdapter(java.lang.Object, java.lang.Class)
+	 */
+	public Object getAdapter(Object adaptableObject, Class adapterType) {
+		if (adaptableObject instanceof MicaPythonProjectType) {
+			if (adapterType.equals(IDebianProjectConvertImportSupport.class)) {
+				return new PythonDebianProjectSupport((MicaPythonProjectType) adaptableObject);
+			}
+		}
+		return null;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.core.runtime.IAdapterFactory#getAdapterList()
+	 */
+	public Class[] getAdapterList() {
+		return new Class[] { IDebianProjectConvertImportSupport.class };
+	}
+
+}

Modified: branches/work_Ed/org.maemo.esbox.scratchbox-feature/feature.xml
===================================================================
--- branches/work_Ed/org.maemo.esbox.scratchbox-feature/feature.xml	2009-01-30 23:27:49 UTC (rev 1182)
+++ branches/work_Ed/org.maemo.esbox.scratchbox-feature/feature.xml	2009-02-01 02:02:28 UTC (rev 1183)
@@ -1,73 +1,80 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<feature
-      id="org.maemo.esbox.scratchbox"
-      label="ESbox Scratchbox Support Feature"
-      version="2.0.0.qualifier"
-      provider-name="INdT / Nokia">
-
-   <description>
+<?xml version="1.0" encoding="UTF-8"?>
+<feature
+      id="org.maemo.esbox.scratchbox"
+      label="ESbox Scratchbox Support Feature"
+      version="2.0.0.qualifier"
+      provider-name="INdT / Nokia">
+
+   <description>
       This feature provides support for maemo SDKs using scratchbox.
 Installations of scratchbox 1 and scratchbox 2 are supported.
 
 This provides project templates for Maemo C/C++ or Python projects
-as well, though it does not require those languages&apos; features to be installed.
-   </description>
-
-   <copyright>
+as well, though it does not require those languages&apos; features to be installed.
+   </description>
+
+   <copyright>
       Copyright (c) 2007-2008 INdT, (c) 2007-2008 Nokia. All rights
-reserved.
-   </copyright>
-
-   <license url="http://www.eclipse.org/legal/epl-v10.html">
-      For legal terms, see the Eclipse Public License.
-   </license>
-
-   <url>
-      <update label="Update Site for ESbox project" url="http://esbox.garage.maemo.org/update"/>
-   </url>
-
-   <requires>
-      <import plugin="org.eclipse.core.runtime"/>
-      <import plugin="org.maemo.mica.common.core" version="2.0.0" match="greaterOrEqual"/>
-      <import plugin="org.maemo.mica.maemosdk.core" version="2.0.0" match="greaterOrEqual"/>
-      <import plugin="org.maemo.mica.common.analysis" version="2.0.0" match="greaterOrEqual"/>
-      <import plugin="org.eclipse.core.expressions" version="3.4.0" match="greaterOrEqual"/>
-      <import plugin="org.maemo.mica.linux.packages.core" version="2.0.0" match="greaterOrEqual"/>
-      <import plugin="org.maemo.mica.common.project.core" version="2.0.0" match="greaterOrEqual"/>
-      <import plugin="org.maemo.mica.common.launch" version="2.0.0" match="greaterOrEqual"/>
-      <import plugin="org.maemo.mica.common.ui" version="2.0.0" match="greaterOrEqual"/>
-      <import plugin="org.eclipse.ui.ide" version="3.4.0" match="greaterOrEqual"/>
-      <import plugin="org.maemo.mica.protocol.launch"/>
-      <import plugin="org.maemo.mica.protocol.sbrsh"/>
-      <import plugin="org.maemo.mica.protocol.ssh"/>
-   </requires>
-
-   <plugin
-         id="org.maemo.esbox.scratchbox.sb1"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="org.maemo.esbox.scratchbox.sb2"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="org.maemo.esbox.scratchbox.core"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="org.maemo.esbox.scratchbox.ui"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-</feature>
+reserved.
+   </copyright>
+
+   <license url="http://www.eclipse.org/legal/epl-v10.html">
+      For legal terms, see the Eclipse Public License.
+   </license>
+
+   <url>
+      <update label="Update Site for ESbox project" url="http://esbox.garage.maemo.org/update"/>
+   </url>
+
+   <requires>
+      <import plugin="org.eclipse.core.runtime"/>
+      <import plugin="org.maemo.mica.common.core" version="2.0.0" match="greaterOrEqual"/>
+      <import plugin="org.maemo.mica.maemosdk.core" version="2.0.0" match="greaterOrEqual"/>
+      <import plugin="org.maemo.mica.common.analysis" version="2.0.0" match="greaterOrEqual"/>
+      <import plugin="org.eclipse.core.expressions" version="3.4.0" match="greaterOrEqual"/>
+      <import plugin="org.maemo.mica.linux.packages.core" version="2.0.0" match="greaterOrEqual"/>
+      <import plugin="org.maemo.mica.common.project.core" version="2.0.0" match="greaterOrEqual"/>
+      <import plugin="org.maemo.mica.common.launch" version="2.0.0" match="greaterOrEqual"/>
+      <import plugin="org.maemo.mica.common.ui" version="2.0.0" match="greaterOrEqual"/>
+      <import plugin="org.eclipse.ui.ide" version="3.4.0" match="greaterOrEqual"/>
+      <import plugin="org.maemo.mica.protocol.launch"/>
+      <import plugin="org.maemo.mica.protocol.sbrsh"/>
+      <import plugin="org.maemo.mica.protocol.ssh"/>
+   </requires>
+
+   <plugin
+         id="org.maemo.esbox.scratchbox.sb1"
+         download-size="0"
+         install-size="0"
+         version="0.0.0"
+         unpack="false"/>
+
+   <plugin
+         id="org.maemo.esbox.scratchbox.sb2"
+         download-size="0"
+         install-size="0"
+         version="0.0.0"
+         unpack="false"/>
+
+   <plugin
+         id="org.maemo.esbox.scratchbox.core"
+         download-size="0"
+         install-size="0"
+         version="0.0.0"
+         unpack="false"/>
+
+   <plugin
+         id="org.maemo.esbox.scratchbox.ui"
+         download-size="0"
+         install-size="0"
+         version="0.0.0"
+         unpack="false"/>
+
+   <plugin
+         id="org.maemo.esbox.analysis"
+         download-size="0"
+         install-size="0"
+         version="0.0.0"
+         unpack="false"/>
+
+</feature>

Modified: branches/work_Ed/org.maemo.esbox.scratchbox.core/META-INF/MANIFEST.MF
===================================================================
--- branches/work_Ed/org.maemo.esbox.scratchbox.core/META-INF/MANIFEST.MF	2009-01-30 23:27:49 UTC (rev 1182)
+++ branches/work_Ed/org.maemo.esbox.scratchbox.core/META-INF/MANIFEST.MF	2009-02-01 02:02:28 UTC (rev 1183)
@@ -11,7 +11,8 @@
  org.eclipse.core.expressions;bundle-version="3.4.0",
  org.maemo.mica.linux.packages.core;bundle-version="2.0.0",
  org.maemo.mica.common.launch;bundle-version="2.0.0",
- org.maemo.mica.protocol.sbrsh;bundle-version="2.0.0"
+ org.maemo.mica.protocol.sbrsh;bundle-version="2.0.0",
+ org.maemo.esbox.maemosdk.core;bundle-version="2.0.0"
 Bundle-RequiredExecutionEnvironment: J2SE-1.5
 Bundle-ActivationPolicy: lazy
 Export-Package: org.maemo.esbox.internal.api.scratchbox.core,

Modified: branches/work_Ed/org.maemo.esbox.scratchbox.core/plugin.xml
===================================================================
--- branches/work_Ed/org.maemo.esbox.scratchbox.core/plugin.xml	2009-01-30 23:27:49 UTC (rev 1182)
+++ branches/work_Ed/org.maemo.esbox.scratchbox.core/plugin.xml	2009-02-01 02:02:28 UTC (rev 1183)
@@ -23,7 +23,7 @@
   </extension>
     <extension
           point="org.eclipse.core.runtime.adapters">
-          <!-- specific to sbox -->
+      <!-- specific to sbox -->
       <factory
             adaptableType="org.maemo.esbox.internal.api.scratchbox.core.sdk.AbstractScratchboxSDKTarget"
             class="org.maemo.esbox.internal.scratchbox.adapters.MaemoGdbServerSupportAdapterFactory">
@@ -31,14 +31,37 @@
                type="org.maemo.mica.common.launch.adapters.IGdbServerSupportAdapter">
          </adapter>
       </factory>
-      	<!-- specific to sbox -->
-       <factory
+      <!-- specific to sbox -->
+      <factory
             adaptableType="org.maemo.esbox.internal.api.scratchbox.core.sdk.AbstractScratchboxSDKTarget"
             class="org.maemo.esbox.internal.scratchbox.adapters.MaemoSbrshAutoconfigurationAdapterFactory">
          <adapter
                type="org.maemo.mica.internal.api.protocol.sbrsh.adapters.ISbrshAutoconfigurationAdapter">
          </adapter>
       </factory>
+      <!-- specific to sbox -->
+      <factory
+            adaptableType="org.maemo.esbox.internal.api.scratchbox.core.sdk.AbstractScratchboxSDKTarget"
+            class="org.maemo.esbox.internal.scratchbox.adapters.ESboxMaemoTargetEnvironmentModifierAdapterFactory">
+         <adapter
+               type="org.maemo.mica.common.launch.adapters.ITargetEnvironmentModifierAdapter">
+         </adapter>
+      </factory>
+      <!-- specific to sbox -->
+      <factory
+            adaptableType="org.maemo.esbox.internal.api.scratchbox.core.sdk.AbstractScratchboxSDKTarget"
+            class="org.maemo.esbox.internal.scratchbox.adapters.ESboxMaemoEmulatorExecutionEnvironmentProviderAdapterFactory">
+         <adapter
+               type="org.maemo.mica.common.core.execEnv.IExecutionEnvironmentProviderAdapter">
+         </adapter>
+      </factory>
     </extension>
+    
+     <extension
+        point="org.maemo.mica.common.project.core.oldStyleProjectPropertiesProvider">
+     <projectPropertiesProvider
+           class="org.maemo.esbox.internal.api.scratchbox.core.OldStyleWorkspaceProjectPropertiesProvider">
+     </projectPropertiesProvider>
+  </extension>
   
 </plugin>

Copied: branches/work_Ed/org.maemo.esbox.scratchbox.core/src/org/maemo/esbox/internal/api/scratchbox/core/OldStyleProjectProperties.java (from rev 1182, trunk/org.maemo.esbox.scratchbox.core/src/org/maemo/esbox/internal/api/scratchbox/core/OldStyleProjectProperties.java)
===================================================================
--- branches/work_Ed/org.maemo.esbox.scratchbox.core/src/org/maemo/esbox/internal/api/scratchbox/core/OldStyleProjectProperties.java	                        (rev 0)
+++ branches/work_Ed/org.maemo.esbox.scratchbox.core/src/org/maemo/esbox/internal/api/scratchbox/core/OldStyleProjectProperties.java	2009-02-01 02:02:28 UTC (rev 1183)
@@ -0,0 +1,196 @@
+/*******************************************************************************
+ * Copyright (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:
+ *    Ed Swartz (Nokia) - initial API and implementation
+ *******************************************************************************/
+
+package org.maemo.esbox.internal.api.scratchbox.core;
+
+import java.text.MessageFormat;
+import java.util.List;
+
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.QualifiedName;
+import org.maemo.esbox.internal.scratchbox.core.Activator;
+import org.maemo.esbox.scratchbox.core.scratchbox.ScratchboxException;
+import org.maemo.esbox.scratchbox.core.sdk.IScratchboxSDK;
+import org.maemo.esbox.scratchbox.core.sdk.ScratchboxSDKFacade;
+import org.maemo.mica.common.core.MicaException;
+import org.maemo.mica.common.core.execEnv.ExecutionEnvironmentFactory;
+import org.maemo.mica.common.core.execEnv.IExecutionEnvironment;
+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.IProjectProperties;
+import org.maemo.mica.maemosdk.core.MaemoExecutionEnvironmentIds;
+
+/**
+ * This class retrieves the old-style C/C++ or Python project properties stored
+ * in workspace metadata.
+ * 
+ * @author eswartz
+ * 
+ */
+public class OldStyleProjectProperties implements IProjectProperties {
+	private static final String TARGET_NAME_ID = "org.indt.esbox.project.targetName";
+
+	private static final String SCRATCHBOX_VERSION_ID = "org.indt.esbox.project.scratchboxVersion";
+
+	private static final String EXECUTION_ENVIRONMENT_ID = "org.indt.esbox.project.execEnv";
+
+	static final QualifiedName targetNameProperty = new QualifiedName(
+			TARGET_NAME_ID, "Scratchbox Target");
+
+	static final QualifiedName scratchboxVersionProperty = new QualifiedName(
+			SCRATCHBOX_VERSION_ID, "Scratchbox Version");
+
+	static final QualifiedName executionEnvironmentProperty = new QualifiedName(
+			EXECUTION_ENVIRONMENT_ID, "Execution Environment");
+
+	private IProject project;
+
+	public OldStyleProjectProperties(IProject project) {
+		this.project = project;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.maemo.esbox.common.core.IPropertyAccess#read(java.lang.String)
+	 */
+	private String readProperty(QualifiedName property) {
+		try {
+			return project.getPersistentProperty(property);
+		} catch (CoreException e) {
+			Activator.getErrorLogger().logError(
+					"Could not read project property", e);
+			return null;
+		}
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see
+	 * org.maemo.esbox.common.project.core.IProjectProperties#getExecutionEnvironment()
+	 */
+	public IExecutionEnvironment getExecutionEnvironment() {
+		IExecutionEnvironment execEnv = null;
+		String execEnvId = readProperty(executionEnvironmentProperty);
+		if (execEnvId == null) {
+			execEnvId = MaemoExecutionEnvironmentIds.MAEMO;
+		}
+		execEnv = ExecutionEnvironmentFactory.getInstance()
+				.findExecutionEnvironment(execEnvId);
+		return execEnv;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see
+	 * org.maemo.esbox.common.project.core.IProjectProperties#getExecutionEnvironmentId
+	 * ()
+	 */
+	public String getExecutionEnvironmentId() {
+		return readProperty(executionEnvironmentProperty);
+	}
+
+	/**
+	 * Get the SDK target (SDK + target name) for the project's configured SDK
+	 * 
+	 * @return SDK target, never <code>null</code>
+	 * @throws MicaException
+	 *             if no target known
+	 */
+	public ISDKTarget getSDKTarget() throws MicaException {
+		if (!project.isOpen())
+			throw new MicaException(MessageFormat.format(
+					"Project ''{0}'' is not open", project.getName()));
+
+		ISDK sdk = getSDK();
+		String targetName = getTargetName();
+
+		ISDKTarget target = sdk.findSDKTarget(targetName);
+		if (target == null) {
+			throw new MicaException(MessageFormat.format(
+					"Project ''{0}'' references an unavailable target ''{1}''",
+					project.getName(), targetName));
+		}
+
+		return target;
+	}
+
+	/**
+	 * Get the SDK for the project
+	 * 
+	 * @return SDK, never <code>null</code>
+	 * @throws MicaException
+	 *             if no SDK known
+	 */
+	public ISDK getSDK() throws MicaException {
+		ISDK sdk = null;
+
+		String version = readProperty(scratchboxVersionProperty);
+		if (version == null) {
+			// old projects
+			version = "1";
+		}
+
+		SDKFactory.getInstance().waitForRefreshComplete(null);
+		
+		List<IScratchboxSDK> sboxSDKs = ScratchboxSDKFacade.getInstance()
+				.getAllScratchboxSDKs();
+		for (IScratchboxSDK sboxSDK : sboxSDKs) {
+			if (version.equals(Integer.toString(sboxSDK.getSboxVersion()))) {
+				sdk = sboxSDK;
+				break;
+			}
+		}
+
+		if (sdk == null) {
+			throw new MicaException(
+					MessageFormat
+							.format(
+									"Project ''{0}'' uses an unsupported scratchbox version {1}",
+									project.getName(), version));
+		}
+
+		return sdk;
+	}
+
+	public synchronized String getTargetName() {
+		return readProperty(targetNameProperty);
+	}
+
+	public synchronized String getSDKName() {
+		String sboxVersion = readProperty(scratchboxVersionProperty);
+	
+		if (sboxVersion == null)
+			return null;
+		
+		List<IScratchboxSDK> sboxSDKs;
+		try {
+			sboxSDKs = ScratchboxSDKFacade.getInstance().getAllScratchboxSDKs();
+		} catch (ScratchboxException e) {
+			return null;
+		}
+		for (IScratchboxSDK sboxSDK : sboxSDKs) {
+			if (sboxVersion.equals(Integer.toString(sboxSDK.getSboxVersion()))) {
+				return sboxSDK.getName();
+			}
+		}
+		return null;
+	}
+
+	// public synchronized String getScratchboxVersion(IProject project) {
+	// return readProperty(scratchboxVersionProperty);
+	// }
+
+}

Copied: branches/work_Ed/org.maemo.esbox.scratchbox.core/src/org/maemo/esbox/internal/api/scratchbox/core/OldStyleWorkspaceProjectPropertiesProvider.java (from rev 1182, trunk/org.maemo.esbox.scratchbox.core/src/org/maemo/esbox/internal/api/scratchbox/core/OldStyleWorkspaceProjectPropertiesProvider.java)
===================================================================
--- branches/work_Ed/org.maemo.esbox.scratchbox.core/src/org/maemo/esbox/internal/api/scratchbox/core/OldStyleWorkspaceProjectPropertiesProvider.java	                        (rev 0)
+++ branches/work_Ed/org.maemo.esbox.scratchbox.core/src/org/maemo/esbox/internal/api/scratchbox/core/OldStyleWorkspaceProjectPropertiesProvider.java	2009-02-01 02:02:28 UTC (rev 1183)
@@ -0,0 +1,64 @@
+/*******************************************************************************
+ * Copyright (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:
+ *    Ed Swartz (Nokia) - initial API and implementation
+ *******************************************************************************/
+
+package org.maemo.esbox.internal.api.scratchbox.core;
+
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.resources.IProjectNature;
+import org.eclipse.core.runtime.CoreException;
+import org.maemo.esbox.internal.scratchbox.core.Activator;
+import org.maemo.mica.common.project.core.IOldStyleProjectPropertiesProvider;
+import org.maemo.mica.common.project.core.IProjectProperties;
+
+/**
+ * Implementation of oldStyleProjectPropertiesProvider to allow converting old
+ * projects to the current format.
+ * 
+ * @author eswartz
+ * 
+ */
+public class OldStyleWorkspaceProjectPropertiesProvider implements
+		IOldStyleProjectPropertiesProvider {
+
+	// NOTE: these nature IDs are stored here to avoid forcing this feature
+	// to depend on C/C++ or Python.
+	private static final String ESBOX_NATURE_ID = "org.indt.esbox.core.ESboxNature";
+	private static final String ESBOX_PYTHON_NATURE_ID = "org.indt.esbox.core.esboxPythonNature";
+
+	private boolean isNatureInProject(IProject _project, String id) {
+		if (_project != null && _project.isOpen()) {
+			try {
+				IProjectNature nature = _project.getNature(id);
+				if (nature != null) {
+					return true;
+				}
+			} catch (CoreException e) {
+				Activator.getErrorLogger().logError(
+						"Cannot detect project nature", e);
+			}
+		}
+		return false;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @seeorg.maemo.esbox.project.core.IOldStyleProjectPropertiesProvider#
+	 * createProjectProperties(org.eclipse.core.resources.IProject)
+	 */
+	public IProjectProperties createProjectProperties(IProject project) {
+		if (isNatureInProject(project, ESBOX_NATURE_ID)
+				|| isNatureInProject(project, ESBOX_PYTHON_NATURE_ID))
+			return new OldStyleProjectProperties(project);
+		return null;
+	}
+
+}

Modified: branches/work_Ed/org.maemo.esbox.scratchbox.core/src/org/maemo/esbox/internal/api/scratchbox/core/ScratchboxPackageManagerProvider.java
===================================================================
--- branches/work_Ed/org.maemo.esbox.scratchbox.core/src/org/maemo/esbox/internal/api/scratchbox/core/ScratchboxPackageManagerProvider.java	2009-01-30 23:27:49 UTC (rev 1182)
+++ branches/work_Ed/org.maemo.esbox.scratchbox.core/src/org/maemo/esbox/internal/api/scratchbox/core/ScratchboxPackageManagerProvider.java	2009-02-01 02:02:28 UTC (rev 1183)
@@ -43,6 +43,7 @@
 
 		IPackageManager manager = new AptPackageManager(sdkTarget, 
 				new ScratchboxAptPackageManagerBridge((IScratchboxSDKTarget) sdkTarget));
+		manager.initialize();
 		return manager;
 	}
 

Copied: branches/work_Ed/org.maemo.esbox.scratchbox.core/src/org/maemo/esbox/internal/api/scratchbox/core/execEnv (from rev 1182, trunk/org.maemo.esbox.scratchbox.core/src/org/maemo/esbox/internal/api/scratchbox/core/execEnv)

Deleted: branches/work_Ed/org.maemo.esbox.scratchbox.core/src/org/maemo/esbox/internal/api/scratchbox/core/execEnv/GTKExecutionEnvironmentHandler.java
===================================================================
--- trunk/org.maemo.esbox.scratchbox.core/src/org/maemo/esbox/internal/api/scratchbox/core/execEnv/GTKExecutionEnvironmentHandler.java	2009-01-30 23:27:49 UTC (rev 1182)
+++ branches/work_Ed/org.maemo.esbox.scratchbox.core/src/org/maemo/esbox/internal/api/scratchbox/core/execEnv/GTKExecutionEnvironmentHandler.java	2009-02-01 02:02:28 UTC (rev 1183)
@@ -1,21 +0,0 @@
-/*******************************************************************************
- * Copyright (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:
- *    Ed Swartz (Nokia) - initial API and implementation
- *******************************************************************************/
-
-package org.maemo.esbox.internal.api.scratchbox.core.execEnv;
-
-/**
- * Environment for GTK applications in X11
- * 
- * @author eswartz
- * 
- */
-public class GTKExecutionEnvironmentHandler extends X11ExecutionEnvironmentHandler {
-}

Copied: branches/work_Ed/org.maemo.esbox.scratchbox.core/src/org/maemo/esbox/internal/api/scratchbox/core/execEnv/GTKExecutionEnvironmentHandler.java (from rev 1182, trunk/org.maemo.esbox.scratchbox.core/src/org/maemo/esbox/internal/api/scratchbox/core/execEnv/GTKExecutionEnvironmentHandler.java)
===================================================================
--- branches/work_Ed/org.maemo.esbox.scratchbox.core/src/org/maemo/esbox/internal/api/scratchbox/core/execEnv/GTKExecutionEnvironmentHandler.java	                        (rev 0)
+++ branches/work_Ed/org.maemo.esbox.scratchbox.core/src/org/maemo/esbox/internal/api/scratchbox/core/execEnv/GTKExecutionEnvironmentHandler.java	2009-02-01 02:02:28 UTC (rev 1183)
@@ -0,0 +1,21 @@
+/*******************************************************************************
+ * Copyright (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:
+ *    Ed Swartz (Nokia) - initial API and implementation
+ *******************************************************************************/
+
+package org.maemo.esbox.internal.api.scratchbox.core.execEnv;
+
+/**
+ * Environment for GTK applications in X11
+ * 
+ * @author eswartz
+ * 
+ */
+public class GTKExecutionEnvironmentHandler extends X11ExecutionEnvironmentHandler {
+}

Deleted: branches/work_Ed/org.maemo.esbox.scratchbox.core/src/org/maemo/esbox/internal/api/scratchbox/core/execEnv/MaemoExecutionEnvironmentHandler.java
===================================================================
--- trunk/org.maemo.esbox.scratchbox.core/src/org/maemo/esbox/internal/api/scratchbox/core/execEnv/MaemoExecutionEnvironmentHandler.java	2009-01-30 23:27:49 UTC (rev 1182)
+++ branches/work_Ed/org.maemo.esbox.scratchbox.core/src/org/maemo/esbox/internal/api/scratchbox/core/execEnv/MaemoExecutionEnvironmentHandler.java	2009-02-01 02:02:28 UTC (rev 1183)
@@ -1,53 +0,0 @@
-/*******************************************************************************
- * Copyright (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:
- *    Ed Swartz (Nokia) - initial API and implementation
- *******************************************************************************/
-
-package org.maemo.esbox.internal.api.scratchbox.core.execEnv;
-
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.swt.widgets.Shell;
-import org.maemo.esbox.internal.api.maemosdk.core.tools.MaemoScriptLauncher;
-import org.maemo.esbox.internal.scratchbox.core.Activator;
-import org.maemo.mica.common.core.MicaException;
-import org.maemo.mica.common.core.execEnv.IExecutionEnvironmentHandler;
-import org.maemo.mica.common.core.sdk.ISDKTarget;
-import org.maemo.mica.common.project.core.ProjectManager;
-
-/**
- * Environment for Maemo applications
- * 
- * @author eswartz
- * 
- */
-public class MaemoExecutionEnvironmentHandler implements IExecutionEnvironmentHandler {
-
-	public void establishEnvironment(Shell shell, IProject project)
-			throws CoreException {
-		// see if Maemo is running
-		ISDKTarget sdkTarget;
-		try {
-			sdkTarget = ProjectManager.getInstance().getSDKTarget(project);
-			if (!MaemoScriptLauncher.getInstance().isMaemoStarted(sdkTarget)) {
-				if (MessageDialog
-						.openQuestion(shell, "Launch Maemo?",
-								"Maemo is not running.  Would you like to launch it now?")) {
-					MaemoScriptLauncher.getInstance().startMaemo(sdkTarget);
-				}
-			}
-		} catch (MicaException e) {
-			Activator.getErrorLogger().logAndShowError(
-					"Error querying Maemo status", e);
-			// don't fail the launch
-		}
-	}
-
-}

Copied: branches/work_Ed/org.maemo.esbox.scratchbox.core/src/org/maemo/esbox/internal/api/scratchbox/core/execEnv/MaemoExecutionEnvironmentHandler.java (from rev 1182, trunk/org.maemo.esbox.scratchbox.core/src/org/maemo/esbox/internal/api/scratchbox/core/execEnv/MaemoExecutionEnvironmentHandler.java)
===================================================================
--- branches/work_Ed/org.maemo.esbox.scratchbox.core/src/org/maemo/esbox/internal/api/scratchbox/core/execEnv/MaemoExecutionEnvironmentHandler.java	                        (rev 0)
+++ branches/work_Ed/org.maemo.esbox.scratchbox.core/src/org/maemo/esbox/internal/api/scratchbox/core/execEnv/MaemoExecutionEnvironmentHandler.java	2009-02-01 02:02:28 UTC (rev 1183)
@@ -0,0 +1,53 @@
+/*******************************************************************************
+ * Copyright (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:
+ *    Ed Swartz (Nokia) - initial API and implementation
+ *******************************************************************************/
+
+package org.maemo.esbox.internal.api.scratchbox.core.execEnv;
+
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.jface.dialogs.MessageDialog;
+import org.eclipse.swt.widgets.Shell;
+import org.maemo.esbox.internal.api.maemosdk.core.tools.MaemoScriptLauncher;
+import org.maemo.esbox.internal.scratchbox.core.Activator;
+import org.maemo.mica.common.core.MicaException;
+import org.maemo.mica.common.core.execEnv.IExecutionEnvironmentHandler;
+import org.maemo.mica.common.core.sdk.ISDKTarget;
+import org.maemo.mica.common.project.core.ProjectManager;
+
+/**
+ * Environment for Maemo applications
+ * 
+ * @author eswartz
+ * 
+ */
+public class MaemoExecutionEnvironmentHandler implements IExecutionEnvironmentHandler {
+
+	public void establishEnvironment(Shell shell, IProject project)
+			throws CoreException {
+		// see if Maemo is running
+		ISDKTarget sdkTarget;
+		try {
+			sdkTarget = ProjectManager.getInstance().getSDKTarget(project);
+			if (!MaemoScriptLauncher.getInstance().isMaemoStarted(sdkTarget)) {
+				if (MessageDialog
+						.openQuestion(shell, "Launch Maemo?",
+								"Maemo is not running.  Would you like to launch it now?")) {
+					MaemoScriptLauncher.getInstance().startMaemo(sdkTarget);
+				}
+			}
+		} catch (MicaException e) {
+			Activator.getErrorLogger().logAndShowError(
+					"Error querying Maemo status", e);
+			// don't fail the launch
+		}
+	}
+
+}

Deleted: branches/work_Ed/org.maemo.esbox.scratchbox.core/src/org/maemo/esbox/internal/api/scratchbox/core/execEnv/X11ExecutionEnvironmentHandler.java
===================================================================
--- trunk/org.maemo.esbox.scratchbox.core/src/org/maemo/esbox/internal/api/scratchbox/core/execEnv/X11ExecutionEnvironmentHandler.java	2009-01-30 23:27:49 UTC (rev 1182)
+++ branches/work_Ed/org.maemo.esbox.scratchbox.core/src/org/maemo/esbox/internal/api/scratchbox/core/execEnv/X11ExecutionEnvironmentHandler.java	2009-02-01 02:02:28 UTC (rev 1183)
@@ -1,65 +0,0 @@
-/*******************************************************************************
- * Copyright (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:
- *    Ed Swartz (Nokia) - initial API and implementation
- *******************************************************************************/
-
-package org.maemo.esbox.internal.api.scratchbox.core.execEnv;
-
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.swt.widgets.Shell;
-import org.maemo.esbox.internal.api.maemosdk.core.tools.MaemoScriptLauncher;
-import org.maemo.esbox.internal.scratchbox.core.Activator;
-import org.maemo.mica.common.core.MicaException;
-import org.maemo.mica.common.core.execEnv.IExecutionEnvironmentHandler;
-import org.maemo.mica.common.core.sdk.ISDKTarget;
-import org.maemo.mica.common.project.core.ProjectManager;
-
-/**
- * Environment for X11-based programs
- * 
- * @author eswartz
- * 
- */
-public class X11ExecutionEnvironmentHandler implements IExecutionEnvironmentHandler {
-
-	public void establishEnvironment(Shell shell, IProject project)
-			throws CoreException {
-		ISDKTarget sdkTarget;
-		try {
-			sdkTarget = ProjectManager.getInstance().getSDKTarget(project);
-		} catch (MicaException e1) {
-			throw new CoreException(Activator.createErrorStatus(
-					"Not an ESbox project: " + project, e1));
-		}
-
-		boolean serverRunning;
-		try { 
-			serverRunning = MaemoScriptLauncher.getInstance().isXServerStarted(sdkTarget);
-			
-			try {
-				if (!serverRunning) {
-
-					if (MessageDialog
-							.openQuestion(shell, "Launch X Server?",
-									"The X server is not running.  Would you like to launch it now?")) {
-						MaemoScriptLauncher.getInstance().startX();
-					}
-				}
-			} catch (MicaException e) {
-				throw new CoreException(Activator.createErrorStatus("Failed to launch X", e));
-			}
-		} catch (MicaException e) {
-			Activator.getErrorLogger().logAndShowError(
-					"Error querying X status", e);
-			// don't fail the launch
-		}
-	}
-}

Copied: branches/work_Ed/org.maemo.esbox.scratchbox.core/src/org/maemo/esbox/internal/api/scratchbox/core/execEnv/X11ExecutionEnvironmentHandler.java (from rev 1182, trunk/org.maemo.esbox.scratchbox.core/src/org/maemo/esbox/internal/api/scratchbox/core/execEnv/X11ExecutionEnvironmentHandler.java)
===================================================================
--- branches/work_Ed/org.maemo.esbox.scratchbox.core/src/org/maemo/esbox/internal/api/scratchbox/core/execEnv/X11ExecutionEnvironmentHandler.java	                        (rev 0)
+++ branches/work_Ed/org.maemo.esbox.scratchbox.core/src/org/maemo/esbox/internal/api/scratchbox/core/execEnv/X11ExecutionEnvironmentHandler.java	2009-02-01 02:02:28 UTC (rev 1183)
@@ -0,0 +1,65 @@
+/*******************************************************************************
+ * Copyright (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:
+ *    Ed Swartz (Nokia) - initial API and implementation
+ *******************************************************************************/
+
+package org.maemo.esbox.internal.api.scratchbox.core.execEnv;
+
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.jface.dialogs.MessageDialog;
+import org.eclipse.swt.widgets.Shell;
+import org.maemo.esbox.internal.api.maemosdk.core.tools.MaemoScriptLauncher;
+import org.maemo.esbox.internal.scratchbox.core.Activator;
+import org.maemo.mica.common.core.MicaException;
+import org.maemo.mica.common.core.execEnv.IExecutionEnvironmentHandler;
+import org.maemo.mica.common.core.sdk.ISDKTarget;
+import org.maemo.mica.common.project.core.ProjectManager;
+
+/**
+ * Environment for X11-based programs
+ * 
+ * @author eswartz
+ * 
+ */
+public class X11ExecutionEnvironmentHandler implements IExecutionEnvironmentHandler {
+
+	public void establishEnvironment(Shell shell, IProject project)
+			throws CoreException {
+		ISDKTarget sdkTarget;
+		try {
+			sdkTarget = ProjectManager.getInstance().getSDKTarget(project);
+		} catch (MicaException e1) {
+			throw new CoreException(Activator.createErrorStatus(
+					"Not an ESbox project: " + project, e1));
+		}
+
+		boolean serverRunning;
+		try { 
+			serverRunning = MaemoScriptLauncher.getInstance().isXServerStarted(sdkTarget);
+			
+			try {
+				if (!serverRunning) {
+
+					if (MessageDialog
+							.openQuestion(shell, "Launch X Server?",
+									"The X server is not running.  Would you like to launch it now?")) {
+						MaemoScriptLauncher.getInstance().startX();
+					}
+				}
+			} catch (MicaException e) {
+				throw new CoreException(Activator.createErrorStatus("Failed to launch X", e));
+			}
+		} catch (MicaException e) {
+			Activator.getErrorLogger().logAndShowError(
+					"Error querying X status", e);
+			// don't fail the launch
+		}
+	}
+}

Modified: branches/work_Ed/org.maemo.esbox.scratchbox.core/src/org/maemo/esbox/internal/api/scratchbox/core/sdk/CacheUtils.java
===================================================================
--- branches/work_Ed/org.maemo.esbox.scratchbox.core/src/org/maemo/esbox/internal/api/scratchbox/core/sdk/CacheUtils.java	2009-01-30 23:27:49 UTC (rev 1182)
+++ branches/work_Ed/org.maemo.esbox.scratchbox.core/src/org/maemo/esbox/internal/api/scratchbox/core/sdk/CacheUtils.java	2009-02-01 02:02:28 UTC (rev 1183)
@@ -10,29 +10,42 @@
  *******************************************************************************/
 package org.maemo.esbox.internal.api.scratchbox.core.sdk;
 
-import org.maemo.esbox.internal.scratchbox.core.PersistentCache;
+import org.maemo.mica.common.core.PersistentCache;
 import org.maemo.mica.common.core.machine.IMachine;
 
 /**
  * Singleton pattern. Use CacheUtils.getInstance() to access instance.
  * 
+ * @author eswartz
  * @author baranov
  * 
  */
 public class CacheUtils {
 
+	private static final CacheUtils INSTANCE = new CacheUtils();
+
+	/**
+	 * Default filename, under workspace metadata for this plugin's state, where
+	 * the cache is stored.
+	 */
+	static final String SCRATCHBOX_CACHE_FILE = "scratchbox_cache.dat";
+
+	/**
+	 * The environment variable which, if defined, overrides the file above. It
+	 * should be a full filesystem path.
+	 */
+	static final String SCRATCHBOX_CACHE_ENV = "SCRATCHBOX_CACHE";
+
 	// cache
 	private boolean useCaching;
 	private PersistentCache cache;
 
-	private static final CacheUtils INSTANCE = new CacheUtils();
-
 	/**
 	 * 
 	 */
 	protected CacheUtils() {
 		useCaching = true; // !GeneralUtils.isJUnitRunning();
-		cache = new PersistentCache();
+		cache = new PersistentCache(SCRATCHBOX_CACHE_FILE, SCRATCHBOX_CACHE_ENV);
 		cache.load();
 	}
 
@@ -40,6 +53,8 @@
 	 * @return instance
 	 */
 	public static synchronized CacheUtils getInstance() {
+		// split initialization like this to avoid debugging problems with recursive class init
+		INSTANCE.cache.ensureInitialized();
 		return INSTANCE;
 	}
 

Copied: branches/work_Ed/org.maemo.esbox.scratchbox.core/src/org/maemo/esbox/internal/scratchbox/adapters/ESboxMaemoEmulatorExecutionEnvironmentProviderAdapter.java (from rev 1182, trunk/org.maemo.esbox.scratchbox.core/src/org/maemo/esbox/internal/scratchbox/adapters/ESboxMaemoEmulatorExecutionEnvironmentProviderAdapter.java)
===================================================================
--- branches/work_Ed/org.maemo.esbox.scratchbox.core/src/org/maemo/esbox/internal/scratchbox/adapters/ESboxMaemoEmulatorExecutionEnvironmentProviderAdapter.java	                        (rev 0)
+++ branches/work_Ed/org.maemo.esbox.scratchbox.core/src/org/maemo/esbox/internal/scratchbox/adapters/ESboxMaemoEmulatorExecutionEnvironmentProviderAdapter.java	2009-02-01 02:02:28 UTC (rev 1183)
@@ -0,0 +1,53 @@
+/*******************************************************************************
+ * Copyright (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:
+ *    Ed Swartz (Nokia) - initial API and implementation
+ *******************************************************************************/
+
+package org.maemo.esbox.internal.scratchbox.adapters;
+
+import org.maemo.esbox.internal.api.scratchbox.core.execEnv.GTKExecutionEnvironmentHandler;
+import org.maemo.esbox.internal.api.scratchbox.core.execEnv.MaemoExecutionEnvironmentHandler;
+import org.maemo.esbox.internal.api.scratchbox.core.execEnv.X11ExecutionEnvironmentHandler;
+import org.maemo.mica.common.core.execEnv.IExecutionEnvironment;
+import org.maemo.mica.common.core.execEnv.IExecutionEnvironmentHandler;
+import org.maemo.mica.common.core.execEnv.IExecutionEnvironmentProviderAdapter;
+import org.maemo.mica.maemosdk.core.MaemoExecutionEnvironmentIds;
+
+/**
+ * This provides the execution environments supported inside a maemo emulator.
+ * @author eswartz
+ *
+ */
+public class ESboxMaemoEmulatorExecutionEnvironmentProviderAdapter implements IExecutionEnvironmentProviderAdapter {
+
+	public ESboxMaemoEmulatorExecutionEnvironmentProviderAdapter() {
+	}
+
+	/* (non-Javadoc)
+	 * @see org.maemo.mica.common.core.execEnv.IExecutionEnvironmentAdapter#getExecutionEnvironmentHandler(java.lang.String)
+	 */
+	public IExecutionEnvironmentHandler getExecutionEnvironmentHandler(
+			IExecutionEnvironment execEnv) {
+		if (execEnv == null) {
+			return null;
+		}
+		if (execEnv.getId().equals(MaemoExecutionEnvironmentIds.MAEMO)) {
+			return new MaemoExecutionEnvironmentHandler();
+		}
+		if (execEnv.getId().equals(MaemoExecutionEnvironmentIds.GTK)) {
+			return new GTKExecutionEnvironmentHandler();
+		}
+		if (execEnv.getId().equals(MaemoExecutionEnvironmentIds.X11)) {
+			return new X11ExecutionEnvironmentHandler();
+		}
+		return null;
+	}
+
+
+}

Copied: branches/work_Ed/org.maemo.esbox.scratchbox.core/src/org/maemo/esbox/internal/scratchbox/adapters/ESboxMaemoEmulatorExecutionEnvironmentProviderAdapterFactory.java (from rev 1182, trunk/org.maemo.esbox.scratchbox.core/src/org/maemo/esbox/internal/scratchbox/adapters/ESboxMaemoEmulatorExecutionEnvironmentProviderAdapterFactory.java)
===================================================================
--- branches/work_Ed/org.maemo.esbox.scratchbox.core/src/org/maemo/esbox/internal/scratchbox/adapters/ESboxMaemoEmulatorExecutionEnvironmentProviderAdapterFactory.java	                        (rev 0)
+++ branches/work_Ed/org.maemo.esbox.scratchbox.core/src/org/maemo/esbox/internal/scratchbox/adapters/ESboxMaemoEmulatorExecutionEnvironmentProviderAdapterFactory.java	2009-02-01 02:02:28 UTC (rev 1183)
@@ -0,0 +1,44 @@
+/*******************************************************************************
+ * Copyright (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:
+ *    Ed Swartz (Nokia) - initial API and implementation
+ *******************************************************************************/
+
+package org.maemo.esbox.internal.scratchbox.adapters;
+
+import org.eclipse.core.runtime.IAdapterFactory;
+import org.maemo.esbox.scratchbox.core.sdk.IScratchboxSDKTarget;
+import org.maemo.mica.common.core.execEnv.IExecutionEnvironmentProviderAdapter;
+
+/**
+ * Generate instances of {@link IExecutionEnvironmentProviderAdapter} for SDK targets
+ * that live inside maemo emulator contexts.
+ * @author eswartz
+ *
+ */
+ at SuppressWarnings("unchecked")
+public class ESboxMaemoEmulatorExecutionEnvironmentProviderAdapterFactory implements IAdapterFactory {
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.core.runtime.IAdapterFactory#getAdapter(java.lang.Object, java.lang.Class)
+	 */
+	public Object getAdapter(Object adaptableObject, Class adapterType) {
+		if (adaptableObject instanceof IScratchboxSDKTarget) {
+			return new ESboxMaemoEmulatorExecutionEnvironmentProviderAdapter();
+		}
+		return null;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.core.runtime.IAdapterFactory#getAdapterList()
+	 */
+	public Class[] getAdapterList() {
+		return new Class[] { IExecutionEnvironmentProviderAdapter.class };
+	}
+
+}

Copied: branches/work_Ed/org.maemo.esbox.scratchbox.core/src/org/maemo/esbox/internal/scratchbox/adapters/ESboxMaemoTargetEnvironmentModifierAdapter.java (from rev 1182, trunk/org.maemo.esbox.scratchbox.core/src/org/maemo/esbox/internal/scratchbox/adapters/ESboxMaemoTargetEnvironmentModifierAdapter.java)
===================================================================
--- branches/work_Ed/org.maemo.esbox.scratchbox.core/src/org/maemo/esbox/internal/scratchbox/adapters/ESboxMaemoTargetEnvironmentModifierAdapter.java	                        (rev 0)
+++ branches/work_Ed/org.maemo.esbox.scratchbox.core/src/org/maemo/esbox/internal/scratchbox/adapters/ESboxMaemoTargetEnvironmentModifierAdapter.java	2009-02-01 02:02:28 UTC (rev 1183)
@@ -0,0 +1,61 @@
+/*******************************************************************************
+ * Copyright (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:
+ *    Ed Swartz (Nokia) - initial API and implementation
+ *******************************************************************************/
+
+package org.maemo.esbox.internal.scratchbox.adapters;
+
+import org.maemo.esbox.maemosdk.core.MaemoEnvironmentUtils;
+import org.maemo.mica.common.core.env.EnvironmentManager;
+import org.maemo.mica.common.core.env.IEnvironmentModifierBlock;
+import org.maemo.mica.common.core.sdk.ISDKTarget;
+import org.maemo.mica.common.launch.adapters.ITargetEnvironmentModifierAdapter;
+import org.maemo.mica.common.launch.core.AbstractLocalLaunchProxy;
+import org.maemo.mica.common.launch.core.ILaunchProxy;
+
+/**
+ * Provide the necessary variables for maemo launches.
+ * @author eswartz
+ *
+ */
+public class ESboxMaemoTargetEnvironmentModifierAdapter implements ITargetEnvironmentModifierAdapter {
+
+	private final ISDKTarget sdkTarget;
+
+	/**
+	 * @param sdkTarget
+	 */
+	public ESboxMaemoTargetEnvironmentModifierAdapter(ISDKTarget sdkTarget) {
+		this.sdkTarget = sdkTarget;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.maemo.mica.common.launch.adapters.ITargetEnvironmentModifierAdapter#getTargetEnvironmentModifierBlock(org.maemo.mica.common.launch.core.ILaunchProxy)
+	 */
+	public IEnvironmentModifierBlock getTargetEnvironmentModifierBlock(ILaunchProxy launchProxy) {
+		IEnvironmentModifierBlock envBlock = EnvironmentManager.getInstance().createEnvironmentModifierBlock();
+		
+		// first, all launches need proper DBUS access
+		envBlock.define("DBUS_SESSION_BUS_ADDRESS", "unix:path=/tmp/session_bus_socket");
+		
+		if (launchProxy instanceof AbstractLocalLaunchProxy) {
+			MaemoEnvironmentUtils.defineEmulatorXDisplayVariable(sdkTarget.getMachine(), envBlock);
+			
+		} else {
+			// remote launches need DISPLAY for its own machine
+			
+			envBlock.define("DISPLAY", ":0");
+			
+		}
+		
+		return envBlock;
+	}
+
+}
+

Copied: branches/work_Ed/org.maemo.esbox.scratchbox.core/src/org/maemo/esbox/internal/scratchbox/adapters/ESboxMaemoTargetEnvironmentModifierAdapterFactory.java (from rev 1182, trunk/org.maemo.esbox.scratchbox.core/src/org/maemo/esbox/internal/scratchbox/adapters/ESboxMaemoTargetEnvironmentModifierAdapterFactory.java)
===================================================================
--- branches/work_Ed/org.maemo.esbox.scratchbox.core/src/org/maemo/esbox/internal/scratchbox/adapters/ESboxMaemoTargetEnvironmentModifierAdapterFactory.java	                        (rev 0)
+++ branches/work_Ed/org.maemo.esbox.scratchbox.core/src/org/maemo/esbox/internal/scratchbox/adapters/ESboxMaemoTargetEnvironmentModifierAdapterFactory.java	2009-02-01 02:02:28 UTC (rev 1183)
@@ -0,0 +1,49 @@
+/*******************************************************************************
+ * Copyright (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:
+ *    Ed Swartz (Nokia) - initial API and implementation
+ *******************************************************************************/
+
+package org.maemo.esbox.internal.scratchbox.adapters;
+
+import org.eclipse.core.runtime.IAdapterFactory;
+import org.maemo.mica.common.launch.adapters.ITargetEnvironmentModifierAdapter;
+import org.maemo.mica.maemosdk.core.IMaemoSDKTarget;
+
+/**
+ * 
+ * @author eswartz
+ *
+ */
+ at SuppressWarnings("unchecked")
+public class ESboxMaemoTargetEnvironmentModifierAdapterFactory implements IAdapterFactory {
+
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.core.runtime.IAdapterFactory#getAdapter(java.lang.Object, java.lang.Class)
+	 */
+	public Object getAdapter(Object adaptableObject, Class adapterType) {
+		if (adapterType.equals(ITargetEnvironmentModifierAdapter.class)) {
+			// only handle maemo ESbox targets here
+			// XXX: this will be different for a target hosted on a device -- see PluThon
+			if (adaptableObject instanceof IMaemoSDKTarget) {
+				IMaemoSDKTarget sdkTarget = (IMaemoSDKTarget) adaptableObject;
+				return new ESboxMaemoTargetEnvironmentModifierAdapter(sdkTarget);
+			}
+		}
+		return null;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.core.runtime.IAdapterFactory#getAdapterList()
+	 */
+	public Class[] getAdapterList() {
+		return new Class[] { ITargetEnvironmentModifierAdapter.class };
+	}
+
+}

Deleted: branches/work_Ed/org.maemo.esbox.scratchbox.core/src/org/maemo/esbox/internal/scratchbox/core/PersistentCache.java
===================================================================
--- branches/work_Ed/org.maemo.esbox.scratchbox.core/src/org/maemo/esbox/internal/scratchbox/core/PersistentCache.java	2009-01-30 23:27:49 UTC (rev 1182)
+++ branches/work_Ed/org.maemo.esbox.scratchbox.core/src/org/maemo/esbox/internal/scratchbox/core/PersistentCache.java	2009-02-01 02:02:28 UTC (rev 1183)
@@ -1,145 +0,0 @@
-/*******************************************************************************
- * Copyright (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:
- *    Ed Swartz (Nokia) - initial API and implementation
- *******************************************************************************/
-
-package org.maemo.esbox.internal.scratchbox.core;
-
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileOutputStream;
-import java.io.IOException;
-import java.io.ObjectInputStream;
-import java.io.ObjectOutputStream;
-import java.util.HashMap;
-import java.util.Map;
-
-import org.eclipse.core.runtime.IPath;
-import org.maemo.mica.common.core.Policy;
-
-/**
- * This object stores (key, value) pairs for cached data which is expensive to
- * compute. The keys are unique strings. Values are serializable objects. The
- * cache is loaded and stored with the plugin.
- * 
- * @author eswartz
- * 
- */
-public class PersistentCache {
-
-	/**
-	 * Default filename, under workspace metadata for this plugin's state, where
-	 * the cache is stored.
-	 */
-	private static final String SCRATCHBOX_CACHE_FILE = "scratchbox_cache.dat";
-
-	/**
-	 * The environment variable which, if defined, overrides the file above. It
-	 * should be a full filesystem path.
-	 */
-	private static final String SCRATCHBOX_CACHE_ENV = "SCRATCHBOX_CACHE";
-
-	private Map<String, Object> data;
-
-	public PersistentCache() {
-		data = new HashMap<String, Object>();
-	}
-
-	/**
-	 * Try to load the cache from plugin state.
-	 */
-	public synchronized void load() {
-		File state = getCacheFile();
-		if (state == null)
-			return;
-		try {
-			ObjectInputStream ois = new ObjectInputStream(new FileInputStream(
-					state));
-			try {
-				data = (Map<String, Object>) ois.readObject();
-			} catch (ClassNotFoundException e) {
-				Activator.getErrorLogger().logError("Cannot unserialize data",
-						e);
-			} finally {
-				Policy.close(ois);
-			}
-		} catch (IOException e) {
-			// ignore
-		}
-	}
-
-	/**
-	 * @return
-	 */
-	private File getCacheFile() {
-		// check for argument passed to unit test
-		String sboxCache = System.getenv(SCRATCHBOX_CACHE_ENV);
-		if (sboxCache != null && sboxCache.length() > 0) {
-			return new File(sboxCache);
-		}
-		if (Activator.getDefault() == null)
-			return null;
-		IPath stateLocation = Activator.getDefault().getStateLocation();
-		File state = stateLocation.append(SCRATCHBOX_CACHE_FILE).toFile();
-		return state;
-	}
-
-	/**
-	 * Save the cache to plugin state.
-	 */
-	public synchronized void save() {
-		File state = getCacheFile();
-		if (state == null)
-			return;
-		ObjectOutputStream oos;
-		try {
-			oos = new ObjectOutputStream(new FileOutputStream(state));
-		} catch (IOException e1) {
-			Activator.getErrorLogger().logError("Cannot write cache data", e1);
-			return;
-		}
-		try {
-			oos.writeObject(data);
-		} catch (IOException e) {
-			Activator.getErrorLogger().logError("Cannot serialize cache data",
-					e);
-		} finally {
-			Policy.close(oos);
-		}
-	}
-
-	/**
-	 * Delete the entries in the cache.
-	 */
-	public synchronized void clear() {
-		data.clear();
-	}
-
-	/**
-	 * Get a value from the cache.
-	 * 
-	 * @param key
-	 *            KEY_xxx
-	 * @return
-	 */
-	public synchronized Object get(String key) {
-		return data.get(key);
-	}
-
-	/**
-	 * Store a value in the cache
-	 * 
-	 * @param key
-	 *            KEY_xxx
-	 * @param value
-	 */
-	public synchronized void set(String key, Object value) {
-		data.put(key, value);
-	}
-}

Modified: branches/work_Ed/org.maemo.esbox.vm/META-INF/MANIFEST.MF
===================================================================
--- branches/work_Ed/org.maemo.esbox.vm/META-INF/MANIFEST.MF	2009-01-30 23:27:49 UTC (rev 1182)
+++ branches/work_Ed/org.maemo.esbox.vm/META-INF/MANIFEST.MF	2009-02-01 02:02:28 UTC (rev 1183)
@@ -10,7 +10,6 @@
  org.maemo.mica.common.core;bundle-version="2.0.0",
  org.maemo.mica.common.ui;bundle-version="2.0.0",
  org.maemo.mica.protocol.ssh;bundle-version="2.0.0",
- org.maemo.esbox.scratchbox.core;bundle-version="2.0.0",
  org.maemo.mica.maemosdk.core;bundle-version="2.0.0",
  org.eclipse.ui.ide;bundle-version="3.4.1",
  org.maemo.esbox.maemosdk.ui;bundle-version="2.0.0",

Modified: branches/work_Ed/org.maemo.esbox.vm/src/org/maemo/esbox/vm/ui/SelectVirtualMachineDialog.java
===================================================================
--- branches/work_Ed/org.maemo.esbox.vm/src/org/maemo/esbox/vm/ui/SelectVirtualMachineDialog.java	2009-01-30 23:27:49 UTC (rev 1182)
+++ branches/work_Ed/org.maemo.esbox.vm/src/org/maemo/esbox/vm/ui/SelectVirtualMachineDialog.java	2009-02-01 02:02:28 UTC (rev 1183)
@@ -11,8 +11,6 @@
 
 package org.maemo.esbox.vm.ui;
 
-import org.eclipse.core.runtime.IProduct;
-import org.eclipse.core.runtime.Platform;
 import org.eclipse.jface.dialogs.*;
 import org.eclipse.jface.preference.PreferenceDialog;
 import org.eclipse.swt.SWT;
@@ -22,6 +20,7 @@
 import org.eclipse.swt.widgets.*;
 import org.eclipse.ui.dialogs.PreferencesUtil;
 import org.maemo.esbox.internal.vm.Activator;
+import org.maemo.mica.common.core.GeneralUtils;
 
 /**
  * This dialog tells the user that a build machine should be selected.
@@ -41,7 +40,7 @@
 	public SelectVirtualMachineDialog(Shell shell) {
 		super(shell, "Select Virtual Machine", null,
 				// note: UI is added below to provide a hyperlink
-				getProductName() + " needs to know what machine to use to build and launch your code. \n\n"+
+				GeneralUtils.getProductName() + " needs to know what machine to use to build and launch your code. \n\n"+
 				"Your system cannot directly launch scratchbox or maemo tools, so a virtual machine running 32-bit Linux/i386 must be used.\n\n"+
 				"Please configure the settings by clicking the link below.",
 				MessageDialog.INFORMATION,
@@ -51,17 +50,6 @@
 				Activator.getDefault().getPreferenceStore().getBoolean(BUG_ME_NOT));
 	}
 	
-	/**
-	 * @return
-	 */
-	private static String getProductName() {
-		IProduct product = Platform.getProduct();
-		if (product != null)
-			return product.getName();
-		else
-			return "Eclipse";
-	}
-
 	/* (non-Javadoc)
 	 * @see org.eclipse.jface.dialogs.IconAndMessageDialog#createMessageArea(org.eclipse.swt.widgets.Composite)
 	 */



More information about the Esbox-commits mailing list