From dbddec591a5d5763b65395474dfddcfcb94bdaaa Mon Sep 17 00:00:00 2001 From: fjenett Date: Sat, 4 Jun 2011 07:51:35 +0000 Subject: [PATCH] server start/stop now generates status messages; updated template to remove use of focus ring from canvas element; added a first example --- .../mode/javascript/JavaScriptEditor.java | 15 +++-- .../mode/javascript/JavaScriptMode.java | 1 + .../colorFinder/colorFinder.pde | 58 +++++++++++++++++++ .../colorFinder/jsinterface.js | 40 +++++++++++++ 4 files changed, 106 insertions(+), 8 deletions(-) create mode 100644 javascript/examples/Environment/DocumentObjectModel/colorFinder/colorFinder.pde create mode 100644 javascript/examples/Environment/DocumentObjectModel/colorFinder/jsinterface.js diff --git a/app/src/processing/mode/javascript/JavaScriptEditor.java b/app/src/processing/mode/javascript/JavaScriptEditor.java index 44d23a2b4..8eada7954 100644 --- a/app/src/processing/mode/javascript/JavaScriptEditor.java +++ b/app/src/processing/mode/javascript/JavaScriptEditor.java @@ -295,16 +295,16 @@ public class JavaScriptEditor extends Editor { jsServer = new JavaScriptServer( serverRoot ); jsServer.start(); - System.out.println( "Server started." ); while ( !jsServer.isRunning() ) {} String location = localDomain + ":" + jsServer.getPort() + "/"; - System.out.println( location ); + + statusNotice( "Server started: " + location ); - if ( !System.getProperty("os.name").startsWith("Mac OS") ) + //if ( !System.getProperty("os.name").startsWith("Mac OS") ) Base.openURL( location ); - else + /*else { try { String scpt = "osascript -e "+ @@ -314,12 +314,11 @@ public class JavaScriptEditor extends Editor } catch ( Exception e ) { Base.openURL( location ); } - } + }*/ } else if ( jsServer.isRunning() ) { - System.out.println( "Server running, reload your browser window." ); - System.out.println( localDomain + ":" + jsServer.getPort() + "/" ); + statusNotice( "Server running ("+localDomain + ":" + jsServer.getPort() +"), reload your browser window." ); } toolbar.activate(JavaScriptToolbar.RUN); } @@ -332,7 +331,7 @@ public class JavaScriptEditor extends Editor if ( jsServer != null && jsServer.isRunning() ) jsServer.shutDown(); - System.out.println("Server stopped."); + statusNotice("Server stopped."); toolbar.deactivate(JavaScriptToolbar.RUN); } diff --git a/app/src/processing/mode/javascript/JavaScriptMode.java b/app/src/processing/mode/javascript/JavaScriptMode.java index 5deb2c102..27117e404 100644 --- a/app/src/processing/mode/javascript/JavaScriptMode.java +++ b/app/src/processing/mode/javascript/JavaScriptMode.java @@ -105,6 +105,7 @@ public class JavaScriptMode extends Mode File jExamples = jMode.getContentFile("examples"); return new File[] { + new File(examplesFolder, "Environment"), new File(jExamples, "Basics"), new File(jExamples, "Topics"), new File(jExamples, "3D"), diff --git a/javascript/examples/Environment/DocumentObjectModel/colorFinder/colorFinder.pde b/javascript/examples/Environment/DocumentObjectModel/colorFinder/colorFinder.pde new file mode 100644 index 000000000..4e11d1218 --- /dev/null +++ b/javascript/examples/Environment/DocumentObjectModel/colorFinder/colorFinder.pde @@ -0,0 +1,58 @@ +/** + *

This example shows you how to manipulate the DOM of a + * HTML page that this sketch is placed in.

+ * + *

Click and drag inside the sketch area to change the + * text color of the page

+ */ + +color mColor = 255; + +void setup () +{ + size( 600, 100 ); +} + +void draw () +{ + background( mColor ); +} + +void mouseDragged () +{ + colorMode(HSB); + mColor = color( map(mouseX, 0,width, 0,255), 200, map(mouseY, 0, height, 255, 0) ); + colorMode(RGB); +} + +void mouseReleased () +{ + if ( js ) + { + js.setColor(red(mColor), green(mColor), blue(mColor)); + } +} + +/** + * Define an interface that will act as glue between your sketch + * and "real" JavaScript running in your page. The name does not matter. + * + * The interface must define any functions that you intend to call + * from inside your sketch. + */ +interface JavaScriptInterface +{ + void setColor( int r, int g, int b ); +} + +/* A variable to hold whatever implements the interface. */ +JavaScriptInterface js; + +/** + * A setter function to be called from outside (JavaScript) + * to set the variable above. + */ +void setInterfaceLink ( JavaScriptInterface jsin ) +{ + js = jsin; +} diff --git a/javascript/examples/Environment/DocumentObjectModel/colorFinder/jsinterface.js b/javascript/examples/Environment/DocumentObjectModel/colorFinder/jsinterface.js new file mode 100644 index 000000000..27e161672 --- /dev/null +++ b/javascript/examples/Environment/DocumentObjectModel/colorFinder/jsinterface.js @@ -0,0 +1,40 @@ +/** + * This code will be embedded into your HTML page as "normal" + * JavaScript code with a