summaryrefslogtreecommitdiffstats
path: root/doc/en/java.docbook
diff options
context:
space:
mode:
Diffstat (limited to 'doc/en/java.docbook')
-rw-r--r--doc/en/java.docbook88
1 files changed, 88 insertions, 0 deletions
diff --git a/doc/en/java.docbook b/doc/en/java.docbook
new file mode 100644
index 0000000..dcaa287
--- /dev/null
+++ b/doc/en/java.docbook
@@ -0,0 +1,88 @@
+<sect1 id="javascript_console">
+ <title>JavaScript Console</title>
+ <indexterm>
+ <primary>JavaScript Console</primary>
+ </indexterm>
+ <para>
+ <keycombo action="simul">&Alt;&Ctrl;
+ <keycap>j</keycap></keycombo> opens the JavaScript console.
+ (only available if libkjsembed is present at compile- and
+ runtime)</para>
+ <para>The JavaScript console is an interface to the embedded
+ JS-Interpreter which can be used for amusement or
+ testing.</para>
+ </sect1>
+
+ <sect1 id="javascript_interface">
+ <title>JavaScript interface</title>
+ <indexterm>
+ <primary>JavaScript interface</primary>
+ </indexterm>
+ <para>
+ <emphasis role="bold">Warning:</emphasis> The JS-Support is
+ quite stable, and you can not lose any data by using it. However,
+ your scripts may not work with future versions of
+ &krusader;, as the JS-Support is changing.</para>
+ <tip>
+ <para>Please
+ <link linkend="help_krusader">upload your favorite JavaScript
+ Extensions</link> so that they become available for the
+ &krusader; community. Thanks!</para>
+ </tip>
+ <para>JavaScript applications usually have 2 files
+ <filename>foo.js</filename>and
+ <filename>foo.ui</filename>. They will be installed in
+ <filename>~/.kde/share/apps/krusader/js/</filename>, a
+ user action with a "%_Script" action will start the
+ Javascripting. Currently we have 2 JS demos
+ <filename>root-mount-extension.tar.bz2</filename> and
+ <filename>js-demo-calc.tar.bz2</filename> that will be more
+ explanatory.</para>
+ <para>When a script is executed, the script doesn't know its
+ origin (or maybe there is a way to do so that we do not know of)
+ and all relative paths are relative to the current working-dir.
+ But this dir is (normally) not the one where the script is
+ located but the current dir of the active Panel of Krusader.
+ This needs to stay like this. However, for referencing
+ additional files like .ui (Userinterface, exported by
+ &Qt;'s Designer) one needs the path of the script.
+ The alternative where absolute paths are used is more than
+ unhandy. For this reason the Variable "scriptDir" was
+ introduced. If a Script wants to load a &GUI; from a
+ .ui-file this can be done this way:
+ <emphasis>var ui = Factory.loadui( scriptDir + 'filename.ui'
+ );</emphasis> I recommend using Dialog as a base when designing
+ &GUI;s to be used with JS. Execute the dialog with:
+ <emphasis>ui.exec();</emphasis> The elements of the
+ &GUI; may be accessed in the following way:
+ <emphasis>ui.child('widgetName')</emphasis></para>
+ <para>Currently only the objects 'Krusader' and
+ 'PanelManager' are exposed C++ objects without a logic
+ behind them. They can be inspected using the JS-Console and the
+ functions 'properties()', 'children()' and 'slots()'. The
+ children can be accessed with the function
+ 'child("nameOfChild")' with returns an object itself. Currently, the Variable scriptDir is more useful. Following the root-mount
+ extension it is already possible to create advanced
+ &GUI;s for command line tools</para>
+ <para>You can play around with 'Krusader.setCaption("Hey Ho,
+ Let's go!");', 'Krusader.children();',
+ 'Krusader.child("help").slots();',
+ 'alert(Krusader.properties())' or
+ 'Krusader.child("help").show();'.... In addition, a new
+ placeholder for the &useractions-lnk;, %_Script()%,
+ will execute an external file.</para>
+ <para>NOTE: The object 'Krusader' will change. We have not made
+ decisions about the JS-interface yet (at the time of the
+ 1.70.0-release). Any ideas are welcome. Plase use our
+ &kruforum-url; for feedback.</para>
+ <para>The JavaScript-support is based on
+ &kjsembed-url;. Some examples which show the power
+ of this library can be found
+ <ulink url="http://xmelegance.org/kjsembed/examples/index.html">
+ here</ulink>. Support for all of KDE's ground-laying technologies
+ such as DCOP or KParts is provided. You can even load whole
+ GUIs from .ui-files, created with &Qt;'s Designer.
+ An example extension making use of this can be found
+ <ulink url="http://www.krusader.org/phpBB/viewtopic.php?p=4832#4832">
+ here</ulink>.</para>
+</sect1>