You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
123 lines
4.0 KiB
123 lines
4.0 KiB
Scriptpad Sample
|
|
|
|
* Introduction
|
|
|
|
Scriptpad is a notepad like editor to open/edit/save and run
|
|
script (JavaScript) files. This sample demonstrates the use of
|
|
javax.script (JSR-223) API and JavaScript engine that is bundled
|
|
with JDK 6.
|
|
|
|
Scriptpad sample demonstrates how to use Javascript to use Java
|
|
classes and objects to perform various tasks such as to modify,
|
|
customize Swing GUI or to connect to a running application and
|
|
monitor it using JMX (Java Management Extensions) API.
|
|
|
|
* How to run Scriptpad?
|
|
|
|
Scriptpad can be run with the following command:
|
|
|
|
java -jar ./build/scriptpad.jar
|
|
|
|
(be sure to use the correct version of java). You can
|
|
open/edit/save scripts using menu items under "File" menu.
|
|
To run currently edited script, you can use "Tools->Run" menu.
|
|
|
|
For example, you may enter
|
|
|
|
alert("hello, world");
|
|
|
|
in the editor and run the same with "Tools->Run" menu.
|
|
You will see an alert box with the message "hello, world".
|
|
|
|
In addition to being a simple script editor/runner, scriptpad
|
|
can be used to connect to a JMX MBean server ("Tools->JMX Connect"
|
|
menu). User can specify JMX hostname and port. After connecting,
|
|
user can use "monitoring and management" script functions defined
|
|
in "mm.js" (see below).
|
|
|
|
* Scriptpad Sources
|
|
|
|
com.sun.demo.scriptpad.Main class is the entry point of this
|
|
sample. This class creates ScriptEngine and evaluates few
|
|
JavaScript "files" -- which are stored as resources (please
|
|
refer to src/resources/*.js). Actual code for the scriptpad's
|
|
main functionality lives in these JavaScript files.
|
|
|
|
1. conc.js
|
|
-- simple concurrency utilities for JavaScript
|
|
|
|
2. gui.js
|
|
-- simple GUI utilities for JavaScript
|
|
|
|
3. mm.js
|
|
-- Monitoring and Management utilities for JavaScript
|
|
|
|
4. scriptpad.js
|
|
-- This creates main "notepad"-like GUI for open/edit/save
|
|
and run script files
|
|
|
|
5. Main.js
|
|
-- This script file can be used under "jrunscript" tool.
|
|
jrunscript is an experimental tool shipped with JDK (under
|
|
$JDK_HOME/bin directory). The scriptpad application can be
|
|
run by the following commands:
|
|
|
|
cd ./src/resources
|
|
$JDK_HOME/bin/jrunscript -f Main.js -f -
|
|
|
|
|
|
* Extending Scriptpad:
|
|
|
|
It is possible to extend scriptpad using scripts. There is a global
|
|
object called "application". This object has 2 fields and a method.
|
|
|
|
Fields of the application object:
|
|
|
|
frame -> JFrame of the scriptpad
|
|
editor -> editor pane of the scriptpad
|
|
|
|
Method of the application object:
|
|
|
|
addTool -> adds a menu item under "Tools" menu
|
|
|
|
Example script to add "Tools->Hello" menu item:
|
|
|
|
application.addTool("Hello",
|
|
function() { alert("hello, world"); });
|
|
|
|
After running the above script, you can click Tools->Hello menu item
|
|
and you'll see an alert box.
|
|
|
|
Scriptpad customization may also be done by defining a file named
|
|
"scriptpad.js" under your home directory,. If this file is found,
|
|
scriptpad loads this file just after initializating everything.
|
|
In your initialization file, you can additional script functions
|
|
by "load" function.
|
|
|
|
* Script Samples:
|
|
|
|
On clicking the menu items under "Examples" menu, scriptpad shows
|
|
built-in examples in the editor. Also, there are few script samples
|
|
under the ./src/scripts directory.
|
|
|
|
* Monitoring and Management with Scriptpad:
|
|
|
|
(1) Start the application with the JMX agent - here's an example of
|
|
how the Java2D demo is started
|
|
|
|
java -Dcom.sun.management.jmxremote.port=1090 \
|
|
-Dcom.sun.management.jmxremote.ssl=false \
|
|
-Dcom.sun.management.jmxremote.authenticate=false \
|
|
-jar $JDK_HOME/demo/jfc/Font2DTest/Font2DTest.jar
|
|
|
|
(2) Start scriptpad and click on "Tools->JMX Connect" menu.
|
|
In the prompt, enter "localhost:1090" to connect to the above
|
|
program.
|
|
|
|
After connecting to a MBeanServer (using "Tools->JMX Connect"),
|
|
you can run any script that uses functions defined in "mm.js".
|
|
For example, it is possible to load and run management scripts that
|
|
are part of JConsole script shell plugin under the directory:
|
|
|
|
$JDK_HOME/demo/scripting/jconsole-plugin/src/scripts
|