[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' features to be installed.
- </description>
-
- <copyright>
+as well, though it does not require those languages' 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