diff options
author | Rüdiger Timm <rt@openoffice.org> | 2004-10-22 12:49:20 +0000 |
---|---|---|
committer | Rüdiger Timm <rt@openoffice.org> | 2004-10-22 12:49:20 +0000 |
commit | 4a788b71039eb5c81ca83b84ded7db54fa3b9f35 (patch) | |
tree | 203748be8e80864e5f0ac30177fb2cdba98f8202 /scripting/examples/beanshell | |
parent | 594f565720f2ba28b8ea8db79c961c9aeb3190dd (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.bsh | 79 |
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(); |