summaryrefslogtreecommitdiff
path: root/qadevOOo/runner/basicrunner/basichelper/DispatchProviderInterceptor.java
diff options
context:
space:
mode:
Diffstat (limited to 'qadevOOo/runner/basicrunner/basichelper/DispatchProviderInterceptor.java')
-rw-r--r--qadevOOo/runner/basicrunner/basichelper/DispatchProviderInterceptor.java194
1 files changed, 194 insertions, 0 deletions
diff --git a/qadevOOo/runner/basicrunner/basichelper/DispatchProviderInterceptor.java b/qadevOOo/runner/basicrunner/basichelper/DispatchProviderInterceptor.java
new file mode 100644
index 000000000000..f50a7d2eb470
--- /dev/null
+++ b/qadevOOo/runner/basicrunner/basichelper/DispatchProviderInterceptor.java
@@ -0,0 +1,194 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+package basicrunner.basichelper;
+
+import com.sun.star.lang.XSingleServiceFactory;
+import com.sun.star.lang.XServiceInfo;
+import com.sun.star.lang.XTypeProvider;
+import com.sun.star.uno.Type;
+import com.sun.star.frame.XDispatchProviderInterceptor;
+import com.sun.star.frame.XDispatchProvider;
+import com.sun.star.frame.XDispatch;
+import com.sun.star.frame.DispatchDescriptor;
+import com.sun.star.util.URL;
+
+/**
+ * This implementation provides an implementation of an interceptor.
+ * @see com.sun.star.lang.XSingleServiceFactory
+ * @see com.sun.star.lang.XServiceInfo
+ */
+public class DispatchProviderInterceptor implements XServiceInfo,
+ XSingleServiceFactory {
+ /** The service name **/
+ static final String __serviceName =
+ "basichelper.DispatchProviderInterceptor";
+
+ /** Create an instance of the interceptor
+ * Arguments are not supported here, so they will be ignored.
+ * @param args The arguments.
+ * @return A new instance of the interceptor.
+ **/
+ public Object createInstanceWithArguments(Object[] args) {
+ return new InterceptorImpl();
+ }
+
+ /** Create an instance of the interceptor
+ * @return A new instance of the interceptor.
+ **/
+ public Object createInstance() {
+ return createInstanceWithArguments(null);
+ }
+
+ /** Get the unique id for this implementation
+ * @return The id.
+ */
+ public byte[] getImplementationId() {
+ return toString().getBytes();
+ }
+
+ /** Get all implemented types.
+ * @return The implemented UNO types.
+ */
+ public Type[] getTypes() {
+ Class interfaces[] = getClass().getInterfaces();
+
+ Type types[] = new Type[interfaces.length];
+ for(int i = 0; i < interfaces.length; ++ i)
+ types[i] = new Type(interfaces[i]);
+
+ return types;
+ }
+
+ /**
+ * Is this service supported?
+ * @param name The name of a service.
+ * @return True, if the service is supported.
+ */
+ public boolean supportsService(String name) {
+ return __serviceName.equals(name);
+ }
+
+ /**
+ * Get all supported service names.
+ * @return All service names.
+ */
+ public String[] getSupportedServiceNames() {
+ return new String[] {__serviceName};
+ }
+
+ /**
+ * Get the implementation name of this class.
+ * @return The name.
+ */
+ public String getImplementationName() {
+ return getClass().getName();
+ }
+}
+
+/**
+ * The actual implementation of the interceptor.
+ * @see com.sun.star.lang.XTypeProvider
+ * @see com.sun.star.frame.XDispatchProviderInterceptor
+ * @see com.sun.star.frame.XDispatchProvider
+ */
+class InterceptorImpl implements XDispatchProvider,
+ XDispatchProviderInterceptor, XTypeProvider {
+
+ /** A master dispatch provider **/
+ public XDispatchProvider master = null;
+ /** A slave dispatch provider **/
+ public XDispatchProvider slave = null;
+
+ /** Get the slave dispatch provider
+ * @return The slave.
+ */
+ public XDispatchProvider getSlaveDispatchProvider() {
+ return slave;
+ }
+ /** Get the master dispatch provider
+ * @return The master.
+ */
+ public XDispatchProvider getMasterDispatchProvider() {
+ return master;
+ }
+
+ /** Set the slave dispatch provider
+ * @param prov The new slave.
+ */
+ public void setSlaveDispatchProvider(XDispatchProvider prov) {
+ slave = prov ;
+ }
+
+ /** Set the master dispatch provider
+ * @param prov The new master.
+ */
+ public void setMasterDispatchProvider(XDispatchProvider prov) {
+ master = prov ;
+ }
+
+ /** Searches for an <type>XDispatch</type> for the specified URL within
+ * the specified target frame.
+ * @param url The URL.
+ * @param frame The target frame
+ * @param flags Optional search flags.
+ * @return The dispatch object which provides the queried functionality
+ * or null if no dispatch object is available.
+ * @see com.sun.star.frame.XDispatch
+ */
+ public XDispatch queryDispatch(URL url, String frame, int flags) {
+ return master.queryDispatch(url, frame, flags) ;
+ }
+
+ /**
+ * Query for an array of <type>XDispatch</type>.
+ * @param desc A list of dipatch requests.
+ * @return A list of dispatch objects.
+ */
+ public XDispatch[] queryDispatches(DispatchDescriptor[] desc) {
+ return master.queryDispatches(desc) ;
+ }
+
+ /** Get the unique id for this implementation
+ * @return The id.
+ */
+ public byte[] getImplementationId() {
+ return toString().getBytes();
+ }
+
+ /** Get all implemented types.
+ * @return The implemented UNO types.
+ */
+ public Type[] getTypes() {
+ Class interfaces[] = getClass().getInterfaces();
+
+ Type types[] = new Type[interfaces.length];
+ for(int i = 0; i < interfaces.length; ++ i)
+ types[i] = new Type(interfaces[i]);
+
+ return types;
+ }
+}