diff options
author | Duncan Foster <dfoster@openoffice.org> | 2003-03-25 09:41:01 +0000 |
---|---|---|
committer | Duncan Foster <dfoster@openoffice.org> | 2003-03-25 09:41:01 +0000 |
commit | 9a5d88733783a459360463581672c0e17d9b851e (patch) | |
tree | 8271dab206a65a91e26a1f12bbb73eba7eedcadb /scripting/examples/beanshell | |
parent | 4c23178cb43d9505ecf5ff5220d05f329f4de015 (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-x | scripting/examples/beanshell/WordCount/parcel-descriptor.xml | 16 | ||||
-rw-r--r-- | scripting/examples/beanshell/WordCount/wordcount.bsh | 55 |
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; |