[Esbox-commits] r2353 - in branches/work_Andre: org.maemo.esbox.help/html/concepts org.maemo.esbox.help/html/context_help org.maemo.esbox.help/html/tasks org.maemo.esbox.maemosdk.core/src/org/maemo/esbox/internal/api/maemosdk/core/tools org.maemo.esbox.maemosdk.ui/src/org/maemo/esbox/internal/api/maemosdk/ui/preferences org.maemo.esbox.product org.maemo.esbox.scratchbox.core/src/org/maemo/esbox/internal/api/scratchbox/core/execEnv org.maemo.esbox.vm.vmware/src/org/maemo/esbox/internal/vm/vmware/ui/wizards
andregomes at garage.maemo.org
andregomes at garage.maemo.org
Mon Oct 26 23:32:21 EET 2009
Author: andregomes
Date: 2009-10-26 23:32:20 +0200 (Mon, 26 Oct 2009)
New Revision: 2353
Modified:
branches/work_Andre/org.maemo.esbox.help/html/concepts/MaemoTargets.html
branches/work_Andre/org.maemo.esbox.help/html/concepts/RemoteLaunching.html
branches/work_Andre/org.maemo.esbox.help/html/context_help/esbox_dialogs_help.xml
branches/work_Andre/org.maemo.esbox.help/html/tasks/DebianPackage.html
branches/work_Andre/org.maemo.esbox.help/html/tasks/ProfilingMaemoApplications.html
branches/work_Andre/org.maemo.esbox.help/html/tasks/UsingTargetContextMenus.html
branches/work_Andre/org.maemo.esbox.help/html/tasks/ValidatingPackages.html
branches/work_Andre/org.maemo.esbox.maemosdk.core/src/org/maemo/esbox/internal/api/maemosdk/core/tools/AfSbInitMaemoLauncherAdapter.java
branches/work_Andre/org.maemo.esbox.maemosdk.ui/src/org/maemo/esbox/internal/api/maemosdk/ui/preferences/BuildMachinePreferencePage.java
branches/work_Andre/org.maemo.esbox.maemosdk.ui/src/org/maemo/esbox/internal/api/maemosdk/ui/preferences/ValidateMachineRunner.java
branches/work_Andre/org.maemo.esbox.product/plugin.properties
branches/work_Andre/org.maemo.esbox.scratchbox.core/src/org/maemo/esbox/internal/api/scratchbox/core/execEnv/MaemoExecutionEnvironmentHandler.java
branches/work_Andre/org.maemo.esbox.vm.vmware/src/org/maemo/esbox/internal/vm/vmware/ui/wizards/MaemoSDKVMSelectionWizardPage.java
Log:
Merging with Trunk.
Modified: branches/work_Andre/org.maemo.esbox.help/html/concepts/MaemoTargets.html
===================================================================
--- branches/work_Andre/org.maemo.esbox.help/html/concepts/MaemoTargets.html 2009-10-23 20:39:37 UTC (rev 2352)
+++ branches/work_Andre/org.maemo.esbox.help/html/concepts/MaemoTargets.html 2009-10-26 21:32:20 UTC (rev 2353)
@@ -18,7 +18,7 @@
Another would be the ARMEL architecture for Fremantle under Scratchbox 2.
Each uses (or may use) different compilers, invocation semantics, etc.
</p>
-<p>The Nokia Internet Tablet also provides targets for accessing the device.
+<p>The Maemo device also provides targets for accessing the device.
ESbox provides several RSE connections for the various networking connections
that are used to access a device.
</p>
Modified: branches/work_Andre/org.maemo.esbox.help/html/concepts/RemoteLaunching.html
===================================================================
--- branches/work_Andre/org.maemo.esbox.help/html/concepts/RemoteLaunching.html 2009-10-23 20:39:37 UTC (rev 2352)
+++ branches/work_Andre/org.maemo.esbox.help/html/concepts/RemoteLaunching.html 2009-10-26 21:32:20 UTC (rev 2353)
@@ -16,7 +16,7 @@
<body>
<h2 class="style1">Launching Applications Remotely</h2>
-<p>C/C++ or Python programs may be launched remotely, on a Nokia Internet Tablet.
+<p>C/C++ or Python programs may be launched remotely, on a Maemo device.
You may only run or debug remotely when the project's current configuration
refers to an ARMEL target. </p>
<p>ESbox will either <em>copy the program</em> to the device or <em>mount
Modified: branches/work_Andre/org.maemo.esbox.help/html/context_help/esbox_dialogs_help.xml
===================================================================
--- branches/work_Andre/org.maemo.esbox.help/html/context_help/esbox_dialogs_help.xml 2009-10-23 20:39:37 UTC (rev 2352)
+++ branches/work_Andre/org.maemo.esbox.help/html/context_help/esbox_dialogs_help.xml 2009-10-26 21:32:20 UTC (rev 2353)
@@ -194,7 +194,7 @@
<!-- PLUGIN: org.maemo.mica.maemosdk.flasher -->
<context id="wizard_flash_images_to_device" >
- <description>Flash Images such as new rootstraps and kernels to the Nokia Internet Tablet.</description>
+ <description>Flash Images such as new rootstraps and kernels to the Maemo device.</description>
<topic label="Flash Images to Device" href="html/tasks/UsingFlahserWizard.html" />
</context>
Modified: branches/work_Andre/org.maemo.esbox.help/html/tasks/DebianPackage.html
===================================================================
--- branches/work_Andre/org.maemo.esbox.help/html/tasks/DebianPackage.html 2009-10-23 20:39:37 UTC (rev 2352)
+++ branches/work_Andre/org.maemo.esbox.help/html/tasks/DebianPackage.html 2009-10-26 21:32:20 UTC (rev 2353)
@@ -23,7 +23,7 @@
<p>
ESbox provides
features to generate, deploy and install Debian .deb packages for your
-application (C/C++ or Python) on an Internet Tablet.
+application (C/C++ or Python) on a Maemo device.
See <a href="http://www.debian.org/doc/FAQ/ch-pkg_basics.en.html">this page</a>
for details about Debian packaging.
@@ -45,8 +45,8 @@
<h3 class="style1">Create Debian Package</h3>
<p>
-You can create Debian packages for the Internet Tablet Application
-Manager. This provides an easy way to import user applications to the Internet Tablet.
+You can create Debian packages for Maemo Application
+Manager. This provides an easy way to import user applications to the Maemo device.
To execute the Create Debian Package command:</p>
<ol>
@@ -86,7 +86,7 @@
<p>ESbox allows you to deploy and install the generated .deb package.</p>
<p>You may choose to create the package in this step, or re-install a previously generated package.</p>
-<p>To install your application on any target, including Internet Tablets:</p>
+<p>To install your application on any target, including Maemo devices:</p>
<ol>
Modified: branches/work_Andre/org.maemo.esbox.help/html/tasks/ProfilingMaemoApplications.html
===================================================================
--- branches/work_Andre/org.maemo.esbox.help/html/tasks/ProfilingMaemoApplications.html 2009-10-23 20:39:37 UTC (rev 2352)
+++ branches/work_Andre/org.maemo.esbox.help/html/tasks/ProfilingMaemoApplications.html 2009-10-26 21:32:20 UTC (rev 2353)
@@ -69,7 +69,7 @@
OProfile is a system-wide profiler for Linux systems and can profile all running code.
It consists of a kernel driver and a daemon for collecting sample data, and several
post-profiling tools for turning data into information. OProfile is supported for ARM/Linux. It's
- executed on the Internet Tablet in order to obtain a high quality of profiling information. ESbox
+ executed on the Maemo device in order to obtain a high quality of profiling information. ESbox
uses ssh to remotely execute OProfile and collect profiling information. So, it's necessary to
properly install the application (OProfile installation information can be found
<a href="http://maemo.org/development/tools/doc/chinook/oprofile/">here</a>.).
Modified: branches/work_Andre/org.maemo.esbox.help/html/tasks/UsingTargetContextMenus.html
===================================================================
--- branches/work_Andre/org.maemo.esbox.help/html/tasks/UsingTargetContextMenus.html 2009-10-23 20:39:37 UTC (rev 2352)
+++ branches/work_Andre/org.maemo.esbox.help/html/tasks/UsingTargetContextMenus.html 2009-10-26 21:32:20 UTC (rev 2353)
@@ -26,7 +26,7 @@
<p>The <strong>Configure...</strong> option on RSE connections will let you
edit the IP address and user name used for the device. This is an
especially convenient shortcut for reconfiguring the address
-for connections like <em>Nokia Internet Tablet (user-configured)</em>
+for connections like <em>Maemo device (user-configured)</em>
if its address is controlled by DHCP and changes often.
</p>
Modified: branches/work_Andre/org.maemo.esbox.help/html/tasks/ValidatingPackages.html
===================================================================
--- branches/work_Andre/org.maemo.esbox.help/html/tasks/ValidatingPackages.html 2009-10-23 20:39:37 UTC (rev 2352)
+++ branches/work_Andre/org.maemo.esbox.help/html/tasks/ValidatingPackages.html 2009-10-26 21:32:20 UTC (rev 2353)
@@ -17,7 +17,7 @@
</p>
<p>You may configure multiple projects at once and select which targets to update.
Repositories like Maemo Extras will be automatically added as needed.</p>
-<p><b>NOTE:</b> to install software to a Nokia Internet Tablet, you will need root access.
+<p><b>NOTE:</b> to install software to a Maemo device, you will need root access.
Root access is not needed for Scratchbox targets.</p>
<p>To validate installed packages:</p>
<ol>
Modified: branches/work_Andre/org.maemo.esbox.maemosdk.core/src/org/maemo/esbox/internal/api/maemosdk/core/tools/AfSbInitMaemoLauncherAdapter.java
===================================================================
--- branches/work_Andre/org.maemo.esbox.maemosdk.core/src/org/maemo/esbox/internal/api/maemosdk/core/tools/AfSbInitMaemoLauncherAdapter.java 2009-10-23 20:39:37 UTC (rev 2352)
+++ branches/work_Andre/org.maemo.esbox.maemosdk.core/src/org/maemo/esbox/internal/api/maemosdk/core/tools/AfSbInitMaemoLauncherAdapter.java 2009-10-26 21:32:20 UTC (rev 2353)
@@ -414,7 +414,7 @@
.getProcesses(
new ProcessFilterCmdLineRegexp(".*/"
+ "(" + MAEMO_LAUNCHER_APP +
- "|" + HILDON_DESKTOP_APP + ")\\b"));
+ "|" + HILDON_DESKTOP_APP + ")\\b.*"));
return runningProcesses;
}
Modified: branches/work_Andre/org.maemo.esbox.maemosdk.ui/src/org/maemo/esbox/internal/api/maemosdk/ui/preferences/BuildMachinePreferencePage.java
===================================================================
--- branches/work_Andre/org.maemo.esbox.maemosdk.ui/src/org/maemo/esbox/internal/api/maemosdk/ui/preferences/BuildMachinePreferencePage.java 2009-10-23 20:39:37 UTC (rev 2352)
+++ branches/work_Andre/org.maemo.esbox.maemosdk.ui/src/org/maemo/esbox/internal/api/maemosdk/ui/preferences/BuildMachinePreferencePage.java 2009-10-26 21:32:20 UTC (rev 2353)
@@ -754,13 +754,21 @@
monitor.beginTask("Launching machine...", 2);
if (controller.isMachineRunning()) {
- DialogUtils.showWarningDialog(shell, "Already Running",
- "This machine is already running.");
- return;
+ boolean restart = DialogUtils.showQuestionDialog(
+ shell, "Already Running",
+ "This machine is already running. Would you like to restart it?",
+ "Restart", "Leave alone");
+ if (!restart)
+ return;
+
+ MachineManager.getInstance().releaseMachine(
+ machineToLaunch, new SubProgressMonitor(monitor, 1));
+ if (monitor.isCanceled())
+ return;
+ } else {
+ shutDownMachinesBeforeSwitchingTo(machineToLaunch);
}
-
- shutDownMachinesBeforeSwitchingTo(machineToLaunch);
-
+
monitor.worked(1);
if (monitor.isCanceled())
return;
Modified: branches/work_Andre/org.maemo.esbox.maemosdk.ui/src/org/maemo/esbox/internal/api/maemosdk/ui/preferences/ValidateMachineRunner.java
===================================================================
--- branches/work_Andre/org.maemo.esbox.maemosdk.ui/src/org/maemo/esbox/internal/api/maemosdk/ui/preferences/ValidateMachineRunner.java 2009-10-23 20:39:37 UTC (rev 2352)
+++ branches/work_Andre/org.maemo.esbox.maemosdk.ui/src/org/maemo/esbox/internal/api/maemosdk/ui/preferences/ValidateMachineRunner.java 2009-10-26 21:32:20 UTC (rev 2353)
@@ -12,12 +12,14 @@
package org.maemo.esbox.internal.api.maemosdk.ui.preferences;
import java.io.File;
+import java.io.IOException;
import java.io.OutputStream;
import java.lang.reflect.InvocationTargetException;
import java.text.MessageFormat;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
+import java.util.Map;
import org.eclipse.core.filesystem.EFS;
import org.eclipse.core.filesystem.IFileInfo;
@@ -32,12 +34,14 @@
import org.eclipse.core.runtime.SubProgressMonitor;
import org.eclipse.jface.operation.IRunnableWithProgress;
import org.maemo.esbox.internal.maemosdk.ui.UIActivator;
+import org.maemo.mica.common.core.HostUtils;
import org.maemo.mica.common.core.MicaCanceledException;
import org.maemo.mica.common.core.MicaException;
import org.maemo.mica.common.core.Policy;
import org.maemo.mica.common.core.filesystem.ISharedFilesystemProvider;
import org.maemo.mica.common.core.filesystem.ISharedFolder;
import org.maemo.mica.common.core.filesystem.SharedFolderManager;
+import org.maemo.mica.common.core.filesystem.SharedFolderState;
import org.maemo.mica.common.core.machine.IMachine;
import org.maemo.mica.common.core.machine.MachineRegistry;
import org.maemo.mica.common.core.machine.MachineUtils;
@@ -196,7 +200,7 @@
IPath workspaceRoot = ResourcesPlugin.getWorkspace().getRoot().getLocation();
IPath remoteWorkspace = machine.getFileSystemMapping().convertHostToTargetPath(workspaceRoot);
if (remoteWorkspace == null) {
- warn("Could not access the workspace root on the build machine.\n\nThis will usually complicate new project creation, but it is allowed.\n\nPlace the workspace somewhere under one of your shares for best results.");
+ warn("Could not access the workspace root on the build machine.\n\nThis will force new projects to be created outside the workspace, but it is allowed.\n\nPlace the workspace somewhere under one of your shares for best results.");
}
monitor.worked(1);
@@ -218,45 +222,97 @@
return true;
List<ISharedFolder> sharedFolders = sharedFilesystemProvider.getSharedFolders();
- monitor.beginTask("", sharedFolders.size() + 1);
+ if (sharedFolders.size() == 0) {
+ warn("No shared folders are defined or available\nfor the machine... typically this won't work very well.");
+ return true;
+ }
+
+ monitor.beginTask("", 2 + sharedFolders.size());
+
step(monitor, "Checking shared folders");
// ping them all
- IStatus status = SharedFolderManager.getInstance().validateShares(
- MachineRegistry.getInstance().getLocalMachine(), machine,
+ SharedFolderState state = SharedFolderManager.getInstance().analyzeSharedFolderState(
+ MachineRegistry.getInstance().getLocalMachine(), machine,
+ sharedFolders,
new SubProgressMonitor(monitor, 1));
+
+ boolean reported = false;
- if (status.getSeverity() == IStatus.WARNING)
- reporter.log(status);
- else if (status.getSeverity() == IStatus.ERROR) {
- reporter.log(status);
- return false;
+ for (Map.Entry<ISharedFolder, IStatus> entry : state.getSharedFolderStatuses().entrySet()) {
+ IStatus status = entry.getValue();
+ if (!status.isOK()) {
+ if (!reported) {
+ reporter.logInfo("Current problems:");
+ reported = true;
+ }
+ reporter.log(createReportableFolderStatus(entry.getKey(), status));
+ }
}
+ // now validate
+ reporter.logInfo("(Re-)mounting shares...");
+ SharedFolderState newState = SharedFolderManager.getInstance().mountShares(
+ state, new SubProgressMonitor(monitor, 1));
+
boolean succeeded = true;
- if (sharedFolders.size() == 0) {
- warn("No shared folders are defined or available\nfor the machine... typically this won't work very well.");
- succeeded = false;
+
+ reporter.logInfo("Testing shares:");
+ for (Map.Entry<ISharedFolder, IStatus> entry : newState.getSharedFolderStatuses().entrySet()) {
+ ISharedFolder sharedFolder = entry.getKey();
+ IStatus status = entry.getValue();
+ boolean isShareOk = status.getSeverity() != IStatus.ERROR;
+ succeeded &= isShareOk;
+
+ if (!status.isOK()) {
+ IStatus newStatus = createReportableFolderStatus(sharedFolder,
+ status);
+ reporter.log(newStatus);
+ }
+
+ if (isShareOk) {
+ if (sharedFolder.isHostProvidedShare())
+ succeeded &= testSharedFolderWriting(new SubProgressMonitor(monitor, 1), sharedFolder);
+ else
+ succeeded &= testSharedFolderReading(new SubProgressMonitor(monitor, 1), sharedFolder);
+ }
}
- for (ISharedFolder share : sharedFolders) {
- succeeded &= testSharedFolder(new SubProgressMonitor(monitor, 1), share);
- }
+
monitor.done();
return succeeded;
}
- private boolean testSharedFolder(IProgressMonitor monitor, ISharedFolder share) {
+ private IStatus createReportableFolderStatus(ISharedFolder sharedFolder,
+ IStatus status) {
+ IStatus newStatus;
+ if (status.isOK())
+ newStatus = UIActivator.createStatus(
+ status.getSeverity(),
+ sharedFolder.toString() + ": OK");
+ else
+ newStatus = UIActivator.createStatus(
+ status.getSeverity(),
+ sharedFolder.toString(),
+ new CoreException(status));
+ return newStatus;
+ }
+
+ /**
+ * Test writes from the local side to the target.
+ * @param monitor
+ * @param share
+ * @return
+ */
+ private boolean testSharedFolderWriting(IProgressMonitor monitor, ISharedFolder share) {
IPath shared = share.getSharePath();
IPath mounted = share.getMountPath();
// check the shared folder
monitor.beginTask("", 5);
- step(monitor, "Checking " + shared + " -> " + mounted);
+ step(monitor, "Checking writes in " + shared + " -> " + mounted);
- // look at the actual shared folder ("local" from the POV of who provides the share)
- IFileStore shareProviderStore = share.isHostProvidedShare()
- ? EFS.getLocalFileSystem().getStore(shared) : machine.getFileSystemAccess().getFileStore(shared);
-
+ // look at the actual shared folder
+ IFileStore shareProviderStore = EFS.getLocalFileSystem().getStore(shared);
// check
boolean fileExists = checkFileExists(new SubProgressMonitor(monitor, 1), shareProviderStore);
if (!fileExists) {
@@ -269,8 +325,8 @@
// work with a file inside the share
shareProviderStore = shareProviderStore.getChild("__testfile.txt");
IPath shareUserFilePath = mounted.append("__testfile.txt");
- IFileStore shareUserStore = share.isHostProvidedShare() ? machine.getFileSystemAccess().getFileStore(
- shareUserFilePath) : EFS.getLocalFileSystem().getStore(shareUserFilePath);
+ IFileStore shareUserStore = machine.getFileSystemAccess().getFileStore(
+ shareUserFilePath);
monitor.worked(1);
if (monitor.isCanceled())
return false;
@@ -313,30 +369,32 @@
if (monitor.isCanceled())
return false;
- // wait a little while for samba to notice, or else it looks like the file doesn't exist (:p !!!)
- int sleepLeft = 1000 * 10;
+ // it can take a little while for samba to notice, or else it looks like the file doesn't exist (:p !!!)
+ long deadline = System.currentTimeMillis() + 1000 * 30;
do {
- shareUserStore = share.isHostProvidedShare()
- ? machine.getFileSystemAccess().getFileStore(shareUserFilePath)
- : EFS.getLocalFileSystem().getStore(shareUserFilePath);
-
+ // Samba has horrible syncing, esp. on OS X
+ if (HostUtils.isOSX() || !HostUtils.isWindows()) {
+ try {
+ Runtime.getRuntime().exec("sync");
+ } catch (IOException e) {
+ }
+ }
+
+ shareUserStore = machine.getFileSystemAccess().getFileStore(shareUserFilePath);
+
fileExists = checkFileExists(new SubProgressMonitor(monitor, 1), shareUserStore);
if (!fileExists) {
try {
Thread.sleep(1000);
- sleepLeft -= 1000;
} catch (InterruptedException e1) {
}
}
- } while (!fileExists && sleepLeft > 0);
+ } while (!fileExists && deadline > System.currentTimeMillis());
if (!fileExists) {
fail("Could not access {0} over SSH filesystem.\n\n"+
- "If the share is mounted, then this file should be visible "
- +"since we created it on the sharing machine "
- +"and this location is assumed to be shared at {1}. \n \n"+
- "Make sure the host and target paths match, and that a different share "
- +"is not already mounted there.",
+ "This location is assumed to be visible locally at {1}. \n \n"+
+ "Make sure the share is really mounted and functional.",
shareUserStore, shareProviderStore);
return false;
}
@@ -361,19 +419,79 @@
return true;
}
+
+ /**
+ * Test reads from the share into the host.
+ * @param monitor
+ * @param share
+ * @return
+ */
+ private boolean testSharedFolderReading(IProgressMonitor monitor, ISharedFolder share) {
+ IPath shared = share.getSharePath();
+ IPath mounted = share.getMountPath();
+
+ // check the shared folder
+ monitor.beginTask("", 2);
+ step(monitor, "Checking reads in " + shared + " -> " + mounted);
+
+ // look at the actual shared folder
+ IFileStore shareProviderStore = machine.getFileSystemAccess().getFileStore(shared);
+
+ // check
+ boolean fileExists = checkFileExists(new SubProgressMonitor(monitor, 1), shareProviderStore);
+ if (!fileExists) {
+ fail("The share ''{0}'' does not exist on the share host ({1}).\n\nPlease create it or modify the Shared Folders preferences.",
+ shared.toPortableString(),
+ share.isHostProvidedShare() ? "this machine" : machine.getName());
+ return false;
+ }
+
+ IFileStore[] childStores;
+ try {
+ childStores = shareProviderStore.childStores(0, new SubProgressMonitor(monitor, 1));
+ } catch (CoreException e2) {
+ fail("Failed to fetch children from '{0}':\n{1}", shareProviderStore, e2.getStatus());
+ return false;
+ }
+
+ for (IFileStore child : childStores) {
+ IFileInfo info = child.fetchInfo();
+ if (info.exists() && !info.getAttribute(EFS.ATTRIBUTE_SYMLINK)) {
+ IFileStore local = EFS.getLocalFileSystem().getStore(
+ mounted.append(child.getName()));
+ IFileInfo localInfo = local.fetchInfo();
+
+ if (!localInfo.exists()
+ || (!info.isDirectory() && localInfo.getLength() != info.getLength())) {
+ fail("Did not match attributes of remote '{0}' with local '{1}'. Be sure the share is really mounted and configured correctly.",
+ child, local);
+ }
+ }
+ monitor.worked(0);
+ if (monitor.isCanceled())
+ return false;
+ }
+
+ monitor.worked(1);
+ monitor.done();
+
+ return true;
+ }
+
private boolean checkFileExists(IProgressMonitor monitor,
IFileStore remoteStore) {
boolean fileExists = false;
- // HACK: localfile implementation can be buggy and have a long cache life
- if (remoteStore.toURI().getScheme().equals("file")) {
- File file = new File(remoteStore.toURI().getPath());
- fileExists = file.exists();
- return fileExists;
- }
try {
IFileInfo info = remoteStore.fetchInfo(0, new SubProgressMonitor(monitor, 1));
fileExists = info.exists();
+
+ // HACK: localfile implementation can be buggy and have a long cache life
+ if (remoteStore.toURI().getScheme().equals("file")) {
+ File file = new File(remoteStore.toURI().getPath());
+ fileExists |= file.exists();
+ }
+
} catch (CoreException e) {
fail(e.getStatus().getMessage());
fileExists = false;
@@ -429,6 +547,8 @@
RefreshSDKManagerJob job = new RefreshSDKManagerJob(machine, true);
job.run(monitor);
+ monitor.setTaskName("");
+
List<ISDKTarget> sdktargetsList = new ArrayList<ISDKTarget>();
for (ISDK sdk : job.getSDKs()) {
sdktargetsList.addAll(Arrays.asList(sdk.getSDKTargets()));
Modified: branches/work_Andre/org.maemo.esbox.product/plugin.properties
===================================================================
--- branches/work_Andre/org.maemo.esbox.product/plugin.properties 2009-10-23 20:39:37 UTC (rev 2352)
+++ branches/work_Andre/org.maemo.esbox.product/plugin.properties 2009-10-26 21:32:20 UTC (rev 2353)
@@ -30,5 +30,5 @@
productIntroTitle = Welcome to ESbox 2.0.0 (Integration)!
productIntroBrandingText = ESbox
-introDescription-overview = ESbox is a product that helps you develop applications for the Maemo platform on Scratchbox Apophis and on the Nokia Internet Tablet.
+introDescription-overview = ESbox is a product that helps you develop applications for the Maemo platform on Scratchbox Apophis and on Maemo devices.
introDescription-tutorials = Learn how to be productive using ESbox by completing end-to-end tutorials that will guide you along the way.
Modified: branches/work_Andre/org.maemo.esbox.scratchbox.core/src/org/maemo/esbox/internal/api/scratchbox/core/execEnv/MaemoExecutionEnvironmentHandler.java
===================================================================
--- branches/work_Andre/org.maemo.esbox.scratchbox.core/src/org/maemo/esbox/internal/api/scratchbox/core/execEnv/MaemoExecutionEnvironmentHandler.java 2009-10-23 20:39:37 UTC (rev 2352)
+++ branches/work_Andre/org.maemo.esbox.scratchbox.core/src/org/maemo/esbox/internal/api/scratchbox/core/execEnv/MaemoExecutionEnvironmentHandler.java 2009-10-26 21:32:20 UTC (rev 2353)
@@ -70,7 +70,9 @@
final String message =
wrongOneRunning ?
"The Maemo Application Framework is running for a different target.\n\nThis may or may not be valid for the new application.\n\nSwitch to the new target (" + sdkTarget.getName() + ")?"
- : "The Maemo Application Framework does not seem to be running.\n\nLaunch it now?";
+ : wrongXRunning ?
+ "The Maemo Application Framework is running in an X server with an inappropriate configuration.\n\nRestart it now?"
+ : "The Maemo Application Framework does not seem to be running.\n\nLaunch it now?";
Display.getDefault().syncExec(new Runnable() {
public void run() {
Modified: branches/work_Andre/org.maemo.esbox.vm.vmware/src/org/maemo/esbox/internal/vm/vmware/ui/wizards/MaemoSDKVMSelectionWizardPage.java
===================================================================
--- branches/work_Andre/org.maemo.esbox.vm.vmware/src/org/maemo/esbox/internal/vm/vmware/ui/wizards/MaemoSDKVMSelectionWizardPage.java 2009-10-23 20:39:37 UTC (rev 2352)
+++ branches/work_Andre/org.maemo.esbox.vm.vmware/src/org/maemo/esbox/internal/vm/vmware/ui/wizards/MaemoSDKVMSelectionWizardPage.java 2009-10-26 21:32:20 UTC (rev 2353)
@@ -538,6 +538,10 @@
if(uncompressToolPage.shouldShowThisPage(fileToDownload.isMultipart(), fileToDownload.getSize()))
return uncompressToolPage;
}else{
+ validateTextFields();
+ if (!isPageComplete()){
+ return null;
+ }
File f = new File(installData.getPathOfExistentVM());
if(uncompressToolPage.shouldShowThisPage(DefaultVMZipExtractor.isMultipartFile(installData.getPathOfExistentVM()), f.length()))
return uncompressToolPage;
More information about the Esbox-commits
mailing list