CWS-TOOLING: integrate CWS sb131

This commit is contained in:
Hans-Joachim Lankenau
2010-12-17 16:18:53 +01:00
52 changed files with 2630 additions and 384 deletions

View File

@@ -1,4 +1,4 @@
av avmedia : l10n tools sfx2 NULL
av avmedia : l10n tools sfx2 LIBXSLT:libxslt NULL
av avmedia usr1 - all av_mkout NULL
av avmedia\prj get - all av_prj NULL
av avmedia\inc get - all av_inv NULL

2
basic/prj/build.lst Executable file → Normal file
View File

@@ -1,4 +1,4 @@
sb basic : l10n offuh oovbaapi svtools xmlscript framework salhelper NULL
sb basic : l10n offuh oovbaapi svtools xmlscript framework salhelper LIBXSLT:libxslt NULL
sb basic usr1 - all sb_mkout NULL
sb basic\inc nmake - all sb_inc NULL
sb basic\source\app nmake - all sb_app sb_class sb_inc NULL

View File

@@ -1,4 +1,4 @@
cg configmgr : BOOST:boost comphelper cppu cppuhelper offuh sal salhelper stlport xmlreader NULL
cg configmgr : BOOST:boost LIBXSLT:libxslt comphelper cppu cppuhelper offuh sal salhelper stlport xmlreader NULL
cg configmgr\inc nmake - all cg_inc NULL
cg configmgr\source nmake - all cg_source cg_inc NULL
cg configmgr\qa\unoapi nmake - all cg_qa_unoapi NULL

View File

@@ -1,4 +1,4 @@
cn connectivity : shell l10n comphelper MOZ:moz SO:moz_prebuilt svl UNIXODBC:unixODBC unoil javaunohelper HSQLDB:hsqldb qadevOOo officecfg NSS:nss NULL
cn connectivity : shell l10n comphelper MOZ:moz SO:moz_prebuilt svl UNIXODBC:unixODBC unoil javaunohelper HSQLDB:hsqldb qadevOOo officecfg NSS:nss LIBXSLT:libxslt NULL
cn connectivity usr1 - all cn_mkout NULL
cn connectivity\inc nmake - all cn_inc NULL
cn connectivity\com\sun\star\sdbcx\comp\hsqldb nmake - all cn_jhsqldbdb cn_hsqldb cn_inc NULL

View File

@@ -1,4 +1,4 @@
dt desktop : l10n sfx2 stoc BERKELEYDB:berkeleydb sysui SO:sysui_so BOOST:boost svx xmlhelp sal unoil officecfg offuh NULL
dt desktop : l10n sfx2 stoc BERKELEYDB:berkeleydb sysui SO:sysui_so BOOST:boost svx xmlhelp sal unoil officecfg offuh filter LIBXSLT:libxslt NULL
dt desktop usr1 - all dt_mkout NULL
dt desktop\inc nmake - all dt_inc NULL
dt desktop\prj get - all dt_prj NULL
@@ -42,3 +42,6 @@ dt desktop\source\registration\com\sun\star\servicetag\resources get - a
dt desktop\source\registration\com\sun\star\servicetag nmake - all sn_svctag NULL
dt desktop\source\registration\com\sun\star\registration nmake - all sn_regjob sn_svctag NULL
dt desktop\qa\deployment_misc nmake - all sn_qa_deployment_misc dt_dp_misc dt_inc NULL
dt desktop\test\deployment\active nmake - all dt_test_deployment_active NULL
dt desktop\test\deployment\boxt nmake - all dt_test_deployment_boxt NULL
dt desktop\test\deployment\passive nmake - all dt_test_deployment_passive NULL

File diff suppressed because it is too large Load Diff

View File

@@ -33,6 +33,7 @@
#define RID_STR_DYN_COMPONENT (RID_DEPLOYMENT_COMPONENT_START+10)
#define RID_STR_JAVA_COMPONENT (RID_DEPLOYMENT_COMPONENT_START+11)
#define RID_STR_PYTHON_COMPONENT (RID_DEPLOYMENT_COMPONENT_START+12)
#define RID_STR_COMPONENTS (RID_DEPLOYMENT_COMPONENT_START+13)
#define RID_STR_RDB_TYPELIB (RID_DEPLOYMENT_COMPONENT_START+20)
#define RID_STR_JAVA_TYPELIB (RID_DEPLOYMENT_COMPONENT_START+21)

View File

@@ -42,6 +42,11 @@ String RID_STR_PYTHON_COMPONENT
Text [ en-US ] = "UNO Python Component";
};
String RID_STR_COMPONENTS
{
Text [ en-US ] = "UNO Components";
};
String RID_STR_RDB_TYPELIB
{
Text [ en-US ] = "UNO RDB Type Library";

View File

@@ -294,7 +294,7 @@ protected:
::rtl::OUString m_context;
// currently only for library containers:
enum context {
enum {
CONTEXT_UNKNOWN,
CONTEXT_USER, CONTEXT_SHARED,CONTEXT_BUNDLED, CONTEXT_TMP,
CONTEXT_DOCUMENT

View File

@@ -0,0 +1,67 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--**********************************************************************
*
* 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.
*
**********************************************************************-->
<o:component-data xmlns:o="http://openoffice.org/2001/registry"
o:package="org.openoffice.Office" o:name="Addons">
<node o:name="AddonUI">
<node o:name="OfficeMenuBar">
<node o:name="org.openoffice.test.desktop.deployment.active"
o:op="replace">
<prop o:name="Title" xml:lang="en-US">
<value>active</value>
</prop>
<node o:name="Submenu">
<node o:name="1" o:op="replace">
<prop o:name="URL">
<value>vnd.org.openoffice.test.desktop.deployment.active_native:</value>
</prop>
<prop o:name="Title" xml:lang="en-US">
<value>native</value>
</prop>
</node>
<node o:name="2" o:op="replace">
<prop o:name="URL">
<value>vnd.org.openoffice.test.desktop.deployment.active_java:</value>
</prop>
<prop o:name="Title" xml:lang="en-US">
<value>java</value>
</prop>
</node>
<node o:name="3" o:op="replace">
<prop o:name="URL">
<value>vnd.org.openoffice.test.desktop.deployment.active_python:</value>
</prop>
<prop o:name="Title" xml:lang="en-US">
<value>python</value>
</prop>
</node>
</node>
</node>
</node>
</node>
</o:component-data>

View File

@@ -0,0 +1,101 @@
/*************************************************************************
* 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 com.sun.star.comp.test.deployment.active_java;
import com.sun.star.awt.MessageBoxButtons;
import com.sun.star.awt.Rectangle;
import com.sun.star.awt.XMessageBox;
import com.sun.star.awt.XMessageBoxFactory;
import com.sun.star.awt.XWindowPeer;
import com.sun.star.beans.PropertyValue;
import com.sun.star.frame.DispatchDescriptor;
import com.sun.star.frame.XDesktop;
import com.sun.star.frame.XDispatch;
import com.sun.star.frame.XStatusListener;
import com.sun.star.lang.WrappedTargetRuntimeException;
import com.sun.star.lang.XComponent;
import com.sun.star.lang.XMultiComponentFactory;
import com.sun.star.lang.XServiceInfo;
import com.sun.star.lib.uno.helper.WeakBase;
import com.sun.star.uno.UnoRuntime;
import com.sun.star.uno.XComponentContext;
import com.sun.star.util.URL;
public final class Dispatch extends WeakBase implements XServiceInfo, XDispatch
{
public Dispatch(XComponentContext context) {
this.context = context;
}
public String getImplementationName() { return implementationName; }
public boolean supportsService(String ServiceName) {
return false; //TODO
}
public String[] getSupportedServiceNames() {
return serviceNames;
}
public void dispatch(URL URL, PropertyValue[] Arguments) {
try {
XMultiComponentFactory smgr = UnoRuntime.queryInterface(
XMultiComponentFactory.class, context.getServiceManager());
XMessageBox box = UnoRuntime.queryInterface(
XMessageBoxFactory.class,
smgr.createInstanceWithContext(
"com.sun.star.awt.Toolkit", context)).
createMessageBox(
UnoRuntime.queryInterface(
XWindowPeer.class,
(UnoRuntime.queryInterface(
XDesktop.class,
smgr.createInstanceWithContext(
"com.sun.star.frame.Desktop", context)).
getCurrentFrame().getComponentWindow())),
new Rectangle(), "infobox", MessageBoxButtons.BUTTONS_OK,
"active", "java");
box.execute();
UnoRuntime.queryInterface(XComponent.class, box).dispose();
} catch (com.sun.star.uno.RuntimeException e) {
throw e;
} catch (com.sun.star.uno.Exception e) {
throw new WrappedTargetRuntimeException(
"wrapped: " + e.getMessage(), this, e);
}
}
public void addStatusListener(XStatusListener Control, URL URL) {}
public void removeStatusListener(XStatusListener Control, URL URL) {}
private final XComponentContext context;
static final String implementationName =
"com.sun.star.comp.test.deployment.active_java_singleton";
static final String[] serviceNames = new String[0];
}

View File

@@ -0,0 +1,3 @@
Sealed: true
RegistrationClassName: com.sun.star.comp.test.deployment.active_java.Services
UNO-Type-Path:

View File

@@ -0,0 +1,48 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--**********************************************************************
*
* 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.
*
**********************************************************************-->
<o:component-data xmlns:o="http://openoffice.org/2001/registry"
o:package="org.openoffice.Office" o:name="ProtocolHandler">
<node o:name="HandlerSet">
<node o:name="com.sun.star.test.deployment.active_native" o:op="replace">
<prop o:name="Protocols">
<value>vnd.org.openoffice.test.desktop.deployment.active_native:*</value>
</prop>
</node>
<node o:name="com.sun.star.test.deployment.active_java" o:op="replace">
<prop o:name="Protocols">
<value>vnd.org.openoffice.test.desktop.deployment.active_java:*</value>
</prop>
</node>
<node o:name="com.sun.star.test.deployment.active_python" o:op="replace">
<prop o:name="Protocols">
<value>vnd.org.openoffice.test.desktop.deployment.active_python:*</value>
</prop>
</node>
</node>
</o:component-data>

View File

@@ -0,0 +1,81 @@
/*************************************************************************
* 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 com.sun.star.comp.test.deployment.active_java;
import com.sun.star.frame.DispatchDescriptor;
import com.sun.star.frame.XDispatch;
import com.sun.star.frame.XDispatchProvider;
import com.sun.star.lang.XServiceInfo;
import com.sun.star.lib.uno.helper.WeakBase;
import com.sun.star.uno.UnoRuntime;
import com.sun.star.uno.XComponentContext;
import com.sun.star.util.URL;
public final class Provider extends WeakBase
implements XServiceInfo, XDispatchProvider
{
public Provider(XComponentContext context) {
this.context = context;
}
public String getImplementationName() { return implementationName; }
public boolean supportsService(String ServiceName) {
return ServiceName.equals(getSupportedServiceNames()[0]); //TODO
}
public String[] getSupportedServiceNames() {
return serviceNames;
}
public XDispatch queryDispatch(
URL URL, String TargetFrameName, int SearchFlags)
{
return UnoRuntime.queryInterface(
XDispatch.class,
context.getValueByName(
"/singletons/" +
"com.sun.star.test.deployment.active_java_singleton"));
}
public XDispatch[] queryDispatches(DispatchDescriptor[] Requests) {
XDispatch[] s = new XDispatch[Requests.length];
for (int i = 0; i < s.length; ++i) {
s[i] = queryDispatch(
Requests[i].FeatureURL, Requests[i].FrameName,
Requests[i].SearchFlags);
}
return s;
}
private final XComponentContext context;
static final String implementationName =
"com.sun.star.comp.test.deployment.active_java";
static final String[] serviceNames = new String[] {
"com.sun.star.test.deployment.active_java" };
}

View File

@@ -0,0 +1,72 @@
/*************************************************************************
* 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 com.sun.star.comp.test.deployment.active_java;
import com.sun.star.lang.XSingleComponentFactory;
import com.sun.star.lib.uno.helper.Factory;
import com.sun.star.registry.InvalidRegistryException;
import com.sun.star.registry.XRegistryKey;
public final class Services {
private Services() {}
public static XSingleComponentFactory __getComponentFactory(
String implementation)
{
if (implementation.equals(Dispatch.implementationName)) {
return Factory.createComponentFactory(
Dispatch.class, Dispatch.implementationName,
Dispatch.serviceNames);
} else if (implementation.equals(Provider.implementationName)) {
return Factory.createComponentFactory(
Provider.class, Provider.implementationName,
Provider.serviceNames);
} else {
return null;
}
}
public static boolean __writeRegistryServiceInfo(XRegistryKey key) {
if (!(Factory.writeRegistryServiceInfo(
Dispatch.implementationName, Dispatch.serviceNames, key) &&
Factory.writeRegistryServiceInfo(
Provider.implementationName, Provider.serviceNames, key)))
{
return false;
}
try {
key.
createKey(
"/" + Dispatch.implementationName +
"/UNO/SINGLETONS/" +
"com.sun.star.test.deployment.active_java_singleton").
setStringValue(Dispatch.implementationName);
} catch (InvalidRegistryException e) {
return false;
}
return true;
}
}

View File

@@ -0,0 +1,320 @@
/*************************************************************************
*
* 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.
*
************************************************************************/
#include "precompiled_desktop.hxx"
#include "sal/config.h"
#include "boost/noncopyable.hpp"
#include "com/sun/star/awt/MessageBoxButtons.hpp"
#include "com/sun/star/awt/Rectangle.hpp"
#include "com/sun/star/awt/XMessageBox.hpp"
#include "com/sun/star/awt/XMessageBoxFactory.hpp"
#include "com/sun/star/awt/XWindowPeer.hpp"
#include "com/sun/star/beans/PropertyValue.hpp"
#include "com/sun/star/frame/DispatchDescriptor.hpp"
#include "com/sun/star/frame/XDesktop.hpp"
#include "com/sun/star/frame/XDispatch.hpp"
#include "com/sun/star/frame/XDispatchProvider.hpp"
#include "com/sun/star/frame/XFrame.hpp"
#include "com/sun/star/frame/XStatusListener.hpp"
#include "com/sun/star/lang/XComponent.hpp"
#include "com/sun/star/lang/XMultiComponentFactory.hpp"
#include "com/sun/star/lang/XServiceInfo.hpp"
#include "com/sun/star/registry/XRegistryKey.hpp"
#include "com/sun/star/uno/DeploymentException.hpp"
#include "com/sun/star/uno/Exception.hpp"
#include "com/sun/star/uno/Reference.hxx"
#include "com/sun/star/uno/RuntimeException.hpp"
#include "com/sun/star/uno/Sequence.hxx"
#include "com/sun/star/uno/XComponentContext.hpp"
#include "com/sun/star/uno/XInterface.hpp"
#include "com/sun/star/util/URL.hpp"
#include "cppuhelper/factory.hxx"
#include "cppuhelper/implbase2.hxx"
#include "cppuhelper/implementationentry.hxx"
#include "cppuhelper/weak.hxx"
#include "osl/diagnose.h"
#include "rtl/textenc.h"
#include "rtl/ustring.h"
#include "rtl/ustring.hxx"
#include "sal/types.h"
#include "uno/lbnames.h"
namespace {
namespace css = com::sun::star;
class Provider:
public cppu::WeakImplHelper2<
css::lang::XServiceInfo, css::frame::XDispatchProvider >,
private boost::noncopyable
{
public:
static css::uno::Reference< css::uno::XInterface > SAL_CALL static_create(
css::uno::Reference< css::uno::XComponentContext > const & xContext)
SAL_THROW((css::uno::Exception))
{ return static_cast< cppu::OWeakObject * >(new Provider(xContext)); }
static rtl::OUString SAL_CALL static_getImplementationName();
static css::uno::Sequence< rtl::OUString > SAL_CALL
static_getSupportedServiceNames();
private:
Provider(
css::uno::Reference< css::uno::XComponentContext > const & context):
context_(context) { OSL_ASSERT(context.is()); }
virtual ~Provider() {}
virtual rtl::OUString SAL_CALL getImplementationName()
throw (css::uno::RuntimeException)
{ return static_getImplementationName(); }
virtual sal_Bool SAL_CALL supportsService(rtl::OUString const & ServiceName)
throw (css::uno::RuntimeException)
{ return ServiceName == getSupportedServiceNames()[0]; } //TODO
virtual css::uno::Sequence< rtl::OUString > SAL_CALL
getSupportedServiceNames() throw (css::uno::RuntimeException)
{ return static_getSupportedServiceNames(); }
virtual css::uno::Reference< css::frame::XDispatch > SAL_CALL queryDispatch(
css::util::URL const &, rtl::OUString const &, sal_Int32)
throw (css::uno::RuntimeException);
virtual css::uno::Sequence< css::uno::Reference< css::frame::XDispatch > >
SAL_CALL queryDispatches(
css::uno::Sequence< css::frame::DispatchDescriptor > const & Requests)
throw (css::uno::RuntimeException);
css::uno::Reference< css::uno::XComponentContext > context_;
};
rtl::OUString Provider::static_getImplementationName() {
return rtl::OUString(
RTL_CONSTASCII_USTRINGPARAM(
"com.sun.star.comp.test.deployment.active_native"));
}
css::uno::Sequence< rtl::OUString > Provider::static_getSupportedServiceNames()
{
rtl::OUString name(
RTL_CONSTASCII_USTRINGPARAM(
"com.sun.star.test.deployment.active_native"));
return css::uno::Sequence< rtl::OUString >(&name, 1);
}
css::uno::Reference< css::frame::XDispatch > Provider::queryDispatch(
css::util::URL const &, rtl::OUString const &, sal_Int32)
throw (css::uno::RuntimeException)
{
css::uno::Reference< css::frame::XDispatch > dispatch;
if (!(context_->getValueByName(
rtl::OUString(
RTL_CONSTASCII_USTRINGPARAM(
"/singletons/com.sun.star.test.deployment."
"active_native_singleton"))) >>=
dispatch) ||
!dispatch.is())
{
throw css::uno::DeploymentException(
rtl::OUString(
RTL_CONSTASCII_USTRINGPARAM(
"component context fails to supply singleton"
" com.sun.star.test.deployment.active_native_singleton of"
" type com.sun.star.frame.XDispatch")),
context_);
}
return dispatch;
}
css::uno::Sequence< css::uno::Reference< css::frame::XDispatch > >
Provider::queryDispatches(
css::uno::Sequence< css::frame::DispatchDescriptor > const & Requests)
throw (css::uno::RuntimeException)
{
css::uno::Sequence< css::uno::Reference< css::frame::XDispatch > > s(
Requests.getLength());
for (sal_Int32 i = 0; i < s.getLength(); ++i) {
s[i] = queryDispatch(
Requests[i].FeatureURL, Requests[i].FrameName,
Requests[i].SearchFlags);
}
return s;
}
class Dispatch:
public cppu::WeakImplHelper2<
css::lang::XServiceInfo, css::frame::XDispatch >,
private boost::noncopyable
{
public:
static css::uno::Reference< css::uno::XInterface > SAL_CALL static_create(
css::uno::Reference< css::uno::XComponentContext > const & xContext)
SAL_THROW((css::uno::Exception))
{ return static_cast< cppu::OWeakObject * >(new Dispatch(xContext)); }
static rtl::OUString SAL_CALL static_getImplementationName();
static css::uno::Sequence< rtl::OUString > SAL_CALL
static_getSupportedServiceNames()
{ return css::uno::Sequence< rtl::OUString >(); }
private:
Dispatch(
css::uno::Reference< css::uno::XComponentContext > const & context):
context_(context) { OSL_ASSERT(context.is()); }
virtual ~Dispatch() {}
virtual rtl::OUString SAL_CALL getImplementationName()
throw (css::uno::RuntimeException)
{ return static_getImplementationName(); }
virtual sal_Bool SAL_CALL supportsService(rtl::OUString const &)
throw (css::uno::RuntimeException)
{ return false; } //TODO
virtual css::uno::Sequence< rtl::OUString > SAL_CALL
getSupportedServiceNames() throw (css::uno::RuntimeException)
{ return static_getSupportedServiceNames(); }
virtual void SAL_CALL dispatch(
css::util::URL const &,
css::uno::Sequence< css::beans::PropertyValue > const &)
throw (css::uno::RuntimeException);
virtual void SAL_CALL addStatusListener(
css::uno::Reference< css::frame::XStatusListener > const &,
css::util::URL const &)
throw (css::uno::RuntimeException)
{}
virtual void SAL_CALL removeStatusListener(
css::uno::Reference< css::frame::XStatusListener > const &,
css::util::URL const &)
throw (css::uno::RuntimeException)
{}
css::uno::Reference< css::uno::XComponentContext > context_;
};
rtl::OUString Dispatch::static_getImplementationName() {
return rtl::OUString(
RTL_CONSTASCII_USTRINGPARAM(
"com.sun.star.comp.test.deployment.active_native_singleton"));
}
void Dispatch::dispatch(
css::util::URL const &,
css::uno::Sequence< css::beans::PropertyValue > const &)
throw (css::uno::RuntimeException)
{
css::uno::Reference< css::lang::XMultiComponentFactory > smgr(
context_->getServiceManager(), css::uno::UNO_SET_THROW);
css::uno::Reference< css::awt::XMessageBox > box(
css::uno::Reference< css::awt::XMessageBoxFactory >(
smgr->createInstanceWithContext(
rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(
"com.sun.star.awt.Toolkit")), context_),
css::uno::UNO_QUERY_THROW)->createMessageBox(
css::uno::Reference< css::awt::XWindowPeer >(
css::uno::Reference< css::frame::XFrame >(
css::uno::Reference< css::frame::XDesktop >(
smgr->createInstanceWithContext(
rtl::OUString(
RTL_CONSTASCII_USTRINGPARAM(
"com.sun.star.frame.Desktop")),
context_),
css::uno::UNO_QUERY_THROW)->getCurrentFrame(),
css::uno::UNO_SET_THROW)->getComponentWindow(),
css::uno::UNO_QUERY_THROW),
css::awt::Rectangle(),
rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("infobox")),
css::awt::MessageBoxButtons::BUTTONS_OK,
rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("active")),
rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("native"))),
css::uno::UNO_SET_THROW);
box->execute();
css::uno::Reference< css::lang::XComponent >(
box, css::uno::UNO_QUERY_THROW)->dispose();
}
static cppu::ImplementationEntry const services[] = {
{ &Provider::static_create, &Provider::static_getImplementationName,
&Provider::static_getSupportedServiceNames,
&cppu::createSingleComponentFactory, 0, 0 },
{ &Dispatch::static_create, &Dispatch::static_getImplementationName,
&Dispatch::static_getSupportedServiceNames,
&cppu::createSingleComponentFactory, 0, 0 },
{ 0, 0, 0, 0, 0, 0 }
};
}
extern "C" void * SAL_CALL component_getFactory(
char const * pImplName, void * pServiceManager, void * pRegistryKey)
{
return cppu::component_getFactoryHelper(
pImplName, pServiceManager, pRegistryKey, services);
}
extern "C" void SAL_CALL component_getImplementationEnvironment(
char const ** ppEnvTypeName, uno_Environment **)
{
*ppEnvTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME;
}
extern "C" sal_Bool SAL_CALL component_writeInfo(
void * pServiceManager, void * pRegistryKey)
{
if (!component_writeInfoHelper(pServiceManager, pRegistryKey, services)) {
return false;
}
try {
css::uno::Reference< css::registry::XRegistryKey >(
(css::uno::Reference< css::registry::XRegistryKey >(
static_cast< css::registry::XRegistryKey * >(pRegistryKey))->
createKey(
rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("/")) +
Dispatch::static_getImplementationName() +
rtl::OUString(
RTL_CONSTASCII_USTRINGPARAM(
"/UNO/SINGLETONS/com.sun.star.test.deployment."
"active_native_singleton")))),
css::uno::UNO_SET_THROW)->
setStringValue(Dispatch::static_getImplementationName());
} catch (css::uno::Exception & e) {
(void) e;
OSL_TRACE(
"active_native component_writeInfo exception: %s",
rtl::OUStringToOString(e.Message, RTL_TEXTENCODING_UTF8).getStr());
return false;
}
return true;
}

View File

@@ -0,0 +1,120 @@
#*************************************************************************
#
# 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.
#
#***********************************************************************/
import uno
import unohelper
from com.sun.star.awt import Rectangle
from com.sun.star.awt.MessageBoxButtons import BUTTONS_OK
from com.sun.star.frame import XDispatch, XDispatchProvider
from com.sun.star.lang import XServiceInfo
from com.sun.star.registry import InvalidRegistryException
class Provider(unohelper.Base, XServiceInfo, XDispatchProvider):
implementationName = "com.sun.star.comp.test.deployment.active_python"
serviceNames = ("com.sun.star.test.deployment.active_python",)
def __init__(self, context):
self.context = context
def getImplementationName(self):
return self.implementationName
def supportsService(self, ServiceName):
return ServiceName in self.serviceNames
def getSupportedServiceNames(self):
return self.serviceNames
def queryDispatch(self, URL, TargetFrame, SearchFlags):
return self.context.getValueByName( \
"/singletons/com.sun.star.test.deployment.active_python_singleton")
def queryDispatches(self, Requests):
tuple( \
self.queryDispatch(i.FeatureURL, i.FrameName, i.SearchFlags) \
for i in Requests)
class Dispatch(unohelper.Base, XServiceInfo, XDispatch):
implementationName = \
"com.sun.star.comp.test.deployment.active_python_singleton"
serviceNames = ()
def __init__(self, context):
self.context = context
def getImplementationName(self):
return self.implementationName
def supportsService(self, ServiceName):
return ServiceName in self.serviceNames
def getSupportedServiceNames(self):
return self.serviceNames
def dispatch(self, URL, Arguments):
smgr = self.context.getServiceManager()
box = smgr.createInstanceWithContext( \
"com.sun.star.awt.Toolkit", self.context).createMessageBox( \
smgr.createInstanceWithContext( \
"com.sun.star.frame.Desktop", self.context). \
getCurrentFrame().getComponentWindow(), \
Rectangle(), "infobox", BUTTONS_OK, "active", "python")
box.execute();
box.dispose();
def addStatusListener(self, Control, URL):
pass
def removeStatusListener(self, Control, URL):
pass
def getComponentFactory(implementationName, smgr, regKey):
if implementationName == Provider.implementationName:
return unohelper.createSingleServiceFactory( \
Provider, Provider.implementationName, Provider.serviceNames)
elif implementationName == Dispatch.implementationName:
return unohelper.createSingleServiceFactory( \
Dispatch, Dispatch.implementationName, Dispatch.serviceNames)
else:
return None
def writeRegistryInfo(smgr, regKey):
try:
for i in (Provider, Dispatch):
key = regKey.createKey("/" + i.implementationName + "/UNO")
for j in i.serviceNames:
key.createKey("/SERVICES/" + j);
regKey.createKey( \
"/" + Dispatch.implementationName + "/UNO/SINGLETONS/" \
"com.sun.star.test.deployment.active_python_singleton"). \
setStringValue(Dispatch.implementationName)
except InvalidRegistryException:
return False
return True

View File

@@ -0,0 +1,36 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--**********************************************************************
*
* 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.
*
**********************************************************************-->
<d:description xmlns:d="http://openoffice.org/extensions/description/2006">
<d:identifier
value="org.openoffice/framework/desktop/test/deployment/active"/>
<d:version value="1"/>
<d:dependencies>
<d:OpenOffice.org-minimal-version d:name="OpenOffice.org 3.4" value="3.4"/>
</d:dependencies>
</d:description>

View File

@@ -0,0 +1,83 @@
#*************************************************************************
#
# 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.
#
#***********************************************************************/
PRJ = ../../..
PRJNAME = desktop
TARGET = test_deployment_active
ENABLE_EXCEPTIONS = TRUE
PACKAGE = com/sun/star/comp/test/deployment/active_java
JAVAFILES = Dispatch.java Provider.java Services.java
JARFILES = juh.jar ridl.jar unoil.jar
.INCLUDE: settings.mk
DLLPRE =
SLOFILES = $(SHL1OBJS)
SHL1TARGET = active_native.uno
SHL1OBJS = $(SLO)/active_native.obj
SHL1RPATH = OXT
SHL1STDLIBS = $(CPPUHELPERLIB) $(CPPULIB) $(SALLIB)
SHL1VERSIONMAP = $(SOLARENV)/src/reg-component.map
DEF1NAME = $(SHL1TARGET)
.INCLUDE: target.mk
ALLTAR : $(MISC)/active.oxt
$(MISC)/active.oxt : manifest.xml description.xml Addons.xcu \
ProtocolHandler.xcu $(SHL1TARGETN) $(MISC)/$(TARGET)/active_java.jar \
active_python.py
$(RM) $@
$(RM) -r $(MISC)/$(TARGET)/active.oxt-zip
$(MKDIR) $(MISC)/$(TARGET)/active.oxt-zip
$(MKDIRHIER) $(MISC)/$(TARGET)/active.oxt-zip/META-INF
$(SED) -e 's|@PATH@|$(SHL1TARGETN:f)|g' \
-e 's|@PLATFORM@|$(RTL_OS:l)_$(RTL_ARCH:l)|g' < manifest.xml \
> $(MISC)/$(TARGET)/active.oxt-zip/META-INF/manifest.xml
$(COPY) description.xml Addons.xcu ProtocolHandler.xcu $(SHL1TARGETN) \
$(MISC)/$(TARGET)/active_java.jar active_python.py \
$(MISC)/$(TARGET)/active.oxt-zip/
cd $(MISC)/$(TARGET)/active.oxt-zip && zip ../../active.oxt \
META-INF/manifest.xml description.xml Addons.xcu ProtocolHandler.xcu \
$(SHL1TARGETN:f) active_java.jar active_python.py
$(MISC)/$(TARGET)/active_java.jar : MANIFEST.MF $(JAVATARGET)
$(MKDIRHIER) $(@:d)
$(RM) $@
$(RM) -r $(MISC)/$(TARGET)/active_java.jar-zip
$(MKDIR) $(MISC)/$(TARGET)/active_java.jar-zip
$(MKDIRHIER) $(MISC)/$(TARGET)/active_java.jar-zip/META-INF \
$(MISC)/$(TARGET)/active_java.jar-zip/$(PACKAGE)
$(COPY) MANIFEST.MF $(MISC)/$(TARGET)/active_java.jar-zip/META-INF/
$(COPY) $(foreach,i,$(JAVAFILES:b) $(CLASSDIR)/$(PACKAGE)/$i.class) \
$(MISC)/$(TARGET)/active_java.jar-zip/$(PACKAGE)/
cd $(MISC)/$(TARGET)/active_java.jar-zip && zip ../active_java.jar \
META-INF/MANIFEST.MF $(foreach,i,$(JAVAFILES:b) $(PACKAGE)/$i.class)

View File

@@ -0,0 +1,43 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--**********************************************************************
*
* 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.
*
**********************************************************************-->
<m:manifest xmlns:m="http://openoffice.org/2001/manifest">
<m:file-entry m:media-type="application/vnd.sun.star.configuration-data"
m:full-path="Addons.xcu"/>
<m:file-entry m:media-type="application/vnd.sun.star.configuration-data"
m:full-path="ProtocolHandler.xcu"/>
<m:file-entry
m:media-type="application/vnd.sun.star.uno-component;type=native;platform=@PLATFORM@"
m:full-path="@PATH@"/>
<m:file-entry
m:media-type="application/vnd.sun.star.uno-component;type=Java"
m:full-path="active_java.jar"/>
<m:file-entry
m:media-type="application/vnd.sun.star.uno-component;type=Python"
m:full-path="active_python.py"/>
</m:manifest>

View File

@@ -35,8 +35,6 @@
#include "com/sun/star/frame/XDispatchProvider.hpp"
#include "com/sun/star/frame/XStatusListener.hpp"
#include "com/sun/star/lang/XServiceInfo.hpp"
#include "com/sun/star/lang/XSingleComponentFactory.hpp"
#include "com/sun/star/uno/Any.hxx"
#include "com/sun/star/uno/Exception.hpp"
#include "com/sun/star/uno/Reference.hxx"
#include "com/sun/star/uno/RuntimeException.hpp"
@@ -45,7 +43,6 @@
#include "com/sun/star/uno/XInterface.hpp"
#include "com/sun/star/util/URL.hpp"
#include "cppuhelper/factory.hxx"
#include "cppuhelper/implbase1.hxx"
#include "cppuhelper/implbase3.hxx"
#include "cppuhelper/implementationentry.hxx"
#include "cppuhelper/weak.hxx"
@@ -61,21 +58,6 @@ namespace {
namespace css = com::sun::star;
namespace service {
rtl::OUString getImplementationName() {
return rtl::OUString(
RTL_CONSTASCII_USTRINGPARAM("com.sun.star.comp.test.deployment.boxt"));
}
css::uno::Sequence< rtl::OUString > getSupportedServiceNames() {
rtl::OUString name(
RTL_CONSTASCII_USTRINGPARAM("com.sun.star.test.deployment.boxt"));
return css::uno::Sequence< rtl::OUString >(&name, 1);
}
}
class Service:
public cppu::WeakImplHelper3<
css::lang::XServiceInfo, css::frame::XDispatchProvider,
@@ -83,14 +65,24 @@ class Service:
private boost::noncopyable
{
public:
Service() {}
static css::uno::Reference< css::uno::XInterface > SAL_CALL static_create(
css::uno::Reference< css::uno::XComponentContext > const &)
SAL_THROW((css::uno::Exception))
{ return static_cast< cppu::OWeakObject * >(new Service); }
static rtl::OUString SAL_CALL static_getImplementationName();
static css::uno::Sequence< rtl::OUString > SAL_CALL
static_getSupportedServiceNames();
private:
Service() {}
virtual ~Service() {}
virtual rtl::OUString SAL_CALL getImplementationName()
throw (css::uno::RuntimeException)
{ return service::getImplementationName(); }
{ return static_getImplementationName(); }
virtual sal_Bool SAL_CALL supportsService(rtl::OUString const & ServiceName)
throw (css::uno::RuntimeException)
@@ -98,7 +90,7 @@ private:
virtual css::uno::Sequence< rtl::OUString > SAL_CALL
getSupportedServiceNames() throw (css::uno::RuntimeException)
{ return service::getSupportedServiceNames(); }
{ return static_getSupportedServiceNames(); }
virtual css::uno::Reference< css::frame::XDispatch > SAL_CALL queryDispatch(
css::util::URL const &, rtl::OUString const &, sal_Int32)
@@ -128,6 +120,17 @@ private:
{}
};
rtl::OUString Service::static_getImplementationName() {
return rtl::OUString(
RTL_CONSTASCII_USTRINGPARAM("com.sun.star.comp.test.deployment.boxt"));
}
css::uno::Sequence< rtl::OUString > Service::static_getSupportedServiceNames() {
rtl::OUString name(
RTL_CONSTASCII_USTRINGPARAM("com.sun.star.test.deployment.boxt"));
return css::uno::Sequence< rtl::OUString >(&name, 1);
}
css::uno::Sequence< css::uno::Reference< css::frame::XDispatch > >
Service::queryDispatches(
css::uno::Sequence< css::frame::DispatchDescriptor > const & Requests)
@@ -155,61 +158,10 @@ void Service::dispatch(
rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("test")));
}
class Factory:
public cppu::WeakImplHelper1< css::lang::XSingleComponentFactory >,
private boost::noncopyable
{
public:
Factory() {}
private:
virtual ~Factory() {}
virtual css::uno::Reference< css::uno::XInterface > SAL_CALL
createInstanceWithContext(
css::uno::Reference< css::uno::XComponentContext > const &)
throw (css::uno::Exception, css::uno::RuntimeException)
{ return static_cast< cppu::OWeakObject * >(new Service); }
virtual css::uno::Reference< css::uno::XInterface > SAL_CALL
createInstanceWithArgumentsAndContext(
css::uno::Sequence< css::uno::Any > const &,
css::uno::Reference< css::uno::XComponentContext > const & Context)
throw (css::uno::Exception, css::uno::RuntimeException)
{ return createInstanceWithContext(Context); }
};
css::uno::Reference< css::uno::XInterface > SAL_CALL dummy(
css::uno::Reference< css::uno::XComponentContext > const &)
SAL_THROW((css::uno::Exception))
{
OSL_ASSERT(false);
return css::uno::Reference< css::uno::XInterface >();
}
rtl::OUString SAL_CALL getImplementationName() {
return rtl::OUString(
RTL_CONSTASCII_USTRINGPARAM("com.sun.star.comp.test.deployment.boxt"));
}
css::uno::Sequence< rtl::OUString > SAL_CALL getSupportedServiceNames() {
rtl::OUString name(
RTL_CONSTASCII_USTRINGPARAM("com.sun.star.test.deployment.boxt"));
return css::uno::Sequence< rtl::OUString >(&name, 1);
}
css::uno::Reference< css::lang::XSingleComponentFactory > SAL_CALL
createFactory(
cppu::ComponentFactoryFunc, rtl::OUString const &,
css::uno::Sequence< rtl::OUString > const &, rtl_ModuleCount *)
SAL_THROW(())
{
return new Factory;
}
static cppu::ImplementationEntry const services[] = {
{ &dummy, &service::getImplementationName,
&service::getSupportedServiceNames, &createFactory, 0, 0 },
{ &Service::static_create, &Service::static_getImplementationName,
&Service::static_getSupportedServiceNames,
&cppu::createSingleComponentFactory, 0, 0 },
{ 0, 0, 0, 0, 0, 0 }
};

View File

@@ -46,7 +46,7 @@ SHL1OBJS = $(SLO)/boxt.obj
SHL1RPATH = BOXT
SHL1STDLIBS = \
$(CPPUHELPERLIB) $(CPPULIB) $(MSFILTERLIB) $(SALLIB) $(TOOLSLIB) $(VCLLIB)
SHL1VERSIONMAP = $(SOLARENV)/src/component.map
SHL1VERSIONMAP = $(SOLARENV)/src/reg-component.map
DEF1NAME = $(SHL1TARGET)
.INCLUDE: target.mk

View File

@@ -0,0 +1,67 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--**********************************************************************
*
* 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.
*
**********************************************************************-->
<o:component-data xmlns:o="http://openoffice.org/2001/registry"
o:package="org.openoffice.Office" o:name="Addons">
<node o:name="AddonUI">
<node o:name="OfficeMenuBar">
<node o:name="org.openoffice.test.desktop.deployment.passive"
o:op="replace">
<prop o:name="Title" xml:lang="en-US">
<value>passive</value>
</prop>
<node o:name="Submenu">
<node o:name="1" o:op="replace">
<prop o:name="URL">
<value>vnd.org.openoffice.test.desktop.deployment.passive_native:</value>
</prop>
<prop o:name="Title" xml:lang="en-US">
<value>native</value>
</prop>
</node>
<node o:name="2" o:op="replace">
<prop o:name="URL">
<value>vnd.org.openoffice.test.desktop.deployment.passive_java:</value>
</prop>
<prop o:name="Title" xml:lang="en-US">
<value>java</value>
</prop>
</node>
<node o:name="3" o:op="replace">
<prop o:name="URL">
<value>vnd.org.openoffice.test.desktop.deployment.passive_python:</value>
</prop>
<prop o:name="Title" xml:lang="en-US">
<value>python</value>
</prop>
</node>
</node>
</node>
</node>
</node>
</o:component-data>

View File

@@ -0,0 +1,101 @@
/*************************************************************************
* 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 com.sun.star.comp.test.deployment.passive_java;
import com.sun.star.awt.MessageBoxButtons;
import com.sun.star.awt.Rectangle;
import com.sun.star.awt.XMessageBox;
import com.sun.star.awt.XMessageBoxFactory;
import com.sun.star.awt.XWindowPeer;
import com.sun.star.beans.PropertyValue;
import com.sun.star.frame.DispatchDescriptor;
import com.sun.star.frame.XDesktop;
import com.sun.star.frame.XDispatch;
import com.sun.star.frame.XStatusListener;
import com.sun.star.lang.WrappedTargetRuntimeException;
import com.sun.star.lang.XComponent;
import com.sun.star.lang.XMultiComponentFactory;
import com.sun.star.lang.XServiceInfo;
import com.sun.star.lib.uno.helper.WeakBase;
import com.sun.star.uno.UnoRuntime;
import com.sun.star.uno.XComponentContext;
import com.sun.star.util.URL;
public final class Dispatch extends WeakBase implements XServiceInfo, XDispatch
{
public Dispatch(XComponentContext context) {
this.context = context;
}
public String getImplementationName() { return implementationName; }
public boolean supportsService(String ServiceName) {
return false; //TODO
}
public String[] getSupportedServiceNames() {
return serviceNames;
}
public void dispatch(URL URL, PropertyValue[] Arguments) {
try {
XMultiComponentFactory smgr = UnoRuntime.queryInterface(
XMultiComponentFactory.class, context.getServiceManager());
XMessageBox box = UnoRuntime.queryInterface(
XMessageBoxFactory.class,
smgr.createInstanceWithContext(
"com.sun.star.awt.Toolkit", context)).
createMessageBox(
UnoRuntime.queryInterface(
XWindowPeer.class,
(UnoRuntime.queryInterface(
XDesktop.class,
smgr.createInstanceWithContext(
"com.sun.star.frame.Desktop", context)).
getCurrentFrame().getComponentWindow())),
new Rectangle(), "infobox", MessageBoxButtons.BUTTONS_OK,
"passive", "java");
box.execute();
UnoRuntime.queryInterface(XComponent.class, box).dispose();
} catch (com.sun.star.uno.RuntimeException e) {
throw e;
} catch (com.sun.star.uno.Exception e) {
throw new WrappedTargetRuntimeException(
"wrapped: " + e.getMessage(), this, e);
}
}
public void addStatusListener(XStatusListener Control, URL URL) {}
public void removeStatusListener(XStatusListener Control, URL URL) {}
private final XComponentContext context;
static final String implementationName =
"com.sun.star.comp.test.deployment.passive_java_singleton";
static final String[] serviceNames = new String[0];
}

View File

@@ -0,0 +1,3 @@
Sealed: true
RegistrationClassName: com.sun.star.comp.test.deployment.passive_java.Services
UNO-Type-Path:

View File

@@ -0,0 +1,48 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--**********************************************************************
*
* 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.
*
**********************************************************************-->
<o:component-data xmlns:o="http://openoffice.org/2001/registry"
o:package="org.openoffice.Office" o:name="ProtocolHandler">
<node o:name="HandlerSet">
<node o:name="com.sun.star.test.deployment.passive_native" o:op="replace">
<prop o:name="Protocols">
<value>vnd.org.openoffice.test.desktop.deployment.passive_native:*</value>
</prop>
</node>
<node o:name="com.sun.star.test.deployment.passive_java" o:op="replace">
<prop o:name="Protocols">
<value>vnd.org.openoffice.test.desktop.deployment.passive_java:*</value>
</prop>
</node>
<node o:name="com.sun.star.test.deployment.passive_python" o:op="replace">
<prop o:name="Protocols">
<value>vnd.org.openoffice.test.desktop.deployment.passive_python:*</value>
</prop>
</node>
</node>
</o:component-data>

View File

@@ -0,0 +1,81 @@
/*************************************************************************
* 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 com.sun.star.comp.test.deployment.passive_java;
import com.sun.star.frame.DispatchDescriptor;
import com.sun.star.frame.XDispatch;
import com.sun.star.frame.XDispatchProvider;
import com.sun.star.lang.XServiceInfo;
import com.sun.star.lib.uno.helper.WeakBase;
import com.sun.star.uno.UnoRuntime;
import com.sun.star.uno.XComponentContext;
import com.sun.star.util.URL;
public final class Provider extends WeakBase
implements XServiceInfo, XDispatchProvider
{
public Provider(XComponentContext context) {
this.context = context;
}
public String getImplementationName() { return implementationName; }
public boolean supportsService(String ServiceName) {
return ServiceName.equals(getSupportedServiceNames()[0]); //TODO
}
public String[] getSupportedServiceNames() {
return serviceNames;
}
public XDispatch queryDispatch(
URL URL, String TargetFrameName, int SearchFlags)
{
return UnoRuntime.queryInterface(
XDispatch.class,
context.getValueByName(
"/singletons/" +
"com.sun.star.test.deployment.passive_java_singleton"));
}
public XDispatch[] queryDispatches(DispatchDescriptor[] Requests) {
XDispatch[] s = new XDispatch[Requests.length];
for (int i = 0; i < s.length; ++i) {
s[i] = queryDispatch(
Requests[i].FeatureURL, Requests[i].FrameName,
Requests[i].SearchFlags);
}
return s;
}
private final XComponentContext context;
static final String implementationName =
"com.sun.star.comp.test.deployment.passive_java";
static final String[] serviceNames = new String[] {
"com.sun.star.test.deployment.passive_java" };
}

View File

@@ -0,0 +1,49 @@
/*************************************************************************
* 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 com.sun.star.comp.test.deployment.passive_java;
import com.sun.star.lang.XSingleComponentFactory;
import com.sun.star.lib.uno.helper.Factory;
public final class Services {
private Services() {}
public static XSingleComponentFactory __getComponentFactory(
String implementation)
{
if (implementation.equals(Dispatch.implementationName)) {
return Factory.createComponentFactory(
Dispatch.class, Dispatch.implementationName,
Dispatch.serviceNames);
} else if (implementation.equals(Provider.implementationName)) {
return Factory.createComponentFactory(
Provider.class, Provider.implementationName,
Provider.serviceNames);
} else {
return null;
}
}
}

View File

@@ -0,0 +1,36 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--**********************************************************************
*
* 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.
*
**********************************************************************-->
<d:description xmlns:d="http://openoffice.org/extensions/description/2006">
<d:identifier
value="org.openoffice/framework/desktop/test/deployment/passive"/>
<d:version value="1"/>
<d:dependencies>
<d:OpenOffice.org-minimal-version d:name="OpenOffice.org 3.4" value="3.4"/>
</d:dependencies>
</d:description>

View File

@@ -0,0 +1,136 @@
#*************************************************************************
#
# 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.
#
#***********************************************************************/
PRJ = ../../..
PRJNAME = desktop
TARGET = test_deployment_passive
ENABLE_EXCEPTIONS = TRUE
PACKAGE = com/sun/star/comp/test/deployment/passive_java
JAVAFILES = Dispatch.java Provider.java Services.java
JARFILES = juh.jar ridl.jar unoil.jar
my_platform_components = passive_native
my_generic_components = passive_java passive_python
.INCLUDE: settings.mk
DLLPRE =
SLOFILES = $(SHL1OBJS)
SHL1TARGET = passive_native.uno
SHL1OBJS = $(SLO)/passive_native.obj
SHL1RPATH = OXT
SHL1STDLIBS = $(CPPUHELPERLIB) $(CPPULIB) $(SALLIB)
SHL1VERSIONMAP = $(SOLARENV)/src/component.map
DEF1NAME = $(SHL1TARGET)
.INCLUDE: target.mk
ALLTAR : $(MISC)/passive.oxt
$(MISC)/passive.oxt : manifest.xml description.xml Addons.xcu \
ProtocolHandler.xcu $(MISC)/$(TARGET)/platform.components \
$(MISC)/$(TARGET)/generic.components $(SHL1TARGETN) \
$(MISC)/$(TARGET)/passive_java.jar passive_python.py
$(RM) $@
$(RM) -r $(MISC)/$(TARGET)/passive.oxt-zip
$(MKDIR) $(MISC)/$(TARGET)/passive.oxt-zip
$(MKDIRHIER) $(MISC)/$(TARGET)/passive.oxt-zip/META-INF
$(SED) -e 's|@PLATFORM@|$(RTL_OS:l)_$(RTL_ARCH:l)|g' < manifest.xml \
> $(MISC)/$(TARGET)/passive.oxt-zip/META-INF/manifest.xml
$(COPY) description.xml Addons.xcu ProtocolHandler.xcu \
$(MISC)/$(TARGET)/platform.components \
$(MISC)/$(TARGET)/generic.components $(SHL1TARGETN) \
$(MISC)/$(TARGET)/passive_java.jar passive_python.py \
$(MISC)/$(TARGET)/passive.oxt-zip/
cd $(MISC)/$(TARGET)/passive.oxt-zip && zip ../../passive.oxt \
META-INF/manifest.xml description.xml Addons.xcu ProtocolHandler.xcu \
platform.components generic.components $(SHL1TARGETN:f) \
passive_java.jar passive_python.py
$(MISC)/$(TARGET)/platform.components : $(SOLARENV)/bin/packcomponents.xslt \
$(MISC)/$(TARGET)/platform.components.input \
$(my_platform_components:^"$(MISC)/$(TARGET)/":+".component")
$(XSLTPROC) --nonet --stringparam prefix $(PWD)/$(MISC)/$(TARGET)/ -o $@ \
$(SOLARENV)/bin/packcomponents.xslt \
$(MISC)/$(TARGET)/platform.components.input
$(MISC)/$(TARGET)/platform.components.input :
$(MKDIRHIER) $(@:d)
echo '<list>' \
'$(my_platform_components:^"<filename>":+".component</filename>")' \
'</list>' > $@
$(MISC)/$(TARGET)/generic.components : $(SOLARENV)/bin/packcomponents.xslt \
$(MISC)/$(TARGET)/generic.components.input \
$(my_generic_components:^"$(MISC)/$(TARGET)/":+".component")
$(XSLTPROC) --nonet --stringparam prefix $(PWD)/$(MISC)/$(TARGET)/ -o $@ \
$(SOLARENV)/bin/packcomponents.xslt \
$(MISC)/$(TARGET)/generic.components.input
$(MISC)/$(TARGET)/generic.components.input :
$(MKDIRHIER) $(@:d)
echo '<list>' \
'$(my_generic_components:^"<filename>":+".component</filename>")' \
'</list>' > $@
$(MISC)/$(TARGET)/passive_native.component : \
$(SOLARENV)/bin/createcomponent.xslt passive_native.component
$(MKDIRHIER) $(@:d)
$(XSLTPROC) --nonet --stringparam uri \
'$(COMPONENTPREFIX_EXTENSION)$(SHL1TARGETN:f)' -o $@ \
$(SOLARENV)/bin/createcomponent.xslt passive_native.component
$(MISC)/$(TARGET)/passive_java.component : \
$(SOLARENV)/bin/createcomponent.xslt passive_java.component
$(MKDIRHIER) $(@:d)
$(XSLTPROC) --nonet --stringparam uri \
'$(COMPONENTPREFIX_EXTENSION)passive_java.jar' -o $@ \
$(SOLARENV)/bin/createcomponent.xslt passive_java.component
$(MISC)/$(TARGET)/passive_python.component : \
$(SOLARENV)/bin/createcomponent.xslt passive_python.component
$(MKDIRHIER) $(@:d)
$(XSLTPROC) --nonet --stringparam uri \
'$(COMPONENTPREFIX_EXTENSION)passive_python.py' -o $@ \
$(SOLARENV)/bin/createcomponent.xslt passive_python.component
$(MISC)/$(TARGET)/passive_java.jar : MANIFEST.MF $(JAVATARGET)
$(MKDIRHIER) $(@:d)
$(RM) $@
$(RM) -r $(MISC)/$(TARGET)/passive_java.jar-zip
$(MKDIR) $(MISC)/$(TARGET)/passive_java.jar-zip
$(MKDIRHIER) $(MISC)/$(TARGET)/passive_java.jar-zip/META-INF \
$(MISC)/$(TARGET)/passive_java.jar-zip/$(PACKAGE)
$(COPY) MANIFEST.MF $(MISC)/$(TARGET)/passive_java.jar-zip/META-INF/
$(COPY) $(foreach,i,$(JAVAFILES:b) $(CLASSDIR)/$(PACKAGE)/$i.class) \
$(MISC)/$(TARGET)/passive_java.jar-zip/$(PACKAGE)/
cd $(MISC)/$(TARGET)/passive_java.jar-zip && zip ../passive_java.jar \
META-INF/MANIFEST.MF $(foreach,i,$(JAVAFILES:b) $(PACKAGE)/$i.class)

View File

@@ -0,0 +1,40 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--**********************************************************************
*
* 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.
*
**********************************************************************-->
<m:manifest xmlns:m="http://openoffice.org/2001/manifest">
<m:file-entry m:media-type="application/vnd.sun.star.configuration-data"
m:full-path="Addons.xcu"/>
<m:file-entry m:media-type="application/vnd.sun.star.configuration-data"
m:full-path="ProtocolHandler.xcu"/>
<m:file-entry
m:media-type="application/vnd.sun.star.uno-components;platform=@PLATFORM@"
m:full-path="platform.components"/>
<m:file-entry
m:media-type="application/vnd.sun.star.uno-components"
m:full-path="generic.components"/>
</m:manifest>

View File

@@ -0,0 +1,38 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--**********************************************************************
*
* 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.
*
**********************************************************************-->
<component loader="com.sun.star.loader.Java2"
xmlns="http://openoffice.org/2010/uno-components">
<implementation name="com.sun.star.comp.test.deployment.passive_java">
<service name="com.sun.star.test.deployment.passive_java"/>
</implementation>
<implementation
name="com.sun.star.comp.test.deployment.passive_java_singleton">
<singleton name="com.sun.star.test.deployment.passive_java_singleton"/>
</implementation>
</component>

View File

@@ -0,0 +1,38 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--**********************************************************************
*
* 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.
*
**********************************************************************-->
<component loader="com.sun.star.loader.SharedLibrary"
xmlns="http://openoffice.org/2010/uno-components">
<implementation name="com.sun.star.comp.test.deployment.passive_native">
<service name="com.sun.star.test.deployment.passive_native"/>
</implementation>
<implementation
name="com.sun.star.comp.test.deployment.passive_native_singleton">
<singleton name="com.sun.star.test.deployment.passive_native_singleton"/>
</implementation>
</component>

View File

@@ -0,0 +1,289 @@
/*************************************************************************
*
* 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.
*
************************************************************************/
#include "precompiled_desktop.hxx"
#include "sal/config.h"
#include "boost/noncopyable.hpp"
#include "com/sun/star/awt/MessageBoxButtons.hpp"
#include "com/sun/star/awt/Rectangle.hpp"
#include "com/sun/star/awt/XMessageBox.hpp"
#include "com/sun/star/awt/XMessageBoxFactory.hpp"
#include "com/sun/star/awt/XWindowPeer.hpp"
#include "com/sun/star/beans/PropertyValue.hpp"
#include "com/sun/star/frame/DispatchDescriptor.hpp"
#include "com/sun/star/frame/XDesktop.hpp"
#include "com/sun/star/frame/XDispatch.hpp"
#include "com/sun/star/frame/XDispatchProvider.hpp"
#include "com/sun/star/frame/XFrame.hpp"
#include "com/sun/star/frame/XStatusListener.hpp"
#include "com/sun/star/lang/XComponent.hpp"
#include "com/sun/star/lang/XMultiComponentFactory.hpp"
#include "com/sun/star/lang/XServiceInfo.hpp"
#include "com/sun/star/uno/DeploymentException.hpp"
#include "com/sun/star/uno/Exception.hpp"
#include "com/sun/star/uno/Reference.hxx"
#include "com/sun/star/uno/RuntimeException.hpp"
#include "com/sun/star/uno/Sequence.hxx"
#include "com/sun/star/uno/XComponentContext.hpp"
#include "com/sun/star/uno/XInterface.hpp"
#include "com/sun/star/util/URL.hpp"
#include "cppuhelper/factory.hxx"
#include "cppuhelper/implbase2.hxx"
#include "cppuhelper/implementationentry.hxx"
#include "cppuhelper/weak.hxx"
#include "osl/diagnose.h"
#include "rtl/ustring.h"
#include "rtl/ustring.hxx"
#include "sal/types.h"
#include "uno/lbnames.h"
namespace {
namespace css = com::sun::star;
class Provider:
public cppu::WeakImplHelper2<
css::lang::XServiceInfo, css::frame::XDispatchProvider >,
private boost::noncopyable
{
public:
static css::uno::Reference< css::uno::XInterface > SAL_CALL static_create(
css::uno::Reference< css::uno::XComponentContext > const & xContext)
SAL_THROW((css::uno::Exception))
{ return static_cast< cppu::OWeakObject * >(new Provider(xContext)); }
static rtl::OUString SAL_CALL static_getImplementationName();
static css::uno::Sequence< rtl::OUString > SAL_CALL
static_getSupportedServiceNames();
private:
Provider(
css::uno::Reference< css::uno::XComponentContext > const & context):
context_(context) { OSL_ASSERT(context.is()); }
virtual ~Provider() {}
virtual rtl::OUString SAL_CALL getImplementationName()
throw (css::uno::RuntimeException)
{ return static_getImplementationName(); }
virtual sal_Bool SAL_CALL supportsService(rtl::OUString const & ServiceName)
throw (css::uno::RuntimeException)
{ return ServiceName == getSupportedServiceNames()[0]; } //TODO
virtual css::uno::Sequence< rtl::OUString > SAL_CALL
getSupportedServiceNames() throw (css::uno::RuntimeException)
{ return static_getSupportedServiceNames(); }
virtual css::uno::Reference< css::frame::XDispatch > SAL_CALL queryDispatch(
css::util::URL const &, rtl::OUString const &, sal_Int32)
throw (css::uno::RuntimeException);
virtual css::uno::Sequence< css::uno::Reference< css::frame::XDispatch > >
SAL_CALL queryDispatches(
css::uno::Sequence< css::frame::DispatchDescriptor > const & Requests)
throw (css::uno::RuntimeException);
css::uno::Reference< css::uno::XComponentContext > context_;
};
rtl::OUString Provider::static_getImplementationName() {
return rtl::OUString(
RTL_CONSTASCII_USTRINGPARAM(
"com.sun.star.comp.test.deployment.passive_native"));
}
css::uno::Sequence< rtl::OUString > Provider::static_getSupportedServiceNames()
{
rtl::OUString name(
RTL_CONSTASCII_USTRINGPARAM(
"com.sun.star.test.deployment.passive_native"));
return css::uno::Sequence< rtl::OUString >(&name, 1);
}
css::uno::Reference< css::frame::XDispatch > Provider::queryDispatch(
css::util::URL const &, rtl::OUString const &, sal_Int32)
throw (css::uno::RuntimeException)
{
css::uno::Reference< css::frame::XDispatch > dispatch;
if (!(context_->getValueByName(
rtl::OUString(
RTL_CONSTASCII_USTRINGPARAM(
"/singletons/com.sun.star.test.deployment."
"passive_native_singleton"))) >>=
dispatch) ||
!dispatch.is())
{
throw css::uno::DeploymentException(
rtl::OUString(
RTL_CONSTASCII_USTRINGPARAM(
"component context fails to supply singleton"
" com.sun.star.test.deployment.passive_native_singleton of"
" type com.sun.star.frame.XDispatch")),
context_);
}
return dispatch;
}
css::uno::Sequence< css::uno::Reference< css::frame::XDispatch > >
Provider::queryDispatches(
css::uno::Sequence< css::frame::DispatchDescriptor > const & Requests)
throw (css::uno::RuntimeException)
{
css::uno::Sequence< css::uno::Reference< css::frame::XDispatch > > s(
Requests.getLength());
for (sal_Int32 i = 0; i < s.getLength(); ++i) {
s[i] = queryDispatch(
Requests[i].FeatureURL, Requests[i].FrameName,
Requests[i].SearchFlags);
}
return s;
}
class Dispatch:
public cppu::WeakImplHelper2<
css::lang::XServiceInfo, css::frame::XDispatch >,
private boost::noncopyable
{
public:
static css::uno::Reference< css::uno::XInterface > SAL_CALL static_create(
css::uno::Reference< css::uno::XComponentContext > const & xContext)
SAL_THROW((css::uno::Exception))
{ return static_cast< cppu::OWeakObject * >(new Dispatch(xContext)); }
static rtl::OUString SAL_CALL static_getImplementationName();
static css::uno::Sequence< rtl::OUString > SAL_CALL
static_getSupportedServiceNames()
{ return css::uno::Sequence< rtl::OUString >(); }
private:
Dispatch(
css::uno::Reference< css::uno::XComponentContext > const & context):
context_(context) { OSL_ASSERT(context.is()); }
virtual ~Dispatch() {}
virtual rtl::OUString SAL_CALL getImplementationName()
throw (css::uno::RuntimeException)
{ return static_getImplementationName(); }
virtual sal_Bool SAL_CALL supportsService(rtl::OUString const &)
throw (css::uno::RuntimeException)
{ return false; } //TODO
virtual css::uno::Sequence< rtl::OUString > SAL_CALL
getSupportedServiceNames() throw (css::uno::RuntimeException)
{ return static_getSupportedServiceNames(); }
virtual void SAL_CALL dispatch(
css::util::URL const &,
css::uno::Sequence< css::beans::PropertyValue > const &)
throw (css::uno::RuntimeException);
virtual void SAL_CALL addStatusListener(
css::uno::Reference< css::frame::XStatusListener > const &,
css::util::URL const &)
throw (css::uno::RuntimeException)
{}
virtual void SAL_CALL removeStatusListener(
css::uno::Reference< css::frame::XStatusListener > const &,
css::util::URL const &)
throw (css::uno::RuntimeException)
{}
css::uno::Reference< css::uno::XComponentContext > context_;
};
rtl::OUString Dispatch::static_getImplementationName() {
return rtl::OUString(
RTL_CONSTASCII_USTRINGPARAM(
"com.sun.star.comp.test.deployment.passive_native_singleton"));
}
void Dispatch::dispatch(
css::util::URL const &,
css::uno::Sequence< css::beans::PropertyValue > const &)
throw (css::uno::RuntimeException)
{
css::uno::Reference< css::lang::XMultiComponentFactory > smgr(
context_->getServiceManager(), css::uno::UNO_SET_THROW);
css::uno::Reference< css::awt::XMessageBox > box(
css::uno::Reference< css::awt::XMessageBoxFactory >(
smgr->createInstanceWithContext(
rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(
"com.sun.star.awt.Toolkit")), context_),
css::uno::UNO_QUERY_THROW)->createMessageBox(
css::uno::Reference< css::awt::XWindowPeer >(
css::uno::Reference< css::frame::XFrame >(
css::uno::Reference< css::frame::XDesktop >(
smgr->createInstanceWithContext(
rtl::OUString(
RTL_CONSTASCII_USTRINGPARAM(
"com.sun.star.frame.Desktop")),
context_),
css::uno::UNO_QUERY_THROW)->getCurrentFrame(),
css::uno::UNO_SET_THROW)->getComponentWindow(),
css::uno::UNO_QUERY_THROW),
css::awt::Rectangle(),
rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("infobox")),
css::awt::MessageBoxButtons::BUTTONS_OK,
rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("passive")),
rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("native"))),
css::uno::UNO_SET_THROW);
box->execute();
css::uno::Reference< css::lang::XComponent >(
box, css::uno::UNO_QUERY_THROW)->dispose();
}
static cppu::ImplementationEntry const services[] = {
{ &Provider::static_create, &Provider::static_getImplementationName,
&Provider::static_getSupportedServiceNames,
&cppu::createSingleComponentFactory, 0, 0 },
{ &Dispatch::static_create, &Dispatch::static_getImplementationName,
&Dispatch::static_getSupportedServiceNames,
&cppu::createSingleComponentFactory, 0, 0 },
{ 0, 0, 0, 0, 0, 0 }
};
}
extern "C" void * SAL_CALL component_getFactory(
char const * pImplName, void * pServiceManager, void * pRegistryKey)
{
return cppu::component_getFactoryHelper(
pImplName, pServiceManager, pRegistryKey, services);
}
extern "C" void SAL_CALL component_getImplementationEnvironment(
char const ** ppEnvTypeName, uno_Environment **)
{
*ppEnvTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME;
}

View File

@@ -0,0 +1,38 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--**********************************************************************
*
* 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.
*
**********************************************************************-->
<component loader="com.sun.star.loader.Python"
xmlns="http://openoffice.org/2010/uno-components">
<implementation name="com.sun.star.comp.test.deployment.passive_python">
<service name="com.sun.star.test.deployment.passive_python"/>
</implementation>
<implementation
name="com.sun.star.comp.test.deployment.passive_python_singleton">
<singleton name="com.sun.star.test.deployment.passive_python_singleton"/>
</implementation>
</component>

View File

@@ -0,0 +1,101 @@
#*************************************************************************
#
# 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.
#
#***********************************************************************/
import uno
import unohelper
from com.sun.star.awt import Rectangle
from com.sun.star.awt.MessageBoxButtons import BUTTONS_OK
from com.sun.star.frame import XDispatch, XDispatchProvider
from com.sun.star.lang import XServiceInfo
class Provider(unohelper.Base, XServiceInfo, XDispatchProvider):
implementationName = "com.sun.star.comp.test.deployment.passive_python"
serviceNames = ("com.sun.star.test.deployment.passive_python",)
def __init__(self, context):
self.context = context
def getImplementationName(self):
return self.implementationName
def supportsService(self, ServiceName):
return ServiceName in self.serviceNames
def getSupportedServiceNames(self):
return self.serviceNames
def queryDispatch(self, URL, TargetFrame, SearchFlags):
return self.context.getValueByName( \
"/singletons/com.sun.star.test.deployment.passive_python_singleton")
def queryDispatches(self, Requests):
tuple( \
self.queryDispatch(i.FeatureURL, i.FrameName, i.SearchFlags) \
for i in Requests)
class Dispatch(unohelper.Base, XServiceInfo, XDispatch):
implementationName = \
"com.sun.star.comp.test.deployment.passive_python_singleton"
serviceNames = ()
def __init__(self, context):
self.context = context
def getImplementationName(self):
return self.implementationName
def supportsService(self, ServiceName):
return ServiceName in self.serviceNames
def getSupportedServiceNames(self):
return self.serviceNames
def dispatch(self, URL, Arguments):
smgr = self.context.getServiceManager()
box = smgr.createInstanceWithContext( \
"com.sun.star.awt.Toolkit", self.context).createMessageBox( \
smgr.createInstanceWithContext( \
"com.sun.star.frame.Desktop", self.context). \
getCurrentFrame().getComponentWindow(), \
Rectangle(), "infobox", BUTTONS_OK, "passive", "python")
box.execute();
box.dispose();
def addStatusListener(self, Control, URL):
pass
def removeStatusListener(self, Control, URL):
pass
g_ImplementationHelper = unohelper.ImplementationHelper()
g_ImplementationHelper.addImplementation( \
Provider, Provider.implementationName, Provider.serviceNames)
g_ImplementationHelper.addImplementation( \
Dispatch, Dispatch.implementationName, Dispatch.serviceNames)

View File

@@ -1,4 +1,4 @@
eo embeddedobj : offuh sal cppu cppuhelper comphelper tools unotools vos NULL
eo embeddedobj : offuh sal cppu cppuhelper comphelper tools unotools vos LIBXSLT:libxslt NULL
eo embeddedobj usr1 - all eo_mkout NULL
eo embeddedobj\inc nmake - all eo_inc NULL
eo embeddedobj\source\commonembedding nmake - all eo_commonembed eo_inc NULL

View File

@@ -1,4 +1,4 @@
ea eventattacher : offapi cppuhelper vos NULL
ea eventattacher : offapi cppuhelper vos LIBXSLT:libxslt NULL
ea eventattacher usr1 - all ea_mkout NULL
ea eventattacher\prj get - all ea_prj NULL
ea eventattacher\source nmake - all ea_source NULL

View File

@@ -1,3 +1,3 @@
fa fileaccess : unotools rdbmaker tools ucbhelper NULL
fa fileaccess : unotools rdbmaker tools ucbhelper LIBXSLT:libxslt NULL
fa fileaccess usr1 - all fa_mkout NULL
fa fileaccess\source nmake - all fa_src NULL

View File

@@ -1,4 +1,4 @@
fml formula : BOOST:boost comphelper svx NULL
fml formula : BOOST:boost LIBXSLT:libxslt comphelper svx NULL
fml formula usr1 - all fml_mkout NULL
fml formula\inc nmake - all fml_inc NULL
fml formula\source\core\api nmake - all fml_api fml_inc NULL

View File

@@ -1,4 +1,4 @@
fp fpicker : l10n rdbmaker svtools NULL
fp fpicker : LIBXSLT:libxslt l10n rdbmaker svtools NULL
fp fpicker\inc nmake - all fp_inc NULL
fp fpicker\source\generic nmake - all fp_generic fp_inc NULL
fp fpicker\source\office nmake - all fp_office fp_inc NULL

View File

@@ -1,2 +1,2 @@
fr framework : l10n svtools NULL
fr framework : LIBXSLT:libxslt l10n svtools NULL
fr framework\prj nmake - all fr_all NULL

View File

@@ -1,4 +1,4 @@
lg linguistic : svl xmloff ucbhelper vos comphelper ICU:icu NULL
lg linguistic : svl xmloff ucbhelper vos comphelper ICU:icu LIBXSLT:libxslt NULL
lg linguistic usr1 - all lg_mkout NULL
lg linguistic\prj get - all lg_prj NULL
lg linguistic\inc nmake - all lg_inc NULL

2
scripting/prj/build.lst Executable file → Normal file
View File

@@ -1,4 +1,4 @@
tc scripting : oovbaapi vbahelper bridges rdbmaker vcl xmlscript basic sfx2 rhino BSH:beanshell javaunohelper NULL
tc scripting : oovbaapi vbahelper bridges rdbmaker vcl xmlscript basic sfx2 rhino BSH:beanshell javaunohelper LIBXSLT:libxslt NULL
tc scripting usr1 - all tc1_mkout NULL
tc scripting\inc nmake - all tc1_inc NULL
tc scripting\source\provider nmake - all tc1_scriptingprovider tc1_inc NULL

View File

@@ -1,4 +1,4 @@
sf sfx2 : l10n idl basic xmlscript framework readlicense_oo shell setup_native sax SYSTRAY_GTK:libegg LIBXML2:libxml2 NULL
sf sfx2 : l10n idl basic xmlscript framework readlicense_oo shell setup_native sax SYSTRAY_GTK:libegg LIBXML2:libxml2 LIBXSLT:libxslt NULL
sf sfx2 usr1 - all sf_mkout NULL
sf sfx2\prj nmake - all sf_prj NULL

View File

@@ -1,4 +1,4 @@
sl shell : l10n offuh rdbmaker tools sal EXPAT:expat NULL
sl shell : l10n offuh rdbmaker tools sal EXPAT:expat LIBXSLT:libxslt NULL
sl shell\inc nmake - all sl_inc NULL
sl shell\source\win32 nmake - w sl_win32 sl_inc NULL
sl shell\source\win32\simplemail nmake - w sl_win32_simplemail sl_inc NULL

View File

@@ -1,4 +1,4 @@
sx svx : sfx2 l10n oovbaapi connectivity xmloff linguistic jvmfwk avmedia drawinglayer editeng NULL
sx svx : sfx2 l10n oovbaapi connectivity xmloff linguistic jvmfwk avmedia drawinglayer editeng LIBXSLT:libxslt NULL
sx svx usr1 - all sx_mkout NULL
sx svx\inc nmake - all sx_inc NULL
sx svx\uiconfig\layout nmake - all sx_layout NULL

View File

@@ -1,4 +1,4 @@
uc ucb : cppuhelper CURL:curl OPENSSL:openssl NEON:neon LIBXML2:libxml2 offapi sal salhelper ucbhelper udkapi comphelper tools NULL
uc ucb : cppuhelper CURL:curl OPENSSL:openssl NEON:neon LIBXML2:libxml2 LIBXSLT:libxslt offapi sal salhelper ucbhelper udkapi comphelper tools NULL
uc ucb usr1 - all uc_mkout NULL
uc ucb\inc nmake - all uc_inc NULL
uc ucb\source\regexp nmake - all uc_regexp uc_inc NULL

View File

@@ -1,4 +1,4 @@
uu uui : l10n vcl svtools NULL
uu uui : l10n vcl svtools LIBXSLT:libxslt NULL
uu uui usr1 - all uu_mkout NULL
uu uui\source nmake - all uu_source NULL
uu uui\util nmake - all uu_util uu_source NULL

View File

@@ -1,4 +1,4 @@
vba vbahelper : oovbaapi offuh basic sfx2 svx filter cppuhelper vcl comphelper svtools tools sal NULL
vba vbahelper : oovbaapi offuh basic sfx2 svx filter cppuhelper vcl comphelper svtools tools sal LIBXSLT:libxslt NULL
vba vbahelper usr1 - all vba_mkout NULL
#vba vbahelper\inc nmake - all vba_inc NULL
vba vbahelper\source\vbahelper nmake - all vba_vbahelper NULL

View File

@@ -1,4 +1,4 @@
xo xmloff : offapi svl vos NULL
xo xmloff : LIBXSLT:libxslt offapi svl vos NULL
zxo xmloff\prj nmake - all xo_prj NULL
xo xmloff\qa\unoapi nmake - all xo_qa_unoapi NULL

View File

@@ -1,4 +1,4 @@
xt xmlscript : comphelper tools offapi NULL
xt xmlscript : comphelper tools offapi LIBXSLT:libxslt NULL
xt xmlscript usr1 - all xt_mkout NULL
xt xmlscript\inc nmake - all xt_inc NULL
xt xmlscript\source\xml_helper nmake - all xt_xml_helper xt_inc NULL