summaryrefslogtreecommitdiff
path: root/scripting/examples/beanshell
diff options
context:
space:
mode:
authorDuncan Foster <dfoster@openoffice.org>2003-03-25 09:41:01 +0000
committerDuncan Foster <dfoster@openoffice.org>2003-03-25 09:41:01 +0000
commit9a5d88733783a459360463581672c0e17d9b851e (patch)
tree8271dab206a65a91e26a1f12bbb73eba7eedcadb /scripting/examples/beanshell
parent4c23178cb43d9505ecf5ff5220d05f329f4de015 (diff)
Added Beanshell example script to provide the word count of selected text
in a Writer document.
Diffstat (limited to 'scripting/examples/beanshell')
-rwxr-xr-xscripting/examples/beanshell/WordCount/parcel-descriptor.xml16
-rw-r--r--scripting/examples/beanshell/WordCount/wordcount.bsh55
2 files changed, 71 insertions, 0 deletions
diff --git a/scripting/examples/beanshell/WordCount/parcel-descriptor.xml b/scripting/examples/beanshell/WordCount/parcel-descriptor.xml
new file mode 100755
index 000000000000..232d4fce9b0c
--- /dev/null
+++ b/scripting/examples/beanshell/WordCount/parcel-descriptor.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<parcel language="BeanShell" xmlns:parcel="scripting.dtd">
+
+ <script language="BeanShell">
+ <locale lang="en">
+ <displayname value="Word Count"/>
+ <description>
+ Provides a word count of the selected text in A Writer document.
+ </description>
+ </locale>
+ <functionname value="wordcount.bsh"/>
+ <logicalname value="WordCount.BeanShell"/>
+ </script>
+
+</parcel>
diff --git a/scripting/examples/beanshell/WordCount/wordcount.bsh b/scripting/examples/beanshell/WordCount/wordcount.bsh
new file mode 100644
index 000000000000..014ad89e3dff
--- /dev/null
+++ b/scripting/examples/beanshell/WordCount/wordcount.bsh
@@ -0,0 +1,55 @@
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.frame.XModel;
+import com.sun.star.view.XSelectionSupplier;
+import com.sun.star.container.XIndexAccess;
+import com.sun.star.text.XText;
+import com.sun.star.text.XTextRange;
+import drafts.com.sun.star.script.framework.runtime.XScriptContext;
+
+void doDisplay(numWords) {
+ wordsLabel = new JLabel("Word count = " + numWords);
+ closeButton = new JButton("Close");
+ frame = new JFrame("Word Count");
+ closeButton.addActionListener(new ActionListener() {
+ actionPerformed(ActionEvent e) {
+ frame.setVisible(false);
+ }
+ });
+ frame.getContentPane().setLayout(new GridLayout(2,1));
+ frame.getContentPane().add(wordsLabel);
+ frame.getContentPane().add(closeButton);
+ frame.pack();
+ frame.setVisible(true);
+}
+
+int wordcount() {
+
+ result = 0;
+
+ count = xIndexAccess.getCount();
+ for(i=0;i<count;i++) {
+ xTextRange = (XTextRange)
+ UnoRuntime.queryInterface(XTextRange.class, xIndexAccess.getByIndex(i));
+ System.out.println("string: "+xTextRange.getString());
+ strTok = new StringTokenizer(xTextRange.getString());
+ result += strTok.countTokens();
+ }
+
+ doDisplay(result);
+ return result;
+}
+
+// The context variable is of type XScriptContext and is available to
+// all BeanShell scripts executed by the Script Framework
+xModel = (XModel)
+ UnoRuntime.queryInterface(XModel.class, context.getDocument());
+//the writer controller impl supports the css.view.XSelectionSupplier interface
+xSelectionSupplier = (XSelectionSupplier)
+ UnoRuntime.queryInterface(XSelectionSupplier.class, xModel.getCurrentController());
+//see section 7.5.1 of developers' guide
+xIndexAccess = (XIndexAccess)
+ UnoRuntime.queryInterface(XIndexAccess.class, xSelectionSupplier.getSelection());
+
+count = wordcount();
+System.out.println("count = "+count);
+return 0;