[Esbox-commits] r1650 - in branches/work_Ed: org.indt.esbox.core.compatibility org.indt.esbox.core.compatibility/src/org/indt/esbox/internal/compatibility/core org.maemo.esbox.cpp.project org.maemo.esbox.cpp.project/src/org/maemo/esbox/internal/cpp/project/core org.maemo.esbox.cpp.project/src/org/maemo/esbox/internal/cpp/project/ui org.maemo.esbox.cpp.project/src/org/maemo/esbox/internal/cpp/project/ui/properties org.maemo.esbox.cpp.project/src/org/maemo/esbox/internal/cpp/project/ui/wizards org.maemo.esbox.maemosdk.core org.maemo.esbox.maemosdk.core/src/org/maemo/esbox/internal/api/maemosdk/core org.maemo.esbox.maemosdk.ui/META-INF org.maemo.esbox.maemosdk.ui/src/org/maemo/esbox/internal/maemosdk/ui/wizards org.maemo.esbox.python.project/src/org/maemo/esbox/internal/python/project/ui/properties org.maemo.esbox.scratchbox.core org.maemo.esbox.scratchbox.sb1/src/org/maemo/esbox/internal/scratchbox/sb1/core org.maemo.esbox.scratchbox.sb2

eswartz at garage.maemo.org eswartz at garage.maemo.org
Wed May 27 05:43:27 EEST 2009


Author: eswartz
Date: 2009-05-27 05:43:26 +0300 (Wed, 27 May 2009)
New Revision: 1650

Removed:
   branches/work_Ed/org.maemo.esbox.cpp.project/src/org/maemo/esbox/internal/cpp/project/ui/CopyOfESboxBuildConfigManager.java
Modified:
   branches/work_Ed/org.indt.esbox.core.compatibility/plugin.xml
   branches/work_Ed/org.indt.esbox.core.compatibility/src/org/indt/esbox/internal/compatibility/core/ESboxOldCppProjectBuilder.java
   branches/work_Ed/org.indt.esbox.core.compatibility/src/org/indt/esbox/internal/compatibility/core/ESboxOldPythonProjectBuilder.java
   branches/work_Ed/org.maemo.esbox.cpp.project/plugin.xml
   branches/work_Ed/org.maemo.esbox.cpp.project/src/org/maemo/esbox/internal/cpp/project/core/ConvertCppProjectMarkerResolutionGenerator.java
   branches/work_Ed/org.maemo.esbox.cpp.project/src/org/maemo/esbox/internal/cpp/project/core/CppDebianProjectImportConfigurationComposite.java
   branches/work_Ed/org.maemo.esbox.cpp.project/src/org/maemo/esbox/internal/cpp/project/core/CppDebianProjectSupport.java
   branches/work_Ed/org.maemo.esbox.cpp.project/src/org/maemo/esbox/internal/cpp/project/core/CppProjectDebianSupportAdapterFactory.java
   branches/work_Ed/org.maemo.esbox.cpp.project/src/org/maemo/esbox/internal/cpp/project/core/CppProjectImportConfigurationComposite.java
   branches/work_Ed/org.maemo.esbox.cpp.project/src/org/maemo/esbox/internal/cpp/project/core/MaemoCppProjectPackageGatherer.java
   branches/work_Ed/org.maemo.esbox.cpp.project/src/org/maemo/esbox/internal/cpp/project/ui/ESboxBuildConfigManager.java
   branches/work_Ed/org.maemo.esbox.cpp.project/src/org/maemo/esbox/internal/cpp/project/ui/properties/ESBoxOldCppTargetPropertyPage.java
   branches/work_Ed/org.maemo.esbox.cpp.project/src/org/maemo/esbox/internal/cpp/project/ui/wizards/BaseESboxCppProjectWizard.java
   branches/work_Ed/org.maemo.esbox.cpp.project/src/org/maemo/esbox/internal/cpp/project/ui/wizards/ESboxCCProjectWizard.java
   branches/work_Ed/org.maemo.esbox.cpp.project/src/org/maemo/esbox/internal/cpp/project/ui/wizards/ESboxCProjectWizard.java
   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/MaemoPreferenceMigrator.java
   branches/work_Ed/org.maemo.esbox.maemosdk.ui/META-INF/MANIFEST.MF
   branches/work_Ed/org.maemo.esbox.maemosdk.ui/src/org/maemo/esbox/internal/maemosdk/ui/wizards/ESboxImportDebianSourcePackageProjectWizard.java
   branches/work_Ed/org.maemo.esbox.python.project/src/org/maemo/esbox/internal/python/project/ui/properties/ESboxOldPythonBuildTargetPropertyPage.java
   branches/work_Ed/org.maemo.esbox.scratchbox.core/plugin.xml
   branches/work_Ed/org.maemo.esbox.scratchbox.sb1/src/org/maemo/esbox/internal/scratchbox/sb1/core/SB1PreferenceMigrator.java
   branches/work_Ed/org.maemo.esbox.scratchbox.sb2/plugin.xml
Log:
Project/build refactoring, in progress (Python still needs work).
-- Remove old ESbox preference conversion; use PreferenceMigratorAdapter for base case in new preferences
-- Rename natures and builders so they don't reference ESbox
-- Split make and autotools natures
-- Split make and autotools builders
-- Add concept of IProjectBuilderType so we can distinguish build types without hardcoding references
-- Use project builder type to detect build artifacts for SSH upload
-- Allow project converter to handle Mica 2.0.0M4 projects.  Use generic "old format" builders and natures for deprecated formats.
-- Delete all project natures and builders when converting projects, so we don't have to hardcode knowledge of all of them.
-- Properly set up make projects for Build Automatically (currently they did nothing and couldn't be built!)
-- Do not run autotools automatically when creating a project.
-- When switching build configurations, do not automatically clean or re-autotools the project.
-- Make Debian import wizard product-configuration


Modified: branches/work_Ed/org.indt.esbox.core.compatibility/plugin.xml
===================================================================
--- branches/work_Ed/org.indt.esbox.core.compatibility/plugin.xml	2009-05-27 02:09:55 UTC (rev 1649)
+++ branches/work_Ed/org.indt.esbox.core.compatibility/plugin.xml	2009-05-27 02:43:26 UTC (rev 1650)
@@ -13,7 +13,7 @@
          point="org.eclipse.core.resources.natures">
       <runtime>
          <run
-               class="org.maemo.mica.internal.api.cpp.project.core.OldESboxProjectNature">
+               class="org.maemo.mica.internal.api.common.project.core.OldFormatProjectNature">
          </run>
       </runtime>
    </extension>
@@ -24,7 +24,7 @@
          point="org.eclipse.core.resources.natures">
       <runtime>
          <run
-               class="org.maemo.mica.python.project.core.OldESboxPythonProjectNature">
+               class="org.maemo.mica.internal.api.common.project.core.OldFormatProjectNature">
          </run>
       </runtime>
       <!-- this won't actually get used... -->
@@ -45,11 +45,7 @@
             hasNature="false"
             isConfigurable="false">
          <run
-               class="org.indt.esbox.internal.compatibility.core.ESboxOldCppProjectBuilder">
-            <parameter
-                  name="defaultCommand"
-                  value="make">
-            </parameter>
+               class="org.maemo.mica.internal.api.common.project.core.OldFormatProjectBuilder">
          </run>
       </builder>
    </extension>
@@ -64,7 +60,7 @@
             hasNature="false"
             isConfigurable="false">
          <run
-               class="org.indt.esbox.internal.compatibility.core.ESboxOldPythonProjectBuilder">
+               class="org.maemo.mica.internal.api.common.project.core.OldFormatProjectBuilder">
          </run>
       </builder>
    </extension>

Modified: branches/work_Ed/org.indt.esbox.core.compatibility/src/org/indt/esbox/internal/compatibility/core/ESboxOldCppProjectBuilder.java
===================================================================
--- branches/work_Ed/org.indt.esbox.core.compatibility/src/org/indt/esbox/internal/compatibility/core/ESboxOldCppProjectBuilder.java	2009-05-27 02:09:55 UTC (rev 1649)
+++ branches/work_Ed/org.indt.esbox.core.compatibility/src/org/indt/esbox/internal/compatibility/core/ESboxOldCppProjectBuilder.java	2009-05-27 02:43:26 UTC (rev 1650)
@@ -11,20 +11,22 @@
 
 package org.indt.esbox.internal.compatibility.core;
 
-import org.eclipse.core.resources.*;
+import java.util.Map;
+
+import org.eclipse.core.resources.IMarker;
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.resources.IncrementalProjectBuilder;
 import org.eclipse.core.runtime.CoreException;
 import org.eclipse.core.runtime.IProgressMonitor;
-import org.maemo.mica.common.project.core.IOldESboxProjectBuilder;
+import org.maemo.mica.common.project.core.IOldFormatProjectBuilder;
 
-import java.util.Map;
-
 /**
  * This builder runs when old projects are detected, and merely emits a Problem about the project
  * being out of date.
  * @author eswartz
  *
  */
-public class ESboxOldCppProjectBuilder extends IncrementalProjectBuilder implements IOldESboxProjectBuilder {
+public class ESboxOldCppProjectBuilder extends IncrementalProjectBuilder implements IOldFormatProjectBuilder {
 
 	public ESboxOldCppProjectBuilder() {
 	}
@@ -32,7 +34,6 @@
 	/* (non-Javadoc)
 	 * @see org.eclipse.core.resources.IncrementalProjectBuilder#build(int, java.util.Map, org.eclipse.core.runtime.IProgressMonitor)
 	 */
-	@SuppressWarnings("unchecked")
 	@Override
 	protected IProject[] build(final int kind, Map args, IProgressMonitor monitor)
 			throws CoreException {
@@ -46,7 +47,7 @@
 		
 		boolean found = false;
 		for (IMarker marker : markers) {
-			if (marker.getAttribute(IOldESboxProjectBuilder.ATTR_NEEDS_CONVERSION) != null) {
+			if (marker.getAttribute(IOldFormatProjectBuilder.ATTR_NEEDS_CONVERSION) != null) {
 				found = true;
 				break;
 			}
@@ -54,9 +55,9 @@
 		
 		if (!found) {
 			IMarker marker = project.createMarker(IMarker.PROBLEM);
-			marker.setAttribute(IMarker.MESSAGE, "Outdated project format; please convert (File > New > Convert to Maemo C/C++ Project)");
+			marker.setAttribute(IMarker.MESSAGE, "Outdated project format; please convert the project (File > New > Convert to ...)");
 			marker.setAttribute(IMarker.SEVERITY, IMarker.SEVERITY_ERROR);
-			marker.setAttribute(IOldESboxProjectBuilder.ATTR_NEEDS_CONVERSION, Boolean.TRUE);
+			marker.setAttribute(IOldFormatProjectBuilder.ATTR_NEEDS_CONVERSION, Boolean.TRUE);
 		}
 		
 		return null;

Modified: branches/work_Ed/org.indt.esbox.core.compatibility/src/org/indt/esbox/internal/compatibility/core/ESboxOldPythonProjectBuilder.java
===================================================================
--- branches/work_Ed/org.indt.esbox.core.compatibility/src/org/indt/esbox/internal/compatibility/core/ESboxOldPythonProjectBuilder.java	2009-05-27 02:09:55 UTC (rev 1649)
+++ branches/work_Ed/org.indt.esbox.core.compatibility/src/org/indt/esbox/internal/compatibility/core/ESboxOldPythonProjectBuilder.java	2009-05-27 02:43:26 UTC (rev 1650)
@@ -11,13 +11,15 @@
 
 package org.indt.esbox.internal.compatibility.core;
 
-import org.eclipse.core.resources.*;
+import java.util.Map;
+
+import org.eclipse.core.resources.IMarker;
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.resources.IncrementalProjectBuilder;
 import org.eclipse.core.runtime.CoreException;
 import org.eclipse.core.runtime.IProgressMonitor;
-import org.maemo.mica.common.project.core.IOldESboxProjectBuilder;
+import org.maemo.mica.common.project.core.IOldFormatProjectBuilder;
 
-import java.util.Map;
-
 /**
  * This builder runs when old projects are detected, and merely emits a Problem about the project
  * being out of date.
@@ -26,7 +28,7 @@
  * @author eswartz
  *
  */
-public class ESboxOldPythonProjectBuilder extends IncrementalProjectBuilder implements IOldESboxProjectBuilder {
+public class ESboxOldPythonProjectBuilder extends IncrementalProjectBuilder implements IOldFormatProjectBuilder {
 
 	public ESboxOldPythonProjectBuilder() {
 	}
@@ -34,7 +36,6 @@
 	/* (non-Javadoc)
 	 * @see org.eclipse.core.resources.IncrementalProjectBuilder#build(int, java.util.Map, org.eclipse.core.runtime.IProgressMonitor)
 	 */
-	@SuppressWarnings("unchecked")
 	@Override
 	protected IProject[] build(final int kind, Map args, IProgressMonitor monitor)
 			throws CoreException {
@@ -48,7 +49,7 @@
 		
 		boolean found = false;
 		for (IMarker marker : markers) {
-			if (marker.getAttribute(IOldESboxProjectBuilder.ATTR_NEEDS_CONVERSION) != null) {
+			if (marker.getAttribute(IOldFormatProjectBuilder.ATTR_NEEDS_CONVERSION) != null) {
 				found = true;
 				break;
 			}
@@ -58,7 +59,7 @@
 			IMarker marker = project.createMarker(IMarker.PROBLEM);
 			marker.setAttribute(IMarker.MESSAGE, "Outdated project format; please convert (File > New > Convert to Maemo Python Project)");
 			marker.setAttribute(IMarker.SEVERITY, IMarker.SEVERITY_ERROR);
-			marker.setAttribute(IOldESboxProjectBuilder.ATTR_NEEDS_CONVERSION, Boolean.TRUE);
+			marker.setAttribute(IOldFormatProjectBuilder.ATTR_NEEDS_CONVERSION, Boolean.TRUE);
 		}
 		
 		return null;

Modified: branches/work_Ed/org.maemo.esbox.cpp.project/plugin.xml
===================================================================
--- branches/work_Ed/org.maemo.esbox.cpp.project/plugin.xml	2009-05-27 02:09:55 UTC (rev 1649)
+++ branches/work_Ed/org.maemo.esbox.cpp.project/plugin.xml	2009-05-27 02:43:26 UTC (rev 1650)
@@ -167,6 +167,21 @@
 			</enabledWhen>		        
       </page>
 
+      <page
+            class="org.maemo.esbox.internal.cpp.project.ui.properties.ESBoxOldCppTargetPropertyPage"
+            id="org.maemo.esbox.project.cpp.ui.oldMicaCppProjectPropertyPage"
+            name="Maemo Build Configurations"
+            nameFilter="*">
+         <filter
+              name="nature"
+              value="org.maemo.mica.cpp.project.core.ESboxCppNature">
+        </filter>
+            <enabledWhen>
+            	<adapt type="org.eclipse.core.resources.IProject">
+	            </adapt>
+			</enabledWhen>		        
+      </page>
+
 	<!-- new page -->
 	<page
            class="org.maemo.esbox.internal.cpp.project.ui.properties.ESboxCppBuildConfigurationsPage"
@@ -174,7 +189,7 @@
            name="Maemo Build Configurations">
         <filter
               name="nature"
-              value="org.maemo.mica.cpp.project.core.ESboxCppNature">
+              value="org.maemo.mica.cpp.project.core.cppNature">
         </filter>
         <enabledWhen>
           	<adapt type="org.eclipse.core.resources.IProject">
@@ -217,4 +232,13 @@
     </factory>
  </extension>
 
+
+	<!-- COMPATIBILITY ONLY -->
+
+
+ 
+	
+	<!-- END COMPATIBILITY -->
+	
+
 </plugin>

Modified: branches/work_Ed/org.maemo.esbox.cpp.project/src/org/maemo/esbox/internal/cpp/project/core/ConvertCppProjectMarkerResolutionGenerator.java
===================================================================
--- branches/work_Ed/org.maemo.esbox.cpp.project/src/org/maemo/esbox/internal/cpp/project/core/ConvertCppProjectMarkerResolutionGenerator.java	2009-05-27 02:09:55 UTC (rev 1649)
+++ branches/work_Ed/org.maemo.esbox.cpp.project/src/org/maemo/esbox/internal/cpp/project/core/ConvertCppProjectMarkerResolutionGenerator.java	2009-05-27 02:43:26 UTC (rev 1650)
@@ -16,11 +16,13 @@
 import org.eclipse.jface.dialogs.IDialogConstants;
 import org.eclipse.jface.wizard.WizardDialog;
 import org.eclipse.swt.graphics.Image;
-import org.eclipse.ui.*;
+import org.eclipse.ui.IMarkerResolution;
+import org.eclipse.ui.IMarkerResolution2;
+import org.eclipse.ui.IMarkerResolutionGenerator2;
 import org.maemo.esbox.internal.cpp.project.Activator;
 import org.maemo.esbox.internal.cpp.project.ui.wizards.BaseConvertToESboxCppProjectWizard;
 import org.maemo.esbox.internal.cpp.project.ui.wizards.ConvertToESboxCProjectWizard;
-import org.maemo.mica.common.project.core.IOldESboxProjectBuilder;
+import org.maemo.mica.common.project.core.IOldFormatProjectBuilder;
 
 /**
  * @author eswartz
@@ -34,7 +36,7 @@
 	 */
 	public boolean hasResolutions(IMarker marker) {
 		try {
-			if (Boolean.TRUE.equals(marker.getAttribute(IOldESboxProjectBuilder.ATTR_NEEDS_CONVERSION)))
+			if (Boolean.TRUE.equals(marker.getAttribute(IOldFormatProjectBuilder.ATTR_NEEDS_CONVERSION)))
 				return true;
 		} catch (CoreException e) {
 		}

Modified: branches/work_Ed/org.maemo.esbox.cpp.project/src/org/maemo/esbox/internal/cpp/project/core/CppDebianProjectImportConfigurationComposite.java
===================================================================
--- branches/work_Ed/org.maemo.esbox.cpp.project/src/org/maemo/esbox/internal/cpp/project/core/CppDebianProjectImportConfigurationComposite.java	2009-05-27 02:09:55 UTC (rev 1649)
+++ branches/work_Ed/org.maemo.esbox.cpp.project/src/org/maemo/esbox/internal/cpp/project/core/CppDebianProjectImportConfigurationComposite.java	2009-05-27 02:43:26 UTC (rev 1650)
@@ -16,9 +16,10 @@
 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;
+import org.maemo.mica.cpp.project.core.IMicaAutotoolsProjectBuilderKeys;
+import org.maemo.mica.cpp.project.core.IMicaMakeProjectBuilderKeys;
+import org.maemo.mica.cpp.project.core.AbstractMicaCppProjectType;
 
 /**
  * This composite contains the configurable aspects of a project for a Debian
@@ -32,7 +33,7 @@
 
 	public CppDebianProjectImportConfigurationComposite(
 			Composite parent,
-			IValidatingDialogPage dialogPage, MicaCppProjectType projectType,
+			IValidatingDialogPage dialogPage, AbstractMicaCppProjectType projectType,
 			final IProject project,
 			final IPath projectLocation,
 			ProjectConfigHandler configHandler,
@@ -62,19 +63,24 @@
 	protected void initRules(boolean gotConfigureRule, boolean gotCleanRule,
 			boolean gotIncrRule) {
 		super.initRules(gotConfigureRule, gotCleanRule, gotIncrRule);
-		
-		// get default rules based on guesses
+
+		// the build command is not configurable; just set it here
+		configHandler.getConfigProperties().put(
+				IMicaMakeProjectBuilderKeys.KEY_BUILD_COMMAND, "fakeroot debian/rules");
+
 		for (String rule : rules) {
 			if (!gotConfigureRule && rule.contains("config")) {
-				setRule(IProjectTypeConfigKeys.KEY_CONFIGURE_BUILD_SETTING, rule, buildConfigureTargetField);
+				setRule(IMicaAutotoolsProjectBuilderKeys.KEY_CONFIGURE_BUILD_SETTING, rule, buildConfigureTargetField);
 				gotConfigureRule = true;
 			}
 			if (!gotCleanRule && rule.contains("clean")) {
-				setRule(IProjectTypeConfigKeys.KEY_CLEAN_BUILD_SETTING, rule, buildCleanTargetField);
+				setRule(IMicaMakeProjectBuilderKeys.KEY_CLEAN_BUILD_SETTING, rule, buildCleanTargetField);
 				gotCleanRule = true;
 			}
 			if (!gotIncrRule && (rule.contains("build") || rule.contains("all"))) {
-				setRule(IProjectTypeConfigKeys.KEY_INCREMENTAL_BUILD_SETTING, rule, buildIncrTargetField);
+				setRule(IMicaMakeProjectBuilderKeys.KEY_INCREMENTAL_BUILD_SETTING, rule, buildIncrTargetField);
+				// note: we use the same rule for both by default
+				setRule(IMicaMakeProjectBuilderKeys.KEY_AUTO_BUILD_SETTING, rule, buildIncrTargetField);
 				gotIncrRule = true;
 			}
 		}
@@ -83,7 +89,7 @@
 		if (!gotConfigureRule) {
 			for (String rule : rules) {
 				if (!gotConfigureRule && rule.contains("clean")) {
-					setRule(IProjectTypeConfigKeys.KEY_CONFIGURE_BUILD_SETTING, rule, buildConfigureTargetField);
+					setRule(IMicaAutotoolsProjectBuilderKeys.KEY_CONFIGURE_BUILD_SETTING, rule, buildConfigureTargetField);
 					gotConfigureRule = true;
 				}
 			}

Modified: branches/work_Ed/org.maemo.esbox.cpp.project/src/org/maemo/esbox/internal/cpp/project/core/CppDebianProjectSupport.java
===================================================================
--- branches/work_Ed/org.maemo.esbox.cpp.project/src/org/maemo/esbox/internal/cpp/project/core/CppDebianProjectSupport.java	2009-05-27 02:09:55 UTC (rev 1649)
+++ branches/work_Ed/org.maemo.esbox.cpp.project/src/org/maemo/esbox/internal/cpp/project/core/CppDebianProjectSupport.java	2009-05-27 02:43:26 UTC (rev 1650)
@@ -16,7 +16,7 @@
 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.cpp.project.core.AbstractMicaCppProjectType;
 import org.maemo.mica.linux.packages.core.adapters.IDebianProjectConvertImportSupport;
 
 /**
@@ -25,12 +25,12 @@
  */
 public class CppDebianProjectSupport implements IDebianProjectConvertImportSupport {
 
-	private final MicaCppProjectType projectType;
+	private final AbstractMicaCppProjectType projectType;
 
 	/**
 	 * @param adaptableObject
 	 */
-	public CppDebianProjectSupport(MicaCppProjectType projectType) {
+	public CppDebianProjectSupport(AbstractMicaCppProjectType projectType) {
 		this.projectType = projectType;
 	}
 

Modified: branches/work_Ed/org.maemo.esbox.cpp.project/src/org/maemo/esbox/internal/cpp/project/core/CppProjectDebianSupportAdapterFactory.java
===================================================================
--- branches/work_Ed/org.maemo.esbox.cpp.project/src/org/maemo/esbox/internal/cpp/project/core/CppProjectDebianSupportAdapterFactory.java	2009-05-27 02:09:55 UTC (rev 1649)
+++ branches/work_Ed/org.maemo.esbox.cpp.project/src/org/maemo/esbox/internal/cpp/project/core/CppProjectDebianSupportAdapterFactory.java	2009-05-27 02:43:26 UTC (rev 1650)
@@ -12,7 +12,7 @@
 package org.maemo.esbox.internal.cpp.project.core;
 
 import org.eclipse.core.runtime.IAdapterFactory;
-import org.maemo.mica.cpp.project.core.MicaCppProjectType;
+import org.maemo.mica.cpp.project.core.AbstractMicaCppProjectType;
 import org.maemo.mica.linux.packages.core.adapters.IDebianProjectConvertImportSupport;
 
 /**
@@ -26,9 +26,9 @@
 	 * @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 (adaptableObject instanceof AbstractMicaCppProjectType) {
 			if (adapterType.equals(IDebianProjectConvertImportSupport.class)) {
-				return new CppDebianProjectSupport((MicaCppProjectType) adaptableObject);
+				return new CppDebianProjectSupport((AbstractMicaCppProjectType) adaptableObject);
 			}
 		}
 		return null;

Modified: branches/work_Ed/org.maemo.esbox.cpp.project/src/org/maemo/esbox/internal/cpp/project/core/CppProjectImportConfigurationComposite.java
===================================================================
--- branches/work_Ed/org.maemo.esbox.cpp.project/src/org/maemo/esbox/internal/cpp/project/core/CppProjectImportConfigurationComposite.java	2009-05-27 02:09:55 UTC (rev 1649)
+++ branches/work_Ed/org.maemo.esbox.cpp.project/src/org/maemo/esbox/internal/cpp/project/core/CppProjectImportConfigurationComposite.java	2009-05-27 02:43:26 UTC (rev 1650)
@@ -31,11 +31,12 @@
 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.cpp.project.core.MicaCppProjectType;
+import org.maemo.mica.cpp.project.core.IMicaAutotoolsProjectBuilderKeys;
+import org.maemo.mica.cpp.project.core.IMicaMakeProjectBuilderKeys;
+import org.maemo.mica.cpp.project.core.AbstractMicaCppProjectType;
 import org.maemo.mica.internal.api.common.core.GridLayoutWrappedTextUtils;
 
 import com.nokia.cpp.internal.api.utils.core.FileUtils;
@@ -54,7 +55,7 @@
 	protected ComboDialogField buildCleanTargetField;
 	protected String[] allDirs;
 	protected IPath projectLocation;
-	protected MicaCppProjectType projectType;
+	protected AbstractMicaCppProjectType projectType;
 	private boolean showBuildLocation;
 	private boolean showConfigureRule;
 
@@ -64,7 +65,7 @@
 	 * @param dialogPage 
 	 */
 	public CppProjectImportConfigurationComposite(Composite parent, int style,
-			IValidatingDialogPage dialogPage, MicaCppProjectType projectType,
+			IValidatingDialogPage dialogPage, AbstractMicaCppProjectType projectType,
 			final IProject project,
 			final IPath projectLocation,
 			ProjectConfigHandler configHandler,
@@ -83,7 +84,7 @@
 	 * @param dialogPage 
 	 */
 	public CppProjectImportConfigurationComposite(Composite parent, int style,
-			IValidatingDialogPage dialogPage, MicaCppProjectType projectType,
+			IValidatingDialogPage dialogPage, AbstractMicaCppProjectType projectType,
 			final IProject project,
 			final IPath projectLocation,
 			ProjectConfigHandler configHandler) {
@@ -165,7 +166,7 @@
 				IPath path = new Path(buildLocationField.getText());
 				if (path.isEmpty())
 					path = null;
-				configHandler.getConfigProperties().put(MicaCppProjectType.KEY_BUILD_LOCATION,
+				configHandler.getConfigProperties().put(IMicaMakeProjectBuilderKeys.KEY_BUILD_LOCATION,
 						path);
 				dialogPage.validatePage();
 			}
@@ -203,7 +204,7 @@
 		buildIncrTargetField.getComboControl(group).addSelectionListener(new SelectionAdapter() {
 			@Override
 			public void widgetSelected(SelectionEvent e) {
-				updateRule(IProjectType.KEY_INCREMENTAL_BUILD_SETTING, buildIncrTargetField);
+				updateRule(IMicaMakeProjectBuilderKeys.KEY_INCREMENTAL_BUILD_SETTING, buildIncrTargetField);
 			}
 		});
 		
@@ -215,7 +216,7 @@
 		buildAutoTargetField.getComboControl(group).addSelectionListener(new SelectionAdapter() {
 			@Override
 			public void widgetSelected(SelectionEvent e) {
-				updateRule(IProjectType.KEY_AUTO_BUILD_SETTING, buildAutoTargetField);
+				updateRule(IMicaMakeProjectBuilderKeys.KEY_AUTO_BUILD_SETTING, buildAutoTargetField);
 			}
 		});
 		
@@ -227,7 +228,7 @@
 		buildCleanTargetField.getComboControl(group).addSelectionListener(new SelectionAdapter() {
 			@Override
 			public void widgetSelected(SelectionEvent e) {
-				updateRule(IProjectType.KEY_CLEAN_BUILD_SETTING, buildCleanTargetField);
+				updateRule(IMicaMakeProjectBuilderKeys.KEY_CLEAN_BUILD_SETTING, buildCleanTargetField);
 			}
 		});
 	}
@@ -247,7 +248,7 @@
 		buildConfigureTargetField.getComboControl(group).addSelectionListener(new SelectionAdapter() {
 			@Override
 			public void widgetSelected(SelectionEvent e) {
-				updateRule(IProjectType.KEY_CONFIGURE_BUILD_SETTING,
+				updateRule(IMicaAutotoolsProjectBuilderKeys.KEY_CONFIGURE_BUILD_SETTING,
 						buildConfigureTargetField);
 			}
 		});
@@ -280,10 +281,10 @@
 		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);
+		initRule(IMicaMakeProjectBuilderKeys.KEY_AUTO_BUILD_SETTING, buildAutoTargetField);
+		gotIncrRule = initRule(IMicaMakeProjectBuilderKeys.KEY_INCREMENTAL_BUILD_SETTING, buildIncrTargetField);
+		gotCleanRule = initRule(IMicaMakeProjectBuilderKeys.KEY_CLEAN_BUILD_SETTING, buildCleanTargetField);
+		gotConfigureRule = initRule(IMicaAutotoolsProjectBuilderKeys.KEY_CONFIGURE_BUILD_SETTING, buildConfigureTargetField);
 		
 		initRules(gotConfigureRule, gotCleanRule, gotIncrRule);
 	}

Modified: branches/work_Ed/org.maemo.esbox.cpp.project/src/org/maemo/esbox/internal/cpp/project/core/MaemoCppProjectPackageGatherer.java
===================================================================
--- branches/work_Ed/org.maemo.esbox.cpp.project/src/org/maemo/esbox/internal/cpp/project/core/MaemoCppProjectPackageGatherer.java	2009-05-27 02:09:55 UTC (rev 1649)
+++ branches/work_Ed/org.maemo.esbox.cpp.project/src/org/maemo/esbox/internal/cpp/project/core/MaemoCppProjectPackageGatherer.java	2009-05-27 02:43:26 UTC (rev 1650)
@@ -16,6 +16,7 @@
 import org.eclipse.core.runtime.IProgressMonitor;
 import org.maemo.mica.common.core.machine.IBuildMachine;
 import org.maemo.mica.common.core.sdk.ISDKTarget;
+import org.maemo.mica.common.project.core.NatureUtils;
 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;
@@ -39,7 +40,7 @@
 	public ProjectPackageInfo scanPackages(IProject project,
 			ISDKTarget sdkTarget,
 			IProgressMonitor monitor) throws CoreException {
-		if (MicaCppProjectNature.isNatureInProject(project)) {
+		if (NatureUtils.isNatureInProject(project, MicaCppProjectNature.CPP_NATURE_ID)) {
 			ProjectPackageInfo info = new ProjectPackageInfo();
 			
 			if (sdkTarget == null) {

Deleted: branches/work_Ed/org.maemo.esbox.cpp.project/src/org/maemo/esbox/internal/cpp/project/ui/CopyOfESboxBuildConfigManager.java
===================================================================
--- branches/work_Ed/org.maemo.esbox.cpp.project/src/org/maemo/esbox/internal/cpp/project/ui/CopyOfESboxBuildConfigManager.java	2009-05-27 02:09:55 UTC (rev 1649)
+++ branches/work_Ed/org.maemo.esbox.cpp.project/src/org/maemo/esbox/internal/cpp/project/ui/CopyOfESboxBuildConfigManager.java	2009-05-27 02:43:26 UTC (rev 1650)
@@ -1,80 +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.cpp.project.ui;
-
-import org.eclipse.cdt.ui.CUIPlugin;
-import org.eclipse.cdt.ui.newui.*;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.jface.dialogs.IDialogConstants;
-import org.eclipse.jface.preference.PreferenceDialog;
-import org.eclipse.ui.dialogs.PreferencesUtil;
-import org.maemo.esbox.internal.cpp.project.Activator;
-import org.maemo.mica.cpp.project.core.MicaCppProjectNature;
-
-/**
- * This implements the ...ConfigManager extension which tells CDT
- * what UI to present for a given project's "Build Configurations" 
- * dialog.
- * <p>
- * In ESbox C/C++ projects, we want to show a checklist of ISDKTargets
- * and let the user create configurations from those.
- * @author eswartz
- *
- */
-public class CopyOfESboxBuildConfigManager implements IConfigManager {
-
-	/**
-	 * 
-	 */
-	private static final String BUILD_CONFIG_PAGE_ID = Activator.PLUGIN_ID + ".BuildConfigurations";
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.cdt.ui.newui.IConfigManager#canManage(org.eclipse.core.resources.IProject[])
-	 */
-	public boolean canManage(IProject[] obs) {
-		if (obs != null && obs.length == 1) {
-			IProject project = obs[0];
-			return MicaCppProjectNature.isNatureInProject(project);
-		}
-		return false;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.cdt.ui.newui.IConfigManager#manage(org.eclipse.core.resources.IProject[], boolean)
-	 */
-	public boolean manage(IProject[] obs, boolean doOk) {
-		if (!canManage(obs)) {
-			return false;
-		}
-		
-		IProject project = obs[0];
-		
-		PreferenceDialog preferenceDialog = PreferencesUtil.createPropertyDialogOn(
-				CUIPlugin.getActiveWorkbenchShell(),
-				project,
-				BUILD_CONFIG_PAGE_ID,
-				new String[] { BUILD_CONFIG_PAGE_ID },
-				null
-				);
-		int ret = preferenceDialog.open();
-		if (ret == IDialogConstants.OK_ID) {
-			if (doOk) {
-				CDTPropertyManager.getProjectDescription(obs[0]);
-				CDTPropertyManager.performOk(preferenceDialog.getShell());
-			}
-			AbstractPage.updateViews(obs[0]);
-			return true;
-		}
-		return false;
-	}
-
-}

Modified: branches/work_Ed/org.maemo.esbox.cpp.project/src/org/maemo/esbox/internal/cpp/project/ui/ESboxBuildConfigManager.java
===================================================================
--- branches/work_Ed/org.maemo.esbox.cpp.project/src/org/maemo/esbox/internal/cpp/project/ui/ESboxBuildConfigManager.java	2009-05-27 02:09:55 UTC (rev 1649)
+++ branches/work_Ed/org.maemo.esbox.cpp.project/src/org/maemo/esbox/internal/cpp/project/ui/ESboxBuildConfigManager.java	2009-05-27 02:43:26 UTC (rev 1650)
@@ -23,6 +23,7 @@
 import org.maemo.mica.common.project.core.IBuildConfiguration;
 import org.maemo.mica.common.project.core.IBuildConfigurationData;
 import org.maemo.mica.common.project.core.IProjectHandle;
+import org.maemo.mica.common.project.core.NatureUtils;
 import org.maemo.mica.common.project.core.ProjectManager;
 import org.maemo.mica.common.project.ui.BuildConfigUtils;
 import org.maemo.mica.cpp.project.core.MicaCppProjectNature;
@@ -44,7 +45,7 @@
 	public boolean canManage(IProject[] obs) {
 		if (obs != null && obs.length == 1) {
 			IProject project = obs[0];
-			return MicaCppProjectNature.isNatureInProject(project);
+			return NatureUtils.isNatureInProject(project, MicaCppProjectNature.CPP_NATURE_ID);
 		}
 		return false;
 	}

Modified: branches/work_Ed/org.maemo.esbox.cpp.project/src/org/maemo/esbox/internal/cpp/project/ui/properties/ESBoxOldCppTargetPropertyPage.java
===================================================================
--- branches/work_Ed/org.maemo.esbox.cpp.project/src/org/maemo/esbox/internal/cpp/project/ui/properties/ESBoxOldCppTargetPropertyPage.java	2009-05-27 02:09:55 UTC (rev 1649)
+++ branches/work_Ed/org.maemo.esbox.cpp.project/src/org/maemo/esbox/internal/cpp/project/ui/properties/ESBoxOldCppTargetPropertyPage.java	2009-05-27 02:43:26 UTC (rev 1650)
@@ -11,109 +11,38 @@
 
 package org.maemo.esbox.internal.cpp.project.ui.properties;
 
-import org.eclipse.jface.wizard.WizardDialog;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.*;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.*;
-import org.maemo.esbox.internal.cpp.project.ui.wizards.BaseConvertToESboxCppProjectWizard;
+import org.eclipse.core.resources.IProject;
+import org.eclipse.jface.wizard.Wizard;
+import org.maemo.esbox.internal.cpp.project.ui.wizards.ConvertToESboxCCProjectWizard;
 import org.maemo.esbox.internal.cpp.project.ui.wizards.ConvertToESboxCProjectWizard;
-import org.maemo.mica.common.project.ui.properties.BaseBuildTargetPropertyPage;
+import org.maemo.mica.common.project.ui.properties.AbstractOldFormatTargetPropertyPage;
+import org.maemo.mica.cpp.project.core.MicaCppProjectNature;
 
 /**
- * This property page is shown for non-yet-converted C++ projects from ESbox 1.4 and older.
+ * This property page is shown for old format projects.
  * <p>
  * It alerts the user to convert the projects.  Until such a time, builds won't work.
  * @author eswartz
  */
-public class ESBoxOldCppTargetPropertyPage extends BaseBuildTargetPropertyPage {
-	
-	protected boolean convertOnClose;
+public class ESBoxOldCppTargetPropertyPage extends AbstractOldFormatTargetPropertyPage {
 
-	public ESBoxOldCppTargetPropertyPage() {
-		noDefaultAndApplyButton();
-	}
-	
 	/* (non-Javadoc)
-	 * @see org.maemo.mica.common.ui.properties.BaseESBoxBuildTargetPropertyPage#getPageTitle()
+	 * @see org.maemo.mica.common.project.ui.properties.AbstractOldFormatTargetPropertyPage#createConversionWizard(org.eclipse.core.resources.IProject)
 	 */
 	@Override
-	protected String getPageTitle() {
-		return "";
+	protected Wizard createConversionWizard(IProject project) {
+		if (MicaCppProjectNature.isCCLanguageProject(project))
+			return new ConvertToESboxCCProjectWizard();
+		else
+			return new ConvertToESboxCProjectWizard();
 	}
 
 	/* (non-Javadoc)
-	 * @see org.maemo.mica.common.ui.properties.BaseESBoxBuildTargetPropertyPage#createBuildTargetUI(org.eclipse.swt.widgets.Composite)
+	 * @see org.maemo.mica.common.project.ui.properties.AbstractOldFormatTargetPropertyPage#getWizardName()
 	 */
 	@Override
-	protected void createBuildTargetUI(final Composite parent) {
-		Composite control = new Composite(parent, SWT.NONE);
-		GridLayout controlLayout = new GridLayout(1, false);
-		
-		control.setLayout(controlLayout);
-		control.setLayoutData(new GridData(GridData.FILL_BOTH
-				| GridData.GRAB_VERTICAL));
-		
-		final Button convertButton = new Button(control, SWT.CHECK);
-		
-		convertButton.setText("Launch 'Convert to Maemo C/C++ Project' wizard on completion");
-		convertButton.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, false));
-		convertButton.addSelectionListener(new SelectionAdapter() {
-			/* (non-Javadoc)
-			 * @see org.eclipse.swt.events.SelectionAdapter#widgetSelected(org.eclipse.swt.events.SelectionEvent)
-			 */
-			@Override
-			public void widgetSelected(SelectionEvent e) {
-				convertOnClose = convertButton.getSelection();
-			}
-		});
-		
-		getShell().addDisposeListener(new DisposeListener() {
-
-			/* (non-Javadoc)
-			 * @see org.eclipse.swt.events.DisposeListener#widgetDisposed(org.eclipse.swt.events.DisposeEvent)
-			 */
-			public void widgetDisposed(DisposeEvent e) {
-				// run this after the shell closes
-				if (convertOnClose) {
-					
-					Display.getDefault().asyncExec(new Runnable() {
-
-						public void run() {
-							BaseConvertToESboxCppProjectWizard wizard = new ConvertToESboxCProjectWizard();
-							WizardDialog dialog = new WizardDialog(null, wizard);
-							dialog.open();
-						}
-						
-					});
-				}
-			}
-		});
+	protected String getWizardName() {
+		return "Convert to ESbox Projects";
 	}
 	
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.preference.PreferencePage#performOk()
-	 */
-	@Override
-	public boolean performOk() {
-		return true;
-	}
-
-	
-	/* (non-Javadoc)
-	 * @see org.maemo.mica.common.ui.properties.BaseESBoxBuildTargetPropertyPage#getInformationText()
-	 */
-	@Override
-	protected String getInformationText() {
-		return "This project uses an older project format and must be converted to make changes to its configuration.";
-	}
-
-	/* (non-Javadoc)
-	 * @see org.maemo.mica.common.ui.properties.BaseESBoxBuildTargetPropertyPage#refresh()
-	 */
-	@Override
-	protected void refresh() {
-	}
-	
 }

Modified: branches/work_Ed/org.maemo.esbox.cpp.project/src/org/maemo/esbox/internal/cpp/project/ui/wizards/BaseESboxCppProjectWizard.java
===================================================================
--- branches/work_Ed/org.maemo.esbox.cpp.project/src/org/maemo/esbox/internal/cpp/project/ui/wizards/BaseESboxCppProjectWizard.java	2009-05-27 02:09:55 UTC (rev 1649)
+++ branches/work_Ed/org.maemo.esbox.cpp.project/src/org/maemo/esbox/internal/cpp/project/ui/wizards/BaseESboxCppProjectWizard.java	2009-05-27 02:43:26 UTC (rev 1650)
@@ -19,7 +19,6 @@
 import org.maemo.mica.common.project.core.ITargetBuildConfigurationProvider;
 import org.maemo.mica.common.project.ui.StockTargetBuildConfigurationProvider;
 import org.maemo.mica.common.project.ui.wizards.BaseProjectTargetSelectionPage;
-import org.maemo.mica.cpp.project.core.MicaCppCProjectType;
 import org.maemo.mica.cpp.project.ui.BaseCppProjectWizard;
 import org.maemo.mica.cpp.project.ui.MicaCppStockBuildConfigurationProvider;
 import org.maemo.mica.cpp.project.ui.ProjectBuildConfigSelectionPage;

Modified: branches/work_Ed/org.maemo.esbox.cpp.project/src/org/maemo/esbox/internal/cpp/project/ui/wizards/ESboxCCProjectWizard.java
===================================================================
--- branches/work_Ed/org.maemo.esbox.cpp.project/src/org/maemo/esbox/internal/cpp/project/ui/wizards/ESboxCCProjectWizard.java	2009-05-27 02:09:55 UTC (rev 1649)
+++ branches/work_Ed/org.maemo.esbox.cpp.project/src/org/maemo/esbox/internal/cpp/project/ui/wizards/ESboxCCProjectWizard.java	2009-05-27 02:43:26 UTC (rev 1650)
@@ -12,7 +12,7 @@
 package org.maemo.esbox.internal.cpp.project.ui.wizards;
 
 import org.maemo.esbox.internal.cpp.project.Activator;
-import org.maemo.mica.cpp.project.core.MicaCppProjectType;
+import org.maemo.mica.cpp.project.core.AbstractMicaCppProjectType;
 
 /**
  * Maemo C++ Project Wizard
@@ -32,6 +32,6 @@
 	
 	@Override
 	protected String getProjectTypeIdPattern() {
-		return MicaCppProjectType.ID_CC;
+		return AbstractMicaCppProjectType.ID_CC;
 	}
 }

Modified: branches/work_Ed/org.maemo.esbox.cpp.project/src/org/maemo/esbox/internal/cpp/project/ui/wizards/ESboxCProjectWizard.java
===================================================================
--- branches/work_Ed/org.maemo.esbox.cpp.project/src/org/maemo/esbox/internal/cpp/project/ui/wizards/ESboxCProjectWizard.java	2009-05-27 02:09:55 UTC (rev 1649)
+++ branches/work_Ed/org.maemo.esbox.cpp.project/src/org/maemo/esbox/internal/cpp/project/ui/wizards/ESboxCProjectWizard.java	2009-05-27 02:43:26 UTC (rev 1650)
@@ -12,7 +12,7 @@
 package org.maemo.esbox.internal.cpp.project.ui.wizards;
 
 import org.maemo.esbox.internal.cpp.project.Activator;
-import org.maemo.mica.cpp.project.core.MicaCppProjectType;
+import org.maemo.mica.cpp.project.core.AbstractMicaCppProjectType;
 
 /**
  * Maemo C Project Wizard
@@ -27,6 +27,6 @@
 	}
 	
 	protected String getProjectTypeIdPattern() {
-		return MicaCppProjectType.ID_C;
+		return AbstractMicaCppProjectType.ID_C;
 	}
 }

Modified: branches/work_Ed/org.maemo.esbox.maemosdk.core/plugin.xml
===================================================================
--- branches/work_Ed/org.maemo.esbox.maemosdk.core/plugin.xml	2009-05-27 02:09:55 UTC (rev 1649)
+++ branches/work_Ed/org.maemo.esbox.maemosdk.core/plugin.xml	2009-05-27 02:43:26 UTC (rev 1650)
@@ -22,7 +22,7 @@
            preferenceConstantsClass="org.maemo.esbox.maemosdk.core.MaemoPreferenceConstants"
            preferenceMigratorClass="org.maemo.esbox.internal.api.maemosdk.core.MaemoPreferenceMigrator"
            preferenceStoreBundle="org.maemo.esbox.maemosdk.core"
-           version="17">
+           version="20">
      </preferenceSetProvider>
   </extension>
   

Modified: branches/work_Ed/org.maemo.esbox.maemosdk.core/src/org/maemo/esbox/internal/api/maemosdk/core/MaemoPreferenceMigrator.java
===================================================================
--- branches/work_Ed/org.maemo.esbox.maemosdk.core/src/org/maemo/esbox/internal/api/maemosdk/core/MaemoPreferenceMigrator.java	2009-05-27 02:09:55 UTC (rev 1649)
+++ branches/work_Ed/org.maemo.esbox.maemosdk.core/src/org/maemo/esbox/internal/api/maemosdk/core/MaemoPreferenceMigrator.java	2009-05-27 02:43:26 UTC (rev 1650)
@@ -11,32 +11,23 @@
 
 package org.maemo.esbox.internal.api.maemosdk.core;
 
+import org.eclipse.jface.preference.IPreferenceStore;
 import org.maemo.esbox.maemosdk.core.MaemoPreferenceConstants;
 import org.maemo.mica.common.core.CorePreferenceManager;
 import org.maemo.mica.common.core.IPreferenceMigrator;
-import org.maemo.mica.internal.api.common.core.OldESboxPreferenceMigrator;
 
 import java.util.Properties;
 
 /**
- * To migrate preferences, we use the 1.4 -> newer conversion and also pick an
- * OS-specific initial value for the X server command.
+ * To migrate preferences, we pick an
+ * OS-specific initial value for the X server related commands.
  * 
  * @author eswartz
  * 
  */
-public class MaemoPreferenceMigrator extends OldESboxPreferenceMigrator
-		implements IPreferenceMigrator {
+public class MaemoPreferenceMigrator implements IPreferenceMigrator {
 
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @seeorg.maemo.esbox.internal.api.core.OldESboxPreferenceMigrator#
-	 * adjustDefaultSettings(java.util.Properties)
-	 */
-	@Override
 	public void adjustDefaultSettings(Properties newPropertyDefaults) {
-		super.adjustDefaultSettings(newPropertyDefaults);
 		// adjust any environment-dependent defaults
 		CorePreferenceManager.selectDefaultForOS(newPropertyDefaults, 
 				MaemoPreferenceConstants.DISPLAY_X_COMMAND);
@@ -46,4 +37,10 @@
 		
 	}
 
+	public void convertExistingPreferences(IPreferenceStore preferences,
+			int oldMajor, Properties existingSettings,
+			Properties newPropertyDefaults) {
+		
+	}
+
 }

Modified: branches/work_Ed/org.maemo.esbox.maemosdk.ui/META-INF/MANIFEST.MF
===================================================================
--- branches/work_Ed/org.maemo.esbox.maemosdk.ui/META-INF/MANIFEST.MF	2009-05-27 02:09:55 UTC (rev 1649)
+++ branches/work_Ed/org.maemo.esbox.maemosdk.ui/META-INF/MANIFEST.MF	2009-05-27 02:43:26 UTC (rev 1650)
@@ -14,7 +14,9 @@
  org.eclipse.ui.ide;bundle-version="3.4.1",
  org.eclipse.ui.views;bundle-version="3.3.0",
  org.maemo.mica.linux.packages.core;bundle-version="2.0.0",
- org.maemo.mica.linux.packages.ui;bundle-version="2.0.0"
+ org.maemo.mica.linux.packages.ui;bundle-version="2.0.0",
+ org.maemo.mica.cpp.project.core;bundle-version="2.0.0",
+ org.maemo.mica.python.project.core;bundle-version="2.0.0"
 Bundle-RequiredExecutionEnvironment: J2SE-1.5
 Bundle-ActivationPolicy: lazy
 Export-Package: org.maemo.esbox.internal.api.maemosdk.ui.preferences,

Modified: branches/work_Ed/org.maemo.esbox.maemosdk.ui/src/org/maemo/esbox/internal/maemosdk/ui/wizards/ESboxImportDebianSourcePackageProjectWizard.java
===================================================================
--- branches/work_Ed/org.maemo.esbox.maemosdk.ui/src/org/maemo/esbox/internal/maemosdk/ui/wizards/ESboxImportDebianSourcePackageProjectWizard.java	2009-05-27 02:09:55 UTC (rev 1649)
+++ branches/work_Ed/org.maemo.esbox.maemosdk.ui/src/org/maemo/esbox/internal/maemosdk/ui/wizards/ESboxImportDebianSourcePackageProjectWizard.java	2009-05-27 02:43:26 UTC (rev 1650)
@@ -11,10 +11,19 @@
 
 package org.maemo.esbox.internal.maemosdk.ui.wizards;
 
+import org.eclipse.core.resources.IProject;
 import org.eclipse.ui.IImportWizard;
 import org.maemo.mica.common.project.core.BuildMachineHostedTargetFilter;
 import org.maemo.mica.common.project.core.IBuildTargetFilter;
-import org.maemo.mica.linux.packages.ui.wizards.ImportDebianSourcePackageWizard;
+import org.maemo.mica.common.project.core.IProjectBuilderType;
+import org.maemo.mica.common.project.core.IProjectType;
+import org.maemo.mica.common.project.core.ProjectConfigHandler;
+import org.maemo.mica.common.project.core.ProjectCreatorConverter;
+import org.maemo.mica.common.project.core.ProjectManager;
+import org.maemo.mica.cpp.project.core.MicaCppBuildConfigProjectCreatorConverter;
+import org.maemo.mica.cpp.project.core.AbstractMicaCppProjectType;
+import org.maemo.mica.cpp.project.core.MicaMakeProjectBuilderType;
+import org.maemo.mica.linux.packages.ui.wizards.AbstractImportDebianSourcePackageWizard;
 
 /**
  * ESbox Debian Project Importer
@@ -22,7 +31,7 @@
  *
  */
 public class ESboxImportDebianSourcePackageProjectWizard extends
-		ImportDebianSourcePackageWizard implements IImportWizard {
+		AbstractImportDebianSourcePackageWizard implements IImportWizard {
 
 	/**
 	 * 
@@ -39,4 +48,22 @@
 		return new BuildMachineHostedTargetFilter();
 	}
 	
+	/* (non-Javadoc)
+	 * @see org.maemo.mica.linux.packages.ui.wizards.AbstractImportDebianSourcePackageWizard#getProjectBuilderType()
+	 */
+	@Override
+	protected IProjectBuilderType getProjectBuilderType() {
+		return ProjectManager.getInstance().getProjectBuilderType(
+				MicaMakeProjectBuilderType.ID);
+	}
+	
+	/* (non-Javadoc)
+	 * @see org.maemo.mica.linux.packages.ui.wizards.AbstractImportDebianSourcePackageWizard#isProjectTypeSupported(org.maemo.mica.common.project.core.IProjectType)
+	 */
+	@Override
+	protected boolean isProjectTypeSupported(IProjectType projectType) {
+		// only C/C++ builders will work properly since they have Make support
+		return (projectType instanceof AbstractMicaCppProjectType);
+	}
+	
 }

Modified: branches/work_Ed/org.maemo.esbox.python.project/src/org/maemo/esbox/internal/python/project/ui/properties/ESboxOldPythonBuildTargetPropertyPage.java
===================================================================
--- branches/work_Ed/org.maemo.esbox.python.project/src/org/maemo/esbox/internal/python/project/ui/properties/ESboxOldPythonBuildTargetPropertyPage.java	2009-05-27 02:09:55 UTC (rev 1649)
+++ branches/work_Ed/org.maemo.esbox.python.project/src/org/maemo/esbox/internal/python/project/ui/properties/ESboxOldPythonBuildTargetPropertyPage.java	2009-05-27 02:43:26 UTC (rev 1650)
@@ -13,7 +13,10 @@
 
 import java.util.List;
 
+import org.eclipse.core.resources.ICommand;
+import org.eclipse.core.resources.IProjectDescription;
 import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.SubProgressMonitor;
 import org.eclipse.swt.SWT;
 import org.eclipse.swt.layout.GridData;
 import org.eclipse.swt.widgets.Composite;
@@ -26,6 +29,7 @@
 import org.maemo.mica.common.project.core.IBuildTargetFilter;
 import org.maemo.mica.common.project.core.IProjectProperties;
 import org.maemo.mica.common.project.core.IProjectType;
+import org.maemo.mica.common.project.core.NatureUtils;
 import org.maemo.mica.common.project.core.ProjectManager;
 import org.maemo.mica.common.project.ui.MicaSDKTargetBuildConfigurationsPage;
 import org.maemo.mica.python.project.core.MicaPythonProjectNature;
@@ -59,14 +63,17 @@
 			// since this is an old project, there are no configurations
 			// or project handle, so create it now
 			try {
-				IProjectProperties projectProperties = ProjectManager.getInstance().getOldStyleProjectProperties(project);
-				IProjectType projectType = ProjectManager.getInstance().getProjectType(MicaPythonProjectType.ID);
+				IProjectProperties projectProperties = ProjectManager.getInstance().getOldStyleProjectProperties(
+						project);
+				IProjectType projectType = ProjectManager.getInstance().getProjectType(
+						MicaPythonProjectType.ID);
 				
-				IBuildConfigurationData params = projectType.createBuildConfigurationData();
+				projectHandle = projectType.createProjectHandle(project);
+				
+				IBuildConfigurationData params = projectHandle.createBuildConfigurationData();
 				params.setSdkTargetName(projectProperties.getTargetName());
 				params.setSdkName(projectProperties.getSDKName());
-				
-				projectHandle = projectType.createProjectHandle(project);
+
 				projectHandle.createBuildConfiguration(params);
 			} catch (CoreException e) {
 				Activator.getErrorLogger().logAndShowError("Failed to read old project settings", e);
@@ -98,8 +105,14 @@
 	public boolean performOk() {
 		// convert the project by swapping the project nature
 		try {
-			OldESboxPythonProjectNature.removeESboxPythonNature(project, null);
-			MicaPythonProjectNature.addESboxPythonNature(project, null);
+			// remove builders (ALL OF THEM) because they will re-add the natures
+			IProjectDescription description = project.getDescription();
+			description.setBuildSpec(new ICommand[0]);
+			// remove natures too
+			description.setNatureIds(new String[0]);
+			project.setDescription(description, null);
+			
+			NatureUtils.addNature(project, MicaPythonProjectNature.ESBOX_PYTHON_NATURE_ID, null);
 		} catch (CoreException e) {
 			Activator.getErrorLogger().logAndShowError("Failed to convert project to new-style Python project", e);
 		}

Modified: branches/work_Ed/org.maemo.esbox.scratchbox.core/plugin.xml
===================================================================
--- branches/work_Ed/org.maemo.esbox.scratchbox.core/plugin.xml	2009-05-27 02:09:55 UTC (rev 1649)
+++ branches/work_Ed/org.maemo.esbox.scratchbox.core/plugin.xml	2009-05-27 02:43:26 UTC (rev 1650)
@@ -18,9 +18,9 @@
      <preferenceSetProvider
            defaultsXMLFile="conf/sb_prefs.xml"
            preferenceConstantsClass="org.maemo.esbox.scratchbox.core.SBPreferenceConstants"
-           preferenceMigratorClass="org.maemo.mica.internal.api.common.core.OldESboxPreferenceMigrator"
+           preferenceMigratorClass="org.maemo.mica.internal.api.common.core.PreferenceMigratorAdapter"
            preferenceStoreBundle="org.maemo.esbox.scratchbox.core"
-           version="17">
+           version="20">
      </preferenceSetProvider>
      
         <preferenceSetProvider

Modified: branches/work_Ed/org.maemo.esbox.scratchbox.sb1/src/org/maemo/esbox/internal/scratchbox/sb1/core/SB1PreferenceMigrator.java
===================================================================
--- branches/work_Ed/org.maemo.esbox.scratchbox.sb1/src/org/maemo/esbox/internal/scratchbox/sb1/core/SB1PreferenceMigrator.java	2009-05-27 02:09:55 UTC (rev 1649)
+++ branches/work_Ed/org.maemo.esbox.scratchbox.sb1/src/org/maemo/esbox/internal/scratchbox/sb1/core/SB1PreferenceMigrator.java	2009-05-27 02:43:26 UTC (rev 1650)
@@ -15,52 +15,19 @@
 
 import org.eclipse.jface.preference.IPreferenceStore;
 import org.maemo.mica.common.core.IPreferenceMigrator;
-import org.maemo.mica.internal.api.common.core.OldESboxPreferenceMigrator;
 
 /**
  * Convert prefs from older SB1 settings
  * @author eswartz
  *
  */
-public class SB1PreferenceMigrator extends OldESboxPreferenceMigrator implements
-		IPreferenceMigrator {
+public class SB1PreferenceMigrator implements IPreferenceMigrator {
 
-	/* (non-Javadoc)
-	 * @see org.maemo.mica.internal.api.common.core.OldESboxPreferenceMigrator#adjustDefaultSettings(java.util.Properties)
-	 */
-	@Override
 	public void adjustDefaultSettings(Properties newPropertyDefaults) {
-		super.adjustDefaultSettings(newPropertyDefaults);
 	}
 	
-	/* (non-Javadoc)
-	 * @see org.maemo.mica.internal.api.common.core.OldESboxPreferenceMigrator#convertExistingPreferences(org.eclipse.jface.preference.IPreferenceStore, int, java.util.Properties, java.util.Properties)
-	 */
-	@Override
 	public void convertExistingPreferences(IPreferenceStore preferences,
 			int oldMajor, Properties existingSettings,
 			Properties newPropertyDefaults) {
-		if (oldMajor < 17) {
-			super.convertExistingPreferences(preferences, oldMajor, existingSettings,
-					newPropertyDefaults);
-		}
-		if (oldMajor < 18) {
-			// moved SB1_SBOX_SANDBOX and RUN_SCRIPT_LOCATION into SB1_ROOT and SB1_USER
-			String sandbox = newPropertyDefaults.getProperty("SB1_SBOX_SANDBOX");
-			String root = null;
-			
-			// remove anything after "scratchbox" (usually "/users/${USER}")
-			if (sandbox != null) {
-				int idx = sandbox.lastIndexOf("scratchbox");
-				if (idx >= 0)
-					root = sandbox.substring(0, idx + "scratchbox".length());
-			} 
-			if (root != null) {
-				newPropertyDefaults.put(SB1PreferenceConstants.SB1_ROOTS, root);
-			}
-			
-			newPropertyDefaults.remove("SB1_SBOX_SANDBOX");
-			newPropertyDefaults.remove("RUN_SCRIPT_LOCATION");
-		}
 	}
 }

Modified: branches/work_Ed/org.maemo.esbox.scratchbox.sb2/plugin.xml
===================================================================
--- branches/work_Ed/org.maemo.esbox.scratchbox.sb2/plugin.xml	2009-05-27 02:09:55 UTC (rev 1649)
+++ branches/work_Ed/org.maemo.esbox.scratchbox.sb2/plugin.xml	2009-05-27 02:43:26 UTC (rev 1650)
@@ -38,7 +38,7 @@
       <preferenceSetProvider
             defaultsXMLFile="conf/sb2_prefs.xml"
             preferenceConstantsClass="org.maemo.esbox.internal.api.scratchbox.sb2.core.SB2PreferenceConstants"
-            preferenceMigratorClass="org.maemo.mica.internal.api.common.core.OldESboxPreferenceMigrator"
+            preferenceMigratorClass="org.maemo.mica.internal.api.common.core.PreferenceMigratorAdapter"
             preferenceStoreBundle="org.maemo.esbox.scratchbox.sb2"
             version="17">
       </preferenceSetProvider>



More information about the Esbox-commits mailing list