Kaydet (Commit) 4a788b71 authored tarafından Rüdiger Timm's avatar Rüdiger Timm

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.
üst 594f5657
// 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();
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment