mirror of
https://github.com/processing/processing4.git
synced 2026-06-16 04:26:26 +02:00
changing a bit of how monitoring works
This commit is contained in:
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
// . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
Reference in New Issue
Block a user