INTEGRATION: CWS scriptingf5 (1.4.8); FILE MERGED
2004/04/02 10:25:34 dfoster 1.4.8.4: #i27294# Fixed problem with security check. Removed printStackTrace calls in java code. Fixed problems with create/delete of parcels/scripts in document storage 2004/02/26 17:47:00 toconnor 1.4.8.3: #i25859# - Fix problems dispatching script URLs when no document is open 2004/02/25 18:20:31 npower 1.4.8.2: #i25272# Added a container implementation ( new com/sun/star/script/framework/container defined ) to better seperate Browse functionality from io and script registry. 2004/02/12 08:38:57 npower 1.4.8.1: #i23681# , #ii23682# Initial modification for support of create/delete of scripts support for script organiser
This commit is contained in:
@@ -2,9 +2,9 @@
|
|||||||
*
|
*
|
||||||
* $RCSfile: ScriptProvider.java,v $
|
* $RCSfile: ScriptProvider.java,v $
|
||||||
*
|
*
|
||||||
* $Revision: 1.4 $
|
* $Revision: 1.5 $
|
||||||
*
|
*
|
||||||
* last change: $Author: rt $ $Date: 2004-01-05 13:11:22 $
|
* last change: $Author: svesik $ $Date: 2004-04-19 23:09:47 $
|
||||||
*
|
*
|
||||||
* The Contents of this file are made available subject to the terms of
|
* The Contents of this file are made available subject to the terms of
|
||||||
* either of the following licenses
|
* either of the following licenses
|
||||||
@@ -66,6 +66,9 @@ import com.sun.star.lang.XInitialization;
|
|||||||
import com.sun.star.lang.XTypeProvider;
|
import com.sun.star.lang.XTypeProvider;
|
||||||
import com.sun.star.lang.XServiceInfo;
|
import com.sun.star.lang.XServiceInfo;
|
||||||
import com.sun.star.frame.XModel;
|
import com.sun.star.frame.XModel;
|
||||||
|
|
||||||
|
import com.sun.star.ucb.XFileIdentifierConverter;
|
||||||
|
|
||||||
import com.sun.star.util.XMacroExpander;
|
import com.sun.star.util.XMacroExpander;
|
||||||
|
|
||||||
import com.sun.star.uno.UnoRuntime;
|
import com.sun.star.uno.UnoRuntime;
|
||||||
@@ -74,6 +77,14 @@ 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.beans.XPropertySet;
|
||||||
|
import com.sun.star.beans.XVetoableChangeListener;
|
||||||
|
import com.sun.star.beans.XPropertyChangeListener;
|
||||||
|
import com.sun.star.beans.XPropertySetInfo;
|
||||||
|
import com.sun.star.beans.PropertyAttribute;
|
||||||
|
import com.sun.star.uno.Any;
|
||||||
|
import com.sun.star.uno.Type;
|
||||||
|
import com.sun.star.beans.XIntrospectionAccess;
|
||||||
|
import com.sun.star.script.XInvocation;
|
||||||
|
|
||||||
import com.sun.star.lang.IllegalArgumentException;
|
import com.sun.star.lang.IllegalArgumentException;
|
||||||
import com.sun.star.lang.WrappedTargetException;
|
import com.sun.star.lang.WrappedTargetException;
|
||||||
@@ -87,17 +98,22 @@ import drafts.com.sun.star.script.browse.XBrowseNode;
|
|||||||
import drafts.com.sun.star.script.browse.BrowseNodeTypes;
|
import drafts.com.sun.star.script.browse.BrowseNodeTypes;
|
||||||
|
|
||||||
import com.sun.star.script.framework.log.LogUtils;
|
import com.sun.star.script.framework.log.LogUtils;
|
||||||
import com.sun.star.script.framework.browse.DirBrowseNode;
|
|
||||||
import com.sun.star.script.framework.browse.DocBrowseNode;
|
import com.sun.star.script.framework.container.ScriptMetaData;
|
||||||
import com.sun.star.script.framework.browse.ScriptMetaData;
|
import com.sun.star.script.framework.container.XMLParserFactory;
|
||||||
import com.sun.star.script.framework.browse.XMLParserFactory;
|
import com.sun.star.script.framework.container.ContainerCache;
|
||||||
import com.sun.star.script.framework.provider.ScriptsRegistry;
|
import com.sun.star.script.framework.container.ParcelContainer;
|
||||||
import com.sun.star.script.framework.provider.LocationRegistry;
|
|
||||||
|
import com.sun.star.script.framework.io.XStorageHelper;
|
||||||
|
|
||||||
|
|
||||||
|
import com.sun.star.script.framework.browse.ProviderBrowseNode;
|
||||||
|
import com.sun.star.script.framework.browse.DialogFactory;
|
||||||
|
|
||||||
|
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
public abstract class ScriptProvider
|
public abstract class ScriptProvider
|
||||||
implements XScriptProvider, XBrowseNode,
|
implements XScriptProvider, XBrowseNode, XPropertySet, XInvocation,
|
||||||
XInitialization, XTypeProvider, XServiceInfo
|
XInitialization, XTypeProvider, XServiceInfo
|
||||||
{
|
{
|
||||||
private final String[] __serviceNames = {
|
private final String[] __serviceNames = {
|
||||||
@@ -106,26 +122,32 @@ public abstract class ScriptProvider
|
|||||||
};
|
};
|
||||||
|
|
||||||
public final static String CLASSPATH = "classpath";
|
public final static String CLASSPATH = "classpath";
|
||||||
public static ScriptsRegistry frameWorkRegistry;
|
|
||||||
|
|
||||||
private String language;
|
private String language;
|
||||||
protected XModel m_xModel;
|
|
||||||
protected String m_sPath;
|
|
||||||
protected String m_sSharePath;
|
|
||||||
protected String m_sUserPath;
|
|
||||||
protected XComponentContext m_xContext;
|
protected XComponentContext m_xContext;
|
||||||
protected XMultiComponentFactory m_xMultiComponentFactory;
|
protected XMultiComponentFactory m_xMultiComponentFactory;
|
||||||
protected XPropertySet m_xInvocationContext;
|
protected XPropertySet m_xInvocationContext;
|
||||||
|
|
||||||
|
// proxies to helper objects which implement interfaces
|
||||||
|
private XPropertySet m_xPropertySetProxy;
|
||||||
|
private XInvocation m_xInvocationProxy;
|
||||||
|
// TODO should this be implemented in this class
|
||||||
|
private XBrowseNode m_xBrowseNodeProxy;
|
||||||
|
|
||||||
public ScriptProvider( XComponentContext ctx, String language )
|
public ScriptProvider( XComponentContext ctx, String language )
|
||||||
{
|
{
|
||||||
this.language = language;
|
this.language = language;
|
||||||
__serviceNames[0] += language;
|
__serviceNames[0] += language;
|
||||||
|
|
||||||
LogUtils.DEBUG( "ScriptProvider: constructor - start." );
|
LogUtils.DEBUG( "ScriptProvider: constructor - start. " + language );
|
||||||
|
|
||||||
m_xContext = ctx;
|
m_xContext = ctx;
|
||||||
|
|
||||||
|
// Initialize DialogFactory class in case dialogs are required
|
||||||
|
DialogFactory.createDialogFactory(m_xContext);
|
||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
m_xMultiComponentFactory = m_xContext.getServiceManager();
|
m_xMultiComponentFactory = m_xContext.getServiceManager();
|
||||||
@@ -144,25 +166,11 @@ public abstract class ScriptProvider
|
|||||||
|
|
||||||
XMLParserFactory.setOfficeDTDURL(me.expandMacros(
|
XMLParserFactory.setOfficeDTDURL(me.expandMacros(
|
||||||
"${$SYSBINDIR/bootstraprc::BaseInstallation}/share/dtd/officedocument/1_0/"));
|
"${$SYSBINDIR/bootstraprc::BaseInstallation}/share/dtd/officedocument/1_0/"));
|
||||||
m_sSharePath = PathUtils.getShareURL( m_xContext );
|
|
||||||
m_sUserPath = PathUtils.getUserURL( m_xContext );
|
|
||||||
|
|
||||||
// initialse script registry for this language and user and share
|
|
||||||
synchronized ( ScriptProvider.class )
|
|
||||||
{
|
|
||||||
if ( frameWorkRegistry == null )
|
|
||||||
{
|
|
||||||
frameWorkRegistry = new ScriptsRegistry( m_xContext, m_sUserPath, m_sSharePath );
|
|
||||||
}
|
|
||||||
}
|
|
||||||
LocationRegistry reg = frameWorkRegistry.getLocationRegistry( m_sSharePath, true );
|
|
||||||
reg.addScriptingBrowseNodes( new DirBrowseNode(reg, m_xContext, m_sSharePath, language) );
|
|
||||||
reg = frameWorkRegistry.getLocationRegistry( m_sUserPath, true );
|
|
||||||
reg.addScriptingBrowseNodes( new DirBrowseNode( reg, m_xContext, m_sUserPath, language) );
|
|
||||||
}
|
}
|
||||||
catch ( Exception e )
|
catch ( Exception e )
|
||||||
{
|
{
|
||||||
e.printStackTrace();
|
LogUtils.DEBUG( LogUtils.getTrace( e ) );
|
||||||
throw new com.sun.star.uno.RuntimeException(
|
throw new com.sun.star.uno.RuntimeException(
|
||||||
"Error constructing ScriptProvider: "
|
"Error constructing ScriptProvider: "
|
||||||
+ e.getMessage() );
|
+ e.getMessage() );
|
||||||
@@ -185,21 +193,47 @@ public abstract class ScriptProvider
|
|||||||
new com.sun.star.uno.Type(XPropertySet.class),
|
new com.sun.star.uno.Type(XPropertySet.class),
|
||||||
aArguments[0]);
|
aArguments[0]);
|
||||||
|
|
||||||
m_xModel =
|
XModel xModel =
|
||||||
(XModel) AnyConverter.toObject(
|
(XModel) AnyConverter.toObject(
|
||||||
new com.sun.star.uno.Type(XModel.class),
|
new com.sun.star.uno.Type(XModel.class),
|
||||||
m_xInvocationContext.getPropertyValue(
|
m_xInvocationContext.getPropertyValue(
|
||||||
"SCRIPTING_DOC_REF"));
|
"SCRIPTING_DOC_REF"));
|
||||||
|
XStorageHelper.addNewModel( xModel );
|
||||||
|
ContainerCache cache = new ContainerCache( ScriptContext.createContext( m_xInvocationContext, m_xContext, m_xMultiComponentFactory ) );
|
||||||
|
ParcelContainer parcelContainer = cache.getContainer( language, xModel );
|
||||||
|
|
||||||
|
// TODO should be done for provider, no need to proxy this anymore
|
||||||
|
m_xBrowseNodeProxy = new ProviderBrowseNode( this, parcelContainer );
|
||||||
|
|
||||||
|
m_xInvocationProxy = (XInvocation)UnoRuntime.queryInterface(XInvocation.class, m_xBrowseNodeProxy);
|
||||||
|
m_xPropertySetProxy = (XPropertySet)UnoRuntime.queryInterface(XPropertySet.class, m_xBrowseNodeProxy);
|
||||||
|
|
||||||
LocationRegistry docReg = frameWorkRegistry.getLocationRegistry( m_xModel, true );
|
|
||||||
docReg.addScriptingBrowseNodes( new DocBrowseNode( docReg, m_xContext,m_xModel, language) );
|
|
||||||
}
|
}
|
||||||
else if (AnyConverter.isString(aArguments[0]) == true)
|
else if (AnyConverter.isString(aArguments[0]) == true)
|
||||||
{
|
{
|
||||||
m_sPath = AnyConverter.toString(aArguments[0]);
|
String sPath = AnyConverter.toString(aArguments[0]);
|
||||||
LogUtils.DEBUG("creating DirBrowseNode, path: " + m_sPath);
|
LogUtils.DEBUG("creating Application, path: " + sPath);
|
||||||
LocationRegistry reg = frameWorkRegistry.getLocationRegistry( m_sPath, true );
|
|
||||||
reg.addScriptingBrowseNodes( new DirBrowseNode(reg, m_xContext,m_sPath, language) );
|
|
||||||
|
// TODO m_xInvocationProxy, m_xPropertySetProxy in ctor, otherwise bridge will
|
||||||
|
// have problems as it does some introspection on the XPropertySet
|
||||||
|
// interface ( which is null if initialise is not called
|
||||||
|
|
||||||
|
|
||||||
|
ContainerCache cache = new ContainerCache( ScriptContext.createContext( m_xInvocationContext, m_xContext, m_xMultiComponentFactory ) );
|
||||||
|
// TODO fix up where paths are fixed up
|
||||||
|
// currently path is also fixed up by macro expander
|
||||||
|
ParcelContainer parcelContainer = cache.getContainer( language, sPath );
|
||||||
|
LogUtils.DEBUG("******* CONTAINER retrieved is " + parcelContainer );
|
||||||
|
|
||||||
|
|
||||||
|
// TODO should all be done in this class instead of
|
||||||
|
// deleagation????
|
||||||
|
m_xBrowseNodeProxy = new ProviderBrowseNode( this, parcelContainer );
|
||||||
|
|
||||||
|
m_xInvocationProxy = (XInvocation)UnoRuntime.queryInterface(XInvocation.class, m_xBrowseNodeProxy);
|
||||||
|
m_xPropertySetProxy = (XPropertySet)UnoRuntime.queryInterface(XPropertySet.class, m_xBrowseNodeProxy);
|
||||||
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@@ -209,10 +243,10 @@ public abstract class ScriptProvider
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
LogUtils.DEBUG( "throwing from XInit" );
|
// this is ok, for example when executing a script from the
|
||||||
throw new com.sun.star.uno.RuntimeException(
|
// command line
|
||||||
"Incorrect number of args passed to " +
|
LogUtils.DEBUG( "ScriptProviderFor" + language +
|
||||||
"ScriptProvider.initialize" );
|
" initialized without a context");
|
||||||
}
|
}
|
||||||
LogUtils.DEBUG( "leaving XInit" );
|
LogUtils.DEBUG( "leaving XInit" );
|
||||||
}
|
}
|
||||||
@@ -224,12 +258,14 @@ public abstract class ScriptProvider
|
|||||||
*/
|
*/
|
||||||
public com.sun.star.uno.Type[] getTypes()
|
public com.sun.star.uno.Type[] getTypes()
|
||||||
{
|
{
|
||||||
Type[] retValue = new Type[ 5 ];
|
Type[] retValue = new Type[ 7 ];
|
||||||
retValue[ 0 ] = new Type( XScriptProvider.class );
|
retValue[ 0 ] = new Type( XScriptProvider.class );
|
||||||
retValue[ 1 ] = new Type( XBrowseNode.class );
|
retValue[ 1 ] = new Type( XBrowseNode.class );
|
||||||
retValue[ 2 ] = new Type( XInitialization.class );
|
retValue[ 2 ] = new Type( XInitialization.class );
|
||||||
retValue[ 3 ] = new Type( XTypeProvider.class );
|
retValue[ 3 ] = new Type( XTypeProvider.class );
|
||||||
retValue[ 4 ] = new Type( XServiceInfo.class );
|
retValue[ 4 ] = new Type( XServiceInfo.class );
|
||||||
|
retValue[ 5 ] = new Type( XPropertySet.class );
|
||||||
|
retValue[ 6 ] = new Type( XInvocation.class );
|
||||||
return retValue;
|
return retValue;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -281,49 +317,34 @@ public abstract class ScriptProvider
|
|||||||
return __serviceNames;
|
return __serviceNames;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
public abstract XScript getScript( /*IN*/String scriptURI )
|
public abstract XScript getScript( /*IN*/String scriptURI )
|
||||||
throws com.sun.star.uno.RuntimeException,
|
throws com.sun.star.uno.RuntimeException,
|
||||||
com.sun.star.lang.IllegalArgumentException;
|
com.sun.star.lang.IllegalArgumentException;
|
||||||
|
|
||||||
|
// TODO need to encapsulate this better,
|
||||||
|
// Some factory concept for creating/accessing Editor
|
||||||
|
// How this is passed down or how it is accessable by BrowseNode
|
||||||
|
// implementations needs thinking about
|
||||||
|
// This method is used to determine whether the ScriptProvider
|
||||||
|
// has a ScriptEditor
|
||||||
|
public abstract boolean hasScriptEditor();
|
||||||
|
// TODO see above
|
||||||
|
// This method is used to get the ScriptEditor for this ScriptProvider
|
||||||
|
public abstract ScriptEditor getScriptEditor();
|
||||||
|
|
||||||
|
// TODO should throw appropriate exception
|
||||||
public ScriptMetaData getScriptData( /*IN*/String scriptURI )
|
public ScriptMetaData getScriptData( /*IN*/String scriptURI )
|
||||||
{
|
{
|
||||||
|
|
||||||
ScriptMetaData scriptData = null;
|
ScriptMetaData scriptData = null;
|
||||||
if ( scriptURI.indexOf( "location=document" ) > -1 )
|
ContainerCache cache = new ContainerCache( ScriptContext.createContext( m_xInvocationContext, m_xContext, m_xMultiComponentFactory ) );
|
||||||
{
|
|
||||||
scriptData = (ScriptMetaData)frameWorkRegistry.getScriptData(m_xModel, scriptURI);
|
scriptData = cache.findScript( scriptURI );
|
||||||
}
|
|
||||||
else if ( scriptURI.indexOf( "location=user" ) > -1 )
|
|
||||||
{
|
|
||||||
scriptData = (ScriptMetaData)frameWorkRegistry.getScriptData( m_sUserPath, scriptURI );
|
|
||||||
}
|
|
||||||
else if ( scriptURI.indexOf( "location=share" ) > -1 )
|
|
||||||
{
|
|
||||||
scriptData = (ScriptMetaData)frameWorkRegistry.getScriptData( m_sSharePath,scriptURI );
|
|
||||||
}
|
|
||||||
return scriptData;
|
return scriptData;
|
||||||
}
|
}
|
||||||
private XBrowseNode getBrowseNode()
|
|
||||||
{
|
|
||||||
XBrowseNode nodes = null;
|
|
||||||
Object key = m_xModel;
|
|
||||||
if ( m_xModel == null )
|
|
||||||
{
|
|
||||||
key = m_sPath;
|
|
||||||
}
|
|
||||||
LocationRegistry reg = frameWorkRegistry.getLocationRegistry( key );
|
|
||||||
if ( reg == null )
|
|
||||||
{
|
|
||||||
LogUtils.DEBUG("Cant find registry for " + key );
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
nodes = reg.getBrowseNodeForLanguage( language );
|
|
||||||
}
|
|
||||||
return nodes;
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
// Implementation of XBrowseNode interface
|
// Implementation of XBrowseNode interface
|
||||||
public String getName()
|
public String getName()
|
||||||
@@ -333,24 +354,22 @@ public abstract class ScriptProvider
|
|||||||
|
|
||||||
public XBrowseNode[] getChildNodes()
|
public XBrowseNode[] getChildNodes()
|
||||||
{
|
{
|
||||||
XBrowseNode children = getBrowseNode();
|
if ( m_xBrowseNodeProxy == null )
|
||||||
if ( children == null )
|
|
||||||
{
|
{
|
||||||
LogUtils.DEBUG("No Nodes available ");
|
LogUtils.DEBUG("No Nodes available ");
|
||||||
return new XBrowseNode[0];
|
return new XBrowseNode[0];
|
||||||
}
|
}
|
||||||
return children.getChildNodes();
|
return m_xBrowseNodeProxy .getChildNodes();
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean hasChildNodes()
|
public boolean hasChildNodes()
|
||||||
{
|
{
|
||||||
XBrowseNode children = getBrowseNode();
|
if ( m_xBrowseNodeProxy == null )
|
||||||
if ( children == null )
|
|
||||||
{
|
{
|
||||||
LogUtils.DEBUG("No Nodes available ");
|
LogUtils.DEBUG("No Nodes available ");
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
return children.hasChildNodes();
|
return m_xBrowseNodeProxy.hasChildNodes();
|
||||||
}
|
}
|
||||||
|
|
||||||
public short getType()
|
public short getType()
|
||||||
@@ -362,4 +381,97 @@ public abstract class ScriptProvider
|
|||||||
{
|
{
|
||||||
return getName();
|
return getName();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// implementation of XInvocation interface
|
||||||
|
public XIntrospectionAccess getIntrospection() {
|
||||||
|
return m_xInvocationProxy.getIntrospection();
|
||||||
|
}
|
||||||
|
|
||||||
|
public Object invoke(String aFunctionName, Object[] aParams,
|
||||||
|
short[][] aOutParamIndex, Object[][] aOutParam)
|
||||||
|
throws com.sun.star.lang.IllegalArgumentException,
|
||||||
|
com.sun.star.script.CannotConvertException,
|
||||||
|
com.sun.star.reflection.InvocationTargetException
|
||||||
|
{
|
||||||
|
return m_xInvocationProxy.invoke(
|
||||||
|
aFunctionName, aParams, aOutParamIndex, aOutParam);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setValue(String aPropertyName, Object aValue)
|
||||||
|
throws com.sun.star.beans.UnknownPropertyException,
|
||||||
|
com.sun.star.script.CannotConvertException,
|
||||||
|
com.sun.star.reflection.InvocationTargetException
|
||||||
|
{
|
||||||
|
m_xInvocationProxy.setValue(aPropertyName, aValue);
|
||||||
|
}
|
||||||
|
|
||||||
|
public Object getValue(String aPropertyName)
|
||||||
|
throws com.sun.star.beans.UnknownPropertyException
|
||||||
|
{
|
||||||
|
return m_xInvocationProxy.getValue(aPropertyName);
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean hasMethod(String aName) {
|
||||||
|
return m_xInvocationProxy.hasMethod(aName);
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean hasProperty(String aName) {
|
||||||
|
return m_xInvocationProxy.hasProperty(aName);
|
||||||
|
}
|
||||||
|
|
||||||
|
public XPropertySetInfo getPropertySetInfo()
|
||||||
|
{
|
||||||
|
return m_xPropertySetProxy.getPropertySetInfo();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setPropertyValue(String aPropertyName, Object aValue)
|
||||||
|
throws com.sun.star.beans.UnknownPropertyException,
|
||||||
|
com.sun.star.beans.PropertyVetoException,
|
||||||
|
com.sun.star.lang.IllegalArgumentException,
|
||||||
|
com.sun.star.lang.WrappedTargetException
|
||||||
|
{
|
||||||
|
m_xPropertySetProxy.setPropertyValue(aPropertyName, aValue);
|
||||||
|
}
|
||||||
|
|
||||||
|
public Object getPropertyValue(String PropertyName)
|
||||||
|
throws com.sun.star.beans.UnknownPropertyException,
|
||||||
|
com.sun.star.lang.WrappedTargetException
|
||||||
|
{
|
||||||
|
return m_xPropertySetProxy.getPropertyValue(PropertyName);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void addPropertyChangeListener(
|
||||||
|
String aPropertyName, XPropertyChangeListener xListener)
|
||||||
|
throws com.sun.star.beans.UnknownPropertyException,
|
||||||
|
com.sun.star.lang.WrappedTargetException
|
||||||
|
{
|
||||||
|
m_xPropertySetProxy.addPropertyChangeListener(aPropertyName, xListener);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void removePropertyChangeListener(
|
||||||
|
String aPropertyName, XPropertyChangeListener aListener)
|
||||||
|
throws com.sun.star.beans.UnknownPropertyException,
|
||||||
|
com.sun.star.lang.WrappedTargetException
|
||||||
|
{
|
||||||
|
m_xPropertySetProxy.removePropertyChangeListener(
|
||||||
|
aPropertyName, aListener);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void addVetoableChangeListener(
|
||||||
|
String PropertyName, XVetoableChangeListener aListener)
|
||||||
|
throws com.sun.star.beans.UnknownPropertyException,
|
||||||
|
com.sun.star.lang.WrappedTargetException
|
||||||
|
{
|
||||||
|
m_xPropertySetProxy.addVetoableChangeListener(PropertyName, aListener);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void removeVetoableChangeListener(
|
||||||
|
String PropertyName, XVetoableChangeListener aListener)
|
||||||
|
throws com.sun.star.beans.UnknownPropertyException,
|
||||||
|
com.sun.star.lang.WrappedTargetException
|
||||||
|
{
|
||||||
|
m_xPropertySetProxy.removeVetoableChangeListener(
|
||||||
|
PropertyName, aListener);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user