INTEGRATION: CWS odbmacros2 (1.9.90); FILE MERGED

2008/01/02 14:42:12 fs 1.9.90.1: #i49133# allow script providers to be created with an XScriptInvocationContext instead of a mere TDOC URL
This commit is contained in:
Kurt Zenker
2008-03-06 15:12:09 +00:00
parent a0b8de11cb
commit b7029f8f61
2 changed files with 23 additions and 42 deletions

View File

@@ -4,9 +4,9 @@
* *
* $RCSfile: ScriptContext.java,v $ * $RCSfile: ScriptContext.java,v $
* *
* $Revision: 1.9 $ * $Revision: 1.10 $
* *
* last change: $Author: rt $ $Date: 2005-09-09 02:01:04 $ * last change: $Author: kz $ $Date: 2008-03-06 16:09:59 $
* *
* The Contents of this file are made available subject to * The Contents of this file are made available subject to
* the terms of GNU Lesser General Public License Version 2.1. * the terms of GNU Lesser General Public License Version 2.1.
@@ -34,25 +34,16 @@
************************************************************************/ ************************************************************************/
package com.sun.star.script.framework.provider; package com.sun.star.script.framework.provider;
import com.sun.star.document.XScriptInvocationContext;
import com.sun.star.frame.XModel; import com.sun.star.frame.XModel;
import com.sun.star.frame.XDesktop; import com.sun.star.frame.XDesktop;
import com.sun.star.uno.XComponentContext; import com.sun.star.uno.XComponentContext;
import com.sun.star.lang.XMultiComponentFactory; import com.sun.star.lang.XMultiComponentFactory;
import com.sun.star.beans.XPropertySet;
import com.sun.star.beans.UnknownPropertyException;
import com.sun.star.beans.PropertyVetoException;
import com.sun.star.beans.XPropertyChangeListener;
import com.sun.star.beans.XVetoableChangeListener;
import com.sun.star.lang.WrappedTargetException;
import com.sun.star.lang.IllegalArgumentException;
import com.sun.star.uno.UnoRuntime; import com.sun.star.uno.UnoRuntime;
import com.sun.star.uno.AnyConverter;
import com.sun.star.beans.PropertyAttribute; import com.sun.star.beans.PropertyAttribute;
import com.sun.star.lib.uno.helper.PropertySet; import com.sun.star.lib.uno.helper.PropertySet;
import com.sun.star.uno.Type; import com.sun.star.uno.Type;
import java.util.HashMap;
import com.sun.star.script.provider.XScriptContext; import com.sun.star.script.provider.XScriptContext;
import com.sun.star.script.framework.log.LogUtils; import com.sun.star.script.framework.log.LogUtils;
@@ -82,17 +73,19 @@ public class ScriptContext extends PropertySet implements XScriptContext
public XModel m_xModel = null; public XModel m_xModel = null;
public XScriptInvocationContext m_xInvocationContext = null;
public String m_sDocURI = null; public String m_sDocURI = null;
public XDesktop m_xDeskTop = null; public XDesktop m_xDeskTop = null;
public Integer m_iStorageID = null; public Integer m_iStorageID = null;
public XComponentContext m_xComponentContext = null; public XComponentContext m_xComponentContext = null;
public ScriptContext( XComponentContext xmComponentContext, public ScriptContext( XComponentContext xmComponentContext,
XDesktop xDesktop, XModel xModel) XDesktop xDesktop, XModel xModel, XScriptInvocationContext xInvocContext)
{ {
this.m_xDeskTop = xDesktop; this.m_xDeskTop = xDesktop;
this.m_xComponentContext = xmComponentContext; this.m_xComponentContext = xmComponentContext;
this.m_xModel = xModel; this.m_xModel = xModel;
this.m_xInvocationContext = xInvocContext;
if ( m_xModel != null ) if ( m_xModel != null )
{ {
@@ -108,7 +101,7 @@ public class ScriptContext extends PropertySet implements XScriptContext
(short)(PropertyAttribute.MAYBEVOID | PropertyAttribute.TRANSIENT), "m_xComponentContext"); (short)(PropertyAttribute.MAYBEVOID | PropertyAttribute.TRANSIENT), "m_xComponentContext");
} }
public static XScriptContext createContext( XModel xModel, public static XScriptContext createContext( XModel xModel, XScriptInvocationContext xInvocContext,
XComponentContext xCtxt, XMultiComponentFactory xMCF) XComponentContext xCtxt, XMultiComponentFactory xMCF)
{ {
XScriptContext sc = null; XScriptContext sc = null;
@@ -124,7 +117,7 @@ public class ScriptContext extends PropertySet implements XScriptContext
UnoRuntime.queryInterface(XDesktop.class, xInterface); UnoRuntime.queryInterface(XDesktop.class, xInterface);
if ( xModel != null ) if ( xModel != null )
{ {
sc = new ScriptContext(xCtxt, xDesktop, xModel); sc = new ScriptContext(xCtxt, xDesktop, xModel, xInvocContext);
} }
else else
{ {
@@ -150,6 +143,11 @@ public class ScriptContext extends PropertySet implements XScriptContext
return m_xModel; return m_xModel;
} }
public XScriptInvocationContext getInvocationContext()
{
return m_xInvocationContext;
}
/** /**
Obtain the desktop reference on which the script can operate Obtain the desktop reference on which the script can operate

View File

@@ -4,9 +4,9 @@
* *
* $RCSfile: ScriptProviderForBeanShell.java,v $ * $RCSfile: ScriptProviderForBeanShell.java,v $
* *
* $Revision: 1.9 $ * $Revision: 1.10 $
* *
* last change: $Author: rt $ $Date: 2005-09-09 02:02:35 $ * last change: $Author: kz $ $Date: 2008-03-06 16:12:09 $
* *
* The Contents of this file are made available subject to * The Contents of this file are made available subject to
* the terms of GNU Lesser General Public License Version 2.1. * the terms of GNU Lesser General Public License Version 2.1.
@@ -34,44 +34,26 @@
************************************************************************/ ************************************************************************/
package com.sun.star.script.framework.provider.beanshell; package com.sun.star.script.framework.provider.beanshell;
import com.sun.star.uno.UnoRuntime;
import com.sun.star.uno.XComponentContext; import com.sun.star.uno.XComponentContext;
import com.sun.star.lang.XMultiComponentFactory; import com.sun.star.lang.XMultiComponentFactory;
import com.sun.star.lang.XMultiServiceFactory; import com.sun.star.lang.XMultiServiceFactory;
import com.sun.star.lang.XSingleServiceFactory; import com.sun.star.lang.XSingleServiceFactory;
import com.sun.star.registry.XRegistryKey; import com.sun.star.registry.XRegistryKey;
import com.sun.star.comp.loader.FactoryHelper; import com.sun.star.comp.loader.FactoryHelper;
import com.sun.star.lang.XTypeProvider;
import com.sun.star.lang.XServiceInfo;
import com.sun.star.lang.XInitialization;
import com.sun.star.frame.XModel; import com.sun.star.frame.XModel;
import com.sun.star.uno.AnyConverter;
import com.sun.star.uno.Type; import com.sun.star.uno.Type;
import com.sun.star.uno.Any; import com.sun.star.uno.Any;
import com.sun.star.beans.XPropertySet;
import com.sun.star.lang.IllegalArgumentException;
import com.sun.star.lang.WrappedTargetException;
import com.sun.star.reflection.InvocationTargetException; import com.sun.star.reflection.InvocationTargetException;
import com.sun.star.script.CannotConvertException;
import java.util.Properties;
import java.util.StringTokenizer; import java.util.StringTokenizer;
import java.util.Vector;
import java.util.Map;
import java.io.*; import java.io.*;
import java.net.URL; import java.net.URL;
import java.net.MalformedURLException;
import java.net.URLDecoder;
import bsh.BshClassManager;
import bsh.Interpreter; import bsh.Interpreter;
import com.sun.star.script.provider.XScriptContext; import com.sun.star.document.XScriptInvocationContext;
import com.sun.star.script.provider.XScriptProvider;
import com.sun.star.script.provider.XScript; import com.sun.star.script.provider.XScript;
import com.sun.star.script.provider.ScriptErrorRaisedException; import com.sun.star.script.provider.ScriptErrorRaisedException;
import com.sun.star.script.provider.ScriptExceptionRaisedException; import com.sun.star.script.provider.ScriptExceptionRaisedException;
@@ -87,8 +69,6 @@ public class ScriptProviderForBeanShell
{ {
public static class _ScriptProviderForBeanShell extends ScriptProvider public static class _ScriptProviderForBeanShell extends ScriptProvider
{ {
private static ScriptEditorForBeanShell myScriptEditorForBeanShell;
public _ScriptProviderForBeanShell(XComponentContext ctx) public _ScriptProviderForBeanShell(XComponentContext ctx)
{ {
super (ctx, "BeanShell"); super (ctx, "BeanShell");
@@ -102,7 +82,7 @@ public class ScriptProviderForBeanShell
try try
{ {
scriptData = getScriptData( scriptURI ); scriptData = getScriptData( scriptURI );
ScriptImpl script = new ScriptImpl( m_xContext, scriptData, m_xModel ); ScriptImpl script = new ScriptImpl( m_xContext, scriptData, m_xModel, m_xInvocContext );
return script; return script;
} }
catch ( com.sun.star.uno.RuntimeException re ) catch ( com.sun.star.uno.RuntimeException re )
@@ -195,12 +175,15 @@ class ScriptImpl implements XScript
private XComponentContext m_xContext; private XComponentContext m_xContext;
private XMultiComponentFactory m_xMultiComponentFactory; private XMultiComponentFactory m_xMultiComponentFactory;
private XModel m_xModel; private XModel m_xModel;
private XScriptInvocationContext m_xInvocContext;
ScriptImpl( XComponentContext ctx, ScriptMetaData metaData, XModel xModel ) throws com.sun.star.uno.RuntimeException ScriptImpl( XComponentContext ctx, ScriptMetaData metaData, XModel xModel,
XScriptInvocationContext xContext ) throws com.sun.star.uno.RuntimeException
{ {
this.metaData = metaData; this.metaData = metaData;
this.m_xContext = ctx; this.m_xContext = ctx;
this.m_xModel = xModel; this.m_xModel = xModel;
this.m_xInvocContext = xContext;
try try
{ {
@@ -289,7 +272,7 @@ class ScriptImpl implements XScript
interpreter.setClassLoader(cl); interpreter.setClassLoader(cl);
try { try {
interpreter.set("XSCRIPTCONTEXT", interpreter.set("XSCRIPTCONTEXT",
ScriptContext.createContext(m_xModel, ScriptContext.createContext(m_xModel, m_xInvocContext,
m_xContext, m_xMultiComponentFactory)); m_xContext, m_xMultiComponentFactory));
interpreter.set("ARGUMENTS", aParams); interpreter.set("ARGUMENTS", aParams);
@@ -370,7 +353,7 @@ class ScriptImpl implements XScript
{ {
editor = ScriptEditorForBeanShell.getEditor(); editor = ScriptEditorForBeanShell.getEditor();
editor.edit( editor.edit(
ScriptContext.createContext(m_xModel, ScriptContext.createContext(m_xModel, m_xInvocContext,
m_xContext, m_xMultiComponentFactory), metaData ); m_xContext, m_xMultiComponentFactory), metaData );
editor = ScriptEditorForBeanShell.getEditor( sourceUrl ); editor = ScriptEditorForBeanShell.getEditor( sourceUrl );
} }