2004/10/13 09:51:55 toconnor 1.2.22.4: #i30252# ensure highlight example works 2004/09/14 15:27:52 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:52 dfoster 1.2.22.2: #i32502# 2004/07/23 09:55:23 dfoster 1.2.22.1: #i30606# Add descriptions to code in examples.
116 lines
3.5 KiB
JavaScript
116 lines
3.5 KiB
JavaScript
importClass(Packages.com.sun.star.uno.UnoRuntime);
|
|
importClass(Packages.com.sun.star.lang.XMultiComponentFactory);
|
|
importClass(Packages.com.sun.star.awt.XDialogProvider);
|
|
importClass(Packages.com.sun.star.awt.XDialog);
|
|
importClass(Packages.com.sun.star.uno.Exception);
|
|
importClass(Packages.com.sun.star.script.provider.XScriptContext);
|
|
|
|
importClass(java.lang.Thread);
|
|
importClass(java.lang.System);
|
|
|
|
function tryLoadingLibrary( xmcf, context, name )
|
|
{
|
|
try
|
|
{
|
|
obj = xmcf.createInstanceWithContext(
|
|
"com.sun.star.script.Application" + name + "LibraryContainer",
|
|
context.getComponentContext());
|
|
|
|
xLibraryContainer = UnoRuntime.queryInterface(XLibraryContainer, obj);
|
|
|
|
System.err.println("Got XLibraryContainer");
|
|
|
|
serviceObj = context.getComponentContext().getValueByName(
|
|
"/singletons/com.sun.star.util.theMacroExpander");
|
|
|
|
xme = AnyConverter.toObject(new Type(XMacroExpander), 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 (e)
|
|
{
|
|
System.err.println("Got an exception loading lib: " + e.getMessage());
|
|
return false;
|
|
}
|
|
return true;
|
|
}
|
|
|
|
function getDialogProvider()
|
|
{
|
|
// UNO awt components of the Highlight dialog
|
|
//get the XMultiServiceFactory
|
|
xmcf = XSCRIPTCONTEXT.getComponentContext().getServiceManager();
|
|
|
|
args = new Array;
|
|
//get the XDocument from the context
|
|
args[0] = XSCRIPTCONTEXT.getDocument();
|
|
|
|
//try to create the DialogProvider
|
|
try {
|
|
obj = xmcf.createInstanceWithArgumentsAndContext(
|
|
"com.sun.star.awt.DialogProvider", args,
|
|
XSCRIPTCONTEXT.getComponentContext());
|
|
}
|
|
catch (e) {
|
|
System.err.println("Error getting DialogProvider object");
|
|
return null;
|
|
}
|
|
|
|
return UnoRuntime.queryInterface(XDialogProvider, obj);
|
|
}
|
|
|
|
//get the DialogProvider
|
|
xDialogProvider = getDialogProvider();
|
|
|
|
if (xDialogProvider != null)
|
|
{
|
|
//try to create the Highlight dialog (found in the ScriptBinding library)
|
|
try
|
|
{
|
|
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");
|
|
}
|
|
else
|
|
{
|
|
// try to create the Highlight dialog (found in the
|
|
// ScriptBindingLibrary)
|
|
findDialog = xDialogProvider.createDialog("vnd.sun.star.script:" +
|
|
"ScriptBindingLibrary.Highlight?location=application");
|
|
}
|
|
}
|
|
|
|
//launch the dialog
|
|
if ( findDialog != null )
|
|
{
|
|
findDialog.execute();
|
|
}
|
|
}
|
|
catch (e) {
|
|
System.err.println("Got exception on first creating dialog: " +
|
|
e.getMessage());
|
|
}
|
|
}
|