summaryrefslogtreecommitdiff
path: root/scripting/examples/beanshell
diff options
context:
space:
mode:
authorRĂ¼diger Timm <rt@openoffice.org>2004-10-22 12:49:20 +0000
committerRĂ¼diger Timm <rt@openoffice.org>2004-10-22 12:49:20 +0000
commit4a788b71039eb5c81ca83b84ded7db54fa3b9f35 (patch)
tree203748be8e80864e5f0ac30177fb2cdba98f8202 /scripting/examples/beanshell
parent594f565720f2ba28b8ea8db79c961c9aeb3190dd (diff)
INTEGRATION: CWS scriptingf6 (1.2.22); FILE MERGED
2004/09/16 14:26:45 dfoster 1.2.22.4: #i33670# Rename the context variable to XSCRIPTCONTEXT 2004/09/14 15:27:51 dfoster 1.2.22.3: #i30252# Fix the Highlight examples so that (a) they try to load the library if they can't get the dialog on first attempt, (b) the dialog contains bindings to the BeanShell handler code. 2004/08/03 16:12:49 dfoster 1.2.22.2: #i32502# 2004/07/23 09:55:17 dfoster 1.2.22.1: #i30606# Add descriptions to code in examples.
Diffstat (limited to 'scripting/examples/beanshell')
-rw-r--r--scripting/examples/beanshell/Highlight/ShowDialog.bsh79
1 files changed, 73 insertions, 6 deletions
diff --git a/scripting/examples/beanshell/Highlight/ShowDialog.bsh b/scripting/examples/beanshell/Highlight/ShowDialog.bsh
index 27a7bcc8a8ac..d8c62d3d710e 100644
--- a/scripting/examples/beanshell/Highlight/ShowDialog.bsh
+++ b/scripting/examples/beanshell/Highlight/ShowDialog.bsh
@@ -1,5 +1,7 @@
+// this script serves as an example of how to launch a Basic Dialog
+// from a script
import com.sun.star.uno.UnoRuntime;
-import drafts.com.sun.star.script.provider.XScriptContext;
+import com.sun.star.script.provider.XScriptContext;
import com.sun.star.lang.XMultiComponentFactory;
import com.sun.star.lang.EventObject;
import com.sun.star.uno.Type;
@@ -10,22 +12,69 @@ import com.sun.star.script.XLibraryContainer;
import com.sun.star.awt.*;
import com.sun.star.util.*;
-// UNO awt components of the Highlight dialog
+boolean tryLoadingLibrary( xmcf, context, name )
+{
+ try
+ {
+ obj = xmcf.createInstanceWithContext(
+ "com.sun.star.script.Application" + name + "LibraryContainer",
+ context.getComponentContext());
+
+ xLibraryContainer = (XLibraryContainer)
+ UnoRuntime.queryInterface(XLibraryContainer.class, obj);
+
+ System.err.println("Got XLibraryContainer");
+
+ serviceObj = context.getComponentContext().getValueByName(
+ "/singletons/com.sun.star.util.theMacroExpander");
+
+ xme = (XMacroExpander) AnyConverter.toObject(
+ new Type(XMacroExpander.class), serviceObj);
+
+ bootstrapName = "bootstraprc";
+ if (System.getProperty("os.name").startsWith("Windows"))
+ {
+ bootstrapName = "bootstrap.ini";
+ }
+
+ libURL = xme.expandMacros(
+ "${$SYSBINDIR/" + bootstrapName + "::BaseInstallation}" +
+ "/share/basic/ScriptBindingLibrary/" +
+ name.toLowerCase() + ".xlb/");
+
+ System.err.println("libURL is: " + libURL);
+
+ xLibraryContainer.createLibraryLink(
+ "ScriptBindingLibrary", libURL, false);
+
+ System.err.println("liblink created");
+
+ }
+ catch (com.sun.star.uno.Exception e)
+ {
+ System.err.println("Got an exception loading lib: " + e.getMessage());
+ return false;
+ }
+ return true;
+}
+
+// get the XMultiComponentFactory from the XSCRIPTCONTEXT
XMultiComponentFactory xmcf =
- context.getComponentContext().getServiceManager();
+ XSCRIPTCONTEXT.getComponentContext().getServiceManager();
Object[] args = new Object[1];
-args[0] = context.getDocument();
+args[0] = XSCRIPTCONTEXT.getDocument();
Object obj;
try {
+ // try to create an instance of the DialogProvider
obj = xmcf.createInstanceWithArgumentsAndContext(
"com.sun.star.awt.DialogProvider", args,
- context.getComponentContext());
+ XSCRIPTCONTEXT.getComponentContext());
/*
obj = xmcf.createInstanceWithContext(
"com.sun.star.awt.DialogProvider",
- context.getComponentContext());
+ XSCRIPTCONTEXT.getComponentContext());
*/
}
catch (com.sun.star.uno.Exception e) {
@@ -33,20 +82,38 @@ catch (com.sun.star.uno.Exception e) {
return 0;
}
+// get the XDialogProvider interface from the object created above
XDialogProvider xDialogProvider = (XDialogProvider)
UnoRuntime.queryInterface(XDialogProvider.class, obj);
System.err.println("Got DialogProvider, now get dialog");
try {
+ // try to create the Highlight dialog (found in the ScriptBindingLibrary)
findDialog = xDialogProvider.createDialog("vnd.sun.star.script:" +
"ScriptBindingLibrary.Highlight?location=application");
+ if( findDialog == null )
+ {
+ if (tryLoadingLibrary(xmcf, XSCRIPTCONTEXT, "Dialog") == false ||
+ tryLoadingLibrary(xmcf, XSCRIPTCONTEXT, "Script") == false)
+ {
+ System.err.println("Error loading ScriptBindingLibrary");
+ return 0;
+ }
+ else
+ {
+ // try to create the Highlight dialog (found in the ScriptBindingLibrary)
+ findDialog = xDialogProvider.createDialog("vnd.sun.star.script:" +
+ "ScriptBindingLibrary.Highlight?location=application");
+ }
+ }
}
catch (java.lang.Exception e) {
System.err.println("Got exception on first creating dialog: " +
e.getMessage());
}
+// execute the dialog in a new thread (so that this script can finish)
Thread t = new Thread() {
public void run() {
findDialog.execute();