changing a bit of how monitoring works

This commit is contained in:
benfry
2011-01-29 03:53:11 +00:00
parent 77f61677ad
commit 66d983d057
5 changed files with 72 additions and 44 deletions
+10
View File
@@ -2060,6 +2060,16 @@ public abstract class Editor extends JFrame implements RunnerListener {
public void stopIndeterminate() {
status.stopIndeterminate();
}
public void statusHalt() {
// stop called by someone else
}
public boolean isHalted() {
return false;
}
// . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
+8 -2
View File
@@ -30,10 +30,16 @@ public interface RunnerListener {
public void statusError(Exception exception);
public void statusNotice(String message);
//
//
public void startIndeterminate();
public void stopIndeterminate();
//
public void statusHalt();
public boolean isHalted();
}
@@ -96,21 +96,21 @@ class AndroidBuild extends JavaBuild {
// PApplet.saveStream(new File(libsFolder, "processing-core.jar"), input);
Base.copyFile(coreZipFile, new File(libsFolder, "processing-core.jar"));
try {
// Copy any imported libraries or code folder contents to the project
copyLibraries(libsFolder, assetsFolder);
copyCodeFolder(libsFolder);
// try {
// Copy any imported libraries or code folder contents to the project
copyLibraries(libsFolder, assetsFolder);
copyCodeFolder(libsFolder);
// Copy the data folder, if one exists, to the 'assets' folder of the
// project
final File sketchDataFolder = sketch.getDataFolder();
if (sketchDataFolder.exists()) {
Base.copyDir(sketchDataFolder, assetsFolder);
}
} catch (final IOException e) {
e.printStackTrace();
throw new SketchException(e.getMessage());
// Copy the data folder, if one exists, to the 'assets' folder of the
// project
final File sketchDataFolder = sketch.getDataFolder();
if (sketchDataFolder.exists()) {
Base.copyDir(sketchDataFolder, assetsFolder);
}
// } catch (final IOException e) {
// e.printStackTrace();
// throw new SketchException(e.getMessage());
// }
}
// } catch (final SketchException e) {
// editor.statusError(e);
@@ -328,10 +328,11 @@ public class AndroidEditor extends JavaEditor implements DeviceListener {
}
private Device waitForDevice(final Future<Device> deviceFuture,
final IndeterminateProgressMonitor monitor) throws MonitorCanceled {
private Device waitForDevice(Future<Device> deviceFuture, RunnerListener listener) throws MonitorCanceled {
// final IndeterminateProgressMonitor monitor)
for (int i = 0; i < 120; i++) {
if (monitor.isCanceled()) {
// if (monitor.isCanceled()) {
if (listener.isHalted()) {
deviceFuture.cancel(true);
throw new MonitorCanceled();
}
@@ -360,13 +361,13 @@ public class AndroidEditor extends JavaEditor implements DeviceListener {
private void runSketchOnDevice(final Future<Device> deviceFuture,
final String target,
RunnerListener listener) throws MonitorCanceled {
final IndeterminateProgressMonitor monitor =
new IndeterminateProgressMonitor(this,
"Building and launching...",
"Creating project...");
// final IndeterminateProgressMonitor monitor =
// new IndeterminateProgressMonitor(this,
// "Building and launching...",
// "Creating project...");
listener.startIndeterminate();
listener.statusNotice("Building and launching...");
listener.statusNotice("Creating project...");
build = new AndroidBuild(sketch, amode.getSDK());
try {
@@ -380,10 +381,11 @@ public class AndroidEditor extends JavaEditor implements DeviceListener {
statusError(e);
}
try {
if (monitor.isCanceled()) {
throw new MonitorCanceled();
}
monitor.setNote("Building...");
// if (monitor.isCanceled()) {
// throw new MonitorCanceled();
// }
// monitor.setNote("Building...");
listener.statusNotice("Building...");
try {
if (!build.antBuild(target)) {
return;
@@ -392,11 +394,13 @@ public class AndroidEditor extends JavaEditor implements DeviceListener {
statusError(se);
}
if (monitor.isCanceled()) {
throw new MonitorCanceled();
}
monitor.setNote("Waiting for device to become available...");
final Device device = waitForDevice(deviceFuture, monitor);
// if (monitor.isCanceled()) {
// throw new MonitorCanceled();
// }
// monitor.setNote("Waiting for device to become available...");
listener.statusNotice("Waiting for device to become available...");
// final Device device = waitForDevice(deviceFuture, monitor);
final Device device = waitForDevice(deviceFuture, listener);
if (device == null || !device.isAlive()) {
statusError("Device killed or disconnected.");
return;
@@ -404,19 +408,22 @@ public class AndroidEditor extends JavaEditor implements DeviceListener {
device.addListener(this);
if (monitor.isCanceled()) {
if (listener.isHalted()) {
// if (monitor.isCanceled()) {
throw new MonitorCanceled();
}
monitor.setNote("Installing sketch on " + device.getId());
// monitor.setNote("Installing sketch on " + device.getId());
statusNotice("Installing sketch on " + device.getId());
if (!device.installApp(build.getPathForAPK(target), this)) {
statusError("Device killed or disconnected.");
return;
}
if (monitor.isCanceled()) {
throw new MonitorCanceled();
}
monitor.setNote("Starting sketch on " + device.getId());
// if (monitor.isCanceled()) {
// throw new MonitorCanceled();
// }
// monitor.setNote("Starting sketch on " + device.getId());
listener.statusNotice("Starting sketch on " + device.getId());
if (startSketch(device)) {
statusNotice("Sketch launched on the "
+ (device.isEmulator() ? "emulator" : "phone") + ".");
@@ -429,7 +436,8 @@ public class AndroidEditor extends JavaEditor implements DeviceListener {
build.cleanup();
}
} finally {
monitor.close();
// monitor.close();
listener.stopIndeterminate();
}
}
+9 -5
View File
@@ -103,6 +103,15 @@ _ test code folder on android
_ test libraries on android
_ test opengl on android
ugliness
_ inside AndroidPreprocessor
_ processing.mode.java.JavaBuild.scrubComments(sketch.getCode(0).getProgram())
_ PApplet.match(scrubbed, processing.mode.java.JavaBuild.SIZE_REGEX);
_ remove PdeKeyListener, roll it into the Java InputHandler for JEditTextArea
_ remove any reference to 'Editor' from Sketch.java
_ or is that excessive, since Document is in there, etc
_ Build does the heavy lifting anyway...
_ don't make examples read-only
_ just do them from psk files
@@ -113,11 +122,6 @@ _ make sure that android is working again
_ the build is broken! the build is broken!
_ http://code.google.com/p/processing/issues/detail?id=519
_ remove PdeKeyListener, roll it into the Java InputHandler for JEditTextArea
_ remove any reference to 'Editor' from Sketch.java
_ or is that excessive, since Document is in there, etc
_ Build does the heavy lifting anyway...
_ export is broken in 0192
_ http://code.google.com/p/processing/issues/detail?id=487