summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--extensions/source/resource/ResourceIndexAccess.cxx208
-rw-r--r--extensions/source/resource/ResourceIndexAccess.hxx75
-rw-r--r--extensions/source/resource/makefile.mk8
-rw-r--r--extensions/source/resource/oooresourceloader.cxx169
-rw-r--r--extensions/source/resource/oooresourceloader.hxx87
-rw-r--r--extensions/source/resource/res.component6
-rw-r--r--extensions/source/resource/res_services.cxx89
-rw-r--r--extensions/source/resource/res_services.hxx67
-rw-r--r--extensions/source/resource/resource.cxx476
-rw-r--r--extensions/source/resource/resourceservices.cxx58
-rwxr-xr-xwizards/com/sun/star/wizards/RemoteFaxWizard7
-rwxr-xr-xwizards/com/sun/star/wizards/RemoteLetterWizard7
-rw-r--r--wizards/com/sun/star/wizards/__init__.py0
-rw-r--r--wizards/com/sun/star/wizards/common/ConfigGroup.py38
-rw-r--r--wizards/com/sun/star/wizards/common/ConfigNode.py15
-rw-r--r--wizards/com/sun/star/wizards/common/Configuration.py213
-rw-r--r--wizards/com/sun/star/wizards/common/DebugHelper.py10
-rw-r--r--wizards/com/sun/star/wizards/common/Desktop.py280
-rw-r--r--wizards/com/sun/star/wizards/common/FileAccess.py771
-rw-r--r--wizards/com/sun/star/wizards/common/HelpIds.py1012
-rw-r--r--wizards/com/sun/star/wizards/common/Helper.py186
-rw-r--r--wizards/com/sun/star/wizards/common/NoValidPathException.py10
-rw-r--r--wizards/com/sun/star/wizards/common/NumberFormatter.py231
-rw-r--r--wizards/com/sun/star/wizards/common/PropertyNames.py15
-rw-r--r--wizards/com/sun/star/wizards/common/PropertySetHelper.py250
-rw-r--r--wizards/com/sun/star/wizards/common/Resource.java85
-rw-r--r--wizards/com/sun/star/wizards/common/Resource.java.orig140
-rw-r--r--wizards/com/sun/star/wizards/common/Resource.py70
-rw-r--r--wizards/com/sun/star/wizards/common/SystemDialog.py236
-rw-r--r--wizards/com/sun/star/wizards/common/__init__.py1
-rw-r--r--wizards/com/sun/star/wizards/common/prova.py7
-rw-r--r--wizards/com/sun/star/wizards/document/OfficeDocument.py293
-rw-r--r--wizards/com/sun/star/wizards/document/__init__.py0
-rw-r--r--wizards/com/sun/star/wizards/fax/CGFax.py31
-rw-r--r--wizards/com/sun/star/wizards/fax/CGFaxWizard.py10
-rw-r--r--wizards/com/sun/star/wizards/fax/CallWizard.py156
-rw-r--r--wizards/com/sun/star/wizards/fax/FaxDocument.py131
-rw-r--r--wizards/com/sun/star/wizards/fax/FaxWizardDialog.py650
-rw-r--r--wizards/com/sun/star/wizards/fax/FaxWizardDialogConst.py83
-rw-r--r--wizards/com/sun/star/wizards/fax/FaxWizardDialogImpl.py706
-rw-r--r--wizards/com/sun/star/wizards/fax/FaxWizardDialogResources.py141
-rw-r--r--wizards/com/sun/star/wizards/fax/__init__.py1
-rw-r--r--wizards/com/sun/star/wizards/letter/CGLetter.py37
-rw-r--r--wizards/com/sun/star/wizards/letter/CGLetterWizard.py10
-rw-r--r--wizards/com/sun/star/wizards/letter/CGPaperElementLocation.py10
-rw-r--r--wizards/com/sun/star/wizards/letter/LetterDocument.py261
-rw-r--r--wizards/com/sun/star/wizards/letter/LetterWizardDialog.py1141
-rw-r--r--wizards/com/sun/star/wizards/letter/LetterWizardDialogConst.py60
-rw-r--r--wizards/com/sun/star/wizards/letter/LetterWizardDialogImpl.py1278
-rw-r--r--wizards/com/sun/star/wizards/letter/LetterWizardDialogResources.py219
-rw-r--r--wizards/com/sun/star/wizards/letter/LocaleCodes.py154
-rw-r--r--wizards/com/sun/star/wizards/letter/__init__.py0
-rw-r--r--wizards/com/sun/star/wizards/text/TextDocument.py285
-rw-r--r--wizards/com/sun/star/wizards/text/TextFieldHandler.py190
-rw-r--r--wizards/com/sun/star/wizards/text/TextSectionHandler.py133
-rw-r--r--wizards/com/sun/star/wizards/text/ViewHandler.py37
-rw-r--r--wizards/com/sun/star/wizards/text/__init__.py0
-rw-r--r--wizards/com/sun/star/wizards/ui/PathSelection.py121
-rw-r--r--wizards/com/sun/star/wizards/ui/UIConsts.py53
-rw-r--r--wizards/com/sun/star/wizards/ui/UnoDialog.py552
-rw-r--r--wizards/com/sun/star/wizards/ui/UnoDialog2.py259
-rw-r--r--wizards/com/sun/star/wizards/ui/WizardDialog.py499
-rw-r--r--wizards/com/sun/star/wizards/ui/XPathSelectionListener.py7
-rw-r--r--wizards/com/sun/star/wizards/ui/__init__.py1
-rw-r--r--wizards/com/sun/star/wizards/ui/event/CommonListener.py85
-rw-r--r--wizards/com/sun/star/wizards/ui/event/DataAware.py127
-rw-r--r--wizards/com/sun/star/wizards/ui/event/RadioDataAware.py39
-rw-r--r--wizards/com/sun/star/wizards/ui/event/UnoDataAware.py74
-rw-r--r--wizards/com/sun/star/wizards/ui/event/__init__.py0
69 files changed, 11820 insertions, 841 deletions
diff --git a/extensions/source/resource/ResourceIndexAccess.cxx b/extensions/source/resource/ResourceIndexAccess.cxx
new file mode 100644
index 000000000000..31a244b96a5f
--- /dev/null
+++ b/extensions/source/resource/ResourceIndexAccess.cxx
@@ -0,0 +1,208 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * Version: MPL 1.1 / GPLv3+ / LGPLv3+
+ *
+ * The contents of this file are subject to the Mozilla Public License Version
+ * 1.1 (the "License"); you may not use this file except in compliance with
+ * the License or as specified alternatively below. You may obtain a copy of
+ * the License at http://www.mozilla.org/MPL/
+ *
+ * Software distributed under the License is distributed on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+ * for the specific language governing rights and limitations under the
+ * License.
+ *
+ * The Initial Developer of the Original Code is
+ * Bjoern Michaelsen <bjoern.michaelsen@canonical.com>
+ * Portions created by the Initial Developer are Copyright (C) 2010 the
+ * Initial Developer. All Rights Reserved.
+ *
+ * Major Contributor(s):
+ *
+ * For minor contributions see the git repository.
+ *
+ * Alternatively, the contents of this file may be used under the terms of
+ * either the GNU General Public License Version 3 or later (the "GPLv3+"), or
+ * the GNU Lesser General Public License Version 3 or later (the "LGPLv3+"),
+ * in which case the provisions of the GPLv3+ or the LGPLv3+ are applicable
+ * instead of those above.
+ */
+
+#include <ResourceIndexAccess.hxx>
+
+#include <com/sun/star/container/XIndexAccess.hpp>
+#include <com/sun/star/beans/PropertyValue.hpp>
+#include <comphelper/stlunosequence.hxx>
+#include <osl/mutex.hxx>
+#include <tools/rcid.h>
+#include <tools/resary.hxx>
+#include <tools/resmgr.hxx>
+#include <vcl/svapp.hxx>
+
+using namespace ::extensions::resource;
+using namespace ::com::sun::star::uno;
+using namespace ::com::sun::star::lang;
+using namespace ::com::sun::star::beans;
+using namespace ::com::sun::star::container;
+
+using ::comphelper::stl_begin;
+using ::comphelper::stl_end;
+using ::rtl::OString;
+using ::rtl::OUString;
+using ::rtl::OUStringToOString;
+
+namespace
+{
+ static ::boost::shared_ptr<ResMgr> GetResMgr(Sequence<Any> const& rArgs)
+ {
+ if(rArgs.getLength()!=1)
+ return ::boost::shared_ptr<ResMgr>();
+ OUString sFilename;
+ rArgs[0] >>= sFilename;
+ SolarMutexGuard aGuard;
+ const OString sEncName(OUStringToOString(sFilename, osl_getThreadTextEncoding()));
+ return ::boost::shared_ptr<ResMgr>(ResMgr::CreateResMgr(sEncName));
+ }
+
+ class ResourceIndexAccessBase : public cppu::WeakImplHelper1< ::com::sun::star::container::XIndexAccess>
+ {
+ public:
+ ResourceIndexAccessBase( ::boost::shared_ptr<ResMgr> pResMgr)
+ : m_pResMgr(pResMgr)
+ {
+ OSL_ENSURE(m_pResMgr, "no ressource manager given");
+ }
+
+ // XIndexAccess
+ virtual ::sal_Int32 SAL_CALL getCount( ) throw (::com::sun::star::uno::RuntimeException)
+ { return m_pResMgr.get() ? SAL_MAX_UINT16 : 0; };
+ // XElementAccess
+ virtual ::sal_Bool SAL_CALL hasElements( ) throw (::com::sun::star::uno::RuntimeException)
+ { return static_cast<bool>(m_pResMgr.get()); };
+
+ protected:
+ // m_pResMgr should never be NULL
+ const ::boost::shared_ptr<ResMgr> m_pResMgr;
+ };
+
+ class ResourceStringIndexAccess : public ResourceIndexAccessBase
+ {
+ public:
+ ResourceStringIndexAccess( ::boost::shared_ptr<ResMgr> pResMgr)
+ : ResourceIndexAccessBase(pResMgr) {}
+ // XIndexAccess
+ virtual ::com::sun::star::uno::Any SAL_CALL getByIndex( ::sal_Int32 Index ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException);
+ // XElementAccessBase
+ virtual ::com::sun::star::uno::Type SAL_CALL getElementType( ) throw (::com::sun::star::uno::RuntimeException)
+ { return ::getCppuType(reinterpret_cast< ::rtl::OUString*>(NULL)); };
+ };
+
+ class ResourceStringListIndexAccess : public ResourceIndexAccessBase
+ {
+ public:
+ ResourceStringListIndexAccess( ::boost::shared_ptr<ResMgr> pResMgr)
+ : ResourceIndexAccessBase(pResMgr) {}
+ // XIndexAccess
+ virtual ::com::sun::star::uno::Any SAL_CALL getByIndex( ::sal_Int32 Index ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException);
+ // XElementAccessBase
+ virtual ::com::sun::star::uno::Type SAL_CALL getElementType( ) throw (::com::sun::star::uno::RuntimeException)
+ { return ::getCppuType(reinterpret_cast<Sequence<PropertyValue> * >(NULL)); };
+ };
+}
+
+ResourceIndexAccess::ResourceIndexAccess(Sequence<Any> const& rArgs, Reference<XComponentContext> const&)
+ : m_pResMgr(GetResMgr(rArgs))
+{};
+
+Reference<XInterface> initResourceIndexAccess(ResourceIndexAccess* pResourceIndexAccess)
+{
+ Reference<XInterface> xResult(static_cast<cppu::OWeakObject*>(pResourceIndexAccess));
+ if(!pResourceIndexAccess->hasElements())
+ // xResult does not help the client to analyse the problem
+ // and will crash on getByIndex calls, better just give back an empty Reference
+ // so that such ResourceStringIndexAccess instances are never release into the wild
+ throw RuntimeException(
+ OUString(RTL_CONSTASCII_USTRINGPARAM("ressource manager could not get initialized")),
+ /* xResult */ Reference<XInterface>());
+ return xResult;
+}
+
+Any SAL_CALL ResourceIndexAccess::getByName(const OUString& aName)
+ throw (NoSuchElementException, WrappedTargetException, RuntimeException)
+{
+ const Sequence<OUString> aNames(getElementNames());
+ Reference<XIndexAccess> xResult;
+ switch(::std::find(stl_begin(aNames), stl_end(aNames), aName)-stl_begin(aNames))
+ {
+ case 0:
+ xResult = Reference<XIndexAccess>(new ResourceStringIndexAccess(m_pResMgr));
+ break;
+ case 1:
+ xResult = Reference<XIndexAccess>(new ResourceStringListIndexAccess(m_pResMgr));
+ break;
+ default:
+ throw NoSuchElementException();
+ }
+ return makeAny(xResult);
+}
+
+Sequence<OUString> SAL_CALL ResourceIndexAccess::getElementNames( )
+ throw (RuntimeException)
+{
+ static Sequence<OUString> aResult;
+ if( aResult.getLength() == 0)
+ {
+ aResult.realloc(2);
+ aResult[0] = OUString(RTL_CONSTASCII_USTRINGPARAM("String"));
+ aResult[1] = OUString(RTL_CONSTASCII_USTRINGPARAM("StringList"));
+ }
+ return aResult;
+}
+
+::sal_Bool SAL_CALL ResourceIndexAccess::hasByName(const OUString& aName)
+ throw (RuntimeException)
+{
+ const Sequence<OUString> aNames(getElementNames());
+ return (::std::find(stl_begin(aNames), stl_end(aNames), aName) != stl_end(aNames));
+}
+
+Any SAL_CALL ResourceStringIndexAccess::getByIndex(sal_Int32 nIdx)
+ throw (IndexOutOfBoundsException, WrappedTargetException, RuntimeException)
+{
+ if(nIdx > SAL_MAX_UINT16 || nIdx < 0)
+ throw IndexOutOfBoundsException();
+ SolarMutexGuard aGuard;
+ const ResId aId(static_cast<sal_uInt16>(nIdx), *m_pResMgr);
+ aId.SetRT(RSC_STRING);
+ if(!m_pResMgr->IsAvailable(aId))
+ throw RuntimeException(
+ OUString(RTL_CONSTASCII_USTRINGPARAM("string ressource for id not available")),
+ Reference<XInterface>());
+ return makeAny(OUString(String(aId)));
+}
+
+Any SAL_CALL ResourceStringListIndexAccess::getByIndex(sal_Int32 nIdx)
+ throw (IndexOutOfBoundsException, WrappedTargetException, RuntimeException)
+{
+ if(nIdx > SAL_MAX_UINT16 || nIdx < 0)
+ throw IndexOutOfBoundsException();
+ SolarMutexGuard aGuard;
+ const ResId aId(static_cast<sal_uInt16>(nIdx), *m_pResMgr);
+ aId.SetRT(RSC_STRINGARRAY);
+ if(!m_pResMgr->IsAvailable(aId))
+ throw RuntimeException(
+ OUString(RTL_CONSTASCII_USTRINGPARAM("string list ressource for id not available")),
+ Reference<XInterface>());
+ const ResStringArray aStringList(aId);
+ Sequence<PropertyValue> aPropList(aStringList.Count());
+ for(sal_Int32 nCount = 0; nCount != aPropList.getLength(); ++nCount)
+ {
+ aPropList[nCount].Name = aStringList.GetString(nCount);
+ aPropList[nCount].Handle = -1;
+ aPropList[nCount].Value <<= aStringList.GetValue(nCount);
+ aPropList[nCount].State = PropertyState_DIRECT_VALUE;
+ }
+ return makeAny(aPropList);
+}
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/extensions/source/resource/ResourceIndexAccess.hxx b/extensions/source/resource/ResourceIndexAccess.hxx
new file mode 100644
index 000000000000..41632591aa10
--- /dev/null
+++ b/extensions/source/resource/ResourceIndexAccess.hxx
@@ -0,0 +1,75 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * Version: MPL 1.1 / GPLv3+ / LGPLv3+
+ *
+ * The contents of this file are subject to the Mozilla Public License Version
+ * 1.1 (the "License"); you may not use this file except in compliance with
+ * the License or as specified alternatively below. You may obtain a copy of
+ * the License at http://www.mozilla.org/MPL/
+ *
+ * Software distributed under the License is distributed on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+ * for the specific language governing rights and limitations under the
+ * License.
+ *
+ * The Initial Developer of the Original Code is
+ * Bjoern Michaelsen <bjoern.michaelsen@canonical.com>
+ * Portions created by the Initial Developer are Copyright (C) 2010 the
+ * Initial Developer. All Rights Reserved.
+ *
+ * Major Contributor(s):
+ *
+ * For minor contributions see the git repository.
+ *
+ * Alternatively, the contents of this file may be used under the terms of
+ * either the GNU General Public License Version 3 or later (the "GPLv3+"), or
+ * the GNU Lesser General Public License Version 3 or later (the "LGPLv3+"),
+ * in which case the provisions of the GPLv3+ or the LGPLv3+ are applicable
+ * instead of those above.
+ */
+
+#ifndef EXTENSIONS_RESOURCE_RESOURCESTRINGINDEXACCESS_HXX
+#define EXTENSIONS_RESOURCE_RESOURCESTRINGINDEXACCESS_HXX
+
+#include "precompiled_extensions.hxx"
+
+#include <boost/shared_ptr.hpp>
+#include <com/sun/star/container/XNameAccess.hpp>
+#include <com/sun/star/uno/Reference.hxx>
+#include <com/sun/star/uno/Sequence.hxx>
+#include <com/sun/star/uno/XInterface.hpp>
+#include <cppuhelper/implbase1.hxx>
+
+class ResMgr;
+
+namespace extensions { namespace resource
+{
+ /** This class provides access to tools library text resources */
+ class ResourceIndexAccess : public cppu::WeakImplHelper1< ::com::sun::star::container::XNameAccess>
+ {
+ public:
+ /** The ctor takes a sequence with one element: the name of the resource, e.g. svt */
+ ResourceIndexAccess(::com::sun::star::uno::Sequence< ::com::sun::star::uno::Any> const& rArgs, ::com::sun::star::uno::Reference< ::com::sun::star::uno::XComponentContext> const&);
+ // XNameAccess
+ // The XNameAccess provides access to two named elements:
+ // "String" returns a XIndexAccess to String resources
+ // "StringList" returns a XIndexAccess to StringList/StringArray resources
+ virtual ::com::sun::star::uno::Any SAL_CALL getByName( const ::rtl::OUString& aName ) throw (::com::sun::star::container::NoSuchElementException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException);
+ virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getElementNames( ) throw (::com::sun::star::uno::RuntimeException);
+ virtual ::sal_Bool SAL_CALL hasByName( const ::rtl::OUString& aName ) throw (::com::sun::star::uno::RuntimeException);
+ // XElementAccess
+ virtual ::com::sun::star::uno::Type SAL_CALL getElementType( ) throw (::com::sun::star::uno::RuntimeException)
+ { return ::getCppuType(reinterpret_cast< ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface>*>(NULL)); };
+ virtual ::sal_Bool SAL_CALL hasElements( ) throw (::com::sun::star::uno::RuntimeException)
+ { return static_cast<bool>(m_pResMgr.get()); };
+
+ private:
+ // m_pResMgr should never be NULL
+ const ::boost::shared_ptr<ResMgr> m_pResMgr;
+ };
+}}
+
+::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface> initResourceIndexAccess(::extensions::resource::ResourceIndexAccess*);
+
+#endif
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/extensions/source/resource/makefile.mk b/extensions/source/resource/makefile.mk
index adeec5fd09dc..4839ec0b7ca2 100644
--- a/extensions/source/resource/makefile.mk
+++ b/extensions/source/resource/makefile.mk
@@ -39,9 +39,10 @@ ENABLE_EXCEPTIONS=TRUE
# --- Files --------------------------------------------------------
-SLOFILES= $(SLO)$/resource.obj \
- $(SLO)$/oooresourceloader.obj \
- $(SLO)$/res_services.obj
+SLOFILES= \
+ $(SLO)$/ResourceIndexAccess.obj \
+ $(SLO)$/oooresourceloader.obj \
+ $(SLO)$/resourceservices.obj
LIB1TARGET= $(SLB)$/$(TARGET).lib
LIB1OBJFILES= $(SLOFILES)
@@ -49,6 +50,7 @@ LIB1OBJFILES= $(SLOFILES)
SHL1TARGET= $(TARGET)$(DLLPOSTFIX)
SHL1STDLIBS= \
+ $(COMPHELPERLIB) \
$(CPPULIB) \
$(CPPUHELPERLIB) \
$(SALLIB) \
diff --git a/extensions/source/resource/oooresourceloader.cxx b/extensions/source/resource/oooresourceloader.cxx
index ee5cc2a0ea3f..6e89ff24168b 100644
--- a/extensions/source/resource/oooresourceloader.cxx
+++ b/extensions/source/resource/oooresourceloader.cxx
@@ -29,15 +29,7 @@
// MARKER(update_precomp.py): autogen include statement, do not remove
#include "precompiled_extensions.hxx"
-#ifndef EXTENSIONS_SOURCE_RESOURCE_OOORESOURCELOADER_CXX
-#define EXTENSIONS_SOURCE_RESOURCE_OOORESOURCELOADER_CXX
-#include "res_services.hxx"
-
-/** === begin UNO includes === **/
-#include <com/sun/star/resource/XResourceBundleLoader.hpp>
-#include <com/sun/star/lang/XMultiServiceFactory.hpp>
-#include <com/sun/star/uno/XComponentContext.hpp>
-/** === end UNO includes === **/
+#include <oooresourceloader.hxx>
#include <vcl/svapp.hxx>
#include <tools/simplerm.hxx>
#include <tools/rcid.h>
@@ -47,87 +39,14 @@
#include <boost/shared_ptr.hpp>
#include <map>
-//........................................................................
-namespace res
-{
-//........................................................................
-
- /** === begin UNO using === **/
- using ::com::sun::star::uno::Reference;
- using ::com::sun::star::resource::XResourceBundleLoader;
- using ::com::sun::star::resource::XResourceBundle;
- using ::com::sun::star::resource::MissingResourceException;
- using ::com::sun::star::uno::XComponentContext;
- using ::com::sun::star::uno::Sequence;
- using ::com::sun::star::uno::XInterface;
- using ::com::sun::star::uno::RuntimeException;
- using ::com::sun::star::lang::Locale;
- using ::com::sun::star::uno::Any;
- using ::com::sun::star::container::NoSuchElementException;
- using ::com::sun::star::lang::WrappedTargetException;
- using ::com::sun::star::uno::Type;
- using ::com::sun::star::uno::WeakReference;
- /** === end UNO using === **/
-
- //====================================================================
- //= helper
- //====================================================================
- typedef ::std::pair< ::rtl::OUString, Locale > ResourceBundleDescriptor;
-
- struct ResourceBundleDescriptorLess : public ::std::binary_function< ResourceBundleDescriptor, ResourceBundleDescriptor, bool >
- {
- bool operator()( const ResourceBundleDescriptor& _lhs, const ResourceBundleDescriptor& _rhs ) const
- {
- if ( _lhs.first < _rhs.first )
- return true;
- if ( _lhs.second.Language < _rhs.second.Language )
- return true;
- if ( _lhs.second.Country < _rhs.second.Country )
- return true;
- if ( _lhs.second.Variant < _rhs.second.Variant )
- return true;
- return false;
- }
- };
+using namespace ::com::sun::star::uno;
+using namespace ::com::sun::star::resource;
+using namespace ::com::sun::star::container;
+using namespace ::com::sun::star::lang;
- //====================================================================
- //= OpenOfficeResourceLoader
- //====================================================================
- typedef ::cppu::WeakImplHelper1 < XResourceBundleLoader
- > OpenOfficeResourceLoader_Base;
- class OpenOfficeResourceLoader : public OpenOfficeResourceLoader_Base
- {
- private:
- typedef ::std::map< ResourceBundleDescriptor, WeakReference< XResourceBundle >, ResourceBundleDescriptorLess >
- ResourceBundleCache;
-
- private:
- Reference< XComponentContext > m_xContext;
- ::osl::Mutex m_aMutex;
- ResourceBundleCache m_aBundleCache;
-
- protected:
- OpenOfficeResourceLoader( const Reference< XComponentContext >& _rxContext );
-
- public:
- static Sequence< ::rtl::OUString > getSupportedServiceNames_static();
- static ::rtl::OUString getImplementationName_static();
- static ::rtl::OUString getSingletonName_static();
- static Reference< XInterface > Create( const Reference< XComponentContext >& _rxContext );
- // XResourceBundleLoader
- virtual Reference< XResourceBundle > SAL_CALL loadBundle_Default( const ::rtl::OUString& aBaseName ) throw (MissingResourceException, RuntimeException);
- virtual Reference< XResourceBundle > SAL_CALL loadBundle( const ::rtl::OUString& abaseName, const Locale& aLocale ) throw (MissingResourceException, RuntimeException);
-
- private:
- OpenOfficeResourceLoader(); // never implemented
- OpenOfficeResourceLoader( const OpenOfficeResourceLoader& ); // never implemented
- OpenOfficeResourceLoader& operator=( const OpenOfficeResourceLoader& ); // never implemented
- };
-
- //====================================================================
- //= IResourceType
- //====================================================================
+namespace extensions { namespace resource
+{
/** encapsulates access to a fixed resource type
*/
class IResourceType
@@ -153,9 +72,6 @@ namespace res
virtual ~IResourceType() { };
};
- //====================================================================
- //= StringResourceAccess
- //====================================================================
class StringResourceAccess : public IResourceType
{
public:
@@ -166,18 +82,15 @@ namespace res
virtual Any getResource( SimpleResMgr& _resourceManager, sal_Int32 _resourceId ) const;
};
- //--------------------------------------------------------------------
StringResourceAccess::StringResourceAccess()
{
}
- //--------------------------------------------------------------------
RESOURCE_TYPE StringResourceAccess::getResourceType() const
{
return RSC_STRING;
}
- //--------------------------------------------------------------------
Any StringResourceAccess::getResource( SimpleResMgr& _resourceManager, sal_Int32 _resourceId ) const
{
OSL_PRECOND( _resourceManager.IsAvailable( getResourceType(), _resourceId ), "StringResourceAccess::getResource: precondition not met!" );
@@ -186,9 +99,6 @@ namespace res
return aResource;
}
- //====================================================================
- //= OpenOfficeResourceBundle
- //====================================================================
typedef ::cppu::WeakImplHelper1 < XResourceBundle
> OpenOfficeResourceBundle_Base;
class OpenOfficeResourceBundle : public OpenOfficeResourceBundle_Base
@@ -257,42 +167,12 @@ namespace res
bool impl_getResourceTypeAndId_nothrow( const ::rtl::OUString& _key, ResourceTypePtr& _out_resourceType, sal_Int32& _out_resourceId ) const;
};
- //====================================================================
- //= OpenOfficeResourceLoader
- //====================================================================
- //--------------------------------------------------------------------
- OpenOfficeResourceLoader::OpenOfficeResourceLoader( const Reference< XComponentContext >& _rxContext )
+ OpenOfficeResourceLoader::OpenOfficeResourceLoader( Reference< XComponentContext > const& _rxContext )
:m_xContext( _rxContext )
{
}
//--------------------------------------------------------------------
- Sequence< ::rtl::OUString > OpenOfficeResourceLoader::getSupportedServiceNames_static()
- {
- Sequence< ::rtl::OUString > aServices( 1 );
- aServices[ 0 ] = getSingletonName_static();
- return aServices;
- }
-
- //--------------------------------------------------------------------
- ::rtl::OUString OpenOfficeResourceLoader::getImplementationName_static()
- {
- return ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.comp.resource.OpenOfficeResourceLoader" ) );
- }
-
- //--------------------------------------------------------------------
- ::rtl::OUString OpenOfficeResourceLoader::getSingletonName_static()
- {
- return ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.resource.OfficeResourceLoader" ) );
- }
-
- //--------------------------------------------------------------------
- Reference< XInterface > OpenOfficeResourceLoader::Create( const Reference< XComponentContext >& _rxContext )
- {
- return *( new OpenOfficeResourceLoader( _rxContext ) );
- }
-
- //--------------------------------------------------------------------
Reference< XResourceBundle > SAL_CALL OpenOfficeResourceLoader::loadBundle_Default( const ::rtl::OUString& _baseName ) throw (MissingResourceException, RuntimeException)
{
return loadBundle( _baseName, Application::GetSettings().GetUILocale() );
@@ -319,21 +199,6 @@ namespace res
return xBundle;
}
- //--------------------------------------------------------------------
- ComponentInfo getComponentInfo_OpenOfficeResourceLoader()
- {
- ComponentInfo aInfo;
- aInfo.aSupportedServices = OpenOfficeResourceLoader::getSupportedServiceNames_static();
- aInfo.sImplementationName = OpenOfficeResourceLoader::getImplementationName_static();
- aInfo.sSingletonName = OpenOfficeResourceLoader::getSingletonName_static();
- aInfo.pFactory = &OpenOfficeResourceLoader::Create;
- return aInfo;
- }
-
- //====================================================================
- //= OpenOfficeResourceBundle
- //====================================================================
- //--------------------------------------------------------------------
OpenOfficeResourceBundle::OpenOfficeResourceBundle( const Reference< XComponentContext >& /*_rxContext*/, const ::rtl::OUString& _rBaseName, const Locale& _rLocale )
:m_aLocale( _rLocale )
,m_pResourceManager( NULL )
@@ -352,34 +217,29 @@ namespace res
ResourceTypePtr( new StringResourceAccess );
}
- //--------------------------------------------------------------------
OpenOfficeResourceBundle::~OpenOfficeResourceBundle()
{
delete m_pResourceManager;
}
- //--------------------------------------------------------------------
Reference< XResourceBundle > SAL_CALL OpenOfficeResourceBundle::getParent() throw (RuntimeException)
{
::osl::MutexGuard aGuard( m_aMutex );
return m_xParent;
}
- //--------------------------------------------------------------------
void SAL_CALL OpenOfficeResourceBundle::setParent( const Reference< XResourceBundle >& _parent ) throw (RuntimeException)
{
::osl::MutexGuard aGuard( m_aMutex );
m_xParent = _parent;
}
- //--------------------------------------------------------------------
Locale SAL_CALL OpenOfficeResourceBundle::getLocale( ) throw (RuntimeException)
{
::osl::MutexGuard aGuard( m_aMutex );
return m_aLocale;
}
- //--------------------------------------------------------------------
bool OpenOfficeResourceBundle::impl_getResourceTypeAndId_nothrow( const ::rtl::OUString& _key, ResourceTypePtr& _out_resourceType, sal_Int32& _out_resourceId ) const
{
sal_Int32 typeSeparatorPos = _key.indexOf( ':' );
@@ -399,7 +259,6 @@ namespace res
return true;
}
- //--------------------------------------------------------------------
bool OpenOfficeResourceBundle::impl_getDirectElement_nothrow( const ::rtl::OUString& _key, Any& _out_Element ) const
{
ResourceTypePtr resourceType;
@@ -415,7 +274,6 @@ namespace res
return _out_Element.hasValue();
}
- //--------------------------------------------------------------------
Any SAL_CALL OpenOfficeResourceBundle::getDirectElement( const ::rtl::OUString& _key ) throw (RuntimeException)
{
::osl::MutexGuard aGuard( m_aMutex );
@@ -425,7 +283,6 @@ namespace res
return aElement;
}
- //--------------------------------------------------------------------
Any SAL_CALL OpenOfficeResourceBundle::getByName( const ::rtl::OUString& _key ) throw (NoSuchElementException, WrappedTargetException, RuntimeException)
{
::osl::MutexGuard aGuard( m_aMutex );
@@ -443,7 +300,6 @@ namespace res
return aElement;
}
- //--------------------------------------------------------------------
Sequence< ::rtl::OUString > SAL_CALL OpenOfficeResourceBundle::getElementNames( ) throw (RuntimeException)
{
::osl::MutexGuard aGuard( m_aMutex );
@@ -452,7 +308,6 @@ namespace res
return Sequence< ::rtl::OUString >( );
}
- //--------------------------------------------------------------------
::sal_Bool SAL_CALL OpenOfficeResourceBundle::hasByName( const ::rtl::OUString& _key ) throw (RuntimeException)
{
::osl::MutexGuard aGuard( m_aMutex );
@@ -468,13 +323,11 @@ namespace res
return sal_True;
}
- //--------------------------------------------------------------------
Type SAL_CALL OpenOfficeResourceBundle::getElementType( ) throw (RuntimeException)
{
return ::cppu::UnoType< Any >::get();
}
- //--------------------------------------------------------------------
::sal_Bool SAL_CALL OpenOfficeResourceBundle::hasElements( ) throw (RuntimeException)
{
::osl::MutexGuard aGuard( m_aMutex );
@@ -483,10 +336,6 @@ namespace res
return ::sal_Bool( );
}
-//........................................................................
-} // namespace res
-//........................................................................
-
-#endif // EXTENSIONS_SOURCE_RESOURCE_OOORESOURCELOADER_CXX
+}}
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/extensions/source/resource/oooresourceloader.hxx b/extensions/source/resource/oooresourceloader.hxx
new file mode 100644
index 000000000000..fd7f526ce30b
--- /dev/null
+++ b/extensions/source/resource/oooresourceloader.hxx
@@ -0,0 +1,87 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*************************************************************************
+ *
+ * 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.
+ *
+ ************************************************************************/
+
+
+#ifndef EXTENSIONS_RESOURCE_OOORESOURCELOADER_HXX
+#define EXTENSIONS_RESOURCE_OOORESOURCELOADER_HXX
+
+#include <com/sun/star/lang/XMultiServiceFactory.hpp>
+#include <com/sun/star/resource/XResourceBundleLoader.hpp>
+#include <com/sun/star/uno/XComponentContext.hpp>
+#include <cppuhelper/implbase1.hxx>
+
+#include <functional>
+#include <map>
+#include <utility>
+
+namespace extensions { namespace resource
+{
+ typedef ::std::pair< ::rtl::OUString, ::com::sun::star::lang::Locale> ResourceBundleDescriptor;
+
+ struct ResourceBundleDescriptorLess : public ::std::binary_function<ResourceBundleDescriptor, ResourceBundleDescriptor, bool>
+ {
+ bool operator()( const ResourceBundleDescriptor& _lhs, const ResourceBundleDescriptor& _rhs ) const
+ {
+ if ( _lhs.first < _rhs.first )
+ return true;
+ if ( _lhs.second.Language < _rhs.second.Language )
+ return true;
+ if ( _lhs.second.Country < _rhs.second.Country )
+ return true;
+ if ( _lhs.second.Variant < _rhs.second.Variant )
+ return true;
+ return false;
+ }
+ };
+
+ class OpenOfficeResourceLoader : public ::cppu::WeakImplHelper1< ::com::sun::star::resource::XResourceBundleLoader>
+ {
+ public:
+ typedef ::std::map<
+ ResourceBundleDescriptor,
+ ::com::sun::star::uno::WeakReference< ::com::sun::star::resource::XResourceBundle>,
+ ResourceBundleDescriptorLess> ResourceBundleCache;
+
+ OpenOfficeResourceLoader(::com::sun::star::uno::Reference< ::com::sun::star::uno::XComponentContext> const&);
+ // XResourceBundleLoader
+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::resource::XResourceBundle> SAL_CALL loadBundle_Default( const ::rtl::OUString& aBaseName ) throw (::com::sun::star::resource::MissingResourceException, ::com::sun::star::uno::RuntimeException);
+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::resource::XResourceBundle> SAL_CALL loadBundle( const ::rtl::OUString& abaseName, const ::com::sun::star::lang::Locale& aLocale ) throw (::com::sun::star::resource::MissingResourceException, ::com::sun::star::uno::RuntimeException);
+
+ private:
+ OpenOfficeResourceLoader(); // never implemented
+ OpenOfficeResourceLoader( const OpenOfficeResourceLoader& ); // never implemented
+ OpenOfficeResourceLoader& operator=( const OpenOfficeResourceLoader& ); // never implemented
+ ::com::sun::star::uno::Reference< ::com::sun::star::uno::XComponentContext> m_xContext;
+ ::osl::Mutex m_aMutex;
+ ResourceBundleCache m_aBundleCache;
+ };
+}}
+
+#endif // EXTENSIONS_RESOURCE_OOORESOURCELOADER_HXX
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/extensions/source/resource/res.component b/extensions/source/resource/res.component
index 57f96609d5df..b5df9748e464 100644
--- a/extensions/source/resource/res.component
+++ b/extensions/source/resource/res.component
@@ -28,11 +28,11 @@
<component loader="com.sun.star.loader.SharedLibrary"
xmlns="http://openoffice.org/2010/uno-components">
- <implementation name="com.sun.star.comp.extensions.ResourceService">
- <service name="com.sun.star.resource.VclStringResourceLoader"/>
- </implementation>
<implementation name="com.sun.star.comp.resource.OpenOfficeResourceLoader">
<service name="com.sun.star.resource.OfficeResourceLoader"/>
<singleton name="com.sun.star.resource.OfficeResourceLoader"/>
</implementation>
+ <implementation name="org.libreoffice.extensions.resource.ResourceIndexAccess">
+ <service name="org.libreoffice.resource.ResourceIndexAccess"/>
+ </implementation>
</component>
diff --git a/extensions/source/resource/res_services.cxx b/extensions/source/resource/res_services.cxx
deleted file mode 100644
index 91315d0162f0..000000000000
--- a/extensions/source/resource/res_services.cxx
+++ /dev/null
@@ -1,89 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * 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.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_extensions.hxx"
-#include "res_services.hxx"
-
-/** === begin UNO using === **/
-using ::com::sun::star::uno::Reference;
-using ::com::sun::star::uno::Sequence;
-using ::com::sun::star::uno::Exception;
-using ::com::sun::star::lang::XMultiServiceFactory;
-using ::com::sun::star::lang::XSingleServiceFactory;
-using ::com::sun::star::uno::UNO_QUERY;
-/** === end UNO using === **/
-
-#include <vector>
-
-namespace res
-{
- ::std::vector< ComponentInfo > getComponentInfos()
- {
- ::std::vector< ::res::ComponentInfo > aComponentInfos;
- aComponentInfos.push_back( getComponentInfo_VclStringResourceLoader() );
- aComponentInfos.push_back( getComponentInfo_OpenOfficeResourceLoader() );
- return aComponentInfos;
- }
-}
-
-extern "C" {
-
-SAL_DLLPUBLIC_EXPORT void SAL_CALL component_getImplementationEnvironment(
- const sal_Char ** ppEnvTypeName, uno_Environment ** /*ppEnv*/ )
-{
- *ppEnvTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME;
-}
-
-SAL_DLLPUBLIC_EXPORT void * SAL_CALL component_getFactory(
- const sal_Char * pImplName, XMultiServiceFactory * /*pServiceManager*/, void * /*pRegistryKey*/ )
-{
- void * pRet = 0;
- ::std::vector< ::res::ComponentInfo > aComponentInfos( ::res::getComponentInfos() );
- for ( ::std::vector< ::res::ComponentInfo >::const_iterator loop = aComponentInfos.begin();
- loop != aComponentInfos.end();
- ++loop
- )
- {
- if ( 0 == loop->sImplementationName.compareToAscii( pImplName ) )
- {
- // create the factory
- Reference< XSingleServiceFactory > xFactory( ::cppu::createSingleComponentFactory(
- loop->pFactory, loop->sImplementationName, loop->aSupportedServices ),
- UNO_QUERY );
- // acquire, because we return an interface pointer instead of a reference
- xFactory->acquire();
- pRet = xFactory.get();
- }
- }
- return pRet;
-}
-
-} // extern "C"
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/extensions/source/resource/res_services.hxx b/extensions/source/resource/res_services.hxx
deleted file mode 100644
index ac61f0e423ac..000000000000
--- a/extensions/source/resource/res_services.hxx
+++ /dev/null
@@ -1,67 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * 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.
- *
- ************************************************************************/
-
-#ifndef EXTENSIONS_RESOURCE_SERVICES_HXX
-#define EXTENSIONS_RESOURCE_SERVICES_HXX
-
-/** === begin UNO includes === **/
-#include <com/sun/star/uno/Sequence.hxx>
-#include <com/sun/star/uno/Reference.hxx>
-#include <com/sun/star/uno/XInterface.hpp>
-/** === end UNO includes === **/
-#include <cppuhelper/factory.hxx>
-
-//........................................................................
-namespace res
-{
-//........................................................................
-
- struct ComponentInfo
- {
- /// services supported by the component
- ::com::sun::star::uno::Sequence< ::rtl::OUString > aSupportedServices;
- /// implementation name of the component
- ::rtl::OUString sImplementationName;
- /** name of the singleton instance of the component, if it is a singleton, empty otherwise
- If the component is a singleton, aSupportedServices must contain exactly one element.
- */
- ::rtl::OUString sSingletonName;
- /// factory for creating the component
- ::cppu::ComponentFactoryFunc pFactory;
- };
-
- ComponentInfo getComponentInfo_VclStringResourceLoader();
- ComponentInfo getComponentInfo_OpenOfficeResourceLoader();
-
-//........................................................................
-} // namespace res
-//........................................................................
-
-#endif // EXTENSIONS_RESOURCE_SERVICES_HXX
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/extensions/source/resource/resource.cxx b/extensions/source/resource/resource.cxx
deleted file mode 100644
index 01943a68fceb..000000000000
--- a/extensions/source/resource/resource.cxx
+++ /dev/null
@@ -1,476 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * 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.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_extensions.hxx"
-#include "res_services.hxx"
-
-#include <osl/mutex.hxx>
-#include <uno/lbnames.h> // CPPU_CURRENT_LANGUAGE_BINDING_NAME macro, which specify the environment type
-#include <cppuhelper/factory.hxx> // helper for factories
-#include <cppuhelper/implbase3.hxx> // helper for implementations
-
-#include <com/sun/star/lang/XServiceInfo.hpp>
-#include <com/sun/star/script/XInvocation.hpp>
-#include <com/sun/star/script/XTypeConverter.hpp>
-#include <com/sun/star/reflection/InvocationTargetException.hpp>
-#include <com/sun/star/beans/XExactName.hpp>
-#include <com/sun/star/beans/PropertyValue.hpp>
-#include <com/sun/star/beans/PropertyState.hpp>
-
-#include <tools/resmgr.hxx>
-#include <tools/rcid.h>
-#include <tools/resary.hxx>
-#include <vcl/svapp.hxx>
-
-#include <rtl/ustring.hxx>
-#include <rtl/strbuf.hxx>
-
-using namespace com::sun::star::uno;
-using namespace com::sun::star::lang;
-using namespace com::sun::star::registry;
-using namespace com::sun::star::script;
-using namespace com::sun::star::beans;
-using namespace com::sun::star::reflection;
-
-using ::rtl::OUString;
-using ::rtl::OStringBuffer;
-using ::rtl::OUStringToOString;
-using ::rtl::OStringToOUString;
-
-//------------------------------------------------------------------------
-//------------------------------------------------------------------------
-//------------------------------------------------------------------------
-class ResourceService : public cppu::WeakImplHelper3< XInvocation, XExactName, XServiceInfo >
-{
-public:
- ResourceService( const Reference< XMultiServiceFactory > & );
- ~ResourceService();
-
- // XServiceInfo
- OUString SAL_CALL getImplementationName() throw();
- sal_Bool SAL_CALL supportsService(const OUString& ServiceName) throw();
- Sequence< OUString > SAL_CALL getSupportedServiceNames(void) throw();
-
- static Sequence< OUString > getSupportedServiceNames_Static(void) throw();
- static OUString getImplementationName_Static() throw()
- {
- return OUString(RTL_CONSTASCII_USTRINGPARAM("com.sun.star.comp.extensions.ResourceService"));
- }
- static Reference< XInterface > Create( const Reference< XComponentContext >& _rxContext );
-
- // XExactName
- OUString SAL_CALL getExactName( const OUString & ApproximateName ) throw(RuntimeException);
-
- // XInvokation
- Reference< XIntrospectionAccess > SAL_CALL getIntrospection(void) throw(RuntimeException);
- Any SAL_CALL invoke(const OUString& FunctionName, const Sequence< Any >& Params, Sequence< sal_Int16 >& OutParamIndex, Sequence< Any >& OutParam) throw(IllegalArgumentException, CannotConvertException, InvocationTargetException, RuntimeException);
- void SAL_CALL setValue(const OUString& PropertyName, const Any& Value) throw(UnknownPropertyException, CannotConvertException, InvocationTargetException, RuntimeException);
- Any SAL_CALL getValue(const OUString& PropertyName) throw(UnknownPropertyException, RuntimeException);
- sal_Bool SAL_CALL hasMethod(const OUString& Name) throw(RuntimeException);
- sal_Bool SAL_CALL hasProperty(const OUString& Name) throw(RuntimeException);
-private:
- Reference< XTypeConverter > getTypeConverter() const;
- Reference< XInvocation > getDefaultInvocation() const;
-
- Reference< XMultiServiceFactory > xSMgr;
- Reference< XInvocation > xDefaultInvocation;
- Reference< XTypeConverter > xTypeConverter;
- OUString aFileName;
- ResMgr * pResMgr;
-};
-
-
-//-----------------------------------------------------------------------------
-ResourceService::ResourceService( const Reference< XMultiServiceFactory > & rSMgr )
- : xSMgr( rSMgr )
- , pResMgr( NULL )
-{
-}
-
-//-----------------------------------------------------------------------------
-Reference< XInterface > ResourceService::Create( const Reference< XComponentContext >& _rxContext )
-{
- Reference< XMultiServiceFactory > xFactory( _rxContext->getServiceManager(), UNO_QUERY_THROW );
- return *( new ResourceService( xFactory ) );
-}
-
-//-----------------------------------------------------------------------------
-ResourceService::~ResourceService()
-{
- delete pResMgr;
-}
-
-// XServiceInfo
-OUString ResourceService::getImplementationName() throw()
-{
- return getImplementationName_Static();
-}
-
-// XServiceInfo
-sal_Bool SAL_CALL ResourceService::supportsService(const OUString& ServiceName) throw()
-{
- Sequence< OUString > aSNL = getSupportedServiceNames();
- const OUString * pArray = aSNL.getConstArray();
- for( sal_Int32 i = 0; i < aSNL.getLength(); i++ )
- if( pArray[i] == ServiceName )
- return sal_True;
- return sal_False;
-}
-
-// XServiceInfo
-Sequence< OUString > SAL_CALL ResourceService::getSupportedServiceNames(void) throw()
-{
- return getSupportedServiceNames_Static();
-}
-
-// ResourceService
-Sequence< OUString > ResourceService::getSupportedServiceNames_Static(void) throw()
-{
- Sequence< OUString > aSNS( 1 );
- aSNS.getArray()[0] = OUString(RTL_CONSTASCII_USTRINGPARAM("com.sun.star.resource.VclStringResourceLoader"));
- return aSNS;
-}
-
-// ResourceService
-Reference< XTypeConverter > ResourceService::getTypeConverter() const
-{
- SolarMutexGuard aGuard;
- if( xSMgr.is() )
- {
- Reference< XTypeConverter > xConv( xSMgr->createInstance( OUString(RTL_CONSTASCII_USTRINGPARAM("com.sun.star.script.Converter" ))), UNO_QUERY );
- ((ResourceService*)this)->xTypeConverter = xConv;
- }
- return xTypeConverter;
-}
-
-// ResourceService
-Reference< XInvocation > ResourceService::getDefaultInvocation() const
-{
- SolarMutexGuard aGuard;
- /* f�hrt zur Zeit noch zu einer rekursion
- if( xSMgr.is() )
- {
- Reference< XSingleServiceFactory > xFact( xSMgr->createInstance( OUString(RTL_CONSTASCII_USTRINGPARAM("com.sun.star.script.Invocation")) ), UNO_QUERY );
- if( xFact.is() )
- {
- Sequence< Any > aArgs( 1 );
- Reference< XInterface > xThis( *this );
- aArgs.getArray()[0].set( &xThis, XInterface_Reference< get >lection() );
- Reference< XInvokation > xI( xFact->createInstanceWithArguments( aArgs ), UNO_QUERY );
- ((ResourceService*)this)->xDefaultInvocation = xI;
- }
- }
- */
- return xDefaultInvocation;
-}
-
-// XExactName
-OUString SAL_CALL ResourceService::getExactName( const OUString & ApproximateName ) throw(RuntimeException)
-{
- OUString aName( ApproximateName );
- aName = aName.toAsciiLowerCase();
- if( aName.equalsAsciiL(RTL_CONSTASCII_STRINGPARAM("filename")) )
- return OUString(RTL_CONSTASCII_USTRINGPARAM("FileName"));
- else if( aName.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM("getstring" ) ))
- return OUString(RTL_CONSTASCII_USTRINGPARAM("getString"));
- else if( aName.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM("getstrings" ) ))
- return OUString(RTL_CONSTASCII_USTRINGPARAM("getStrings"));
- else if( aName.equalsAsciiL(RTL_CONSTASCII_STRINGPARAM("hasstring")) )
- return OUString(RTL_CONSTASCII_USTRINGPARAM("hasString"));
- else if( aName.equalsAsciiL(RTL_CONSTASCII_STRINGPARAM("hasstrings")) )
- return OUString(RTL_CONSTASCII_USTRINGPARAM("hasStrings"));
- else if( aName.equalsAsciiL(RTL_CONSTASCII_STRINGPARAM("getstringlist")) )
- return OUString(RTL_CONSTASCII_USTRINGPARAM("getStringList"));
- else if( aName.equalsAsciiL(RTL_CONSTASCII_STRINGPARAM("hasStringList")) )
- return OUString(RTL_CONSTASCII_USTRINGPARAM("hasStringList"));
- Reference< XExactName > xEN( getDefaultInvocation(), UNO_QUERY );
- if( xEN.is() )
- return xEN->getExactName( ApproximateName );
- return OUString();
-}
-
-// XInvokation
-Reference< XIntrospectionAccess > SAL_CALL ResourceService::getIntrospection(void)
- throw(RuntimeException)
-{
- Reference< XInvocation > xI = getDefaultInvocation();
- if( xI.is() )
- return xI->getIntrospection();
- return Reference< XIntrospectionAccess >();
-}
-
-// XInvokation
-Any SAL_CALL ResourceService::invoke
-(
- const OUString& FunctionName,
- const Sequence< Any >& Params,
- Sequence< sal_Int16 >& OutParamIndex,
- Sequence< Any >& OutParam
-)
- throw(IllegalArgumentException, CannotConvertException, InvocationTargetException, RuntimeException)
-{
- Any aRet;
- if( FunctionName.equalsAsciiL(RTL_CONSTASCII_STRINGPARAM("getString"))
- || FunctionName.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM("getStrings" ) )
- || FunctionName.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM("hasString" ) )
- || FunctionName.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM("hasStrings" ) )
- )
- {
- sal_Int32 nElements = Params.getLength();
- if( nElements < 1 )
- throw IllegalArgumentException();
- if( nElements > 1 && (FunctionName.equalsAsciiL(RTL_CONSTASCII_STRINGPARAM("getString")) || FunctionName.equalsAsciiL(RTL_CONSTASCII_STRINGPARAM("hasString")) ) )
- throw IllegalArgumentException();
- if( !pResMgr )
- throw IllegalArgumentException();
-
- Sequence< OUString > aStrings( Params.getLength() );
- Sequence< sal_Bool > aBools( Params.getLength() );
- const Any* pIn = Params.getConstArray();
- OUString* pOutString = aStrings.getArray();
- sal_Bool* pOutBool = aBools.getArray();
-
- Reference< XTypeConverter > xC = getTypeConverter();
- bool bGetBranch = FunctionName.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( "getString" ) ) || FunctionName.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( "getStrings" ) );
-
- SolarMutexGuard aGuard;
- for( sal_Int32 n = 0; n < nElements; n++ )
- {
- sal_Int32 nId = 0;
- if( !(pIn[n] >>= nId) )
- {
- if( xC.is() )
- {
- xC->convertToSimpleType( pIn[n], TypeClass_LONG ) >>= nId;
- }
- else
- throw CannotConvertException();
- }
- if( nId > 0xFFFF || nId < 0 )
- throw IllegalArgumentException();
-
- if( bGetBranch )
- {
- ResId aId( (sal_uInt16)nId, *pResMgr );
- aId.SetRT( RSC_STRING );
- if( pResMgr->IsAvailable( aId ) )
- {
- String aStr( aId );
- pOutString[n] = aStr;
- }
- else
- throw IllegalArgumentException();
- }
- else // hasString(s)
- {
- sal_Bool bRet = sal_False;
- if( pResMgr )
- {
- ResId aId( (sal_uInt16)nId, *pResMgr );
- aId.SetRT( RSC_STRING );
- bRet = pResMgr->IsAvailable( aId );
- }
- pOutBool[n] = bRet;
- }
- }
- if( FunctionName.equalsAsciiL(RTL_CONSTASCII_STRINGPARAM("getString")) )
- aRet <<= pOutString[0];
- else if( FunctionName.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM("getStrings" ) ) )
- aRet <<= aStrings;
- else if( FunctionName.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM("hasString" ) ) )
- aRet <<= pOutBool[0];
- else
- aRet <<= aBools;
- }
- else if( FunctionName.equalsAsciiL(RTL_CONSTASCII_STRINGPARAM("getStringList")) || FunctionName.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM("hasStringList" ) ) )
- {
- if( Params.getLength() != 1 )
- throw IllegalArgumentException();
- Reference< XTypeConverter > xC = getTypeConverter();
- SolarMutexGuard aGuard;
-
- sal_Int32 nId = 0;
- if( !(Params.getConstArray()[0] >>= nId) )
- {
- if( xC.is() )
- {
- xC->convertToSimpleType( Params.getConstArray()[0], TypeClass_LONG ) >>= nId;
- }
- else
- throw CannotConvertException();
- }
-
- if( FunctionName.equalsAsciiL(RTL_CONSTASCII_STRINGPARAM("getStringList")) )
- {
- ResId aId( (sal_uInt16)nId, *pResMgr );
- aId.SetRT( RSC_STRINGARRAY );
- if( pResMgr->IsAvailable( aId ) )
- {
- ResStringArray aStr( aId );
- int nEntries = aStr.Count();
- Sequence< PropertyValue > aPropSeq( nEntries );
- PropertyValue* pOut = aPropSeq.getArray();
- for( int i = 0; i < nEntries; i++ )
- {
- pOut[i].Name = aStr.GetString( i );
- pOut[i].Handle = -1;
- pOut[i].Value <<= aStr.GetValue( i );
- pOut[i].State = PropertyState_DIRECT_VALUE;
- }
- aRet <<= aPropSeq;
- }
- else
- throw IllegalArgumentException();
- }
- else // hasStringList
- {
- sal_Bool bRet = sal_False;
- if( pResMgr )
- {
- ResId aId( (sal_uInt16)nId, *pResMgr );
- aId.SetRT( RSC_STRINGARRAY );
- bRet = pResMgr->IsAvailable( aId );
- }
- aRet <<= bRet;
- }
- }
- else
- {
- Reference< XInvocation > xI = getDefaultInvocation();
- if( xI.is() )
- return xI->invoke( FunctionName, Params, OutParamIndex, OutParam );
- else
- throw IllegalArgumentException();
- }
- return aRet;
-}
-
-// XInvokation
-void SAL_CALL ResourceService::setValue(const OUString& PropertyName, const Any& Value)
- throw(UnknownPropertyException, CannotConvertException, InvocationTargetException, RuntimeException)
-{
- if( PropertyName.equalsAsciiL(RTL_CONSTASCII_STRINGPARAM("FileName")) )
- {
- OUString aName;
- if( !(Value >>= aName) )
- {
- Reference< XTypeConverter > xC = getTypeConverter();
- if( xC.is() )
- xC->convertToSimpleType( Value, TypeClass_STRING ) >>= aName;
- else
- throw CannotConvertException();
- }
-
- SolarMutexGuard aGuard;
- OStringBuffer aBuf( aName.getLength()+8 );
- aBuf.append( OUStringToOString( aName, osl_getThreadTextEncoding() ) );
- ResMgr * pRM = ResMgr::CreateResMgr( aBuf.getStr() );
- if( !pRM )
- throw InvocationTargetException();
- if( pResMgr )
- delete pResMgr;
- pResMgr = pRM;
- aFileName = OStringToOUString( aBuf.makeStringAndClear(), osl_getThreadTextEncoding() );
- }
- else
- {
- Reference< XInvocation > xI = getDefaultInvocation();
- if( xI.is() )
- xI->setValue( PropertyName, Value );
- else
- throw UnknownPropertyException();
- }
-}
-
-// XInvokation
-Any SAL_CALL ResourceService::getValue(const OUString& PropertyName)
- throw(UnknownPropertyException, RuntimeException)
-{
- SolarMutexGuard aGuard;
- if( PropertyName.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM("FileName" ) ))
- return makeAny( aFileName );
-
- Reference< XInvocation > xI = getDefaultInvocation();
- if( xI.is() )
- return xI->getValue( PropertyName );
-
- throw UnknownPropertyException();
-}
-
-// XInvokation
-sal_Bool SAL_CALL ResourceService::hasMethod(const OUString& Name)
- throw(RuntimeException)
-{
- if( Name.equalsAsciiL(RTL_CONSTASCII_STRINGPARAM("getString")) ||
- Name.equalsAsciiL(RTL_CONSTASCII_STRINGPARAM("getStrings")) ||
- Name.equalsAsciiL(RTL_CONSTASCII_STRINGPARAM("hasString")) ||
- Name.equalsAsciiL(RTL_CONSTASCII_STRINGPARAM("hasStrings")) ||
- Name.equalsAsciiL(RTL_CONSTASCII_STRINGPARAM("getStringList")) ||
- Name.equalsAsciiL(RTL_CONSTASCII_STRINGPARAM("hasStringList"))
- )
- return sal_True;
- else
- {
- Reference< XInvocation > xI = getDefaultInvocation();
- if( xI.is() )
- return xI->hasMethod( Name );
- else
- return sal_False;
- }
-}
-
-// XInvokation
-sal_Bool SAL_CALL ResourceService::hasProperty(const OUString& Name)
- throw(RuntimeException)
-{
- if( Name.equalsAsciiL(RTL_CONSTASCII_STRINGPARAM("FileName")) )
- return sal_True;
- else
- {
- Reference< XInvocation > xI = getDefaultInvocation();
- if( xI.is() )
- return xI->hasProperty( Name );
- else
- return sal_False;
- }
-}
-
-namespace res
-{
- ComponentInfo getComponentInfo_VclStringResourceLoader()
- {
- ComponentInfo aInfo;
- aInfo.aSupportedServices = ResourceService::getSupportedServiceNames_Static();
- aInfo.sImplementationName = ResourceService::getImplementationName_Static();
- aInfo.pFactory = &ResourceService::Create;
- return aInfo;
- }
-}
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/extensions/source/resource/resourceservices.cxx b/extensions/source/resource/resourceservices.cxx
new file mode 100644
index 000000000000..0a08bb52666a
--- /dev/null
+++ b/extensions/source/resource/resourceservices.cxx
@@ -0,0 +1,58 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * Version: MPL 1.1 / GPLv3+ / LGPLv3+
+ *
+ * The contents of this file are subject to the Mozilla Public License Version
+ * 1.1 (the "License"); you may not use this file except in compliance with
+ * the License or as specified alternatively below. You may obtain a copy of
+ * the License at http://www.mozilla.org/MPL/
+ *
+ * Software distributed under the License is distributed on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+ * for the specific language governing rights and limitations under the
+ * License.
+ *
+ * The Initial Developer of the Original Code is
+ * Bjoern Michaelsen <bjoern.michaelsen@canonical.com>
+ * Portions created by the Initial Developer are Copyright (C) 2010 the
+ * Initial Developer. All Rights Reserved.
+ *
+ * Major Contributor(s):
+ *
+ * For minor contributions see the git repository.
+ *
+ * Alternatively, the contents of this file may be used under the terms of
+ * either the GNU General Public License Version 3 or later (the "GPLv3+"), or
+ * the GNU Lesser General Public License Version 3 or later (the "LGPLv3+"),
+ * in which case the provisions of the GPLv3+ or the LGPLv3+ are applicable
+ * instead of those above.
+ */
+
+#include "precompiled_extensions.hxx"
+
+#include <ResourceIndexAccess.hxx>
+#include <oooresourceloader.hxx>
+#include <comphelper/servicedecl.hxx>
+#include <uno/environment.h>
+
+namespace sdecl = ::comphelper::service_decl;
+
+sdecl::class_< ::extensions::resource::ResourceIndexAccess, sdecl::with_args<true> > ResourceIndexAccessServiceImpl;
+sdecl::class_< ::extensions::resource::OpenOfficeResourceLoader> OpenOfficeResourceLoaderServiceImpl;
+
+const sdecl::ServiceDecl ResourceIndexAccessDecl(
+ ResourceIndexAccessServiceImpl,
+ "org.libreoffice.extensions.resource.ResourceIndexAccess",
+ "org.libreoffice.resource.ResourceIndexAccess");
+
+const sdecl::ServiceDecl OpenOfficeResourceLoaderDecl(
+ OpenOfficeResourceLoaderServiceImpl,
+ "com.sun.star.comp.resource.OpenOfficeResourceLoader",
+ "com.sun.star.resource.OfficeResourceLoader");
+
+COMPHELPER_SERVICEDECL_EXPORTS2(
+ ResourceIndexAccessDecl,
+ OpenOfficeResourceLoaderDecl
+);
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/wizards/com/sun/star/wizards/RemoteFaxWizard b/wizards/com/sun/star/wizards/RemoteFaxWizard
new file mode 100755
index 000000000000..76144cbfef1d
--- /dev/null
+++ b/wizards/com/sun/star/wizards/RemoteFaxWizard
@@ -0,0 +1,7 @@
+#!/usr/bin/env python
+from fax.FaxWizardDialogImpl import FaxWizardDialogImpl
+import sys
+
+if __name__ == "__main__":
+
+ FaxWizardDialogImpl.main(sys.argv)
diff --git a/wizards/com/sun/star/wizards/RemoteLetterWizard b/wizards/com/sun/star/wizards/RemoteLetterWizard
new file mode 100755
index 000000000000..9928625f6e5f
--- /dev/null
+++ b/wizards/com/sun/star/wizards/RemoteLetterWizard
@@ -0,0 +1,7 @@
+#!/usr/bin/env python
+from letter.LetterWizardDialogImpl import LetterWizardDialogImpl
+import sys
+
+if __name__ == "__main__":
+
+ LetterWizardDialogImpl.main(sys.argv)
diff --git a/wizards/com/sun/star/wizards/__init__.py b/wizards/com/sun/star/wizards/__init__.py
new file mode 100644
index 000000000000..e69de29bb2d1
--- /dev/null
+++ b/wizards/com/sun/star/wizards/__init__.py
diff --git a/wizards/com/sun/star/wizards/common/ConfigGroup.py b/wizards/com/sun/star/wizards/common/ConfigGroup.py
new file mode 100644
index 000000000000..ca1b60a4de0d
--- /dev/null
+++ b/wizards/com/sun/star/wizards/common/ConfigGroup.py
@@ -0,0 +1,38 @@
+from ConfigNode import *
+from Configuration import Configuration
+import traceback
+import inspect
+
+class ConfigGroup(ConfigNode):
+
+ root = None
+
+ def writeConfiguration(self, configurationView, param):
+ for name,data in inspect.getmembers(self):
+ if name.startswith(param):
+ self.writeField( name, configurationView, param)
+
+ def writeField(self, field, configView, prefix):
+ propertyName = field[len(prefix):]
+ child = getattr(self, field)
+ if isinstance(child, ConfigNode):
+ child.setRoot(self.root)
+ child.writeConfiguration(configView.getByName(propertyName),
+ prefix)
+ else:
+ setattr(configView,propertyName,getattr(self,field))
+
+ def readConfiguration(self, configurationView, param):
+ for name,data in inspect.getmembers(self):
+ if name.startswith(param):
+ self.readField( name, configurationView, param)
+
+ def readField(self, field, configView, prefix):
+ propertyName = field[len(prefix):]
+ child = getattr(self, field)
+ if isinstance(child, ConfigNode):
+ child.setRoot(self.root)
+ child.readConfiguration(configView.getByName(propertyName),
+ prefix)
+ else:
+ setattr(self,field,configView.getByName(propertyName))
diff --git a/wizards/com/sun/star/wizards/common/ConfigNode.py b/wizards/com/sun/star/wizards/common/ConfigNode.py
new file mode 100644
index 000000000000..d97ac1b646c4
--- /dev/null
+++ b/wizards/com/sun/star/wizards/common/ConfigNode.py
@@ -0,0 +1,15 @@
+from abc import ABCMeta, abstractmethod
+
+class ConfigNode(object):
+
+ @abstractmethod
+ def readConfiguration(self, configurationView, param):
+ pass
+
+ @abstractmethod
+ def writeConfiguration(self, configurationView, param):
+ pass
+
+ @abstractmethod
+ def setRoot(self, root):
+ pass
diff --git a/wizards/com/sun/star/wizards/common/Configuration.py b/wizards/com/sun/star/wizards/common/Configuration.py
new file mode 100644
index 000000000000..0e3abe128880
--- /dev/null
+++ b/wizards/com/sun/star/wizards/common/Configuration.py
@@ -0,0 +1,213 @@
+from PropertyNames import PropertyNames
+from Helper import *
+import traceback
+import uno
+'''
+This class gives access to the OO configuration api.
+It contains 4 get and 4 set convenience methods for getting and settings
+properties in the configuration. <br/>
+For the get methods, two parameters must be given: name and parent, where
+name is the name of the property, parent is a HierarchyElement
+(::com::sun::star::configuration::HierarchyElement)<br/>
+The get and set methods support hieryrchical property names like
+"options/gridX". <br/>
+NOTE: not yet supported, but sometime later,
+If you will ommit the "parent" parameter, then the "name" parameter must be
+in hierarchy form from the root of the registry.
+'''
+
+class Configuration(object):
+
+ @classmethod
+ def getConfigurationRoot(self, xmsf, sPath, updateable):
+ oConfigProvider = xmsf.createInstance(
+ "com.sun.star.configuration.ConfigurationProvider")
+ args = []
+
+ aPathArgument = uno.createUnoStruct(
+ 'com.sun.star.beans.PropertyValue')
+ aPathArgument.Name = "nodepath"
+ aPathArgument.Value = sPath
+
+ args.append(aPathArgument)
+ if updateable:
+ sView = "com.sun.star.configuration.ConfigurationUpdateAccess"
+ aModeArgument = uno.createUnoStruct(
+ 'com.sun.star.beans.PropertyValue')
+ aModeArgument.Name = "lazywrite"
+ aModeArgument.Value = False
+ args.append(aModeArgument)
+ else:
+ sView = "com.sun.star.configuration.ConfigurationAccess"
+
+ return oConfigProvider.createInstanceWithArguments(sView, tuple(args))
+
+ @classmethod
+ def getProductName(self, xMSF):
+ try:
+ oProdNameAccess = self.getConfigurationRoot(xMSF,
+ "org.openoffice.Setup/Product", False)
+ ProductName = Helper.getUnoObjectbyName(oProdNameAccess, "ooName")
+ return ProductName
+ except Exception:
+ traceback.print_exc()
+ return None
+
+ @classmethod
+ def getOfficeLocaleString(self, xMSF):
+ sLocale = ""
+ try:
+ aLocLocale = Locale.Locale()
+ oMasterKey = self.getConfigurationRoot(xMSF,
+ "org.openoffice.Setup/L10N/", False)
+ sLocale = (String)
+ Helper.getUnoObjectbyName(oMasterKey, "ooLocale")
+ except Exception, exception:
+ traceback.print_exc()
+
+ return sLocale
+
+ @classmethod
+ def getOfficeLocale(self, xMSF):
+ aLocLocale = Locale.Locale()
+ sLocale = getOfficeLocaleString(xMSF)
+ sLocaleList = JavaTools.ArrayoutofString(sLocale, "-")
+ aLocLocale.Language = sLocaleList[0]
+ if sLocaleList.length > 1:
+ aLocLocale.Country = sLocaleList[1]
+
+ return aLocLocale
+
+ @classmethod
+ def getOfficeLinguistic(self, xMSF):
+ try:
+ oMasterKey = self.getConfigurationRoot(xMSF,
+ "org.openoffice.Setup/L10N/", False)
+ sLinguistic = Helper.getUnoObjectbyName(oMasterKey, "ooLocale")
+ return sLinguistic
+ except Exception, exception:
+ traceback.print_exc()
+ return None
+
+ @classmethod
+ def removeNode(self, configView, name):
+
+ if configView.hasByName(name):
+ configView.removeByName(name)
+
+ @classmethod
+ def updateConfiguration(self, xmsf, path, name, node, param):
+ view = self.getConfigurationRoot(xmsf, path, True)
+ addConfigNode(path, name)
+ node.writeConfiguration(view, param)
+ view.commitChanges()
+
+ @classmethod
+ def removeNode(self, xmsf, path, name):
+ view = self.getConfigurationRoot(xmsf, path, True)
+ removeNode(view, name)
+ view.commitChanges()
+
+ @classmethod
+ def getNodeDisplayNames(self, _xNameAccessNode):
+ snames = None
+ return getNodeChildNames(_xNameAccessNode,
+ PropertyNames.PROPERTY_NAME)
+
+ @classmethod
+ def getNodeChildNames(self, xNameAccessNode, _schildname):
+ snames = None
+ try:
+ snames = xNameAccessNode.getElementNames()
+ sdisplaynames = range(snames.length)
+ i = 0
+ while i < snames.length:
+ oContent = Helper.getUnoPropertyValue(
+ xNameAccessNode.getByName(snames[i]), _schildname)
+ if not AnyConverter.isVoid(oContent):
+ sdisplaynames[i] = (String)
+ Helper.getUnoPropertyValue(xNameAccessNode.getByName(
+ snames[i]), _schildname)
+ else:
+ sdisplaynames[i] = snames[i]
+
+ i += 1
+ return sdisplaynames
+ except Exception, e:
+ traceback.print_exc()
+ return snames
+
+ @classmethod
+ def getChildNodebyIndex(self, _xNameAccess, _index):
+ try:
+ snames = _xNameAccess.getElementNames()
+ oNode = _xNameAccess.getByName(snames[_index])
+ return oNode
+ except Exception, e:
+ traceback.print_exc()
+ return None
+
+ @classmethod
+ def getChildNodebyName(self, _xNameAccessNode, _SubNodeName):
+ try:
+ if _xNameAccessNode.hasByName(_SubNodeName):
+ return _xNameAccessNode.getByName(_SubNodeName)
+
+ except Exception, e:
+ traceback.print_exc()
+
+ return None
+
+ @classmethod
+ def getChildNodebyDisplayName(self, _xNameAccessNode, _displayname):
+ snames = None
+ return getChildNodebyDisplayName(_xNameAccessNode, _displayname,
+ PropertyNames.PROPERTY_NAME)
+
+ @classmethod
+ def getChildNodebyDisplayName(self, _xNameAccessNode, _displayname,
+ _nodename):
+
+ snames = None
+ try:
+ snames = _xNameAccessNode.getElementNames()
+ sdisplaynames = range(snames.length)
+ i = 0
+ while i < snames.length:
+ curdisplayname = Helper.getUnoPropertyValue(
+ _xNameAccessNode.getByName(snames[i]), _nodename)
+ if curdisplayname.equals(_displayname):
+ return _xNameAccessNode.getByName(snames[i])
+
+ i += 1
+ except Exception, e:
+ traceback.print_exc()
+
+ return None
+
+ @classmethod
+ def getChildNodebyDisplayName(self, _xMSF, _aLocale, _xNameAccessNode,
+ _displayname, _nodename, _nmaxcharcount):
+
+ snames = None
+ try:
+ snames = _xNameAccessNode.getElementNames()
+ sdisplaynames = range(snames.length)
+ i = 0
+ while i < snames.length:
+ curdisplayname = Helper.getUnoPropertyValue(
+ _xNameAccessNode.getByName(snames[i]), _nodename)
+ if (_nmaxcharcount > 0) and (_nmaxcharcount < \
+ curdisplayname.length()):
+ curdisplayname = curdisplayname.substring(0,
+ _nmaxcharcount)
+
+ curdisplayname = Desktop.removeSpecialCharacters(_xMSF,
+ _aLocale, curdisplayname)
+ if curdisplayname.equals(_displayname):
+ return _xNameAccessNode.getByName(snames[i])
+
+ i += 1
+ except Exception, e:
+ traceback.print_exc()
+ return None
diff --git a/wizards/com/sun/star/wizards/common/DebugHelper.py b/wizards/com/sun/star/wizards/common/DebugHelper.py
new file mode 100644
index 000000000000..75016033a533
--- /dev/null
+++ b/wizards/com/sun/star/wizards/common/DebugHelper.py
@@ -0,0 +1,10 @@
+class DebugHelper(object):
+
+ @classmethod
+ def exception(self, ex):
+ raise NotImplementedError
+
+ @classmethod
+ def writeInfo(self, msg):
+ raise NotImplementedError
+
diff --git a/wizards/com/sun/star/wizards/common/Desktop.py b/wizards/com/sun/star/wizards/common/Desktop.py
new file mode 100644
index 000000000000..3a64ecee8669
--- /dev/null
+++ b/wizards/com/sun/star/wizards/common/Desktop.py
@@ -0,0 +1,280 @@
+import uno
+import traceback
+from com.sun.star.frame.FrameSearchFlag import ALL, PARENT
+from com.sun.star.util import URL
+from com.sun.star.i18n.KParseTokens import ANY_LETTER_OR_NUMBER, ASC_UNDERSCORE
+from NoValidPathException import *
+
+
+class Desktop(object):
+
+ @classmethod
+ def getDesktop(self, xMSF):
+ xDesktop = None
+ if xMSF is not None:
+ try:
+ xDesktop = xMSF.createInstance( "com.sun.star.frame.Desktop")
+ except Exception, exception:
+ traceback.print_exc()
+ else:
+ print "Can't create a desktop. null pointer !"
+
+ return xDesktop
+
+ @classmethod
+ def getActiveFrame(self, xMSF):
+ xDesktop = self.getDesktop(xMSF)
+ return xDesktop.getActiveFrame()
+
+ @classmethod
+ def getActiveComponent(self, _xMSF):
+ xFrame = self.getActiveFrame(_xMSF)
+ return xFrame.getController().getModel()
+
+ @classmethod
+ def getActiveTextDocument(self, _xMSF):
+ xComponent = getActiveComponent(_xMSF)
+ return xComponent #Text
+
+ @classmethod
+ def getActiveSpreadsheetDocument(self, _xMSF):
+ xComponent = getActiveComponent(_xMSF)
+ return xComponent
+
+ @classmethod
+ def getDispatcher(self, xMSF, xFrame, _stargetframe, oURL):
+ try:
+ oURLArray = range(1)
+ oURLArray[0] = oURL
+ xDispatch = xFrame.queryDispatch(oURLArray[0], _stargetframe, ALL)
+ return xDispatch
+ except Exception, e:
+ e.printStackTrace(System.out)
+
+ return None
+
+ @classmethod
+ def getDispatchURL(self, xMSF, _sURL):
+ try:
+ oTransformer = xMSF.createInstance(
+ "com.sun.star.util.URLTransformer")
+ oURL = range(1)
+ oURL[0] = com.sun.star.util.URL.URL()
+ oURL[0].Complete = _sURL
+ xTransformer.parseStrict(oURL)
+ return oURL[0]
+ except Exception, e:
+ e.printStackTrace(System.out)
+
+ return None
+
+ @classmethod
+ def dispatchURL(self, xMSF, sURL, xFrame, _stargetframe):
+ oURL = getDispatchURL(xMSF, sURL)
+ xDispatch = getDispatcher(xMSF, xFrame, _stargetframe, oURL)
+ dispatchURL(xDispatch, oURL)
+
+ @classmethod
+ def dispatchURL(self, xMSF, sURL, xFrame):
+ dispatchURL(xMSF, sURL, xFrame, "")
+
+ @classmethod
+ def dispatchURL(self, _xDispatch, oURL):
+ oArg = range(0)
+ _xDispatch.dispatch(oURL, oArg)
+
+ @classmethod
+ def connect(self, connectStr):
+ localContext = uno.getComponentContext()
+ resolver = localContext.ServiceManager.createInstanceWithContext(
+ "com.sun.star.bridge.UnoUrlResolver", localContext)
+ ctx = resolver.resolve( connectStr )
+ orb = ctx.ServiceManager
+ return orb
+
+ @classmethod
+ def checkforfirstSpecialCharacter(self, _xMSF, _sString, _aLocale):
+ try:
+ nStartFlags = ANY_LETTER_OR_NUMBER + ASC_UNDERSCORE
+ ocharservice = _xMSF.createInstance(
+ "com.sun.star.i18n.CharacterClassification")
+ aResult = ocharservice.parsePredefinedToken(KParseType.IDENTNAME,
+ _sString, 0, _aLocale, nStartFlags, "", nStartFlags, " ")
+ return aResult.EndPos
+ except Exception, e:
+ e.printStackTrace(System.out)
+ return -1
+
+ @classmethod
+ def removeSpecialCharacters(self, _xMSF, _aLocale, _sname):
+ snewname = _sname
+ i = 0
+ while i < snewname.length():
+ i = Desktop.checkforfirstSpecialCharacter(_xMSF, snewname,
+ _aLocale)
+ if i < snewname.length():
+ sspecialchar = snewname.substring(i, i + 1)
+ snewname = JavaTools.replaceSubString(snewname, "",
+ sspecialchar)
+
+ return snewname
+
+ '''
+ Checks if the passed Element Name already exists in the ElementContainer.
+ If yes it appends a suffix to make it unique
+ @param xElementContainer
+ @param sElementName
+ @return a unique Name ready to be added to the container.
+ '''
+
+ @classmethod
+ def getUniqueName(self, xElementContainer, sElementName):
+ bElementexists = True
+ i = 1
+ sIncSuffix = ""
+ BaseName = sElementName
+ while bElementexists == True:
+ bElementexists = xElementContainer.hasByName(sElementName)
+ if bElementexists == True:
+ i += 1
+ sElementName = BaseName + str(i)
+
+ if i > 1:
+ sIncSuffix = str(i)
+
+ return sElementName + sIncSuffix
+
+ '''
+ Checks if the passed Element Name already exists in the list If yes it
+ ppends a suffix to make it unique
+ @param _slist
+ @param _sElementName
+ @param _sSuffixSeparator
+ @return a unique Name not being in the passed list.
+ '''
+
+ @classmethod
+ def getUniqueNameList(self, _slist, _sElementName, _sSuffixSeparator):
+ a = 2
+ scompname = _sElementName
+ bElementexists = True
+ if _slist == None:
+ return _sElementName
+
+ if _slist.length == 0:
+ return _sElementName
+
+ while bElementexists == True:
+ i = 0
+ while i < _slist.length:
+ if JavaTools.FieldInList(_slist, scompname) == -1:
+ return scompname
+
+ i += 1
+ scompname = _sElementName + _sSuffixSeparator + (a + 1)
+ return ""
+
+class OfficePathRetriever:
+
+ def OfficePathRetriever(self, xMSF):
+ try:
+ TemplatePath = FileAccess.getOfficePath(xMSF,
+ "Template", "share", "/wizard")
+ UserTemplatePath = FileAccess.getOfficePath(xMSF,
+ "Template", "user", "")
+ BitmapPath = FileAccess.combinePaths(xMSF, TemplatePath,
+ "/../wizard/bitmap")
+ WorkPath = FileAccess.getOfficePath(xMSF,
+ "Work", "", "")
+ except NoValidPathException, nopathexception:
+ pass
+
+ @classmethod
+ def getTemplatePath(self, _xMSF):
+ sTemplatePath = ""
+ try:
+ sTemplatePath = FileAccess.getOfficePath(_xMSF,
+ "Template", "share", "/wizard")
+ except NoValidPathException, nopathexception:
+ pass
+ return sTemplatePath
+
+ @classmethod
+ def getUserTemplatePath(self, _xMSF):
+ sUserTemplatePath = ""
+ try:
+ sUserTemplatePath = FileAccess.getOfficePath(_xMSF,
+ "Template", "user", "")
+ except NoValidPathException, nopathexception:
+ pass
+ return sUserTemplatePath
+
+ @classmethod
+ def getBitmapPath(self, _xMSF):
+ sBitmapPath = ""
+ try:
+ sBitmapPath = FileAccess.combinePaths(_xMSF,
+ getTemplatePath(_xMSF), "/../wizard/bitmap")
+ except NoValidPathException, nopathexception:
+ pass
+
+ return sBitmapPath
+
+ @classmethod
+ def getWorkPath(self, _xMSF):
+ sWorkPath = ""
+ try:
+ sWorkPath = FileAccess.getOfficePath(_xMSF, "Work", "", "")
+
+ except NoValidPathException, nopathexception:
+ pass
+
+ return sWorkPath
+
+ @classmethod
+ def createStringSubstitution(self, xMSF):
+ xPathSubst = None
+ try:
+ xPathSubst = xMSF.createInstance(
+ "com.sun.star.util.PathSubstitution")
+ except com.sun.star.uno.Exception, e:
+ e.printStackTrace()
+
+ if xPathSubst != None:
+ return xPathSubst
+ else:
+ return None
+
+ '''This method searches (and hopefully finds...) a frame
+ with a componentWindow.
+ It does it in three phases:
+ 1. Check if the given desktop argument has a componentWindow.
+ If it is null, the myFrame argument is taken.
+ 2. Go up the tree of frames and search a frame with a component window.
+ 3. Get from the desktop all the components, and give the first one
+ which has a frame.
+ @param xMSF
+ @param myFrame
+ @param desktop
+ @return
+ @throws NoSuchElementException
+ @throws WrappedTargetException
+ '''
+
+ @classmethod
+ def findAFrame(self, xMSF, myFrame, desktop):
+ if desktop == None:
+ desktop = myFrame
+ #we go up in the tree...
+
+ while desktop != None and desktop.getComponentWindow() == None:
+ desktop = desktop.findFrame("_parent", FrameSearchFlag.PARENT)
+ if desktop == None:
+ e = Desktop.getDesktop(xMSF).getComponents().createEnumeration()
+ while e.hasMoreElements():
+ xModel = (e.nextElement()).getObject()
+ xFrame = xModel.getCurrentController().getFrame()
+ if xFrame != None and xFrame.getComponentWindow() != None:
+ return xFrame
+
+ return desktop
diff --git a/wizards/com/sun/star/wizards/common/FileAccess.py b/wizards/com/sun/star/wizards/common/FileAccess.py
new file mode 100644
index 000000000000..384582b71899
--- /dev/null
+++ b/wizards/com/sun/star/wizards/common/FileAccess.py
@@ -0,0 +1,771 @@
+import traceback
+from NoValidPathException import *
+from com.sun.star.ucb import CommandAbortedException
+from com.sun.star.awt.VclWindowPeerAttribute import OK, YES_NO
+import types
+from os import path as osPath
+
+'''
+This class delivers static convenience methods
+to use with ucb SimpleFileAccess service.
+You can also instanciate the class, to encapsulate
+some functionality of SimpleFileAccess. The instance
+keeps a reference to an XSimpleFileAccess and an
+XFileIdentifierConverter, saves the permanent
+overhead of quering for those interfaces, and delivers
+conveneince methods for using them.
+These Convenince methods include mainly Exception-handling.
+'''
+
+class FileAccess(object):
+ '''
+ @param xMSF
+ @param sPath
+ @param sAddPath
+ '''
+
+ @classmethod
+ def addOfficePath(self, xMSF, sPath, sAddPath):
+ xSimpleFileAccess = None
+ ResultPath = getOfficePath(xMSF, sPath, xSimpleFileAccess)
+ '''
+ As there are several conventions about the look of Url
+ (e.g. with " " or with "%20") you cannot make a
+ simple String comparison to find out, if a path
+ is already in "ResultPath
+ '''
+ PathList = JavaTools.ArrayoutofString(ResultPath, ";")
+ MaxIndex = PathList.length - 1
+ CompAddPath = JavaTools.replaceSubString(sAddPath, "", "/")
+ i = 0
+ while i <= MaxIndex:
+ CurPath = JavaTools.convertfromURLNotation(PathList[i])
+ CompCurPath = JavaTools.replaceSubString(CurPath, "", "/")
+ if CompCurPath.equals(CompAddPath):
+ return
+
+ i += 1
+ ResultPath += ";" + sAddPath
+ return
+
+ @classmethod
+ def deleteLastSlashfromUrl(self, _sPath):
+ if _sPath.endswith("/"):
+ return _sPath[:-1]
+ else:
+ return _sPath
+
+ '''
+ Further information on arguments value see in OO Developer Guide,
+ chapter 6.2.7
+ @param xMSF
+ @param sPath
+ @param xSimpleFileAccess
+ @return the respective path of the office application.
+ A probable following "/" at the end is trimmed.
+ '''
+
+ @classmethod
+ def getOfficePath(self, xMSF, sPath, xSimpleFileAccess):
+ try:
+ ResultPath = ""
+ xInterface = xMSF.createInstance("com.sun.star.util.PathSettings")
+ ResultPath = str(Helper.getUnoPropertyValue(xInterface, sPath))
+ ResultPath = self.deleteLastSlashfromUrl(ResultPath)
+ return ResultPath
+ except Exception, exception:
+ traceback.print_exc()
+ return ""
+
+ '''
+ Further information on arguments value see in OO Developer Guide,
+ chapter 6.2.7
+ @param xMSF
+ @param sPath
+ @param sType use "share" or "user". Set to ""
+ f not needed eg for the WorkPath;
+ In the return Officepath a possible slash at the end is cut off
+ @param sSearchDir
+ @return
+ @throws NoValidPathException
+ '''
+
+ @classmethod
+ def getOfficePath2(self, xMSF, sPath, sType, sSearchDir):
+ #This method currently only works with sPath="Template"
+ bexists = False
+ try:
+ xPathInterface = xMSF.createInstance(
+ "com.sun.star.util.PathSettings")
+ ResultPath = ""
+ ReadPaths = ()
+ xUcbInterface = xMSF.createInstance(
+ "com.sun.star.ucb.SimpleFileAccess")
+ Template_writable = xPathInterface.getPropertyValue(
+ sPath + "_writable")
+ Template_internal = xPathInterface.getPropertyValue(
+ sPath + "_internal")
+ Template_user = xPathInterface.getPropertyValue(
+ sPath + "_user")
+ if type(Template_internal) is not types.InstanceType:
+ ReadPaths = ReadPaths + Template_internal
+ if type(Template_user) is not types.InstanceType:
+ ReadPaths = ReadPaths + Template_user
+ ReadPaths = ReadPaths + (Template_writable,)
+ if sType.lower() == "user":
+ ResultPath = Template_writable
+ bexists = True
+ else:
+ #find right path using the search sub path
+ for i in ReadPaths:
+ tmpPath = i + sSearchDir
+ if xUcbInterface.exists(tmpPath):
+ ResultPath = i
+ bexists = True
+ break
+
+ ResultPath = self.deleteLastSlashfromUrl(ResultPath)
+ except Exception, exception:
+ traceback.print_exc()
+ ResultPath = ""
+
+ if not bexists:
+ raise NoValidPathException (xMSF, "");
+
+ return ResultPath
+
+ @classmethod
+ def getOfficePaths(self, xMSF, _sPath, sType, sSearchDir):
+ #This method currently only works with sPath="Template"
+ aPathList = []
+ Template_writable = ""
+ try:
+ xPathInterface = xMSF.createInstance(
+ "com.sun.star.util.PathSettings")
+ Template_writable = xPathInterface.getPropertyValue(
+ _sPath + "_writable")
+ Template_internal = xPathInterface.getPropertyValue(
+ _sPath + "_internal")
+ Template_user = xPathInterface.getPropertyValue(_sPath + "_user")
+ i = 0
+ while i < len(Template_internal):
+ sPath = Template_internal[i]
+ if sPath.startsWith("vnd."):
+ # if there exists a language in the directory,
+ # we try to add the right language
+ sPathToExpand = sPath.substring(len("vnd.sun.star.Expand:"))
+ xExpander = Helper.getMacroExpander(xMSF)
+ sPath = xExpander.expandMacros(sPathToExpand)
+
+ sPath = checkIfLanguagePathExists(xMSF, sPath)
+ aPathList.add(sPath)
+ i += 1
+ i = 0
+ while i < Template_user.length:
+ aPathList.add(Template_user[i])
+ i += 1
+ aPathList.add(Template_writable)
+
+ except Exception, exception:
+ traceback.print_exc()
+ return aPathList
+
+ @classmethod
+ def checkIfLanguagePathExists(self, _xMSF, _sPath):
+ try:
+ defaults = _xMSF.createInstance("com.sun.star.text.Defaults")
+ aLocale = Helper.getUnoStructValue(defaults, "CharLocale")
+ if aLocale == None:
+ java.util.Locale.getDefault()
+ aLocale = com.sun.star.lang.Locale.Locale()
+ aLocale.Country = java.util.Locale.getDefault().getCountry()
+ aLocale.Language = java.util.Locale.getDefault().getLanguage()
+ aLocale.Variant = java.util.Locale.getDefault().getVariant()
+
+ sLanguage = aLocale.Language
+ sCountry = aLocale.Country
+ sVariant = aLocale.Variant
+ # de-DE-Bayrisch
+ aLocaleAll = StringBuffer.StringBuffer()
+ aLocaleAll.append(sLanguage).append('-').append(sCountry).append('-').append(sVariant)
+ sPath = _sPath + "/" + aLocaleAll.toString()
+ xInterface = _xMSF.createInstance(
+ "com.sun.star.ucb.SimpleFileAccess")
+ if xInterface.exists(sPath):
+ # de-DE
+ return sPath
+
+ aLocaleLang_Country = StringBuffer.StringBuffer()
+ aLocaleLang_Country.append(sLanguage).append('-').append(sCountry)
+ sPath = _sPath + "/" + aLocaleLang_Country.toString()
+ if xInterface.exists(sPath):
+ # de
+ return sPath
+
+ aLocaleLang = StringBuffer.StringBuffer()
+ aLocaleLang.append(sLanguage)
+ sPath = _sPath + "/" + aLocaleLang.toString()
+ if xInterface.exists(sPath):
+ # the absolute default is en-US or en
+ return sPath
+
+ sPath = _sPath + "/en-US"
+ if xInterface.exists(sPath):
+ return sPath
+
+ sPath = _sPath + "/en"
+ if xInterface.exists(sPath):
+ return sPath
+
+ except com.sun.star.uno.Exception, e:
+ pass
+
+ return _sPath
+
+ @classmethod
+ def combinePaths2(self, xMSF, _aFirstPath, _sSecondPath):
+ i = 0
+ while i < _aFirstPath.size():
+ sOnePath = _aFirstPath.get(i)
+ sOnePath = addPath(sOnePath, _sSecondPath)
+ if isPathValid(xMSF, sOnePath):
+ _aFirstPath.add(i, sOnePath)
+ _aFirstPath.remove(i + 1)
+ else:
+ _aFirstPath.remove(i)
+ i -= 1
+
+ i += 1
+
+ @classmethod
+ def isPathValid(self, xMSF, _sPath):
+ bExists = False
+ try:
+ xUcbInterface = xMSF.createInstance(
+ "com.sun.star.ucb.SimpleFileAccess")
+ bExists = xUcbInterface.exists(_sPath)
+ except Exception, exception:
+ traceback.print_exc()
+
+ return bExists
+
+ @classmethod
+ def combinePaths(self, xMSF, _sFirstPath, _sSecondPath):
+ bexists = False
+ ReturnPath = ""
+ try:
+ xUcbInterface = xMSF.createInstance(
+ "com.sun.star.ucb.SimpleFileAccess")
+ ReturnPath = _sFirstPath + _sSecondPath
+ bexists = xUcbInterface.exists(ReturnPath)
+ except Exception, exception:
+ traceback.print_exc()
+ return ""
+
+ if not bexists:
+ raise NoValidPathException (xMSF, "");
+
+ return ReturnPath
+
+ @classmethod
+ def createSubDirectory(self, xMSF, xSimpleFileAccess, Path):
+ sNoDirCreation = ""
+ try:
+ oResource = Resource.Resource_unknown(xMSF, "ImportWizard", "imp")
+ if oResource != None:
+ sNoDirCreation = oResource.getResText(1050)
+ sMsgDirNotThere = oResource.getResText(1051)
+ sQueryForNewCreation = oResource.getResText(1052)
+ OSPath = JavaTools.convertfromURLNotation(Path)
+ sQueryMessage = JavaTools.replaceSubString(sMsgDirNotThere,
+ OSPath, "%1")
+ sQueryMessage = sQueryMessage + (char)
+ 13 + sQueryForNewCreation
+ icreate = SystemDialog.showMessageBox(xMSF, "QueryBox",
+ YES_NO, sQueryMessage)
+ if icreate == 2:
+ xSimpleFileAccess.createFolder(Path)
+ return True
+
+ return False
+ except CommandAbortedException, exception:
+ sMsgNoDir = JavaTools.replaceSubString(sNoDirCreation, Path, "%1")
+ SystemDialog.showMessageBox(xMSF, "ErrorBox", OK, sMsgNoDir)
+ return False
+ except com.sun.star.uno.Exception, Exception:
+ sMsgNoDir = JavaTools.replaceSubString(sNoDirCreation, Path, "%1")
+ SystemDialog.showMessageBox(xMSF, "ErrorBox", OK, sMsgNoDir)
+ return False
+
+ '''
+ checks if the root of a path exists. if the parameter
+ xWindowPeer is not null then also the directory is
+ created when it does not exists and the user
+ '''
+
+ @classmethod
+ def PathisValid(self, xMSF, Path, sMsgFilePathInvalid,
+ baskbeforeOverwrite):
+ try:
+ SubDirPath = ""
+ bSubDirexists = True
+ NewPath = Path
+ xInterface = xMSF.createInstance(
+ "com.sun.star.ucb.SimpleFileAccess")
+ if baskbeforeOverwrite:
+ if xInterface.exists(Path):
+ oResource = Resource.Resource_unknown(xMSF,
+ "ImportWizard", "imp")
+ sFileexists = oResource.getResText(1053)
+ NewString = JavaTools.convertfromURLNotation(Path)
+ sFileexists = JavaTools.replaceSubString(sFileexists,
+ NewString, "<1>")
+ sFileexists = JavaTools.replaceSubString(sFileexists,
+ str(13), "<CR>")
+ iLeave = SystemDialog.showMessageBox(xMSF, "QueryBox",
+ YES_NO, sFileexists)
+ if iLeave == 3:
+ return False
+
+ DirArray = JavaTools.ArrayoutofString(Path, "/")
+ MaxIndex = DirArray.length - 1
+ if MaxIndex > 0:
+ i = MaxIndex
+ while i >= 0:
+ SubDir = DirArray[i]
+ SubLen = SubDir.length()
+ NewLen = NewPath.length()
+ RestLen = NewLen - SubLen
+ if RestLen > 0:
+ NewPath = NewPath.substring(0, NewLen - SubLen - 1)
+ if i == MaxIndex:
+ SubDirPath = NewPath
+
+ bexists = xSimpleFileAccess.exists(NewPath)
+ if bexists:
+ LowerCasePath = NewPath.toLowerCase()
+ bexists = (((LowerCasePath.equals("file:#/")) or
+ (LowerCasePath.equals("file:#")) or
+ (LowerCasePath.equals("file:/")) or
+ (LowerCasePath.equals("file:"))) == False)
+
+ if bexists:
+ if bSubDirexists == False:
+ bSubDiriscreated = createSubDirectory(xMSF,
+ xSimpleFileAccess, SubDirPath)
+ return bSubDiriscreated
+
+ return True
+ else:
+ bSubDirexists = False
+
+ i -= 1
+
+ SystemDialog.showMessageBox(xMSF, "ErrorBox", OK,
+ sMsgFilePathInvalid)
+ return False
+ except com.sun.star.uno.Exception, exception:
+ traceback.print_exc()
+ SystemDialog.showMessageBox(xMSF, "ErrorBox", OK,
+ sMsgFilePathInvalid)
+ return False
+
+ @classmethod
+ def getFolderTitles(self, xMSF, FilterName, FolderName):
+ LocLayoutFiles = [[2],[]]
+ try:
+ xDocInterface = xMSF.createInstance(
+ "com.sun.star.document.DocumentProperties")
+ xInterface = xMSF.createInstance(
+ "com.sun.star.ucb.SimpleFileAccess")
+ nameList = xInterface.getFolderContents(FolderName, False)
+ TitleVector = []
+ NameVector = []
+ if FilterName is None or FilterName == "":
+ FilterName = None
+ else:
+ FilterName = FilterName + "-"
+ fileName = ""
+ NameVectorAppend = NameVector.append
+ TitleVectorAppend = TitleVector.append
+ for i in nameList:
+ fileName = self.getFilename(i)
+ if FilterName is None or fileName.startswith(FilterName):
+ xDocInterface.loadFromMedium(i, tuple())
+ NameVectorAppend(i)
+ TitleVectorAppend(xDocInterface.Title)
+
+ LocLayoutFiles[1] = NameVector
+ LocLayoutFiles[0] = TitleVector
+
+ except Exception, exception:
+ traceback.print_exc()
+
+ return self.__bubblesortList(LocLayoutFiles)
+
+ '''
+ This function bubble sorts an array of with 2 dimensions.
+ The default sorting order is the first dimension
+ Only if sort2ndValue is True the second dimension is
+ the relevant for the sorting order
+ '''
+
+ @classmethod
+ def __bubblesortList(self, SortList):
+ SortCount = len(SortList[0])
+ DimCount = len(SortList)
+ for i in xrange(SortCount):
+ for t in xrange(SortCount - i - 1):
+ if SortList[0][t] > SortList[0][t + 1]:
+ for k in xrange(DimCount):
+ DisplayDummy = SortList[k][t];
+ SortList[k][t] = SortList[k][t + 1];
+ SortList[k][t + 1] = DisplayDummy
+ return SortList
+ '''
+ We search in all given path for a given file
+ @param _sPath
+ @param _sPath2
+ @return
+ '''
+
+ @classmethod
+ def addPath(self, _sPath, _sPath2):
+ if not _sPath.endsWith("/"):
+ _sPath += "/"
+
+ if _sPath2.startsWith("/"):
+ _sPath2 = _sPath2.substring(1)
+
+ sNewPath = _sPath + _sPath2
+ return sNewPath
+
+ @classmethod
+ def getPathFromList(self, xMSF, _aList, _sFile):
+ sFoundFile = ""
+ try:
+ xInterface = xMSF.createInstance(
+ "com.sun.star.ucb.SimpleFileAccess")
+ i = 0
+ while i < _aList.size():
+ sPath = _aList.get(i)
+ sPath = addPath(sPath, _sFile)
+ if xInterface.exists(sPath):
+ sFoundFile = sPath
+
+ i += 1
+ except com.sun.star.uno.Exception, e:
+ pass
+
+ return sFoundFile
+
+ @classmethod
+ def getTitle(self, xMSF, _sFile):
+ sTitle = ""
+ try:
+ xDocInterface = xMSF.createInstance(
+ "com.sun.star.document.DocumentProperties")
+ noArgs = []
+ xDocInterface.loadFromMedium(_sFile, noArgs)
+ sTitle = xDocInterface.getTitle()
+ except Exception, e:
+ traceback.print_exc()
+
+ return sTitle
+
+ def __init__(self, xmsf):
+ #get a simple file access...
+ self.fileAccess = xmsf.createInstance(
+ "com.sun.star.ucb.SimpleFileAccess")
+ #get the file identifier converter
+ self.filenameConverter = xmsf.createInstance(
+ "com.sun.star.ucb.FileContentProvider")
+
+ def getURL(self, path, childPath=None):
+ try:
+ if childPath is not None:
+ path = self.filenameConverter.getSystemPathFromFileURL(path)
+ f = open(path,childPath)
+ else:
+ f = open(path)
+
+ r = self.filenameConverter.getFileURLFromSystemPath(path,
+ osPath.abspath(path))
+ return r
+ except Exception:
+ traceback.print_exc()
+ return None
+
+ def getPath(self, parentURL, childURL):
+ string = ""
+ if childURL is not None and childURL is not "":
+ string = "/" + childURL
+ return self.filenameConverter.getSystemPathFromFileURL(
+ parentURL + string)
+
+ '''
+ @author rpiterman
+ @param filename
+ @return the extension of the given filename.
+ '''
+
+ @classmethod
+ def getExtension(self, filename):
+ p = filename.indexOf(".")
+ if p == -1:
+ return ""
+ else:
+ while p > -1:
+ filename = filename.substring(p + 1)
+ p = filename.indexOf(".")
+
+ return filename
+
+ '''
+ @author rpiterman
+ @param s
+ @return
+ '''
+
+ def mkdir(self, s):
+ try:
+ self.fileAccess.createFolder(s)
+ return True
+ except CommandAbortedException, cax:
+ traceback.print_exc()
+ except com.sun.star.uno.Exception, ex:
+ traceback.print_exc()
+
+ return False
+
+ '''
+ @author rpiterman
+ @param filename
+ @param def what to return in case of an exception
+ @return true if the given file exists or not.
+ if an exception accures, returns the def value.
+ '''
+
+ def exists(self, filename, defe):
+ try:
+ return self.fileAccess.exists(filename)
+ except CommandAbortedException, cax:
+ pass
+ except Exception:
+ pass
+
+ return defe
+
+ '''
+ @author rpiterman
+ @param filename
+ @return
+ '''
+
+ def isDirectory(self, filename):
+ try:
+ return self.fileAccess.isFolder(filename)
+ except CommandAbortedException, cax:
+ pass
+ except com.sun.star.uno.Exception, ex:
+ pass
+
+ return False
+
+ '''
+ lists the files in a given directory
+ @author rpiterman
+ @param dir
+ @param includeFolders
+ @return
+ '''
+
+ def listFiles(self, dir, includeFolders):
+ try:
+ return self.fileAccess.getFolderContents(dir, includeFolders)
+ except CommandAbortedException, cax:
+ pass
+ except com.sun.star.uno.Exception, ex:
+ pass
+
+ return range(0)
+
+ '''
+ @author rpiterman
+ @param file
+ @return
+ '''
+
+ def delete(self, file):
+ try:
+ self.fileAccess.kill(file)
+ return True
+ except CommandAbortedException, cax:
+ traceback.print_exc()
+ except com.sun.star.uno.Exception, ex:
+ traceback.print_exc()
+
+ return False
+
+
+ '''
+ return the filename out of a system-dependent path
+ @param path
+ @return
+ '''
+
+ @classmethod
+ def getPathFilename(self, path):
+ return self.getFilename(path, File.separator)
+
+ '''
+ @author rpiterman
+ @param path
+ @param pathSeparator
+ @return
+ '''
+
+ @classmethod
+ def getFilename(self, path, pathSeparator = "/"):
+ return path.split(pathSeparator)[-1]
+
+ @classmethod
+ def getBasename(self, path, pathSeparator):
+ filename = self.getFilename(path, pathSeparator)
+ sExtension = getExtension(filename)
+ basename = filename.substring(0, filename.length() - \
+ (sExtension.length() + 1))
+ return basename
+
+ '''
+ @author rpiterman
+ @param source
+ @param target
+ @return
+ '''
+
+ def copy(self, source, target):
+ try:
+ self.fileAccess.copy(source, target)
+ return True
+ except CommandAbortedException, cax:
+ pass
+ except com.sun.star.uno.Exception, ex:
+ pass
+
+ return False
+
+ def getLastModified(self, url):
+ try:
+ return self.fileAccess.getDateTimeModified(url)
+ except CommandAbortedException, cax:
+ pass
+ except com.sun.star.uno.Exception, ex:
+ pass
+
+ return None
+
+ '''
+ @param url
+ @return the parent dir of the given url.
+ if the path points to file, gives the directory in which the file is.
+ '''
+
+ @classmethod
+ def getParentDir(self, url):
+ while url[-1] == "/":
+ url = hello[:-1]
+ return url[:url.rfind("/")]
+
+ def createNewDir(self, parentDir, name):
+ s = getNewFile(parentDir, name, "")
+ if mkdir(s):
+ return s
+ else:
+ return None
+
+ def getNewFile(self, parentDir, name, extension):
+ i = 0
+ tmp_do_var2 = True
+ while tmp_do_var2:
+ filename = filename(name, extension, (i + 1))
+ u = getURL(parentDir, filename)
+ url = u
+ tmp_do_var2 = exists(url, True)
+ return url
+
+ @classmethod
+ def filename(self, name, ext, i):
+ stringI = ""
+ stringExt = ""
+ if i is not 0:
+ stringI = str(i)
+ if ext is not "":
+ stringExt = "." + ext
+
+ return name + stringI + StringExt
+
+ def getSize(self, url):
+ try:
+ return self.fileAccess.getSize(url)
+ except Exception, ex:
+ return -1
+
+ @classmethod
+ def connectURLs(self, urlFolder, urlFilename):
+ stringFolder = ""
+ stringFileName = urlFilename
+ if not urlFolder.endsWith("/"):
+ stringFolder = "/"
+ if urlFilename.startsWith("/"):
+ stringFileName = urlFilename.substring(1)
+ return urlFolder + stringFolder + stringFileName
+
+ @classmethod
+ def getDataFromTextFile(self, _xMSF, _filepath):
+ sFileData = None
+ try:
+ oDataVector = []
+ oSimpleFileAccess = _xMSF.createInstance(
+ "com.sun.star.ucb.SimpleFileAccess")
+ if oSimpleFileAccess.exists(_filepath):
+ xInputStream = oSimpleFileAccess.openFileRead(_filepath)
+ oTextInputStream = _xMSF.createInstance(
+ "com.sun.star.io.TextInputStream")
+ oTextInputStream.setInputStream(xInputStream)
+ while not oTextInputStream.isEOF():
+ oDataVector.addElement(oTextInputStream.readLine())
+ oTextInputStream.closeInput()
+ sFileData = [oDataVector.size()]
+ oDataVector.toArray(sFileData)
+
+ except Exception, e:
+ traceback.print_exc()
+
+ return sFileData
+
+ '''
+ shortens a filename to a user displayable representation.
+ @param path
+ @param maxLength
+ @return
+ '''
+
+ @classmethod
+ def getShortFilename(self, path, maxLength):
+ firstPart = 0
+ if path.length() > maxLength:
+ if path.startsWith("/"):
+ # unix
+ nextSlash = path.indexOf("/", 1) + 1
+ firstPart = Math.min(nextSlash, (maxLength - 3) / 2)
+ else:
+ #windows
+ firstPart = Math.min(10, (maxLength - 3) / 2)
+
+ s1 = path.substring(0, firstPart)
+ s2 = path.substring(path.length() - (maxLength - (3 + firstPart)))
+ return s1 + "..." + s2
+ else:
+ return path
+
diff --git a/wizards/com/sun/star/wizards/common/HelpIds.py b/wizards/com/sun/star/wizards/common/HelpIds.py
new file mode 100644
index 000000000000..c6bd1b78c2fd
--- /dev/null
+++ b/wizards/com/sun/star/wizards/common/HelpIds.py
@@ -0,0 +1,1012 @@
+class HelpIds:
+ array1 = [
+ "HID:WIZARDS_HID0_WEBWIZARD", # HID:34200
+ "HID:WIZARDS_HID0_HELP", # HID:34201
+ "HID:WIZARDS_HID0_NEXT", # HID:34202
+ "HID:WIZARDS_HID0_PREV", # HID:34203
+ "HID:WIZARDS_HID0_CREATE", # HID:34204
+ "HID:WIZARDS_HID0_CANCEL", # HID:34205
+ "HID:WIZARDS_HID0_STATUS_DIALOG", # HID:34206
+ "HID:WIZARDS_HID1_LST_SESSIONS", # HID:34207
+ "",
+ "HID:WIZARDS_HID1_BTN_DEL_SES", # HID:34209
+ "HID:WIZARDS_HID2_LST_DOCS", # HID:34210
+ "HID:WIZARDS_HID2_BTN_ADD_DOC", # HID:34211
+ "HID:WIZARDS_HID2_BTN_REM_DOC", # HID:34212
+ "HID:WIZARDS_HID2_BTN_DOC_UP", # HID:34213
+ "HID:WIZARDS_HID2_BTN_DOC_DOWN", # HID:34214
+ "HID:WIZARDS_HID2_TXT_DOC_TITLE", # HID:34215
+ "HID:WIZARDS_HID2_TXT_DOC_DESC", # HID:34216
+ "HID:WIZARDS_HID2_TXT_DOC_AUTHOR", # HID:34217
+ "HID:WIZARDS_HID2_LST_DOC_EXPORT", # HID:34218
+ "HID:WIZARDS_HID2_STATUS_ADD_DOCS", # HID:34219
+ "HID:WIZARDS_HID3_IL_LAYOUTS_IMG1", # HID:34220
+ "HID:WIZARDS_HID3_IL_LAYOUTS_IMG2", # HID:34221
+ "HID:WIZARDS_HID3_IL_LAYOUTS_IMG3", # HID:34222
+ "HID:WIZARDS_HID3_IL_LAYOUTS_IMG4", # HID:34223
+ "HID:WIZARDS_HID3_IL_LAYOUTS_IMG5", # HID:34224
+ "HID:WIZARDS_HID3_IL_LAYOUTS_IMG6", # HID:34225
+ "HID:WIZARDS_HID3_IL_LAYOUTS_IMG7", # HID:34226
+ "HID:WIZARDS_HID3_IL_LAYOUTS_IMG8", # HID:34227
+ "HID:WIZARDS_HID3_IL_LAYOUTS_IMG9", # HID:34228
+ "HID:WIZARDS_HID3_IL_LAYOUTS_IMG10", # HID:34229
+ "HID:WIZARDS_HID3_IL_LAYOUTS_IMG11", # HID:34230
+ "HID:WIZARDS_HID3_IL_LAYOUTS_IMG12", # HID:34231
+ "HID:WIZARDS_HID3_IL_LAYOUTS_IMG13", # HID:34232
+ "HID:WIZARDS_HID3_IL_LAYOUTS_IMG14", # HID:34233
+ "HID:WIZARDS_HID3_IL_LAYOUTS_IMG15", # HID:34234
+ "HID:WIZARDS_HID4_CHK_DISPLAY_FILENAME", # HID:34235
+ "HID:WIZARDS_HID4_CHK_DISPLAY_DESCRIPTION", # HID:34236
+ "HID:WIZARDS_HID4_CHK_DISPLAY_AUTHOR", # HID:34237
+ "HID:WIZARDS_HID4_CHK_DISPLAY_CR_DATE", # HID:34238
+ "HID:WIZARDS_HID4_CHK_DISPLAY_UP_DATE", # HID:34239
+ "HID:WIZARDS_HID4_CHK_DISPLAY_FORMAT", # HID:34240
+ "HID:WIZARDS_HID4_CHK_DISPLAY_F_ICON", # HID:34241
+ "HID:WIZARDS_HID4_CHK_DISPLAY_PAGES", # HID:34242
+ "HID:WIZARDS_HID4_CHK_DISPLAY_SIZE", # HID:34243
+ "HID:WIZARDS_HID4_GRP_OPTIMAIZE_640", # HID:34244
+ "HID:WIZARDS_HID4_GRP_OPTIMAIZE_800", # HID:34245
+ "HID:WIZARDS_HID4_GRP_OPTIMAIZE_1024", # HID:34246
+ "HID:WIZARDS_HID5_LST_STYLES", # HID:34247
+ "HID:WIZARDS_HID5_BTN_BACKGND", # HID:34248
+ "HID:WIZARDS_HID5_BTN_ICONS", # HID:34249
+ "HID:WIZARDS_HID6_TXT_SITE_TITLE", # HID:34250
+ "",
+ "",
+ "HID:WIZARDS_HID6_TXT_SITE_DESC", # HID:34253
+ "",
+ "HID:WIZARDS_HID6_DATE_SITE_CREATED", # HID:34255
+ "HID:WIZARDS_HID6_DATE_SITE_UPDATED", # HID:34256
+ "",
+ "HID:WIZARDS_HID6_TXT_SITE_EMAIL", # HID:34258
+ "HID:WIZARDS_HID6_TXT_SITE_COPYRIGHT", # HID:34259
+ "HID:WIZARDS_HID7_BTN_PREVIEW", # HID:34260
+ "HID:WIZARDS_HID7_CHK_PUBLISH_LOCAL", # HID:34261
+ "HID:WIZARDS_HID7_TXT_LOCAL", # HID:34262
+ "HID:WIZARDS_HID7_BTN_LOCAL", # HID:34263
+ "HID:WIZARDS_HID7_CHK_PUBLISH_ZIP", # HID:34264
+ "HID:WIZARDS_HID7_TXT_ZIP", # HID:34265
+ "HID:WIZARDS_HID7_BTN_ZIP", # HID:34266
+ "HID:WIZARDS_HID7_CHK_PUBLISH_FTP", # HID:34267
+ "HID:WIZARDS_HID7_TXT_FTP", # HID:34268
+ "HID:WIZARDS_HID7_BTN_FTP", # HID:34269
+ "HID:WIZARDS_HID7_CHK_SAVE", # HID:34270
+ "HID:WIZARDS_HID7_TXT_SAVE", # HID:34271
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "HID:WIZARDS_HID_BG", # HID:34290
+ "HID:WIZARDS_HID_BG_BTN_OTHER", # HID:34291
+ "HID:WIZARDS_HID_BG_BTN_NONE", # HID:34292
+ "HID:WIZARDS_HID_BG_BTN_OK", # HID:34293
+ "HID:WIZARDS_HID_BG_BTN_CANCEL", # HID:34294
+ "HID:WIZARDS_HID_BG_BTN_BACK", # HID:34295
+ "HID:WIZARDS_HID_BG_BTN_FW", # HID:34296
+ "HID:WIZARDS_HID_BG_BTN_IMG1", # HID:34297
+ "HID:WIZARDS_HID_BG_BTN_IMG2", # HID:34298
+ "HID:WIZARDS_HID_BG_BTN_IMG3", # HID:34299
+ "HID:WIZARDS_HID_BG_BTN_IMG4", # HID:34300
+ "HID:WIZARDS_HID_BG_BTN_IMG5", # HID:34301
+ "HID:WIZARDS_HID_BG_BTN_IMG6", # HID:34302
+ "HID:WIZARDS_HID_BG_BTN_IMG7", # HID:34303
+ "HID:WIZARDS_HID_BG_BTN_IMG8", # HID:34304
+ "HID:WIZARDS_HID_BG_BTN_IMG9", # HID:34305
+ "HID:WIZARDS_HID_BG_BTN_IMG10", # HID:34306
+ "HID:WIZARDS_HID_BG_BTN_IMG11", # HID:34307
+ "HID:WIZARDS_HID_BG_BTN_IMG12", # HID:34308
+ "HID:WIZARDS_HID_BG_BTN_IMG13", # HID:34309
+ "HID:WIZARDS_HID_BG_BTN_IMG14", # HID:34300
+ "HID:WIZARDS_HID_BG_BTN_IMG15", # HID:34311
+ "HID:WIZARDS_HID_BG_BTN_IMG16", # HID:34312
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "HID:WIZARDS_HID_DLGREPORT_DIALOG", # HID:34320
+ "",
+ "HID:WIZARDS_HID_DLGREPORT_0_CMDPREV", # HID:34322
+ "HID:WIZARDS_HID_DLGREPORT_0_CMDNEXT", # HID:34323
+ "HID:WIZARDS_HID_DLGREPORT_0_CMDFINISH", # HID:34324
+ "HID:WIZARDS_HID_DLGREPORT_0_CMDCANCEL", # HID:34325
+ "",
+ "",
+ "",
+ "",
+ "HID:WIZARDS_HID_DLGREPORT_1_LBTABLES", # HID:34330
+ "HID:WIZARDS_HID_DLGREPORT_1_FIELDSAVAILABLE", # HID:34331
+ "HID:WIZARDS_HID_DLGREPORT_1_CMDMOVESELECTED", # HID:34332
+ "HID:WIZARDS_HID_DLGREPORT_1_CMDMOVEALL", # HID:34333
+ "HID:WIZARDS_HID_DLGREPORT_1_CMDREMOVESELECTED", # HID:34334
+ "HID:WIZARDS_HID_DLGREPORT_1_CMDREMOVEALL", # HID:34335
+ "HID:WIZARDS_HID_DLGREPORT_1_FIELDSSELECTED", # HID:34336
+ "HID:WIZARDS_HID_DLGREPORT_1_CMDMOVEUP", # HID:34337
+ "HID:WIZARDS_HID_DLGREPORT_1_CMDMOVEDOWN", # HID:34338
+ "",
+ "HID:WIZARDS_HID_DLGREPORT_2_GROUPING", # HID:34340
+ "HID:WIZARDS_HID_DLGREPORT_2_CMDGROUP", # HID:34341
+ "HID:WIZARDS_HID_DLGREPORT_2_CMDUNGROUP", # HID:34342
+ "HID:WIZARDS_HID_DLGREPORT_2_PREGROUPINGDEST", # HID:34343
+ "HID:WIZARDS_HID_DLGREPORT_2_CMDMOVEUPGROUP", # HID:34344
+ "HID:WIZARDS_HID_DLGREPORT_2_CMDMOVEDOWNGROUP", # HID:34345
+ "HID:WIZARDS_HID_DLGREPORT_3_SORT1", # HID:34346
+ "HID:WIZARDS_HID_DLGREPORT_3_OPTASCEND1", # HID:34347
+ "HID:WIZARDS_HID_DLGREPORT_3_OPTDESCEND1", # HID:34348
+ "HID:WIZARDS_HID_DLGREPORT_3_SORT2", # HID:34349
+ "HID:WIZARDS_HID_DLGREPORT_3_OPTASCEND2", # HID:34350
+ "HID:WIZARDS_HID_DLGREPORT_3_OPTDESCEND2", # HID:34351
+ "HID:WIZARDS_HID_DLGREPORT_3_SORT3", # HID:34352
+ "HID:WIZARDS_HID_DLGREPORT_3_OPTASCEND3", # HID:34353
+ "HID:WIZARDS_HID_DLGREPORT_3_OPTDESCEND3", # HID:34354
+ "HID:WIZARDS_HID_DLGREPORT_3_SORT4", # HID:34355
+ "HID:WIZARDS_HID_DLGREPORT_3_OPTASCEND4", # HID:34356
+ "HID:WIZARDS_HID_DLGREPORT_3_OPTDESCEND4", # HID:34357
+ "",
+ "",
+ "",
+ "",
+ "HID:WIZARDS_HID_DLGREPORT_4_TITLE", # HID:34362
+ "HID:WIZARDS_HID_DLGREPORT_4_DATALAYOUT", # HID:34363
+ "HID:WIZARDS_HID_DLGREPORT_4_PAGELAYOUT", # HID:34364
+ "HID:WIZARDS_HID_DLGREPORT_4_LANDSCAPE", # HID:34365
+ "HID:WIZARDS_HID_DLGREPORT_4_PORTRAIT", # HID:34366
+ "",
+ "",
+ "",
+ "HID:WIZARDS_HID_DLGREPORT_5_OPTDYNTEMPLATE", # HID:34370
+ "HID:WIZARDS_HID_DLGREPORT_5_OPTSTATDOCUMENT", # HID:34371
+ "HID:WIZARDS_HID_DLGREPORT_5_TXTTEMPLATEPATH", # HID:34372
+ "HID:WIZARDS_HID_DLGREPORT_5_CMDTEMPLATEPATH", # HID:34373
+ "HID:WIZARDS_HID_DLGREPORT_5_OPTEDITTEMPLATE", # HID:34374
+ "HID:WIZARDS_HID_DLGREPORT_5_OPTUSETEMPLATE", # HID:34375
+ "HID:WIZARDS_HID_DLGREPORT_5_TXTDOCUMENTPATH", # HID:34376
+ "HID:WIZARDS_HID_DLGREPORT_5_CMDDOCUMENTPATH", # HID:34377
+ "HID:WIZARDS_HID_DLGREPORT_5_CHKLINKTODB", # HID:34378
+ "",
+ "",
+ "HID:WIZARDS_HID_DLGREPORT_6_TXTTITLE_1", # HID:34381
+ "HID:WIZARDS_HID_DLGREPORT_6_TXTTITLE_2", # HID:34382
+ "HID:WIZARDS_HID_DLGREPORT_6_TXTTITLE_3", # HID:34383
+ "HID:WIZARDS_HID_DLGREPORT_6_TXTTITLE_4", # HID:34384
+ "HID:WIZARDS_HID_DLGREPORT_6_TXTTITLE_5", # HID:34385
+ "HID:WIZARDS_HID_DLGREPORT_6_TXTTITLE_6", # HID:34386
+ "HID:WIZARDS_HID_DLGREPORT_6_TXTTITLE_7", # HID:34387
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "HID:WIZARDS_HID_DLGFORM_DIALOG", # HID:34400
+ "",
+ "HID:WIZARDS_HID_DLGFORM_CMDPREV", # HID:34402
+ "HID:WIZARDS_HID_DLGFORM_CMDNEXT", # HID:34403
+ "HID:WIZARDS_HID_DLGFORM_CMDFINISH", # HID:34404
+ "HID:WIZARDS_HID_DLGFORM_CMDCANCEL", # HID:34405
+ "",
+ "",
+ "",
+ "",
+ "",
+ "HID:WIZARDS_HID_DLGFORM_MASTER_LBTABLES", # HID:34411
+ "HID:WIZARDS_HID_DLGFORM_MASTER_FIELDSAVAILABLE", # HID:34412
+ "HID:WIZARDS_HID_DLGFORM_MASTER_CMDMOVESELECTED", # HID:34413
+ "HID:WIZARDS_HID_DLGFORM_MASTER_CMDMOVEALL", # HID:34414
+ "HID:WIZARDS_HID_DLGFORM_MASTER_CMDREMOVESELECTED", # HID:34415
+ "HID:WIZARDS_HID_DLGFORM_MASTER_CMDREMOVEALL", # HID:34416
+ "HID:WIZARDS_HID_DLGFORM_MASTER_FIELDSSELECTED", # HID:34417
+ "HID:WIZARDS_HID_DLGFORM_MASTER_CMDMOVEUP", # HID:34418
+ "HID:WIZARDS_HID_DLGFORM_MASTER_CMDMOVEDOWN", # HID:34419
+ "",
+ "HID:WIZARDS_HID_DLGFORM_CHKCREATESUBFORM", # HID:34421
+ "HID:WIZARDS_HID_DLGFORM_OPTONEXISTINGRELATION", # HID:34422
+ "HID:WIZARDS_HID_DLGFORM_OPTSELECTMANUALLY", # HID:34423
+ "HID:WIZARDS_HID_DLGFORM_lstRELATIONS", # HID:34424
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "HID:WIZARDS_HID_DLGFORM_SUB_LBTABLES", # HID:34431
+ "HID:WIZARDS_HID_DLGFORM_SUB_FIELDSAVAILABLE", # HID:34432
+ "HID:WIZARDS_HID_DLGFORM_SUB_CMDMOVESELECTED", # HID:34433
+ "HID:WIZARDS_HID_DLGFORM_SUB_CMDMOVEALL", # HID:34434
+ "HID:WIZARDS_HID_DLGFORM_SUB_CMDREMOVESELECTED", # HID:34435
+ "HID:WIZARDS_HID_DLGFORM_SUB_CMDREMOVEALL", # HID:34436
+ "HID:WIZARDS_HID_DLGFORM_SUB_FIELDSSELECTED", # HID:34437
+ "HID:WIZARDS_HID_DLGFORM_SUB_CMDMOVEUP", # HID:34438
+ "HID:WIZARDS_HID_DLGFORM_SUB_CMDMOVEDOWN", # HID:34439
+ "",
+ "HID:WIZARDS_HID_DLGFORM_LINKER_LSTSLAVELINK1", # HID:34441
+ "HID:WIZARDS_HID_DLGFORM_LINKER_LSTMASTERLINK1", # HID:34442
+ "HID:WIZARDS_HID_DLGFORM_LINKER_LSTSLAVELINK2", # HID:34443
+ "HID:WIZARDS_HID_DLGFORM_LINKER_LSTMASTERLINK2", # HID:34444
+ "HID:WIZARDS_HID_DLGFORM_LINKER_LSTSLAVELINK3", # HID:34445
+ "HID:WIZARDS_HID_DLGFORM_LINKER_LSTMASTERLINK3", # HID:34446
+ "HID:WIZARDS_HID_DLGFORM_LINKER_LSTSLAVELINK4", # HID:34447
+ "HID:WIZARDS_HID_DLGFORM_LINKER_LSTMASTERLINK4", # HID:34448
+ "",
+ "",
+ "HID:WIZARDS_HID_DLGFORM_CMDALIGNLEFT", # HID:34451
+ "HID:WIZARDS_HID_DLGFORM_CMDALIGNRIGHT", # HID:34452
+ "HID:WIZARDS_HID_DLGFORM_CMDLEFTLABELED", # HID:34453
+ "HID:WIZARDS_HID_DLGFORM_CMDTOPLABELED", # HID:34454
+ "HID:WIZARDS_HID_DLGFORM_CMDTABLESTYLE", # HID:34455
+ "HID:WIZARDS_HID_DLGFORM_CMDTOPJUSTIFIED", # HID:34456
+ "HID:WIZARDS_HID_DLGFORM_CMDLEFTLABELED2", # HID:34457
+ "HID:WIZARDS_HID_DLGFORM_CMDTOPLABELED2", # HID:34458
+ "HID:WIZARDS_HID_DLGFORM_CMDTABLESTYLE2", # HID:34459
+ "HID:WIZARDS_HID_DLGFORM_CMDTOPJUSTIFIED2", # HID:34460
+ "HID:WIZARDS_HID_DLGFORM_OPTNEWDATAONLY", # HID:34461
+ "HID:WIZARDS_HID_DLGFORM_OPTDISPLAYALLDATA", # HID:34462
+ "HID:WIZARDS_HID_DLGFORM_CHKNOMODIFICATION", # HID:34463
+ "HID:WIZARDS_HID_DLGFORM_CHKNODELETION", # HID:34464
+ "HID:WIZARDS_HID_DLGFORM_CHKNOADDITION", # HID:34465
+ "",
+ "",
+ "",
+ "",
+ "",
+ "HID:WIZARDS_HID_DLGFORM_LSTSTYLES", # HID:34471
+ "HID:WIZARDS_HID_DLGFORM_CMDNOBORDER", # HID:34472
+ "HID:WIZARDS_HID_DLGFORM_CMD3DBORDER", # HID:34473
+ "HID:WIZARDS_HID_DLGFORM_CMDSIMPLEBORDER", # HID:34474
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "HID:WIZARDS_HID_DLGFORM_TXTPATH", # HID:34481
+ "HID:WIZARDS_HID_DLGFORM_OPTWORKWITHFORM", # HID:34482
+ "HID:WIZARDS_HID_DLGFORM_OPTMODIFYFORM", # HID:34483
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "HID:WIZARDS_HID_DLGNEWSLTR_DIALOG", # HID:34500
+ "HID:WIZARDS_HID_DLGNEWSLTR_OPTSTANDARDLAYOUT", # HID:34501
+ "HID:WIZARDS_HID_DLGNEWSLTR_OPTPARTYLAYOUT", # HID:34502
+ "HID:WIZARDS_HID_DLGNEWSLTR_OPTBROCHURELAYOUT", # HID:34503
+ "HID:WIZARDS_HID_DLGNEWSLTR_OPTSINGLESIDED", # HID:34504
+ "HID:WIZARDS_HID_DLGNEWSLTR_OPTDOUBLESIDED", # HID:34505
+ "HID:WIZARDS_HID_DLGNEWSLTR_CMDGOON", # HID:34506
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "HID:WIZARDS_HID_DLGDEPOT_DIALOG_SELLBUY", # HID:34520
+ "HID:WIZARDS_HID_DLGDEPOT_0_TXTSTOCKID_SELLBUY", # HID:34521
+ "HID:WIZARDS_HID_DLGDEPOT_0_TXTQUANTITY", # HID:34522
+ "HID:WIZARDS_HID_DLGDEPOT_0_TXTRATE", # HID:34523
+ "HID:WIZARDS_HID_DLGDEPOT_0_TXTDATE", # HID:34524
+ "HID:WIZARDS_HID_DLGDEPOT_0_TXTCOMMISSION", # HID:34525
+ "HID:WIZARDS_HID_DLGDEPOT_0_TXTFIX", # HID:34526
+ "HID:WIZARDS_HID_DLGDEPOT_0_TXTMINIMUM", # HID:34527
+ "HID:WIZARDS_HID_DLGDEPOT_0_CMDCANCEL_SELLBUY", # HID:34528
+ "HID:WIZARDS_HID_DLGDEPOT_0_CMDGOON_SELLBUY", # HID:34529
+ "HID:WIZARDS_HID_DLGDEPOT_1_LSTSELLSTOCKS", # HID:34530
+ "HID:WIZARDS_HID_DLGDEPOT_2_LSTBUYSTOCKS", # HID:34531
+ "HID:WIZARDS_HID_DLGDEPOT_DIALOG_SPLIT", # HID:34532
+ "HID:WIZARDS_HID_DLGDEPOT_0_LSTSTOCKNAMES", # HID:34533
+ "HID:WIZARDS_HID_DLGDEPOT_0_TXTSTOCKID_SPLIT", # HID:34534
+ "HID:WIZARDS_HID_DLGDEPOT_0_CMDCANCEL_SPLIT", # HID:34535
+ "HID:WIZARDS_HID_DLGDEPOT_0_CMDGOON_SPLIT", # HID:34536
+ "HID:WIZARDS_HID_DLGDEPOT_1_OPTPERSHARE", # HID:34537
+ "HID:WIZARDS_HID_DLGDEPOT_1_OPTTOTAL", # HID:34538
+ "HID:WIZARDS_HID_DLGDEPOT_1_TXTDIVIDEND", # HID:34539
+ "HID:WIZARDS_HID_DLGDEPOT_2_TXTOLDRATE", # HID:34540
+ "HID:WIZARDS_HID_DLGDEPOT_2_TXTNEWRATE", # HID:34541
+ "HID:WIZARDS_HID_DLGDEPOT_2_TXTDATE", # HID:34542
+ "HID:WIZARDS_HID_DLGDEPOT_3_TXTSTARTDATE", # HID:34543
+ "HID:WIZARDS_HID_DLGDEPOT_3_TXTENDDATE", # HID:34544
+ "HID:WIZARDS_HID_DLGDEPOT_3_OPTDAILY", # HID:34545
+ "HID:WIZARDS_HID_DLGDEPOT_3_OPTWEEKLY", # HID:34546
+ "HID:WIZARDS_HID_DLGDEPOT_DIALOG_HISTORY", # HID:34547
+ "HID:WIZARDS_HID_DLGDEPOT_LSTMARKETS", # HID:34548
+ "HID:WIZARDS_HID_DLGDEPOT_0_CMDCANCEL_HISTORY", # HID:34549
+ "HID:WIZARDS_HID_DLGDEPOT_0_CMDGOON_HISTORY", # HID:34550
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "HID:WIZARDS_HID_DLGIMPORT_DIALOG", # HID:34570
+ "HID:WIZARDS_HID_DLGIMPORT_0_CMDHELP", # HID:34571
+ "HID:WIZARDS_HID_DLGIMPORT_0_CMDCANCEL", # HID:34572
+ "HID:WIZARDS_HID_DLGIMPORT_0_CMDPREV", # HID:34573
+ "HID:WIZARDS_HID_DLGIMPORT_0_CMDNEXT", # HID:34574
+ "HID:WIZARDS_HID_DLGIMPORT_0_OPTSODOCUMENTS", # HID:34575
+ "HID:WIZARDS_HID_DLGIMPORT_0_OPTMSDOCUMENTS", # HID:34576
+ "HID:WIZARDS_HID_DLGIMPORT_0_CHKLOGFILE", # HID:34577
+ "HID:WIZARDS_HID_DLGIMPORT_2_CHKWORD", # HID:34578
+ "HID:WIZARDS_HID_DLGIMPORT_2_CHKEXCEL", # HID:34579
+ "HID:WIZARDS_HID_DLGIMPORT_2_CHKPOWERPOINT", # HID:34580
+ "HID:WIZARDS_HID_DLGIMPORT_2_CBTEMPLATE", # HID:34581
+ "HID:WIZARDS_HID_DLGIMPORT_2_CBTEMPLATERECURSE", # HID:34582
+ "HID:WIZARDS_HID_DLGIMPORT_2_LBTEMPLATEPATH", # HID:34583
+ "HID:WIZARDS_HID_DLGIMPORT_2_EDTEMPLATEPATH", # HID:34584
+ "HID:WIZARDS_HID_DLGIMPORT_2_CMDTEMPLATEPATHSELECT", # HID:34585
+ "HID:WIZARDS_HID_DLGIMPORT_2_CBDOCUMENT", # HID:34586
+ "HID:WIZARDS_HID_DLGIMPORT_2_CBDOCUMENTRECURSE", # HID:34587
+ "HID:WIZARDS_HID_DLGIMPORT_2_LBDOCUMENTPATH", # HID:34588
+ "HID:WIZARDS_HID_DLGIMPORT_2_EDDOCUMENTPATH", # HID:34589
+ "HID:WIZARDS_HID_DLGIMPORT_2_CMDDOCUMENTPATHSELECT", # HID:34590
+ "HID:WIZARDS_HID_DLGIMPORT_2_LBEXPORTDOCUMENTPATH", # HID:34591
+ "HID:WIZARDS_HID_DLGIMPORT_2_EDEXPORTDOCUMENTPATH", # HID:34592
+ "HID:WIZARDS_HID_DLGIMPORT_2_CMDEXPORTPATHSELECT", # HID:34593
+ "",
+ "HID:WIZARDS_HID_DLGIMPORT_3_TBSUMMARY", # HID:34595
+ "HID:WIZARDS_HID_DLGIMPORT_0_CHKWRITER", # HID:34596
+ "HID:WIZARDS_HID_DLGIMPORT_0_CHKCALC", # HID:34597
+ "HID:WIZARDS_HID_DLGIMPORT_0_CHKIMPRESS", # HID:34598
+ "HID:WIZARDS_HID_DLGIMPORT_0_CHKMATHGLOBAL", # HID:34599
+ "HID:WIZARDS_HID_DLGIMPORT_2_CMDTEMPLATEPATHSELECT2", # HID:34600
+ "HID:WIZARDS_HID_DLGIMPORT_2_CMDDOCUMENTPATHSELECT2", # HID:34601
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "HID:WIZARDS_HID_DLGCORRESPONDENCE_DIALOG", # HID:34630
+ "HID:WIZARDS_HID_DLGCORRESPONDENCE_CANCEL", # HID:34631
+ "HID:WIZARDS_HID_DLGCORRESPONDENCE_OPTIONAGENDA1", # HID:34632
+ "HID:WIZARDS_HID_DLGCORRESPONDENCE_OPTIONAGENDA2", # HID:34633
+ "HID:WIZARDS_HID_DLGCORRESPONDENCE_AGENDAOKAY", # HID:34634
+ "HID:WIZARDS_HID_DLGCORRESPONDENCE_OPTIONLETTER1", # HID:34635
+ "HID:WIZARDS_HID_DLGCORRESPONDENCE_OPTIONLETTER2", # HID:34636
+ "HID:WIZARDS_HID_DLGCORRESPONDENCE_LETTEROKAY", # HID:34637
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "HID:WIZARDS_HID_DLGSTYLES_DIALOG", # HID:34650
+ "HID:WIZARDS_HID_DLGSTYLES_LISTBOX", # HID:34651
+ "HID:WIZARDS_HID_DLGSTYLES_CANCEL", # HID:34652
+ "HID:WIZARDS_HID_DLGSTYLES_OKAY", # HID:34653
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "HID:WIZARDS_HID_DLGCONVERT_DIALOG", # HID:34660
+ "HID:WIZARDS_HID_DLGCONVERT_CHECKBOX1", # HID:34661
+ "HID:WIZARDS_HID_DLGCONVERT_OPTIONBUTTON1", # HID:34662
+ "HID:WIZARDS_HID_DLGCONVERT_OPTIONBUTTON2", # HID:34663
+ "HID:WIZARDS_HID_DLGCONVERT_OPTIONBUTTON3", # HID:34664
+ "HID:WIZARDS_HID_DLGCONVERT_OPTIONBUTTON4", # HID:34665
+ "HID:WIZARDS_HID_DLGCONVERT_LISTBOX1", # HID:34666
+ "HID:WIZARDS_HID_DLGCONVERT_OBFILE", # HID:34667
+ "HID:WIZARDS_HID_DLGCONVERT_OBDIR", # HID:34668
+ "HID:WIZARDS_HID_DLGCONVERT_COMBOBOX1", # HID:34669
+ "HID:WIZARDS_HID_DLGCONVERT_TBSOURCE", # HID:34670
+ "HID:WIZARDS_HID_DLGCONVERT_CHECKRECURSIVE", # HID:34671
+ "HID:WIZARDS_HID_DLGCONVERT_TBTARGET", # HID:34672
+ "HID:WIZARDS_HID_DLGCONVERT_CBCANCEL", # HID:34673
+ "HID:WIZARDS_HID_DLGCONVERT_CBHELP", # HID:34674
+ "HID:WIZARDS_HID_DLGCONVERT_CBBACK", # HID:34675
+ "HID:WIZARDS_HID_DLGCONVERT_CBGOON", # HID:34676
+ "HID:WIZARDS_HID_DLGCONVERT_CBSOURCEOPEN", # HID:34677
+ "HID:WIZARDS_HID_DLGCONVERT_CBTARGETOPEN", # HID:34678
+ "HID:WIZARDS_HID_DLGCONVERT_CHKPROTECT", # HID:34679
+ "HID:WIZARDS_HID_DLGCONVERT_CHKTEXTDOCUMENTS", # HID:34680
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "HID:WIZARDS_HID_DLGPASSWORD_CMDGOON", # HID:34690
+ "HID:WIZARDS_HID_DLGPASSWORD_CMDCANCEL", # HID:34691
+ "HID:WIZARDS_HID_DLGPASSWORD_CMDHELP", # HID:34692
+ "HID:WIZARDS_HID_DLGPASSWORD_TXTPASSWORD", # HID:34693
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "HID:WIZARDS_HID_DLGHOLIDAYCAL_DIALOG", # HID:34700
+ "HID:WIZARDS_HID_DLGHOLIDAYCAL_1_PREVIEW", # HID:34701
+ "HID:WIZARDS_HID_DLGHOLIDAYCAL_1_OPYEAR", # HID:34702
+ "HID:WIZARDS_HID_DLGHOLIDAYCAL_1_OPMONTH", # HID:34703
+ "HID:WIZARDS_HID_DLGHOLIDAYCAL_1_EDYEAR", # HID:34704
+ "HID:WIZARDS_HID_DLGHOLIDAYCAL_1_EDMONTH", # HID:34705
+ "HID:WIZARDS_HID_DLGHOLIDAYCAL_1_SPINYEAR", # HID:34706
+ "HID:WIZARDS_HID_DLGHOLIDAYCAL_1_SPINMONTH", # HID:34707
+ "HID:WIZARDS_HID_DLGHOLIDAYCAL_1_CMBSTATE", # HID:34708
+ "HID:WIZARDS_HID_DLGHOLIDAYCAL_2_LBOWNDATA", # HID:34709
+ "HID:WIZARDS_HID_DLGHOLIDAYCAL_2_CMDINSERT", # HID:34710
+ "HID:WIZARDS_HID_DLGHOLIDAYCAL_2_CMDDELETE", # HID:34711
+ "HID:WIZARDS_HID_DLGHOLIDAYCAL_2_EDEVENT", # HID:34712
+ "HID:WIZARDS_HID_DLGHOLIDAYCAL_2_CHKEVENT", # HID:34713
+ "HID:WIZARDS_HID_DLGHOLIDAYCAL_2_EDEVENTDAY", # HID:34714
+ "HID:WIZARDS_HID_DLGHOLIDAYCAL_2_SPINEVENTDAY", # HID:34715
+ "HID:WIZARDS_HID_DLGHOLIDAYCAL_2_EDEVENTMONTH", # HID:34716
+ "HID:WIZARDS_HID_DLGHOLIDAYCAL_2_SPINEVENTMONTH", # HID:34717
+ "HID:WIZARDS_HID_DLGHOLIDAYCAL_2_EDEVENTYEAR", # HID:34718
+ "HID:WIZARDS_HID_DLGHOLIDAYCAL_2_SPINEVENTYEAR", # HID:34719
+ "HID:WIZARDS_HID_DLGHOLIDAYCAL_0_CMDOWNDATA", # HID:34720
+ "HID:WIZARDS_HID_DLGHOLIDAYCAL_0_CMDCANCEL", # HID:34721
+ "HID:WIZARDS_HID_DLGHOLIDAYCAL_0_CMDOK" # HID:34722
+ ]
+ array2 = ["HID:WIZARDS_HID_LTRWIZ_OPTBUSINESSLETTER", # HID:40769
+ "HID:WIZARDS_HID_LTRWIZ_OPTPRIVOFFICIALLETTER", # HID:40770
+ "HID:WIZARDS_HID_LTRWIZ_OPTPRIVATELETTER", # HID:40771
+ "HID:WIZARDS_HID_LTRWIZ_LSTBUSINESSSTYLE", # HID:40772
+ "HID:WIZARDS_HID_LTRWIZ_CHKBUSINESSPAPER", # HID:40773
+ "HID:WIZARDS_HID_LTRWIZ_LSTPRIVOFFICIALSTYLE", # HID:40774
+ "HID:WIZARDS_HID_LTRWIZ_LSTPRIVATESTYLE", # HID:40775
+ "HID:WIZARDS_HID_LTRWIZ_CHKPAPERCOMPANYLOGO", # HID:40776
+ "HID:WIZARDS_HID_LTRWIZ_NUMLOGOHEIGHT", # HID:40777
+ "HID:WIZARDS_HID_LTRWIZ_NUMLOGOX", # HID:40778
+ "HID:WIZARDS_HID_LTRWIZ_NUMLOGOWIDTH", # HID:40779
+ "HID:WIZARDS_HID_LTRWIZ_NUMLOGOY", # HID:40780
+ "HID:WIZARDS_HID_LTRWIZ_CHKPAPERCOMPANYADDRESS", # HID:40781
+ "HID:WIZARDS_HID_LTRWIZ_NUMADDRESSHEIGHT", # HID:40782
+ "HID:WIZARDS_HID_LTRWIZ_NUMADDRESSX", # HID:40783
+ "HID:WIZARDS_HID_LTRWIZ_NUMADDRESSWIDTH", # HID:40784
+ "HID:WIZARDS_HID_LTRWIZ_NUMADDRESSY", # HID:40785
+ "HID:WIZARDS_HID_LTRWIZ_CHKCOMPANYRECEIVER", # HID:40786
+ "HID:WIZARDS_HID_LTRWIZ_CHKPAPERFOOTER", # HID:40787
+ "HID:WIZARDS_HID_LTRWIZ_NUMFOOTERHEIGHT", # HID:40788
+ "HID:WIZARDS_HID_LTRWIZ_LSTLETTERNORM", # HID:40789
+ "HID:WIZARDS_HID_LTRWIZ_CHKUSELOGO", # HID:40790
+ "HID:WIZARDS_HID_LTRWIZ_CHKUSEADDRESSRECEIVER", # HID:40791
+ "HID:WIZARDS_HID_LTRWIZ_CHKUSESIGNS", # HID:40792
+ "HID:WIZARDS_HID_LTRWIZ_CHKUSESUBJECT", # HID:40793
+ "HID:WIZARDS_HID_LTRWIZ_CHKUSESALUTATION", # HID:40794
+ "HID:WIZARDS_HID_LTRWIZ_LSTSALUTATION", # HID:40795
+ "HID:WIZARDS_HID_LTRWIZ_CHKUSEBENDMARKS", # HID:40796
+ "HID:WIZARDS_HID_LTRWIZ_CHKUSEGREETING", # HID:40797
+ "HID:WIZARDS_HID_LTRWIZ_LSTGREETING", # HID:40798
+ "HID:WIZARDS_HID_LTRWIZ_CHKUSEFOOTER", # HID:40799
+ "HID:WIZARDS_HID_LTRWIZ_OPTSENDERPLACEHOLDER", # HID:40800
+ "HID:WIZARDS_HID_LTRWIZ_OPTSENDERDEFINE", # HID:40801
+ "HID:WIZARDS_HID_LTRWIZ_TXTSENDERNAME", # HID:40802
+ "HID:WIZARDS_HID_LTRWIZ_TXTSENDERSTREET", # HID:40803
+ "HID:WIZARDS_HID_LTRWIZ_TXTSENDERPOSTCODE", # HID:40804
+ "HID:WIZARDS_HID_LTRWIZ_TXTSENDERSTATE_TEXT", # HID:40805
+ "HID:WIZARDS_HID_LTRWIZ_TXTSENDERCITY", # HID:40806
+ "HID:WIZARDS_HID_LTRWIZ_OPTRECEIVERPLACEHOLDER", # HID:40807
+ "HID:WIZARDS_HID_LTRWIZ_OPTRECEIVERDATABASE", # HID:40808
+ "HID:WIZARDS_HID_LTRWIZ_TXTFOOTER", # HID:40809
+ "HID:WIZARDS_HID_LTRWIZ_CHKFOOTERNEXTPAGES", # HID:40810
+ "HID:WIZARDS_HID_LTRWIZ_CHKFOOTERPAGENUMBERS", # HID:40811
+ "HID:WIZARDS_HID_LTRWIZ_TXTTEMPLATENAME", # HID:40812
+ "HID:WIZARDS_HID_LTRWIZ_OPTCREATELETTER", # HID:40813
+ "HID:WIZARDS_HID_LTRWIZ_OPTMAKECHANGES", # HID:40814
+ "HID:WIZARDS_HID_LTRWIZ_TXTPATH", # HID:40815
+ "HID:WIZARDS_HID_LTRWIZ_CMDPATH", # HID:40816
+ "",
+ "",
+ "",
+ "HID:WIZARDS_HID_LTRWIZARD", # HID:40820
+ "HID:WIZARDS_HID_LTRWIZARD_HELP", # HID:40821
+ "HID:WIZARDS_HID_LTRWIZARD_BACK", # HID:40822
+ "HID:WIZARDS_HID_LTRWIZARD_NEXT", # HID:40823
+ "HID:WIZARDS_HID_LTRWIZARD_CREATE", # HID:40824
+ "HID:WIZARDS_HID_LTRWIZARD_CANCEL", # HID:40825
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "HID:WIZARDS_HID_QUERYWIZARD_LSTTABLES", # HID:40850
+ "HID:WIZARDS_HID_QUERYWIZARD_LSTFIELDS", # HID:40851
+ "HID:WIZARDS_HID_QUERYWIZARD_CMDMOVESELECTED", # HID:40852
+ "HID:WIZARDS_HID_QUERYWIZARD_CMDMOVEALL", # HID:40853
+ "HID:WIZARDS_HID_QUERYWIZARD_CMDREMOVESELECTED", # HID:40854
+ "HID:WIZARDS_HID_QUERYWIZARD_CMDREMOVEALL", # HID:40855
+ "HID:WIZARDS_HID_QUERYWIZARD_LSTSELFIELDS", # HID:40856
+ "HID:WIZARDS_HID_QUERYWIZARD_CMDMOVEUP", # HID:40857
+ "HID:WIZARDS_HID_QUERYWIZARD_CMDMOVEDOWN", # HID:40858
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "HID:WIZARDS_HID_QUERYWIZARD_SORT1", # HID:40865
+ "HID:WIZARDS_HID_QUERYWIZARD_OPTASCEND1", # HID:40866
+ "HID:WIZARDS_HID_QUERYWIZARD_OPTDESCEND1", # HID:40867
+ "HID:WIZARDS_HID_QUERYWIZARD_SORT2", # HID:40868
+ "HID:WIZARDS_HID_QUERYWIZARD_OPTASCEND2", # HID:40869
+ "HID:WIZARDS_HID_QUERYWIZARD_OPTDESCEND2", # HID:40870
+ "HID:WIZARDS_HID_QUERYWIZARD_SORT3", # HID:40871
+ "HID:WIZARDS_HID_QUERYWIZARD_OPTASCEND3", # HID:40872
+ "HID:WIZARDS_HID_QUERYWIZARD_OPTDESCEND3", # HID:40873
+ "HID:WIZARDS_HID_QUERYWIZARD_SORT4", # HID:40874
+ "HID:WIZARDS_HID_QUERYWIZARD_OPTASCEND4", # HID:40875
+ "HID:WIZARDS_HID_QUERYWIZARD_OPTDESCEND4", # HID:40876
+ "",
+ "HID:WIZARDS_HID_QUERYWIZARD_OPTMATCHALL", # HID:40878
+ "HID:WIZARDS_HID_QUERYWIZARD_OPTMATCHANY", # HID:40879
+ "HID:WIZARDS_HID_QUERYWIZARD_LSTFIELDNAME_1", # HID:40880
+ "HID:WIZARDS_HID_QUERYWIZARD_LSTOPERATOR_1", # HID:40881
+ "HID:WIZARDS_HID_QUERYWIZARD_TXTVALUE_1", # HID:40882
+ "HID:WIZARDS_HID_QUERYWIZARD_LSTFIELDNAME_2", # HID:40883
+ "HID:WIZARDS_HID_QUERYWIZARD_LSTOPERATOR_2", # HID:40884
+ "HID:WIZARDS_HID_QUERYWIZARD_TXTVALUE_2", # HID:40885
+ "HID:WIZARDS_HID_QUERYWIZARD_LSTFIELDNAME_3", # HID:40886
+ "HID:WIZARDS_HID_QUERYWIZARD_LSTOPERATOR_3", # HID:40887
+ "HID:WIZARDS_HID_QUERYWIZARD_TXTVALUE_3", # HID:40888
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "HID:WIZARDS_HID_QUERYWIZARD_OPTAGGREGATEDETAILQUERY", # HID:40895
+ "HID:WIZARDS_HID_QUERYWIZARD_OPTAGGREGATESUMMARYQUERY", # HID:40896
+ "HID:WIZARDS_HID_QUERYWIZARD_LSTAGGREGATEFUNCTION_1", # HID:40897
+ "HID:WIZARDS_HID_QUERYWIZARD_LSTAGGREGATEFIELDS_1", # HID:40898
+ "HID:WIZARDS_HID_QUERYWIZARD_LSTAGGREGATEFUNCTION_2", # HID:40899
+ "HID:WIZARDS_HID_QUERYWIZARD_LSTAGGREGATEFIELDS_2", # HID:40900
+ "HID:WIZARDS_HID_QUERYWIZARD_LSTAGGREGATEFUNCTION_3", # HID:40901
+ "HID:WIZARDS_HID_QUERYWIZARD_LSTAGGREGATEFIELDS_3", # HID:40902
+ "HID:WIZARDS_HID_QUERYWIZARD_LSTAGGREGATEFUNCTION_4", # HID:40903
+ "HID:WIZARDS_HID_QUERYWIZARD_LSTAGGREGATEFIELDS_4", # HID:40904
+ "HID:WIZARDS_HID_QUERYWIZARD_LSTAGGREGATEFUNCTION_5", # HID:40905
+ "HID:WIZARDS_HID_QUERYWIZARD_LSTAGGREGATEFIELDS_5", # HID:40906
+ "HID:WIZARDS_HID_QUERYWIZARD_BTNAGGREGATEPLUS", # HID:40907
+ "HID:WIZARDS_HID_QUERYWIZARD_BTNAGGREGATEMINUS", # HID:40908
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "HID:WIZARDS_HID_QUERYWIZARD_LSTFILTERFIELDS", # HID:40915
+ "HID:WIZARDS_HID_QUERYWIZARD_CMDFILTERMOVESELECTED", # HID:40916
+ "HID:WIZARDS_HID_QUERYWIZARD_CMDFILTERREMOVESELECTED", # HID:40917
+ "HID:WIZARDS_HID_QUERYWIZARD_LSTFILTERSELFIELDS", # HID:40918
+ "HID:WIZARDS_HID_QUERYWIZARD_CMDFILTERMOVEUP", # HID:40919
+ "HID:WIZARDS_HID_QUERYWIZARD_CMDFILTERMOVEDOWN", # HID:40920
+ "",
+ "",
+ "HID:WIZARDS_HID_QUERYWIZARD_OPTGROUPMATCHALL", # HID:40923
+ "HID:WIZARDS_HID_QUERYWIZARD_OPTGROUPMATCHANY", # HID:40924
+ "HID:WIZARDS_HID_QUERYWIZARD_LSTFILTERFIELDNAME_1", # HID:40925
+ "HID:WIZARDS_HID_QUERYWIZARD_LSTFILTEROPERATOR_1", # HID:40926
+ "HID:WIZARDS_HID_QUERYWIZARD_TXTFILTERVALUE_1", # HID:40927
+ "HID:WIZARDS_HID_QUERYWIZARD_LSTFILTERFIELDNAME_2", # HID:40928
+ "HID:WIZARDS_HID_QUERYWIZARD_LSTFILTEROPERATOR_2", # HID:40929
+ "HID:WIZARDS_HID_QUERYWIZARD_TXTFILTERVALUE_2", # HID:40930
+ "HID:WIZARDS_HID_QUERYWIZARD_LSTFILTERFIELDNAME_3", # HID:40931
+ "HID:WIZARDS_HID_QUERYWIZARD_LSTFILTEROPERATOR_3", # HID:40932
+ "HID:WIZARDS_HID_QUERYWIZARD_TXTFILTERVALUE_3", # HID:40933
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "HID:WIZARDS_HID_QUERYWIZARD_TXTTITLE_1", # HID:40940
+ "HID:WIZARDS_HID_QUERYWIZARD_TXTTITLE_2", # HID:40941
+ "HID:WIZARDS_HID_QUERYWIZARD_TXTTITLE_3", # HID:40942
+ "HID:WIZARDS_HID_QUERYWIZARD_TXTTITLE_4", # HID:40943
+ "HID:WIZARDS_HID_QUERYWIZARD_TXTTITLE_5", # HID:40944
+ "HID:WIZARDS_HID_QUERYWIZARD_TXTTITLE_6", # HID:40945
+ "HID:WIZARDS_HID_QUERYWIZARD_TXTTITLE_7", # HID:40946
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "HID:WIZARDS_HID_QUERYWIZARD_TXTQUERYTITLE", # HID:40955
+ "HID:WIZARDS_HID_QUERYWIZARD_OPTDISPLAYQUERY", # HID:40956
+ "HID:WIZARDS_HID_QUERYWIZARD_OPTMODIFYQUERY", # HID:40957
+ "HID:WIZARDS_HID_QUERYWIZARD_TXTSUMMARY", # HID:40958
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "HID:WIZARDS_HID_QUERYWIZARD", # HID:40970
+ "",
+ "HID:WIZARDS_HID_QUERYWIZARD_BACK", # HID:40972
+ "HID:WIZARDS_HID_QUERYWIZARD_NEXT", # HID:40973
+ "HID:WIZARDS_HID_QUERYWIZARD_CREATE", # HID:40974
+ "HID:WIZARDS_HID_QUERYWIZARD_CANCEL", # HID:40975
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "HID:WIZARDS_HID_IS", # HID:41000
+ "", "HID:WIZARDS_HID_IS_BTN_NONE", # HID:41002
+ "HID:WIZARDS_HID_IS_BTN_OK", # HID:41003
+ "HID:WIZARDS_HID_IS_BTN_CANCEL", # HID:41004
+ "HID:WIZARDS_HID_IS_BTN_IMG1", # HID:41005
+ "HID:WIZARDS_HID_IS_BTN_IMG2", # HID:41006
+ "HID:WIZARDS_HID_IS_BTN_IMG3", # HID:41007
+ "HID:WIZARDS_HID_IS_BTN_IMG4", # HID:41008
+ "HID:WIZARDS_HID_IS_BTN_IMG5", # HID:41009
+ "HID:WIZARDS_HID_IS_BTN_IMG6", # HID:41010
+ "HID:WIZARDS_HID_IS_BTN_IMG7", # HID:41011
+ "HID:WIZARDS_HID_IS_BTN_IMG8", # HID:41012
+ "HID:WIZARDS_HID_IS_BTN_IMG9", # HID:41013
+ "HID:WIZARDS_HID_IS_BTN_IMG10", # HID:41014
+ "HID:WIZARDS_HID_IS_BTN_IMG11", # HID:41015
+ "HID:WIZARDS_HID_IS_BTN_IMG12", # HID:41016
+ "HID:WIZARDS_HID_IS_BTN_IMG13", # HID:41017
+ "HID:WIZARDS_HID_IS_BTN_IMG14", # HID:41018
+ "HID:WIZARDS_HID_IS_BTN_IMG15", # HID:41019
+ "HID:WIZARDS_HID_IS_BTN_IMG16", # HID:41020
+ "HID:WIZARDS_HID_IS_BTN_IMG17", # HID:41021
+ "HID:WIZARDS_HID_IS_BTN_IMG18", # HID:41022
+ "HID:WIZARDS_HID_IS_BTN_IMG19", # HID:41023
+ "HID:WIZARDS_HID_IS_BTN_IMG20", # HID:41024
+ "HID:WIZARDS_HID_IS_BTN_IMG21", # HID:41025
+ "HID:WIZARDS_HID_IS_BTN_IMG22", # HID:41026
+ "HID:WIZARDS_HID_IS_BTN_IMG23", # HID:41027
+ "HID:WIZARDS_HID_IS_BTN_IMG24", # HID:41028
+ "HID:WIZARDS_HID_IS_BTN_IMG25", # HID:41029
+ "HID:WIZARDS_HID_IS_BTN_IMG26", # HID:41030
+ "HID:WIZARDS_HID_IS_BTN_IMG27", # HID:41031
+ "HID:WIZARDS_HID_IS_BTN_IMG28", # HID:41032
+ "HID:WIZARDS_HID_IS_BTN_IMG29", # HID:41033
+ "HID:WIZARDS_HID_IS_BTN_IMG30", # HID:41034
+ "HID:WIZARDS_HID_IS_BTN_IMG31", # HID:41035
+ "HID:WIZARDS_HID_IS_BTN_IMG32", # HID:41036
+ "",
+ "",
+ "",
+ "HID:WIZARDS_HID_FTP", # HID:41040
+ "HID:WIZARDS_HID_FTP_SERVER", # HID:41041
+ "HID:WIZARDS_HID_FTP_USERNAME", # HID:41042
+ "HID:WIZARDS_HID_FTP_PASS", # HID:41043
+ "HID:WIZARDS_HID_FTP_TEST", # HID:41044
+ "HID:WIZARDS_HID_FTP_TXT_PATH", # HID:41045
+ "HID:WIZARDS_HID_FTP_BTN_PATH", # HID:41046
+ "HID:WIZARDS_HID_FTP_OK", # HID:41047
+ "HID:WIZARDS_HID_FTP_CANCEL", # HID:41048
+ "",
+ "",
+ "HID:WIZARDS_HID_AGWIZ", # HID:41051
+ "HID:WIZARDS_HID_AGWIZ_HELP", # HID:41052
+ "HID:WIZARDS_HID_AGWIZ_NEXT", # HID:41053
+ "HID:WIZARDS_HID_AGWIZ_PREV", # HID:41054
+ "HID:WIZARDS_HID_AGWIZ_CREATE", # HID:41055
+ "HID:WIZARDS_HID_AGWIZ_CANCEL", # HID:41056
+ "HID:WIZARDS_HID_AGWIZ_1_LIST_PAGEDESIGN", # HID:41057
+ "HID:WIZARDS_HID_AGWIZ_1_CHK_MINUTES", # HID:41058
+ "HID:WIZARDS_HID_AGWIZ_2_TXT_TIME", # HID:41059
+ "HID:WIZARDS_HID_AGWIZ_2_TXT_DATE", # HID:41060
+ "HID:WIZARDS_HID_AGWIZ_2_TXT_TITLE", # HID:41061
+ "HID:WIZARDS_HID_AGWIZ_2_TXT_LOCATION", # HID:41062
+ "HID:WIZARDS_HID_AGWIZ_3_CHK_MEETING_TYPE", # HID:41063
+ "HID:WIZARDS_HID_AGWIZ_3_CHK_READ", # HID:41064
+ "HID:WIZARDS_HID_AGWIZ_3_CHK_BRING", # HID:41065
+ "HID:WIZARDS_HID_AGWIZ_3_CHK_NOTES", # HID:41066
+ "HID:WIZARDS_HID_AGWIZ_4_CHK_CALLED_BY", # HID:41067
+ "HID:WIZARDS_HID_AGWIZ_4_CHK_FACILITATOR", # HID:41068
+ "HID:WIZARDS_HID_AGWIZ_4_CHK_NOTETAKER", # HID:41069
+ "HID:WIZARDS_HID_AGWIZ_4_CHK_TIMEKEEPER", # HID:41070
+ "HID:WIZARDS_HID_AGWIZ_4_CHK_ATTENDEES", # HID:41071
+ "HID:WIZARDS_HID_AGWIZ_4_CHK_OBSERVERS", # HID:41072
+ "HID:WIZARDS_HID_AGWIZ_4_CHK_RESOURCEPERSONS", # HID:41073
+ "HID:WIZARDS_HID_AGWIZ_6_TXT_TEMPLATENAME", # HID:41074
+ "HID:WIZARDS_HID_AGWIZ_6_TXT_TEMPLATEPATH", # HID:41075
+ "HID:WIZARDS_HID_AGWIZ_6_BTN_TEMPLATEPATH", # HID:41076
+ "HID:WIZARDS_HID_AGWIZ_6_OPT_CREATEAGENDA", # HID:41077
+ "HID:WIZARDS_HID_AGWIZ_6_OPT_MAKECHANGES", # HID:41078
+ "HID:WIZARDS_HID_AGWIZ_5_BTN_INSERT", # HID:41079
+ "HID:WIZARDS_HID_AGWIZ_5_BTN_REMOVE", # HID:41080
+ "HID:WIZARDS_HID_AGWIZ_5_BTN_UP", # HID:41081
+ "HID:WIZARDS_HID_AGWIZ_5_BTN_DOWN", # HID:41082
+ "HID:WIZARDS_HID_AGWIZ_5_SCROLL_BAR", # HID:41083
+ "HID:WIZARDS_HID_AGWIZ_5_TXT_TOPIC_1", # HID:41084
+ "HID:WIZARDS_HID_AGWIZ_5_TXT_RESPONSIBLE_1", # HID:41085
+ "HID:WIZARDS_HID_AGWIZ_5_TXT_MINUTES_1", # HID:41086
+ "HID:WIZARDS_HID_AGWIZ_5_TXT_TOPIC_2", # HID:41087
+ "HID:WIZARDS_HID_AGWIZ_5_TXT_RESPONSIBLE_2", # HID:41088
+ "HID:WIZARDS_HID_AGWIZ_5_TXT_MINUTES_2", # HID:41089
+ "HID:WIZARDS_HID_AGWIZ_5_TXT_TOPIC_3", # HID:41090
+ "HID:WIZARDS_HID_AGWIZ_5_TXT_RESPONSIBLE_3", # HID:41091
+ "HID:WIZARDS_HID_AGWIZ_5_TXT_MINUTES_3", # HID:41092
+ "HID:WIZARDS_HID_AGWIZ_5_TXT_TOPIC_4", # HID:41093
+ "HID:WIZARDS_HID_AGWIZ_5_TXT_RESPONSIBLE_4", # HID:41094
+ "HID:WIZARDS_HID_AGWIZ_5_TXT_MINUTES_4", # HID:41095
+ "HID:WIZARDS_HID_AGWIZ_5_TXT_TOPIC_5", # HID:41096
+ "HID:WIZARDS_HID_AGWIZ_5_TXT_RESPONSIBLE_5", # HID:41097
+ "HID:WIZARDS_HID_AGWIZ_5_TXT_MINUTES_5", # HID:41098
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "HID:WIZARDS_HID_FAXWIZ_OPTBUSINESSFAX", # HID:41120
+ "HID:WIZARDS_HID_FAXWIZ_LSTBUSINESSSTYLE", # HID:41121
+ "HID:WIZARDS_HID_FAXWIZ_OPTPRIVATEFAX", # HID:41122
+ "HID:WIZARDS_HID_LSTPRIVATESTYLE", # HID:41123
+ "HID:WIZARDS_HID_IMAGECONTROL3", # HID:41124
+ "HID:WIZARDS_HID_CHKUSELOGO", # HID:41125
+ "HID:WIZARDS_HID_CHKUSEDATE", # HID:41126
+ "HID:WIZARDS_HID_CHKUSECOMMUNICATIONTYPE", # HID:41127
+ "HID:WIZARDS_HID_LSTCOMMUNICATIONTYPE", # HID:41128
+ "HID:WIZARDS_HID_CHKUSESUBJECT", # HID:41129
+ "HID:WIZARDS_HID_CHKUSESALUTATION", # HID:41130
+ "HID:WIZARDS_HID_LSTSALUTATION", # HID:41131
+ "HID:WIZARDS_HID_CHKUSEGREETING", # HID:41132
+ "HID:WIZARDS_HID_LSTGREETING", # HID:41133
+ "HID:WIZARDS_HID_CHKUSEFOOTER", # HID:41134
+ "HID:WIZARDS_HID_OPTSENDERPLACEHOLDER", # HID:41135
+ "HID:WIZARDS_HID_OPTSENDERDEFINE", # HID:41136
+ "HID:WIZARDS_HID_TXTSENDERNAME", # HID:41137
+ "HID:WIZARDS_HID_TXTSENDERSTREET", # HID:41138
+ "HID:WIZARDS_HID_TXTSENDERPOSTCODE", # HID:41139
+ "HID:WIZARDS_HID_TXTSENDERSTATE", # HID:41140
+ "HID:WIZARDS_HID_TXTSENDERCITY", # HID:41141
+ "HID:WIZARDS_HID_TXTSENDERFAX", # HID:41142
+ "HID:WIZARDS_HID_OPTRECEIVERPLACEHOLDER", # HID:41143
+ "HID:WIZARDS_HID_OPTRECEIVERDATABASE", # HID:41144
+ "HID:WIZARDS_HID_TXTFOOTER", # HID:41145
+ "HID:WIZARDS_HID_CHKFOOTERNEXTPAGES", # HID:41146
+ "HID:WIZARDS_HID_CHKFOOTERPAGENUMBERS", # HID:41147
+ "HID:WIZARDS_HID_TXTTEMPLATENAME", # HID:41148
+ "HID:WIZARDS_HID_FILETEMPLATEPATH", # HID:41149
+ "HID:WIZARDS_HID_OPTCREATEFAX", # HID:41150
+ "HID:WIZARDS_HID_OPTMAKECHANGES", # HID:41151
+ "HID:WIZARDS_HID_IMAGECONTROL2", # HID:41152
+ "HID:WIZARDS_HID_FAXWIZ_TXTPATH", # HID:41153
+ "HID:WIZARDS_HID_FAXWIZ_CMDPATH", # HID:41154
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "HID:WIZARDS_HID_FAXWIZARD", # HID:41180
+ "HID:WIZARDS_HID_FAXWIZARD_HELP", # HID:41181
+ "HID:WIZARDS_HID_FAXWIZARD_BACK", # HID:41182
+ "HID:WIZARDS_HID_FAXWIZARD_NEXT", # HID:41183
+ "HID:WIZARDS_HID_FAXWIZARD_CREATE", # HID:41184
+ "HID:WIZARDS_HID_FAXWIZARD_CANCEL", # HID:41185
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "HID:WIZARDS_HID_DLGTABLE_DIALOG", # HID:41200
+ "",
+ "HID:WIZARDS_HID_DLGTABLE_CMDPREV", # HID:41202
+ "HID:WIZARDS_HID_DLGTABLE_CMDNEXT", # HID:41203
+ "HID:WIZARDS_HID_DLGTABLE_CMDFINISH", # HID:41204
+ "HID:WIZARDS_HID_DLGTABLE_CMDCANCEL", # HID:41205
+ "HID:WIZARDS_HID_DLGTABLE_OPTBUSINESS", # HID:41206
+ "HID:WIZARDS_HID_DLGTABLE_OPTPRIVATE", # HID:41207
+ "HID:WIZARDS_HID_DLGTABLE_LBTABLES", # HID:41208
+ "HID:WIZARDS_HID_DLGTABLE_FIELDSAVAILABLE", # HID:41209
+ "HID:WIZARDS_HID_DLGTABLE_CMDMOVESELECTED", # HID:41210
+ "HID:WIZARDS_HID_DLGTABLE_CMDMOVEALL", # HID:41211
+ "HID:WIZARDS_HID_DLGTABLE_CMDREMOVESELECTED", # HID:41212
+ "HID:WIZARDS_HID_DLGTABLE_CMDREMOVEALL", # HID:41213
+ "HID:WIZARDS_HID_DLGTABLE_FIELDSSELECTED", # HID:41214
+ "HID:WIZARDS_HID_DLGTABLE_CMDMOVEUP", # HID:41215
+ "HID:WIZARDS_HID_DLGTABLE_CMDMOVEDOWN", # HID:41216
+ "",
+ "",
+ "",
+ "HID:WIZARDS_HID_DLGTABLE_LB_SELFIELDNAMES", # HID:41220
+ "HID:WIZARDS_HID_DLGTABLE_CMDMOVEFIELDUP", # HID:41221
+ "HID:WIZARDS_HID_DLGTABLE_CMDMOVEFIELDDOWN", # HID:41222
+ "HID:WIZARDS_HID_DLGTABLE_CMDMINUS", # HID:41223
+ "HID:WIZARDS_HID_DLGTABLE_CMDPLUS", # HID:41224
+ "HID:WIZARDS_HID_DLGTABLE_COLNAME", # HID:41225
+ "HID:WIZARDS_HID_DLGTABLE_COLMODIFIER", # HID:41226
+ "HID:WIZARDS_HID_DLGTABLE_CHK_USEPRIMEKEY", # HID:41227
+ "HID:WIZARDS_HID_DLGTABLE_OPT_PK_AUTOMATIC", # HID:41228
+ "HID:WIZARDS_HID_DLGTABLE_CK_PK_AUTOVALUE_AUTOMATIC", # HID:41229
+ "HID:WIZARDS_HID_DLGTABLE_OPT_PK_SINGLE", # HID:41230
+ "HID:WIZARDS_HID_DLGTABLE_LB_PK_FIELDNAME", # HID:41231
+ "HID:WIZARDS_HID_DLGTABLE_CK_PK_AUTOVALUE", # HID:41232
+ "HID:WIZARDS_HID_DLGTABLE_OPT_PK_SEVERAL", # HID:41233
+ "HID:WIZARDS_HID_DLGTABLE_FIELDS_PK_AVAILABLE", # HID:41234
+ "HID:WIZARDS_HID_DLGTABLE_CMDMOVE_PK_SELECTED", # HID:41235
+ "HID:WIZARDS_HID_DLGTABLE_CMDREMOVE_PK_SELECTED", # HID:41236
+ "HID:WIZARDS_HID_DLGTABLE_FIELDS_PK_SELECTED", # HID:41237
+ "HID:WIZARDS_HID_DLGTABLE_CMDMOVEUP_PK_SELECTED", # HID:41238
+ "HID:WIZARDS_HID_DLGTABLE_CMDMOVEDOWN_PK_SELECTED", # HID:41239
+ "HID:WIZARDS_HID_DLGTABLE_TXT_NAME", # HID:41240
+ "HID:WIZARDS_HID_DLGTABLE_OPT_MODIFYTABLE", # HID:41241
+ "HID:WIZARDS_HID_DLGTABLE_OPT_WORKWITHTABLE", # HID:41242
+ "HID:WIZARDS_HID_DLGTABLE_OPT_STARTFORMWIZARD", # HID:41243
+ "HID:WIZARDS_HID_DLGTABLE_LST_CATALOG", # HID:41244
+ "HID:WIZARDS_HID_DLGTABLE_LST_SCHEMA" # HID:41245
+ ]
+
+ @classmethod
+ def getHelpIdString(self, nHelpId):
+ if nHelpId >= 34200 and nHelpId <= 34722:
+ return HelpIds.array1[nHelpId - 34200]
+ elif nHelpId >= 40769 and nHelpId <= 41245:
+ return HelpIds.array2[nHelpId - 40769]
+ else:
+ return None
diff --git a/wizards/com/sun/star/wizards/common/Helper.py b/wizards/com/sun/star/wizards/common/Helper.py
new file mode 100644
index 000000000000..45923cfe848e
--- /dev/null
+++ b/wizards/com/sun/star/wizards/common/Helper.py
@@ -0,0 +1,186 @@
+import uno
+import traceback
+from datetime import date as DateTime
+from com.sun.star.uno import RuntimeException
+from NumberFormatter import NumberFormatter
+
+class Helper(object):
+
+ def convertUnoDatetoInteger(self, DateValue):
+ oCal = java.util.Calendar.getInstance()
+ oCal.set(DateValue.Year, DateValue.Month, DateValue.Day)
+ dTime = oCal.getTime()
+ lTime = dTime.getTime()
+ lDate = lTime / (3600 * 24000)
+ return lDate
+
+ @classmethod
+ def setUnoPropertyValue(self, xPSet, PropertyName, PropertyValue):
+ try:
+ if PropertyValue is not None:
+ setattr(xPSet, PropertyName, PropertyValue)
+
+ except AttributeError:
+ raise AttributeError, "No Such Property: '%s'" % PropertyName
+ except Exception:
+ traceback.print_exc()
+
+ @classmethod
+ def getUnoObjectbyName(self, xName, ElementName):
+ try:
+ if xName.hasByName(ElementName) == True:
+ return xName.getByName(ElementName)
+ else:
+ raise RuntimeException();
+
+ except Exception, exception:
+ traceback.print_exc()
+ return None
+
+ @classmethod
+ def getPropertyValue(self, CurPropertyValue, PropertyName):
+ for i in CurPropertyValue:
+ if i is not None:
+ if i.Name == PropertyName:
+ return i.Value
+
+ raise RuntimeException()
+
+ @classmethod
+ def getPropertyValuefromAny(self, CurPropertyValue, PropertyName):
+ try:
+ if CurPropertyValue is not None:
+ MaxCount = len(CurPropertyValue)
+ i = 0
+ while i < MaxCount:
+ if CurPropertyValue[i] is not None:
+ aValue = CurPropertyValue[i]
+ if aValue is not None and aValue.Name == PropertyName:
+ return aValue.Value
+
+ i += 1
+ return None
+ except Exception, exception:
+ traceback.print_exc()
+ return None
+
+ @classmethod
+ def getUnoPropertyValue(self, xPSet, PropertyName):
+ try:
+ if xPSet is not None:
+ oObject = xPSet.getPropertyValue(PropertyName)
+ if oObject is not None:
+ return oObject
+ return None
+
+ except Exception, exception:
+ traceback.print_exc()
+ return None
+
+ @classmethod
+ def getUnoArrayPropertyValue(self, xPSet, PropertyName):
+ try:
+ if xPSet is not None:
+ oObject = xPSet.getPropertyValue(PropertyName)
+ if isinstance(oObject,list):
+ return getArrayValue(oObject)
+
+ except Exception, exception:
+ traceback.print_exc()
+
+ return None
+
+ @classmethod
+ def getUnoStructValue(self, xPSet, PropertyName):
+ try:
+ if xPSet is not None:
+ if xPSet.getPropertySetInfo().hasPropertyByName(PropertyName):
+ oObject = xPSet.getPropertyValue(PropertyName)
+ return oObject
+
+ return None
+ except Exception, exception:
+ traceback.print_exc()
+ return None
+
+ @classmethod
+ def setUnoPropertyValues(self, xMultiPSetLst, PropertyNames,
+ PropertyValues):
+ try:
+ if xMultiPSetLst is not None:
+ uno.invoke(xMultiPSetLst, "setPropertyValues",
+ (PropertyNames, PropertyValues))
+ else:
+ for i in xrange(len(PropertyNames)):
+ self.setUnoPropertyValue(xMultiPSetLst, PropertyNames[i],
+ PropertyValues[i])
+
+ except Exception, e:
+ traceback.print_exc()
+
+ '''
+ checks if the value of an object that represents an array is null.
+ check beforehand if the Object is really an array with
+ "AnyConverter.IsArray(oObject)
+ @param oValue the paramter that has to represent an object
+ @return a null reference if the array is empty
+ '''
+
+ @classmethod
+ def getArrayValue(self, oValue):
+ try:
+ #VetoableChangeSupport Object
+ oPropList = list(oValue)
+ nlen = len(oPropList)
+ if nlen == 0:
+ return None
+ else:
+ return oPropList
+
+ except Exception, exception:
+ traceback.print_exc()
+ return None
+
+ def getComponentContext(_xMSF):
+ #Get the path to the extension and
+ #try to add the path to the class loader
+ aHelper = PropertySetHelper(_xMSF);
+ aDefaultContext = aHelper.getPropertyValueAsObject("DefaultContext")
+ return aDefaultContext;
+
+ def getMacroExpander(_xMSF):
+ xComponentContext = self.getComponentContext(_xMSF);
+ aSingleton = xComponentContext.getValueByName(
+ "/singletons/com.sun.star.util.theMacroExpander")
+ return aSingleton;
+
+ class DateUtils(object):
+
+ def __init__(self, xmsf, document):
+ defaults = document.createInstance("com.sun.star.text.Defaults")
+ l = Helper.getUnoStructValue(defaults, "CharLocale")
+ self.formatSupplier = document
+ formatSettings = self.formatSupplier.getNumberFormatSettings()
+ date = Helper.getUnoPropertyValue(formatSettings, "NullDate")
+ self.calendar = DateTime(date.Year, date.Month, date.Day)
+ self.formatter = NumberFormatter.createNumberFormatter(xmsf,
+ self.formatSupplier)
+
+ '''
+ @param format a constant of the enumeration NumberFormatIndex
+ @return
+ '''
+
+ def getFormat(self, format):
+ return NumberFormatter.getNumberFormatterKey(
+ self.formatSupplier, format)
+
+ '''
+ @param date a VCL date in form of 20041231
+ @return a document relative date
+ '''
+
+ def format(self, formatIndex, date):
+ difference = date - self.calendar
+ return self.formatter.convertNumberToString(formatIndex,
+ difference.days)
diff --git a/wizards/com/sun/star/wizards/common/NoValidPathException.py b/wizards/com/sun/star/wizards/common/NoValidPathException.py
new file mode 100644
index 000000000000..53db155e2e6d
--- /dev/null
+++ b/wizards/com/sun/star/wizards/common/NoValidPathException.py
@@ -0,0 +1,10 @@
+class NoValidPathException(Exception):
+
+ def __init__(self, xMSF, _sText):
+ super(NoValidPathException,self).__init__(_sText)
+ # TODO: NEVER open a dialog in an exception
+ from SystemDialog import SystemDialog
+ if xMSF:
+ SystemDialog.showErrorBox(xMSF,
+ "dbwizres", "dbw", 521) #OfficePathnotavailable
+
diff --git a/wizards/com/sun/star/wizards/common/NumberFormatter.py b/wizards/com/sun/star/wizards/common/NumberFormatter.py
new file mode 100644
index 000000000000..a3deb173022f
--- /dev/null
+++ b/wizards/com/sun/star/wizards/common/NumberFormatter.py
@@ -0,0 +1,231 @@
+import traceback
+from com.sun.star.lang import Locale
+from com.sun.star.util.NumberFormat import DATE, LOGICAL, DATETIME, TEXT, NUMBER
+
+class NumberFormatter(object):
+
+ def __init__(self, _xNumberFormatsSupplier, _aLocale, _xMSF=None):
+ self.iDateFormatKey = -1
+ self.iDateTimeFormatKey = -1
+ self.iNumberFormatKey = -1
+ self.iTextFormatKey = -1
+ self.iTimeFormatKey = -1
+ self.iLogicalFormatKey = -1
+ self.bNullDateCorrectionIsDefined = False
+ self.aLocale = _aLocale
+ if _xMSF is not None:
+ self.xNumberFormatter = _xMSF.createInstance(
+ "com.sun.star.util.NumberFormatter")
+ self.xNumberFormats = _xNumberFormatsSupplier.NumberFormats
+ self.xNumberFormatSettings = \
+ _xNumberFormatsSupplier.NumberFormatSettings
+ self.xNumberFormatter.attachNumberFormatsSupplier(
+ _xNumberFormatsSupplier)
+
+ '''
+ @param _xMSF
+ @param _xNumberFormatsSupplier
+ @return
+ @throws Exception
+ @deprecated
+ '''
+
+ @classmethod
+ def createNumberFormatter(self, _xMSF, _xNumberFormatsSupplier):
+ oNumberFormatter = _xMSF.createInstance(
+ "com.sun.star.util.NumberFormatter")
+ oNumberFormatter.attachNumberFormatsSupplier(_xNumberFormatsSupplier)
+ return oNumberFormatter
+
+ '''
+ gives a key to pass to a NumberFormat object. <br/>
+ example: <br/>
+ <pre>
+ XNumberFormatsSupplier nsf =
+ (XNumberFormatsSupplier)UnoRuntime.queryInterface(...,document)
+ int key = Desktop.getNumberFormatterKey(
+ nsf, ...star.i18n.NumberFormatIndex.DATE...)
+ XNumberFormatter nf = Desktop.createNumberFormatter(xmsf, nsf);
+ nf.convertNumberToString( key, 1972 );
+ </pre>
+ @param numberFormatsSupplier
+ @param type - a constant out of i18n.NumberFormatIndex enumeration.
+ @return a key to use with a util.NumberFormat instance.
+ '''
+
+ @classmethod
+ def getNumberFormatterKey(self, numberFormatsSupplier, Type):
+ return numberFormatsSupplier.NumberFormats.getFormatIndex(
+ Type, Locale())
+
+ def convertNumberToString(self, _nkey, _dblValue, _xNumberFormatter=None):
+ if _xNumberFormatter is None:
+ return self.xNumberFormatter.convertNumberToString(
+ _nkey, _dblValue)
+ else:
+ return _xNumberFormatter.convertNumberToString(_nkey, _dblValue)
+
+ def convertStringToNumber(self, _nkey, _sString):
+ return self.xNumberFormatter.convertStringToNumber(_nkey, _sString)
+
+ '''
+ @param dateCorrection The lDateCorrection to set.
+ '''
+
+ def setNullDateCorrection(self, dateCorrection):
+ self.lDateCorrection = dateCorrection
+
+ def defineNumberFormat(self, _FormatString):
+ try:
+ NewFormatKey = self.xNumberFormats.queryKey(
+ _FormatString, self.aLocale, True)
+ if NewFormatKey is -1:
+ NewFormatKey = self.xNumberFormats.addNew(
+ _FormatString, self.aLocale)
+
+ return NewFormatKey
+ except Exception, e:
+ traceback.print_exc()
+ return -1
+
+ '''
+ returns a numberformat for a FormatString.
+ @param _FormatString
+ @param _aLocale
+ @return
+ '''
+
+ def defineNumberFormat(self, _FormatString, _aLocale):
+ try:
+ NewFormatKey = self.xNumberFormats.queryKey(
+ _FormatString, _aLocale, True)
+ if NewFormatKey == -1:
+ NewFormatKey = self.xNumberFormats.addNew(
+ _FormatString, _aLocale)
+
+ return NewFormatKey
+ except Exception, e:
+ traceback.print_exc()
+ return -1
+
+ def setNumberFormat(self, _xFormatObject, _FormatKey, _oNumberFormatter):
+ try:
+ xNumberFormat = _oNumberFormatter.xNumberFormats.getByKey(
+ _FormatKey)
+ FormatString = str(Helper.getUnoPropertyValue(
+ xNumberFormat, "FormatString"))
+ oLocale = Helper.getUnoPropertyValue(xNumberFormat, "Locale")
+ NewFormatKey = defineNumberFormat(FormatString, oLocale)
+ _xFormatObject.setPropertyValue(
+ "FormatsSupplier",
+ _oNumberFormatter.xNumberFormatter.getNumberFormatsSupplier())
+ if _xFormatObject.getPropertySetInfo().hasPropertyByName(
+ "NumberFormat"):
+ _xFormatObject.setPropertyValue("NumberFormat", NewFormatKey)
+ elif _xFormatObject.getPropertySetInfo().hasPropertyByName(
+ "FormatKey"):
+ _xFormatObject.setPropertyValue("FormatKey", NewFormatKey)
+ else:
+ # TODO: throws a exception in a try catch environment, very helpful?
+ raise Exception
+
+ except Exception, exception:
+ traceback.print_exc()
+
+ def getNullDateCorrection(self):
+ if not self.bNullDateCorrectionIsDefined:
+ dNullDate = Helper.getUnoStructValue(
+ self.xNumberFormatSettings, "NullDate")
+ lNullDate = Helper.convertUnoDatetoInteger(dNullDate)
+ oCal = java.util.Calendar.getInstance()
+ oCal.set(1900, 1, 1)
+ dTime = oCal.getTime()
+ lTime = dTime.getTime()
+ lDBNullDate = lTime / (3600 * 24000)
+ self.lDateCorrection = lDBNullDate - lNullDate
+ return self.lDateCorrection
+ else:
+ return self.lDateCorrection
+
+ def setBooleanReportDisplayNumberFormat(self):
+ FormatString = "[=1]" + str(9745) + ";[=0]" + str(58480) + ";0"
+ self.iLogicalFormatKey = self.xNumberFormats.queryKey(
+ FormatString, self.aLocale, True)
+ try:
+ if self.iLogicalFormatKey == -1:
+ self.iLogicalFormatKey = self.xNumberFormats.addNew(
+ FormatString, self.aLocale)
+
+ except Exception, e:
+ #MalformedNumberFormat
+ traceback.print_exc()
+ self.iLogicalFormatKey = self.xNumberFormats.getStandardFormat(
+ NumberFormat.LOGICAL, self.aLocale)
+
+ return self.iLogicalFormatKey
+
+ '''
+ @return Returns the iDateFormatKey.
+ '''
+
+ def getDateFormatKey(self):
+ if self.iDateFormatKey == -1:
+ self.iDateFormatKey = self.xNumberFormats.getStandardFormat(
+ NumberFormat.DATE, self.aLocale)
+
+ return self.iDateFormatKey
+
+ '''
+ @return Returns the iDateTimeFormatKey.
+ '''
+
+ def getDateTimeFormatKey(self):
+ if self.iDateTimeFormatKey == -1:
+ self.iDateTimeFormatKey = self.xNumberFormats.getStandardFormat(
+ NumberFormat.DATETIME, self.aLocale)
+
+ return self.iDateTimeFormatKey
+
+ '''
+ @return Returns the iLogicalFormatKey.
+ '''
+
+ def getLogicalFormatKey(self):
+ if self.iLogicalFormatKey == -1:
+ self.iLogicalFormatKey = self.xNumberFormats.getStandardFormat(
+ NumberFormat.LOGICAL, self.aLocale)
+
+ return self.iLogicalFormatKey
+
+ '''
+ @return Returns the iNumberFormatKey.
+ '''
+
+ def getNumberFormatKey(self):
+ if self.iNumberFormatKey == -1:
+ self.iNumberFormatKey = self.xNumberFormats.getStandardFormat(
+ NumberFormat.NUMBER, self.aLocale)
+
+ return self.iNumberFormatKey
+
+ '''
+ @return Returns the iTextFormatKey.
+ '''
+
+ def getTextFormatKey(self):
+ if self.iTextFormatKey == -1:
+ self.iTextFormatKey = self.xNumberFormats.getStandardFormat(
+ NumberFormat.TEXT, self.aLocale)
+
+ return self.iTextFormatKey
+
+ '''
+ @return Returns the iTimeFormatKey.
+ '''
+
+ def getTimeFormatKey(self):
+ if self.iTimeFormatKey == -1:
+ self.iTimeFormatKey = self.xNumberFormats.getStandardFormat(
+ NumberFormat.TIME, self.aLocale)
+
+ return self.iTimeFormatKey
diff --git a/wizards/com/sun/star/wizards/common/PropertyNames.py b/wizards/com/sun/star/wizards/common/PropertyNames.py
new file mode 100644
index 000000000000..c1dde18522f3
--- /dev/null
+++ b/wizards/com/sun/star/wizards/common/PropertyNames.py
@@ -0,0 +1,15 @@
+class PropertyNames:
+ PROPERTY_ENABLED = "Enabled"
+ PROPERTY_HEIGHT = "Height"
+ PROPERTY_HELPURL = "HelpURL"
+ PROPERTY_POSITION_X = "PositionX"
+ PROPERTY_POSITION_Y = "PositionY"
+ PROPERTY_LABEL = "Label"
+ PROPERTY_MULTILINE = "MultiLine"
+ PROPERTY_NAME = "Name"
+ PROPERTY_STEP = "Step"
+ PROPERTY_WIDTH = "Width"
+ PROPERTY_TABINDEX = "TabIndex"
+ PROPERTY_STATE = "State"
+ PROPERTY_IMAGEURL = "ImageURL"
+
diff --git a/wizards/com/sun/star/wizards/common/PropertySetHelper.py b/wizards/com/sun/star/wizards/common/PropertySetHelper.py
new file mode 100644
index 000000000000..2fce42abce53
--- /dev/null
+++ b/wizards/com/sun/star/wizards/common/PropertySetHelper.py
@@ -0,0 +1,250 @@
+from DebugHelper import *
+
+class PropertySetHelper(object):
+
+ @classmethod
+ def __init__(self, _aObj):
+ if not _aObj:
+ return
+
+ self.m_xPropertySet = _aObj
+
+ def getHashMap(self):
+ if self.m_aHashMap == None:
+ self.m_aHashMap = HashMap < String, Object >.Object()
+
+ return self.m_aHashMap
+
+ '''
+ set a property, don't throw any exceptions,
+ they will only write down as a hint in the helper debug output
+ @param _sName name of the property to set
+ @param _aValue property value as object
+ '''
+
+ def setPropertyValueDontThrow(self, _sName, _aValue):
+ try:
+ setPropertyValue(_sName, _aValue)
+ except Exception, e:
+ DebugHelper.writeInfo(
+ "Don't throw the exception with property name(" \
+ + _sName + " ) : " + e.getMessage())
+
+ '''
+ set a property,
+ @param _sName name of the property to set
+ @param _aValue property value as object
+ @throws java.lang.Exception
+ '''
+
+ def setPropertyValue(self, _sName, _aValue):
+ if self.m_xPropertySet != None:
+ try:
+ self.m_xPropertySet.setPropertyValue(_sName, _aValue)
+ except com.sun.star.beans.UnknownPropertyException, e:
+ DebugHelper.writeInfo(e.getMessage())
+ DebugHelper.exception(e)
+ except com.sun.star.beans.PropertyVetoException, e:
+ DebugHelper.writeInfo(e.getMessage())
+ DebugHelper.exception(e)
+ except ValueError, e:
+ DebugHelper.writeInfo(e.getMessage())
+ DebugHelper.exception(e)
+ except com.sun.star.lang.WrappedTargetException, e:
+ DebugHelper.writeInfo(e.getMessage())
+ DebugHelper.exception(e)
+
+ else:
+ getHashMap().put(_sName, _aValue)
+
+ '''
+ get a property and convert it to a int value
+ @param _sName the string name of the property
+ @param _nDefault if an error occur, return this value
+ @return the int value of the property
+ '''
+
+ def getPropertyValueAsInteger(self, _sName, _nDefault):
+ aObject = None
+ nValue = _nDefault
+ if self.m_xPropertySet != None:
+ try:
+ aObject = self.m_xPropertySet.getPropertyValue(_sName)
+ except com.sun.star.beans.UnknownPropertyException, e:
+ DebugHelper.writeInfo(e.getMessage())
+ except com.sun.star.lang.WrappedTargetException, e:
+ DebugHelper.writeInfo(e.getMessage())
+
+ if aObject != None:
+ try:
+ nValue = NumericalHelper.toInt(aObject)
+ except ValueError, e:
+ DebugHelper.writeInfo(
+ "can't convert a object to integer.")
+
+ return nValue
+
+ '''
+ get a property and convert it to a short value
+ @param _sName the string name of the property
+ @param _nDefault if an error occur, return this value
+ @return the int value of the property
+ '''
+
+ def getPropertyValueAsShort(self, _sName, _nDefault):
+ aObject = None
+ nValue = _nDefault
+ if self.m_xPropertySet != None:
+ try:
+ aObject = self.m_xPropertySet.getPropertyValue(_sName)
+ except com.sun.star.beans.UnknownPropertyException, e:
+ DebugHelper.writeInfo(e.getMessage())
+ except com.sun.star.lang.WrappedTargetException, e:
+ DebugHelper.writeInfo(e.getMessage())
+
+ if aObject != None:
+ try:
+ nValue = NumericalHelper.toShort(aObject)
+ except ValueError, e:
+ DebugHelper.writeInfo("can't convert a object to short.")
+
+ return nValue
+
+ '''
+ get a property and convert it to a double value
+ @param _sName the string name of the property
+ @param _nDefault if an error occur, return this value
+ @return the int value of the property
+ '''
+
+ def getPropertyValueAsDouble(self, _sName, _nDefault):
+ aObject = None
+ nValue = _nDefault
+ if self.m_xPropertySet != None:
+ try:
+ aObject = self.m_xPropertySet.getPropertyValue(_sName)
+ except com.sun.star.beans.UnknownPropertyException, e:
+ DebugHelper.writeInfo(e.getMessage())
+ except com.sun.star.lang.WrappedTargetException, e:
+ DebugHelper.writeInfo(e.getMessage())
+
+ if aObject == None:
+ if getHashMap().containsKey(_sName):
+ aObject = getHashMap().get(_sName)
+
+ if aObject != None:
+ try:
+ nValue = NumericalHelper.toDouble(aObject)
+ except ValueError, e:
+ DebugHelper.writeInfo("can't convert a object to integer.")
+
+ return nValue
+
+ '''
+ get a property and convert it to a boolean value
+ @param _sName the string name of the property
+ @param _bDefault if an error occur, return this value
+ @return the boolean value of the property
+ '''
+
+ def getPropertyValueAsBoolean(self, _sName, _bDefault):
+ aObject = None
+ bValue = _bDefault
+ if self.m_xPropertySet != None:
+ try:
+ aObject = self.m_xPropertySet.getPropertyValue(_sName)
+ except com.sun.star.beans.UnknownPropertyException, e:
+ DebugHelper.writeInfo(e.getMessage())
+ DebugHelper.writeInfo(
+ "UnknownPropertyException caught: Name:=" + _sName)
+ except com.sun.star.lang.WrappedTargetException, e:
+ DebugHelper.writeInfo(e.getMessage())
+
+ if aObject != None:
+ try:
+ bValue = NumericalHelper.toBoolean(aObject)
+ except ValueError, e:
+ DebugHelper.writeInfo("can't convert a object to boolean.")
+
+ return bValue
+
+ '''
+ get a property and convert it to a string value
+ @param _sName the string name of the property
+ @param _sDefault if an error occur, return this value
+ @return the string value of the property
+ '''
+
+ def getPropertyValueAsString(self, _sName, _sDefault):
+ aObject = None
+ sValue = _sDefault
+ if self.m_xPropertySet != None:
+ try:
+ aObject = self.m_xPropertySet.getPropertyValue(_sName)
+ except com.sun.star.beans.UnknownPropertyException, e:
+ DebugHelper.writeInfo(e.getMessage())
+ except com.sun.star.lang.WrappedTargetException, e:
+ DebugHelper.writeInfo(e.getMessage())
+
+ if aObject != None:
+ try:
+ sValue = AnyConverter.toString(aObject)
+ except ValueError, e:
+ DebugHelper.writeInfo("can't convert a object to string.")
+
+ return sValue
+
+ '''
+ get a property and don't convert it
+ @param _sName the string name of the property
+ @return the object value of the property without any conversion
+ '''
+
+ def getPropertyValueAsObject(self, _sName):
+ aObject = None
+ if self.m_xPropertySet != None:
+ try:
+ aObject = self.m_xPropertySet.getPropertyValue(_sName)
+ except com.sun.star.beans.UnknownPropertyException, e:
+ DebugHelper.writeInfo(e.getMessage())
+ except com.sun.star.lang.WrappedTargetException, e:
+ DebugHelper.writeInfo(e.getMessage())
+
+ return aObject
+
+ '''
+ Debug helper, to show all properties
+ which are available in the given object.
+ @param _xObj the object of which the properties should shown
+ '''
+
+ @classmethod
+ def showProperties(self, _xObj):
+ aHelper = PropertySetHelper.PropertySetHelper_unknown(_xObj)
+ aHelper.showProperties()
+
+ '''
+ Debug helper, to show all properties which are available
+ in the current object.
+ '''
+
+ def showProperties(self):
+ sName = ""
+ if self.m_xPropertySet != None:
+ XServiceInfo xServiceInfo = (XServiceInfo)
+ UnoRuntime.queryInterface(XServiceInfo.class, self.m_xPropertySet)
+ if xServiceInfo != None:
+ sName = xServiceInfo.getImplementationName()
+
+ xInfo = self.m_xPropertySet.getPropertySetInfo()
+ aAllProperties = xInfo.getProperties()
+ DebugHelper.writeInfo(
+ "Show all properties of Implementation of :'" + sName + "'")
+ i = 0
+ while i < aAllProperties.length:
+ DebugHelper.writeInfo(" - " + aAllProperties[i].Name)
+ i += 1
+ else:
+ DebugHelper.writeInfo(
+ "The given object don't support XPropertySet interface.")
+
diff --git a/wizards/com/sun/star/wizards/common/Resource.java b/wizards/com/sun/star/wizards/common/Resource.java
index 8e93e68e6b54..c7eb3e483db7 100644
--- a/wizards/com/sun/star/wizards/common/Resource.java
+++ b/wizards/com/sun/star/wizards/common/Resource.java
@@ -27,46 +27,75 @@
package com.sun.star.wizards.common;
+import com.sun.star.beans.PropertyValue;
+import com.sun.star.container.XIndexAccess;
+import com.sun.star.container.XNameAccess;
import com.sun.star.lang.IllegalArgumentException;
import com.sun.star.lang.XMultiServiceFactory;
import com.sun.star.script.XInvocation;
import com.sun.star.beans.PropertyValue;
+import com.sun.star.uno.XInterface;
+import com.sun.star.uno.UnoRuntime;
public class Resource
{
- XInvocation xInvocation;
XMultiServiceFactory xMSF;
- String Unit;
String Module;
+ XIndexAccess xStringIndexAccess;
+ XIndexAccess xStringListIndexAccess;
/** Creates a new instance of Resource
* @param _xMSF
* @param _Unit
* @param _Module
*/
- public Resource(XMultiServiceFactory _xMSF, String _Unit, String _Module)
+ public Resource(XMultiServiceFactory _xMSF, String _Unit /* unused */, String _Module)
{
this.xMSF = _xMSF;
- this.Unit = _Unit;
this.Module = _Module;
- this.xInvocation = initResources();
+ try
+ {
+ Object[] aArgs = new Object[1];
+ aArgs[0] = this.Module;
+ XInterface xResource = (XInterface) xMSF.createInstanceWithArguments(
+ "org.libreoffice.resource.ResourceIndexAccess",
+ aArgs);
+ if (xResource == null)
+ throw new Exception("could not initialize ResourceIndexAccess");
+ XNameAccess xNameAccess = (XNameAccess)UnoRuntime.queryInterface(
+ XNameAccess.class,
+ xResource);
+ if (xNameAccess == null)
+ throw new Exception("ResourceIndexAccess is no XNameAccess");
+ this.xStringIndexAccess = (XIndexAccess)UnoRuntime.queryInterface(
+ XIndexAccess.class,
+ xNameAccess.getByName("String"));
+ this.xStringListIndexAccess = (XIndexAccess)UnoRuntime.queryInterface(
+ XIndexAccess.class,
+ xNameAccess.getByName("StringList"));
+ if(this.xStringListIndexAccess == null)
+ throw new Exception("could not initialize xStringListIndexAccess");
+ if(this.xStringIndexAccess == null)
+ throw new Exception("could not initialize xStringIndexAccess");
+ }
+ catch (Exception exception)
+ {
+ exception.printStackTrace();
+ showCommonResourceError(xMSF);
+ }
}
public String getResText(int nID)
{
try
{
- short[][] PointerArray = new short[1][];
- Object[][] DummyArray = new Object[1][];
- Object[] nIDArray = new Object[1];
- nIDArray[0] = new Integer(nID);
- return (String) xInvocation.invoke("getString", nIDArray, PointerArray, DummyArray);
+ return (String)this.xStringIndexAccess.getByIndex(nID);
}
catch (Exception exception)
{
exception.printStackTrace();
- throw new java.lang.IllegalArgumentException("Resource with ID not" + String.valueOf(nID) + "not found");
+ throw new java.lang.IllegalArgumentException("Resource with ID not " + String.valueOf(nID) + "not found");
}
}
@@ -74,17 +103,12 @@ public class Resource
{
try
{
- short[][] PointerArray = new short[1][];
- Object[][] DummyArray = new Object[1][];
- Object[] nIDArray = new Object[1];
- nIDArray[0] = new Integer(nID);
- //Object bla = xInvocation.invoke("getStringList", nIDArray, PointerArray, DummyArray);
- return (PropertyValue[]) xInvocation.invoke("getStringList", nIDArray, PointerArray, DummyArray);
+ return (PropertyValue[])this.xStringListIndexAccess.getByIndex(nID);
}
catch (Exception exception)
{
exception.printStackTrace();
- throw new java.lang.IllegalArgumentException("Resource with ID not" + String.valueOf(nID) + "not found");
+ throw new java.lang.IllegalArgumentException("Resource with ID not " + String.valueOf(nID) + "not found");
}
}
@@ -106,31 +130,6 @@ public class Resource
}
}
- public XInvocation initResources()
- {
- try
- {
- com.sun.star.uno.XInterface xResource = (com.sun.star.uno.XInterface) xMSF.createInstance("com.sun.star.resource.VclStringResourceLoader");
- if (xResource == null)
- {
- showCommonResourceError(xMSF);
- throw new IllegalArgumentException();
- }
- else
- {
- XInvocation xResInvoke = com.sun.star.uno.UnoRuntime.queryInterface(XInvocation.class, xResource);
- xResInvoke.setValue("FileName", Module);
- return xResInvoke;
- }
- }
- catch (Exception exception)
- {
- exception.printStackTrace(System.out);
- showCommonResourceError(xMSF);
- return null;
- }
- }
-
public static void showCommonResourceError(XMultiServiceFactory xMSF)
{
String ProductName = Configuration.getProductName(xMSF);
diff --git a/wizards/com/sun/star/wizards/common/Resource.java.orig b/wizards/com/sun/star/wizards/common/Resource.java.orig
new file mode 100644
index 000000000000..c7eb3e483db7
--- /dev/null
+++ b/wizards/com/sun/star/wizards/common/Resource.java.orig
@@ -0,0 +1,140 @@
+/*************************************************************************
+ *
+ * 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.wizards.common;
+
+import com.sun.star.beans.PropertyValue;
+import com.sun.star.container.XIndexAccess;
+import com.sun.star.container.XNameAccess;
+import com.sun.star.lang.IllegalArgumentException;
+import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.script.XInvocation;
+import com.sun.star.beans.PropertyValue;
+import com.sun.star.uno.XInterface;
+import com.sun.star.uno.UnoRuntime;
+
+public class Resource
+{
+
+ XMultiServiceFactory xMSF;
+ String Module;
+ XIndexAccess xStringIndexAccess;
+ XIndexAccess xStringListIndexAccess;
+
+ /** Creates a new instance of Resource
+ * @param _xMSF
+ * @param _Unit
+ * @param _Module
+ */
+ public Resource(XMultiServiceFactory _xMSF, String _Unit /* unused */, String _Module)
+ {
+ this.xMSF = _xMSF;
+ this.Module = _Module;
+ try
+ {
+ Object[] aArgs = new Object[1];
+ aArgs[0] = this.Module;
+ XInterface xResource = (XInterface) xMSF.createInstanceWithArguments(
+ "org.libreoffice.resource.ResourceIndexAccess",
+ aArgs);
+ if (xResource == null)
+ throw new Exception("could not initialize ResourceIndexAccess");
+ XNameAccess xNameAccess = (XNameAccess)UnoRuntime.queryInterface(
+ XNameAccess.class,
+ xResource);
+ if (xNameAccess == null)
+ throw new Exception("ResourceIndexAccess is no XNameAccess");
+ this.xStringIndexAccess = (XIndexAccess)UnoRuntime.queryInterface(
+ XIndexAccess.class,
+ xNameAccess.getByName("String"));
+ this.xStringListIndexAccess = (XIndexAccess)UnoRuntime.queryInterface(
+ XIndexAccess.class,
+ xNameAccess.getByName("StringList"));
+ if(this.xStringListIndexAccess == null)
+ throw new Exception("could not initialize xStringListIndexAccess");
+ if(this.xStringIndexAccess == null)
+ throw new Exception("could not initialize xStringIndexAccess");
+ }
+ catch (Exception exception)
+ {
+ exception.printStackTrace();
+ showCommonResourceError(xMSF);
+ }
+ }
+
+ public String getResText(int nID)
+ {
+ try
+ {
+ return (String)this.xStringIndexAccess.getByIndex(nID);
+ }
+ catch (Exception exception)
+ {
+ exception.printStackTrace();
+ throw new java.lang.IllegalArgumentException("Resource with ID not " + String.valueOf(nID) + "not found");
+ }
+ }
+
+ public PropertyValue[] getStringList(int nID)
+ {
+ try
+ {
+ return (PropertyValue[])this.xStringListIndexAccess.getByIndex(nID);
+ }
+ catch (Exception exception)
+ {
+ exception.printStackTrace();
+ throw new java.lang.IllegalArgumentException("Resource with ID not " + String.valueOf(nID) + "not found");
+ }
+ }
+
+ public String[] getResArray(int nID, int iCount)
+ {
+ try
+ {
+ String[] ResArray = new String[iCount];
+ for (int i = 0; i < iCount; i++)
+ {
+ ResArray[i] = getResText(nID + i);
+ }
+ return ResArray;
+ }
+ catch (Exception exception)
+ {
+ exception.printStackTrace(System.out);
+ throw new java.lang.IllegalArgumentException("Resource with ID not" + String.valueOf(nID) + "not found");
+ }
+ }
+
+ public static void showCommonResourceError(XMultiServiceFactory xMSF)
+ {
+ String ProductName = Configuration.getProductName(xMSF);
+ String sError = "The files required could not be found.\nPlease start the %PRODUCTNAME Setup and choose 'Repair'.";
+ sError = JavaTools.replaceSubString(sError, ProductName, "%PRODUCTNAME");
+ SystemDialog.showMessageBox(xMSF, "ErrorBox", com.sun.star.awt.VclWindowPeerAttribute.OK, sError);
+ }
+}
diff --git a/wizards/com/sun/star/wizards/common/Resource.py b/wizards/com/sun/star/wizards/common/Resource.py
new file mode 100644
index 000000000000..c6afce217d9e
--- /dev/null
+++ b/wizards/com/sun/star/wizards/common/Resource.py
@@ -0,0 +1,70 @@
+from com.sun.star.awt.VclWindowPeerAttribute import OK
+from Configuration import Configuration
+from SystemDialog import SystemDialog
+import traceback
+
+class Resource(object):
+ '''
+ Creates a new instance of Resource
+ @param _xMSF
+ @param _Unit
+ @param _Module
+ '''
+
+ @classmethod
+ def __init__(self, _xMSF, _Module):
+ self.xMSF = _xMSF
+ self.Module = _Module
+ try:
+ xResource = self.xMSF.createInstanceWithArguments(
+ "org.libreoffice.resource.ResourceIndexAccess", (self.Module,))
+ if xResource is None:
+ raise Exception ("could not initialize ResourceIndexAccess")
+
+ self.xStringIndexAccess = xResource.getByName("String")
+ self.xStringListIndexAccess = xResource.getByName("StringList")
+
+ if self.xStringListIndexAccess is None:
+ raise Exception ("could not initialize xStringListIndexAccess")
+
+ if self.xStringIndexAccess is None:
+ raise Exception ("could not initialize xStringIndexAccess")
+
+ except Exception, exception:
+ traceback.print_exc()
+ self.showCommonResourceError(self.xMSF)
+
+ def getResText(self, nID):
+ try:
+ return self.xStringIndexAccess.getByIndex(nID)
+ except Exception, exception:
+ traceback.print_exc()
+ raise ValueError("Resource with ID not " + str(nID) + " not found")
+
+ def getStringList(self, nID):
+ try:
+ return self.xStringListIndexAccess.getByIndex(nID)
+ except Exception, exception:
+ traceback.print_exc()
+ raise ValueError("Resource with ID not " + str(nID) + " not found")
+
+ def getResArray(self, nID, iCount):
+ try:
+ ResArray = range(iCount)
+ i = 0
+ while i < iCount:
+ ResArray[i] = getResText(nID + i)
+ i += 1
+ return ResArray
+ except Exception, exception:
+ traceback.print_exc()
+ raise ValueError("Resource with ID not" + str(nID) + " not found")
+
+ @classmethod
+ def showCommonResourceError(self, xMSF):
+ ProductName = Configuration.getProductName(xMSF)
+ sError = "The files required could not be found.\n" + \
+ "Please start the %PRODUCTNAME Setup and choose 'Repair'."
+ sError = sError.replace("%PRODUCTNAME", ProductName)
+ SystemDialog.showMessageBox(xMSF, "ErrorBox", OK, sError)
+
diff --git a/wizards/com/sun/star/wizards/common/SystemDialog.py b/wizards/com/sun/star/wizards/common/SystemDialog.py
new file mode 100644
index 000000000000..d0e8400b7c97
--- /dev/null
+++ b/wizards/com/sun/star/wizards/common/SystemDialog.py
@@ -0,0 +1,236 @@
+import uno
+import traceback
+from Configuration import Configuration
+
+from Desktop import Desktop
+from Helper import Helper
+
+from com.sun.star.ui.dialogs.TemplateDescription import FILESAVE_AUTOEXTENSION, FILEOPEN_SIMPLE
+from com.sun.star.ui.dialogs.ExtendedFilePickerElementIds import CHECKBOX_AUTOEXTENSION
+from com.sun.star.awt import WindowDescriptor
+from com.sun.star.awt.WindowClass import MODALTOP
+from com.sun.star.lang import IllegalArgumentException
+from com.sun.star.awt.VclWindowPeerAttribute import OK
+
+class SystemDialog(object):
+
+ '''
+ @param xMSF
+ @param ServiceName
+ @param type according to com.sun.star.ui.dialogs.TemplateDescription
+ '''
+
+ def __init__(self, xMSF, ServiceName, Type):
+ try:
+ self.xMSF = xMSF
+ self.systemDialog = xMSF.createInstance(ServiceName)
+ self.xStringSubstitution = self.createStringSubstitution(xMSF)
+ if self.systemDialog != None:
+ self.systemDialog.initialize(Type)
+
+ except Exception, exception:
+ traceback.print_exc()
+
+ @classmethod
+ def createStoreDialog(self, xmsf):
+ return SystemDialog(
+ xmsf, "com.sun.star.ui.dialogs.FilePicker",FILESAVE_AUTOEXTENSION)
+
+ @classmethod
+ def createOpenDialog(self, xmsf):
+ return SystemDialog(
+ xmsf, "com.sun.star.ui.dialogs.FilePicker", FILEOPEN_SIMPLE)
+
+ @classmethod
+ def createFolderDialog(self, xmsf):
+ return SystemDialog(
+ xmsf, "com.sun.star.ui.dialogs.FolderPicker", 0)
+
+ @classmethod
+ def createOfficeFolderDialog(self, xmsf):
+ return SystemDialog(
+ xmsf, "com.sun.star.ui.dialogs.OfficeFolderPicker", 0)
+
+ def subst(self, path):
+ try:
+ s = self.xStringSubstitution.substituteVariables(path, False)
+ return s
+ except Exception, ex:
+ traceback.print_exc()
+ return path
+
+ '''
+ @param displayDir
+ @param defaultName
+ given url to a local path.
+ @return
+ '''
+
+ def callStoreDialog(self, displayDir, defaultName, sDocuType=None):
+ if sDocuType is not None:
+ self.addFilterToDialog(defaultName[-3:], sDocuType, True)
+
+ self.sStorePath = None
+ try:
+ self.systemDialog.setValue(CHECKBOX_AUTOEXTENSION, 0, True)
+ self.systemDialog.setDefaultName(defaultName)
+ self.systemDialog.setDisplayDirectory(self.subst(displayDir))
+ if self.execute(self.systemDialog):
+ sPathList = self.systemDialog.getFiles()
+ self.sStorePath = sPathList[0]
+
+ except Exception, exception:
+ traceback.print_exc()
+
+ return self.sStorePath
+
+ def callFolderDialog(self, title, description, displayDir):
+ try:
+ self.systemDialog.setDisplayDirectoryxPropertyValue(
+ subst(displayDir))
+ except IllegalArgumentException, iae:
+ traceback.print_exc()
+ raise AttributeError(iae.getMessage());
+
+ self.systemDialog.setTitle(title)
+ self.systemDialog.setDescription(description)
+ if self.execute(self.systemDialog):
+ return self.systemDialog.getDirectory()
+ else:
+ return None
+
+ def execute(self, execDialog):
+ return execDialog.execute() == 1
+
+ def callOpenDialog(self, multiSelect, displayDirectory):
+ try:
+ self.systemDialog.setMultiSelectionMode(multiSelect)
+ self.systemDialog.setDisplayDirectory(subst(displayDirectory))
+ if self.execute(self.systemDialog):
+ return self.systemDialog.getFiles()
+
+ except Exception, exception:
+ traceback.print_exc()
+
+ return None
+
+ def addFilterToDialog(self, sExtension, filterName, setToDefault):
+ try:
+ #get the localized filtername
+ uiName = self.getFilterUIName(filterName)
+ pattern = "*." + sExtension
+ #add the filter
+ self.addFilter(uiName, pattern, setToDefault)
+ except Exception, exception:
+ traceback.print_exc()
+
+ def addFilter(self, uiName, pattern, setToDefault):
+ try:
+ self.systemDialog.appendFilter(uiName, pattern)
+ if setToDefault:
+ self.systemDialog.setCurrentFilter(uiName)
+
+ except Exception, ex:
+ traceback.print_exc()
+
+ '''
+ converts the name returned from getFilterUIName_(...) so the
+ product name is correct.
+ @param filterName
+ @return
+ '''
+
+ def getFilterUIName(self, filterName):
+ prodName = Configuration.getProductName(self.xMSF)
+ s = [[self.getFilterUIName_(filterName)]]
+ s[0][0] = s[0][0].replace("%productname%", prodName)
+ return s[0][0]
+
+ '''
+ note the result should go through conversion of the product name.
+ @param filterName
+ @return the UI localized name of the given filter name.
+ '''
+
+ def getFilterUIName_(self, filterName):
+ try:
+ oFactory = self.xMSF.createInstance(
+ "com.sun.star.document.FilterFactory")
+ oObject = Helper.getUnoObjectbyName(oFactory, filterName)
+ xPropertyValue = list(oObject)
+ i = 0
+ while i < len(xPropertyValue):
+ aValue = xPropertyValue[i]
+ if aValue != None and aValue.Name == "UIName":
+ return str(aValue.Value)
+
+ i += 1
+ raise NullPointerException(
+ "UIName property not found for Filter " + filterName);
+ except Exception, exception:
+ traceback.print_exc()
+ return None
+
+ @classmethod
+ def showErrorBox(self, xMSF, ResName, ResPrefix,
+ ResID,AddTag=None, AddString=None):
+ ProductName = Configuration.getProductName(xMSF)
+ oResource = Resource(xMSF, ResPrefix)
+ sErrorMessage = oResource.getResText(ResID)
+ sErrorMessage = sErrorMessage.replace( ProductName, "%PRODUCTNAME")
+ sErrorMessage = sErrorMessage.replace(str(13), "<BR>")
+ if AddTag and AddString:
+ sErrorMessage = sErrorMessage.replace( AddString, AddTag)
+ return self.showMessageBox(xMSF, "ErrorBox", OK, sErrorMessage)
+
+ '''
+ example:
+ (xMSF, "ErrorBox", com.sun.star.awt.VclWindowPeerAttribute.OK, "message")
+
+ @param windowServiceName one of the following strings:
+ "ErrorBox", "WarningBox", "MessBox", "InfoBox", "QueryBox".
+ There are other values possible, look
+ under src/toolkit/source/awt/vcltoolkit.cxx
+ @param windowAttribute see com.sun.star.awt.VclWindowPeerAttribute
+ @return 0 = cancel, 1 = ok, 2 = yes, 3 = no(I'm not sure here)
+ other values check for yourself ;-)
+ '''
+ @classmethod
+ def showMessageBox(self, xMSF, windowServiceName, windowAttribute,
+ MessageText, peer=None):
+
+ if MessageText is None:
+ return 0
+
+ iMessage = 0
+ try:
+ # If the peer is null we try to get one from the desktop...
+ if peer is None:
+ xFrame = Desktop.getActiveFrame(xMSF)
+ peer = xFrame.getComponentWindow()
+
+ xToolkit = xMSF.createInstance("com.sun.star.awt.Toolkit")
+ oDescriptor = WindowDescriptor()
+ oDescriptor.WindowServiceName = windowServiceName
+ oDescriptor.Parent = peer
+ oDescriptor.Type = MODALTOP
+ oDescriptor.WindowAttributes = windowAttribute
+ xMsgPeer = xToolkit.createWindow(oDescriptor)
+ xMsgPeer.setMessageText(MessageText)
+ iMessage = xMsgPeer.execute()
+ xMsgPeer.dispose()
+ except Exception:
+ traceback.print_exc()
+
+ return iMessage
+
+ @classmethod
+ def createStringSubstitution(self, xMSF):
+ xPathSubst = None
+ try:
+ xPathSubst = xMSF.createInstance(
+ "com.sun.star.util.PathSubstitution")
+ return xPathSubst
+ except Exception, e:
+ traceback.print_exc()
+ return None
diff --git a/wizards/com/sun/star/wizards/common/__init__.py b/wizards/com/sun/star/wizards/common/__init__.py
new file mode 100644
index 000000000000..1e42b88e42ec
--- /dev/null
+++ b/wizards/com/sun/star/wizards/common/__init__.py
@@ -0,0 +1 @@
+"""Common"""
diff --git a/wizards/com/sun/star/wizards/common/prova.py b/wizards/com/sun/star/wizards/common/prova.py
new file mode 100644
index 000000000000..1219ba9aff7b
--- /dev/null
+++ b/wizards/com/sun/star/wizards/common/prova.py
@@ -0,0 +1,7 @@
+from PropertyNames import PropertyNames
+
+class prova:
+
+ def Imprimir(self):
+ print PropertyNames.PROPERTY_STEP
+
diff --git a/wizards/com/sun/star/wizards/document/OfficeDocument.py b/wizards/com/sun/star/wizards/document/OfficeDocument.py
new file mode 100644
index 000000000000..f053baebe703
--- /dev/null
+++ b/wizards/com/sun/star/wizards/document/OfficeDocument.py
@@ -0,0 +1,293 @@
+from com.sun.star.awt.WindowClass import TOP
+import traceback
+import uno
+from ui.event.CommonListener import TerminateListenerProcAdapter
+from common.Desktop import Desktop
+from com.sun.star.awt import WindowDescriptor
+from com.sun.star.awt import Rectangle
+import unohelper
+
+from com.sun.star.task import ErrorCodeIOException
+
+#Window Constants
+com_sun_star_awt_WindowAttribute_BORDER \
+ = uno.getConstantByName( "com.sun.star.awt.WindowAttribute.BORDER" )
+com_sun_star_awt_WindowAttribute_SIZEABLE \
+ = uno.getConstantByName( "com.sun.star.awt.WindowAttribute.SIZEABLE" )
+com_sun_star_awt_WindowAttribute_MOVEABLE \
+ = uno.getConstantByName( "com.sun.star.awt.WindowAttribute.MOVEABLE" )
+com_sun_star_awt_VclWindowPeerAttribute_CLIPCHILDREN \
+ = uno.getConstantByName(
+ "com.sun.star.awt.VclWindowPeerAttribute.CLIPCHILDREN" )
+
+class OfficeDocument(object):
+ '''Creates a new instance of OfficeDocument '''
+
+ def __init__(self, _xMSF):
+ self.xMSF = _xMSF
+
+ @classmethod
+ def attachEventCall(self, xComponent, EventName, EventType, EventURL):
+ try:
+ oEventProperties = range(2)
+ oEventProperties[0] = uno.createUnoStruct(
+ 'com.sun.star.beans.PropertyValue')
+ oEventProperties[0].Name = "EventType"
+ oEventProperties[0].Value = EventType
+ # "Service", "StarBasic"
+ oEventProperties[1] = uno.createUnoStruct(
+ 'com.sun.star.beans.PropertyValue')
+ oEventProperties[1].Name = "Script" #"URL";
+ oEventProperties[1].Value = EventURL
+ uno.invoke(xComponent.Events, "replaceByName",
+ (EventName, uno.Any("[]com.sun.star.beans.PropertyValue",
+ tuple(oEventProperties))))
+ except Exception, exception:
+ traceback.print_exc()
+
+ def dispose(self, xMSF, xComponent):
+ try:
+ if xComponent != None:
+ xFrame = xComponent.CurrentController.Frame
+ if xComponent.isModified():
+ xComponent.setModified(False)
+
+ Desktop.dispatchURL(xMSF, ".uno:CloseDoc", xFrame)
+
+ except PropertyVetoException, exception:
+ traceback.print_exc()
+
+ '''
+ Create a new office document, attached to the given frame.
+ @param desktop
+ @param frame
+ @param sDocumentType e.g. swriter, scalc, ( simpress, scalc : not tested)
+ @return the document Component
+ (implements XComponent) object ( XTextDocument, or XSpreadsheedDocument )
+ '''
+
+ def createNewDocument(self, frame, sDocumentType, preview, readonly):
+ loadValues = range(2)
+ loadValues[0] = uno.createUnoStruct(
+ 'com.sun.star.beans.PropertyValue')
+ loadValues[0].Name = "ReadOnly"
+ if readonly:
+ loadValues[0].Value = True
+ else:
+ loadValues[0].Value = False
+
+ loadValues[1] = uno.createUnoStruct(
+ 'com.sun.star.beans.PropertyValue')
+ loadValues[1].Name = "Preview"
+ if preview:
+ loadValues[1].Value = True
+ else:
+ loadValues[1].Value = False
+
+ sURL = "private:factory/" + sDocumentType
+ try:
+ xComponent = frame.loadComponentFromURL(
+ sURL, "_self", 0, loadValues)
+
+ except Exception, exception:
+ traceback.print_exc()
+
+ return xComponent
+
+ @classmethod
+ def createNewFrame(self, xMSF, listener, FrameName="_blank"):
+ xFrame = None
+ if FrameName.lower() == "WIZARD_LIVE_PREVIEW".lower():
+ xFrame = self.createNewPreviewFrame(xMSF, listener)
+ else:
+ xF = Desktop.getDesktop(xMSF)
+ xFrame = xF.findFrame(FrameName, 0)
+ if listener is not None:
+ xFF = xF.getFrames()
+ xFF.remove(xFrame)
+ xF.addTerminateListener(TerminateListenerProcAdapter(listener))
+
+ return xFrame
+
+ @classmethod
+ def createNewPreviewFrame(self, xMSF, listener):
+ xToolkit = None
+ try:
+ xToolkit = xMSF.createInstance("com.sun.star.awt.Toolkit")
+ except Exception, e:
+ # TODO Auto-generated catch block
+ traceback.print_exc()
+
+ #describe the window and its properties
+ aDescriptor = WindowDescriptor()
+ aDescriptor.Type = TOP
+ aDescriptor.WindowServiceName = "window"
+ aDescriptor.ParentIndex = -1
+ aDescriptor.Parent = None
+ aDescriptor.Bounds = Rectangle(10, 10, 640, 480)
+
+ #Set Window Attributes
+ gnDefaultWindowAttributes = \
+ com_sun_star_awt_WindowAttribute_BORDER + \
+ com_sun_star_awt_WindowAttribute_MOVEABLE + \
+ com_sun_star_awt_WindowAttribute_SIZEABLE + \
+ com_sun_star_awt_VclWindowPeerAttribute_CLIPCHILDREN
+
+ aDescriptor.WindowAttributes = gnDefaultWindowAttributes
+ #create a new blank container window
+ xPeer = None
+ try:
+ xPeer = xToolkit.createWindow(aDescriptor)
+ except IllegalArgumentException, e:
+ # TODO Auto-generated catch block
+ traceback.print_exc()
+
+ #define some further properties of the frame window
+ #if it's needed .-)
+ #xPeer->setBackground(...);
+ #create new empty frame and set window on it
+ xFrame = None
+ try:
+ xFrame = xMSF.createInstance("com.sun.star.frame.Frame")
+ except Exception, e:
+ # TODO Auto-generated catch block
+ traceback.print_exc()
+
+ xFrame.initialize(xPeer)
+ #from now this frame is useable ...
+ #and not part of the desktop tree.
+ #You are alone with him .-)
+ if listener is not None:
+ Desktop.getDesktop(xMSF).addTerminateListener(
+ TerminateListenerProcAdapter(listener))
+
+ return xFrame
+
+ @classmethod
+ def load(self, xInterface, sURL, sFrame, xValues):
+ xComponent = None
+ try:
+ xComponent = xInterface.loadComponentFromURL(
+ sURL, sFrame, 0, tuple(xValues))
+ except Exception, exception:
+ traceback.print_exc()
+
+ return xComponent
+
+ @classmethod
+ def store(self, xMSF, xComponent, StorePath, FilterName):
+ try:
+ if len(FilterName):
+ oStoreProperties = range(2)
+ oStoreProperties[0] = uno.createUnoStruct(
+ 'com.sun.star.beans.PropertyValue')
+ oStoreProperties[0].Name = "FilterName"
+ oStoreProperties[0].Value = FilterName
+ oStoreProperties[1] = uno.createUnoStruct(
+ 'com.sun.star.beans.PropertyValue')
+ oStoreProperties[1].Name = "InteractionHandler"
+ oStoreProperties[1].Value = xMSF.createInstance(
+ "com.sun.star.comp.uui.UUIInteractionHandler")
+ else:
+ oStoreProperties = range(0)
+
+ if StorePath.startswith("file://"):
+ #Unix
+ StorePath = StorePath[7:]
+
+ sPath = StorePath[:(StorePath.rfind("/") + 1)]
+ sFile = StorePath[(StorePath.rfind("/") + 1):]
+ xComponent.storeToURL(
+ unohelper.absolutize(
+ unohelper.systemPathToFileUrl(sPath),
+ unohelper.systemPathToFileUrl(sFile)),
+ tuple(oStoreProperties))
+ return True
+ except ErrorCodeIOException:
+ return True
+ #There's a bug here, fix later
+ pass
+ except Exception, exception:
+ traceback.print_exc()
+ return False
+
+ def close(self, xComponent):
+ bState = False
+ if xComponent != None:
+ try:
+ xComponent.close(True)
+ bState = True
+ except com.sun.star.util.CloseVetoException, exCloseVeto:
+ print "could not close doc"
+ bState = False
+
+ else:
+ xComponent.dispose()
+ bState = True
+
+ return bState
+
+ def ArraytoCellRange(self, datalist, oTable, xpos, ypos):
+ try:
+ rowcount = datalist.length
+ if rowcount > 0:
+ colcount = datalist[0].length
+ if colcount > 0:
+ xNewRange = oTable.getCellRangeByPosition(
+ xpos, ypos, (colcount + xpos) - 1,
+ (rowcount + ypos) - 1)
+ xNewRange.setDataArray(datalist)
+
+ except Exception, e:
+ traceback.print_exc()
+
+ def getFileMediaDecriptor(self, xmsf, url):
+ typeDetect = xmsf.createInstance(
+ "com.sun.star.document.TypeDetection")
+ mediaDescr = range(1)
+ mediaDescr[0][0] = uno.createUnoStruct(
+ 'com.sun.star.beans.PropertyValue')
+ mediaDescr[0][0].Name = "URL"
+ mediaDescr[0][0].Value = url
+ Type = typeDetect.queryTypeByDescriptor(mediaDescr, True)
+ if Type.equals(""):
+ return None
+ else:
+ return typeDetect.getByName(type)
+
+ def getTypeMediaDescriptor(self, xmsf, type):
+ typeDetect = xmsf.createInstance(
+ "com.sun.star.document.TypeDetection")
+ return typeDetect.getByName(type)
+
+ '''
+ returns the count of slides in a presentation,
+ or the count of pages in a draw document.
+ @param model a presentation or a draw document
+ @return the number of slides/pages in the given document.
+ '''
+
+ def getSlideCount(self, model):
+ return model.getDrawPages().getCount()
+
+ def getDocumentProperties(self, document):
+ return document.getDocumentProperties()
+
+ def showMessageBox(
+ self, xMSF, windowServiceName, windowAttribute, MessageText):
+
+ return SystemDialog.showMessageBox(
+ xMSF, windowServiceName, windowAttribute, MessageText)
+
+ def getWindowPeer(self):
+ return self.xWindowPeer
+
+ '''
+ @param windowPeer The xWindowPeer to set.
+ Should be called as soon as a Windowpeer of a wizard dialog is available
+ The windowpeer is needed to call a Messagebox
+ '''
+
+ def setWindowPeer(self, windowPeer):
+ self.xWindowPeer = windowPeer
+
diff --git a/wizards/com/sun/star/wizards/document/__init__.py b/wizards/com/sun/star/wizards/document/__init__.py
new file mode 100644
index 000000000000..e69de29bb2d1
--- /dev/null
+++ b/wizards/com/sun/star/wizards/document/__init__.py
diff --git a/wizards/com/sun/star/wizards/fax/CGFax.py b/wizards/com/sun/star/wizards/fax/CGFax.py
new file mode 100644
index 000000000000..24b5ae067c7d
--- /dev/null
+++ b/wizards/com/sun/star/wizards/fax/CGFax.py
@@ -0,0 +1,31 @@
+from common.ConfigGroup import *
+
+class CGFax(ConfigGroup):
+
+ def __init__(self):
+
+ self.cp_Style = int()
+ self.cp_PrintCompanyLogo = bool()
+ self.cp_PrintDate = bool()
+ self.cp_PrintSubjectLine = bool()
+ self.cp_PrintSalutation = bool()
+ self.cp_PrintCommunicationType = bool()
+ self.cp_PrintGreeting = bool()
+ self.cp_PrintFooter = bool()
+ self.cp_CommunicationType = str()
+ self.cp_Salutation = str()
+ self.cp_Greeting = str()
+ self.cp_SenderAddressType = int()
+ self.cp_SenderCompanyName = str()
+ self.cp_SenderStreet = str()
+ self.cp_SenderPostCode = str()
+ self.cp_SenderState = str()
+ self.cp_SenderCity = str()
+ self.cp_SenderFax = str()
+ self.cp_ReceiverAddressType = int()
+ self.cp_Footer = str()
+ self.cp_FooterOnlySecondPage = bool()
+ self.cp_FooterPageNumbers = bool()
+ self.cp_CreationType = int()
+ self.cp_TemplateName = str()
+ self.cp_TemplatePath = str()
diff --git a/wizards/com/sun/star/wizards/fax/CGFaxWizard.py b/wizards/com/sun/star/wizards/fax/CGFaxWizard.py
new file mode 100644
index 000000000000..a6729e4a5486
--- /dev/null
+++ b/wizards/com/sun/star/wizards/fax/CGFaxWizard.py
@@ -0,0 +1,10 @@
+from common.ConfigGroup import *
+from CGFax import CGFax
+
+class CGFaxWizard(ConfigGroup):
+
+ def __init__(self):
+ self.cp_FaxType = int()
+ self.cp_BusinessFax = CGFax()
+ self.cp_PrivateFax = CGFax()
+
diff --git a/wizards/com/sun/star/wizards/fax/CallWizard.py b/wizards/com/sun/star/wizards/fax/CallWizard.py
new file mode 100644
index 000000000000..21414507e6c6
--- /dev/null
+++ b/wizards/com/sun/star/wizards/fax/CallWizard.py
@@ -0,0 +1,156 @@
+import traceback
+
+class CallWizard(object):
+
+ '''
+ Gives a factory for creating the service. This method is called by the
+ <code>JavaLoader</code>
+ <p></p>
+ @param stringImplementationName The implementation name of the component.
+ @param xMSF The service manager, who gives access to every known service.
+ @param xregistrykey Makes structural information (except regarding tree
+ structures) of a single registry key accessible.
+ @return Returns a <code>XSingleServiceFactory</code>
+ for creating the component.
+ @see com.sun.star.comp.loader.JavaLoader#
+ '''
+
+ @classmethod
+ def __getServiceFactory(self, stringImplementationName, xMSF, \
+ xregistrykey):
+
+ xsingleservicefactory = None
+ if stringImplementationName.equals(WizardImplementation.Name):
+ xsingleservicefactory = FactoryHelper.getServiceFactory( \
+ WizardImplementation, WizardImplementation.__serviceName,
+ xMSF, xregistrykey)
+
+ return xsingleservicefactory
+
+ '''
+ This class implements the component. At least the interfaces XServiceInfo,
+ XTypeProvider, and XInitialization should be provided by the service.
+ '''
+
+ class WizardImplementation:
+ __serviceName = "com.sun.star.wizards.fax.CallWizard"
+ #private XMultiServiceFactory xmultiservicefactory
+
+ '''
+ The constructor of the inner class has a XMultiServiceFactory
+ parameter.
+ @param xmultiservicefactoryInitialization A special service factory
+ could be introduced while initializing.
+ '''
+
+ @classmethod
+ def WizardImplementation_XMultiServiceFactory(self, \
+ xmultiservicefactoryInitialization):
+
+ tmp = WizardImplementation()
+ tmp.WizardImplementation_body_XMultiServiceFactory( \
+ xmultiservicefactoryInitialization)
+ return tmp
+
+ def WizardImplementation_body_XMultiServiceFactory(self, \
+ xmultiservicefactoryInitialization):
+
+ self.xmultiservicefactory = xmultiservicefactoryInitialization
+ if self.xmultiservicefactory != None:
+ pass
+
+ '''
+ Execute Wizard
+ @param str only valid parameter is 'start' at the moment.
+ '''
+
+ def trigger(self, str):
+ if str.equalsIgnoreCase("start"):
+ lw = FaxWizardDialogImpl(self.xmultiservicefactory)
+ if not FaxWizardDialogImpl.running:
+ lw.startWizard(self.xmultiservicefactory, None)
+
+ '''
+ The service name, that must be used to get an instance of this service
+ The service manager, that gives access to all registered services.
+ This method is a member of the interface for initializing an object
+ directly after its creation.
+ @param object This array of arbitrary objects will be passed to the
+ component after its creation.
+ @throws com.sun.star.uno.Exception Every exception will not be
+ handled, but will be passed to the caller.
+ '''
+
+ def initialize(self, object):
+ pass
+
+ '''
+ This method returns an array of all supported service names.
+ @return Array of supported service names.
+ '''
+
+ def getSupportedServiceNames(self):
+ stringSupportedServiceNames = range(1)
+ stringSupportedServiceNames[0] = self.__class__.__serviceName
+ return (stringSupportedServiceNames)
+
+ '''
+ This method returns true, if the given service will be supported by
+ the component.
+ @param stringService Service name.
+ @return True, if the given service name will be supported.
+ '''
+
+ def supportsService(self, stringService):
+ booleanSupportsService = False
+ if stringService.equals(self.__class__.__serviceName):
+ booleanSupportsService = True
+
+ return (booleanSupportsService)
+
+ '''
+ This method returns an array of bytes, that can be used to
+ unambiguously distinguish between two sets of types,
+ e.g. to realise hashing functionality when the object is introspected.
+ Two objects that return the same ID also have to return the same
+ set of types in getTypes(). If an unique implementation Id cannot be
+ provided this method has to return an empty sequence. Important:
+ If the object aggregates other objects the ID has to be unique for
+ the whole combination of objects.
+ @return Array of bytes, in order to distinguish between two sets.
+ '''
+
+ def getImplementationId(self):
+ byteReturn = []
+ try:
+ byteReturn = ("" + self.hashCode()).Bytes
+ except Exception, exception:
+ traceback.print_exc()
+
+ return (byteReturn)
+
+ '''
+ Return the class name of the component.
+ @return Class name of the component.
+ '''
+
+ def getImplementationName(self):
+ return (WizardImplementation.Name)
+
+ '''
+ Provides a sequence of all types (usually interface types) provided
+ by the object.
+ @return Sequence of all types (usually interface types) provided
+ by the service.
+ '''
+
+ def getTypes(self):
+ typeReturn = []
+ try:
+ #COMMENTED
+ #typeReturn = [new Type (XPropertyAccess.class), new Type (XJob.class), new Type (XJobExecutor.class), new Type (XTypeProvider.class), new Type (XServiceInfo.class), new Type (XInitialization.class)]
+ except Exception, exception:
+ traceback.print_exc()
+
+ return (typeReturn)
+
diff --git a/wizards/com/sun/star/wizards/fax/FaxDocument.py b/wizards/com/sun/star/wizards/fax/FaxDocument.py
new file mode 100644
index 000000000000..9ee53cd434d9
--- /dev/null
+++ b/wizards/com/sun/star/wizards/fax/FaxDocument.py
@@ -0,0 +1,131 @@
+from text.TextDocument import *
+from text.TextSectionHandler import TextSectionHandler
+from text.TextFieldHandler import TextFieldHandler
+from common.Configuration import Configuration
+from common.PropertyNames import PropertyNames
+
+from com.sun.star.text.ControlCharacter import PARAGRAPH_BREAK
+from com.sun.star.style.ParagraphAdjust import CENTER
+from com.sun.star.text.PageNumberType import CURRENT
+from com.sun.star.style.NumberingType import ARABIC
+
+class FaxDocument(TextDocument):
+
+ def __init__(self, xMSF, listener):
+ super(FaxDocument,self).__init__(xMSF, listener, None,
+ "WIZARD_LIVE_PREVIEW")
+ self.keepLogoFrame = True
+ self.keepTypeFrame = True
+
+ def switchElement(self, sElement, bState):
+ try:
+ mySectionHandler = TextSectionHandler(self.xMSF,
+ TextDocument.xTextDocument)
+ oSection = \
+ mySectionHandler.xTextDocument.TextSections.getByName(sElement)
+ Helper.setUnoPropertyValue(oSection,"IsVisible",bState)
+ except Exception:
+ traceback.print_exc()
+
+ def updateDateFields(self):
+ FH = TextFieldHandler(
+ TextDocument.xTextDocument, TextDocument.xTextDocument)
+ FH.updateDateFields()
+
+ def switchFooter(self, sPageStyle, bState, bPageNumber, sText):
+ if TextDocument.xTextDocument is not None:
+ TextDocument.xTextDocument.lockControllers()
+ try:
+ xPageStyleCollection = \
+ TextDocument.xTextDocument.StyleFamilies.getByName("PageStyles")
+ xPageStyle = xPageStyleCollection.getByName(sPageStyle)
+
+ if bState:
+ xPageStyle.setPropertyValue("FooterIsOn", True)
+ xFooterText = \
+ Helper.getUnoPropertyValue(xPageStyle, "FooterText")
+ xFooterText.String = sText
+
+ if bPageNumber:
+ #Adding the Page Number
+ myCursor = xFooterText.Text.createTextCursor()
+ myCursor.gotoEnd(False)
+ xFooterText.insertControlCharacter(myCursor,
+ PARAGRAPH_BREAK, False)
+ myCursor.setPropertyValue("ParaAdjust", CENTER )
+
+ xPageNumberField = \
+ TextDocument.xTextDocument.createInstance(
+ "com.sun.star.text.TextField.PageNumber")
+ xPageNumberField.setPropertyValue("SubType", CURRENT)
+ xPageNumberField.NumberingType = ARABIC
+ xFooterText.insertTextContent(xFooterText.End,
+ xPageNumberField, False)
+ else:
+ Helper.setUnoPropertyValue(xPageStyle, "FooterIsOn",
+ False)
+
+ TextDocument.xTextDocument.unlockControllers()
+ except Exception:
+ traceback.print_exc()
+
+ def hasElement(self, sElement):
+ if TextDocument.xTextDocument is not None:
+ mySectionHandler = TextSectionHandler(self.xMSF,
+ TextDocument.xTextDocument)
+ return mySectionHandler.hasTextSectionByName(sElement)
+ else:
+ return False
+
+ def switchUserField(self, sFieldName, sNewContent, bState):
+ myFieldHandler = TextFieldHandler(
+ self.xMSF, TextDocument.xTextDocument)
+ if bState:
+ myFieldHandler.changeUserFieldContent(sFieldName, sNewContent)
+ else:
+ myFieldHandler.changeUserFieldContent(sFieldName, "")
+
+ def fillSenderWithUserData(self):
+ try:
+ myFieldHandler = TextFieldHandler(TextDocument.xTextDocument,
+ TextDocument.xTextDocument)
+ oUserDataAccess = Configuration.getConfigurationRoot(
+ self.xMSF, "org.openoffice.UserProfile/Data", False)
+ myFieldHandler.changeUserFieldContent("Company",
+ Helper.getUnoObjectbyName(oUserDataAccess, "o"))
+ myFieldHandler.changeUserFieldContent("Street",
+ Helper.getUnoObjectbyName(oUserDataAccess, "street"))
+ myFieldHandler.changeUserFieldContent("PostCode",
+ Helper.getUnoObjectbyName(oUserDataAccess, "postalcode"))
+ myFieldHandler.changeUserFieldContent(
+ PropertyNames.PROPERTY_STATE,
+ Helper.getUnoObjectbyName(oUserDataAccess, "st"))
+ myFieldHandler.changeUserFieldContent("City",
+ Helper.getUnoObjectbyName(oUserDataAccess, "l"))
+ myFieldHandler.changeUserFieldContent("Fax",
+ Helper.getUnoObjectbyName(oUserDataAccess,
+ "facsimiletelephonenumber"))
+ except Exception:
+ traceback.print_exc()
+
+ def killEmptyUserFields(self):
+ myFieldHandler = TextFieldHandler(
+ self.xMSF, TextDocument.xTextDocument)
+ myFieldHandler.removeUserFieldByContent("")
+
+ def killEmptyFrames(self):
+ try:
+ if not self.keepLogoFrame:
+ xTF = self.getFrameByName("Company Logo",
+ TextDocument.xTextDocument)
+ if xTF is not None:
+ xTF.dispose()
+
+ if not self.keepTypeFrame:
+ xTF = self.getFrameByName("Communication Type",
+ TextDocument.xTextDocument)
+ if xTF is not None:
+ xTF.dispose()
+
+ except Exception:
+ traceback.print_exc()
diff --git a/wizards/com/sun/star/wizards/fax/FaxWizardDialog.py b/wizards/com/sun/star/wizards/fax/FaxWizardDialog.py
new file mode 100644
index 000000000000..9323215e1983
--- /dev/null
+++ b/wizards/com/sun/star/wizards/fax/FaxWizardDialog.py
@@ -0,0 +1,650 @@
+from ui.WizardDialog import *
+from FaxWizardDialogResources import FaxWizardDialogResources
+from FaxWizardDialogConst import *
+from com.sun.star.awt.FontUnderline import SINGLE
+
+class FaxWizardDialog(WizardDialog):
+ #Image Control
+ #Fixed Line
+ #File Control
+ #Image Control
+ #Font Descriptors as Class members.
+ #Resources Object
+
+ def __init__(self, xmsf):
+ super(FaxWizardDialog,self).__init__(xmsf, HIDMAIN )
+
+ #Load Resources
+ self.resources = FaxWizardDialogResources(xmsf)
+
+ #set dialog properties...
+ Helper.setUnoPropertyValues(self.xDialogModel,
+ ("Closeable", PropertyNames.PROPERTY_HEIGHT, "Moveable",
+ PropertyNames.PROPERTY_POSITION_X,
+ PropertyNames.PROPERTY_POSITION_Y,
+ PropertyNames.PROPERTY_STEP, PropertyNames.PROPERTY_TABINDEX,
+ "Title", PropertyNames.PROPERTY_WIDTH),
+ (True, 210, True, 104, 52, 1, 1,
+ self.resources.resFaxWizardDialog_title, 310))
+
+ self.fontDescriptor1 = \
+ uno.createUnoStruct('com.sun.star.awt.FontDescriptor')
+ self.fontDescriptor2 = \
+ uno.createUnoStruct('com.sun.star.awt.FontDescriptor')
+ self.fontDescriptor4 = \
+ uno.createUnoStruct('com.sun.star.awt.FontDescriptor')
+ self.fontDescriptor5 = \
+ uno.createUnoStruct('com.sun.star.awt.FontDescriptor')
+ #Set member- FontDescriptors...
+ self.fontDescriptor1.Weight = 150
+ self.fontDescriptor1.Underline = SINGLE
+ self.fontDescriptor2.Weight = 100
+ self.fontDescriptor4.Weight = 100
+ self.fontDescriptor5.Weight = 150
+
+ #build components
+
+ def buildStep1(self):
+ self.optBusinessFax = self.insertRadioButton("optBusinessFax",
+ OPTBUSINESSFAX_ITEM_CHANGED,
+ (PropertyNames.PROPERTY_HEIGHT,
+ PropertyNames.PROPERTY_HELPURL,
+ PropertyNames.PROPERTY_LABEL,
+ PropertyNames.PROPERTY_POSITION_X,
+ PropertyNames.PROPERTY_POSITION_Y,
+ PropertyNames.PROPERTY_STEP,
+ PropertyNames.PROPERTY_TABINDEX,
+ PropertyNames.PROPERTY_WIDTH),
+ (8, OPTBUSINESSFAX_HID, self.resources.resoptBusinessFax_value,
+ 97, 28, 1, 1, 184), self)
+ self.lstBusinessStyle = self.insertListBox("lstBusinessStyle",
+ LSTBUSINESSSTYLE_ACTION_PERFORMED, LSTBUSINESSSTYLE_ITEM_CHANGED,
+ ("Dropdown", PropertyNames.PROPERTY_HEIGHT,
+ PropertyNames.PROPERTY_HELPURL,
+ PropertyNames.PROPERTY_POSITION_X,
+ PropertyNames.PROPERTY_POSITION_Y,
+ PropertyNames.PROPERTY_STEP,
+ PropertyNames.PROPERTY_TABINDEX,
+ PropertyNames.PROPERTY_WIDTH),
+ (True, 12, LSTBUSINESSSTYLE_HID, 180, 40, 1, 3, 74), self)
+ self.optPrivateFax = self.insertRadioButton("optPrivateFax",
+ OPTPRIVATEFAX_ITEM_CHANGED,
+ (PropertyNames.PROPERTY_HEIGHT,
+ PropertyNames.PROPERTY_HELPURL,
+ PropertyNames.PROPERTY_LABEL,
+ PropertyNames.PROPERTY_POSITION_X,
+ PropertyNames.PROPERTY_POSITION_Y,
+ PropertyNames.PROPERTY_STEP,
+ PropertyNames.PROPERTY_TABINDEX,
+ PropertyNames.PROPERTY_WIDTH),
+ (8, OPTPRIVATEFAX_HID, self.resources.resoptPrivateFax_value,
+ 97, 81, 1, 2, 184), self)
+ self.lstPrivateStyle = self.insertListBox("lstPrivateStyle",
+ LSTPRIVATESTYLE_ACTION_PERFORMED,
+ LSTPRIVATESTYLE_ITEM_CHANGED,
+ ("Dropdown", PropertyNames.PROPERTY_HEIGHT,
+ PropertyNames.PROPERTY_HELPURL,
+ PropertyNames.PROPERTY_POSITION_X,
+ PropertyNames.PROPERTY_POSITION_Y,
+ PropertyNames.PROPERTY_STEP,
+ PropertyNames.PROPERTY_TABINDEX,
+ PropertyNames.PROPERTY_WIDTH),
+ (True, 12, LSTPRIVATESTYLE_HID, 180, 95, 1,
+ 4, 74), self)
+ self.lblBusinessStyle = self.insertLabel("lblBusinessStyle",
+ (PropertyNames.PROPERTY_HEIGHT,
+ PropertyNames.PROPERTY_LABEL,
+ PropertyNames.PROPERTY_POSITION_X,
+ PropertyNames.PROPERTY_POSITION_Y,
+ PropertyNames.PROPERTY_STEP,
+ PropertyNames.PROPERTY_TABINDEX,
+ PropertyNames.PROPERTY_WIDTH),
+ (8, self.resources.reslblBusinessStyle_value,
+ 110, 42, 1, 32, 60))
+
+ self.lblTitle1 = self.insertLabel("lblTitle1",
+ ("FontDescriptor", PropertyNames.PROPERTY_HEIGHT,
+ PropertyNames.PROPERTY_LABEL,
+ PropertyNames.PROPERTY_MULTILINE,
+ PropertyNames.PROPERTY_POSITION_X,
+ PropertyNames.PROPERTY_POSITION_Y,
+ PropertyNames.PROPERTY_STEP,
+ PropertyNames.PROPERTY_TABINDEX,
+ PropertyNames.PROPERTY_WIDTH),
+ (self.fontDescriptor5, 16, self.resources.reslblTitle1_value,
+ True, 91, 8, 1, 37, 212))
+ self.lblPrivateStyle = self.insertLabel("lblPrivateStyle",
+ (PropertyNames.PROPERTY_HEIGHT,
+ PropertyNames.PROPERTY_LABEL,
+ PropertyNames.PROPERTY_POSITION_X,
+ PropertyNames.PROPERTY_POSITION_Y,
+ PropertyNames.PROPERTY_STEP,
+ PropertyNames.PROPERTY_TABINDEX,
+ PropertyNames.PROPERTY_WIDTH),
+ (8, self.resources.reslblPrivateStyle_value, 110, 95, 1, 50, 60))
+ self.lblIntroduction = self.insertLabel("lblIntroduction",
+ (PropertyNames.PROPERTY_HEIGHT,
+ PropertyNames.PROPERTY_LABEL,
+ PropertyNames.PROPERTY_MULTILINE,
+ PropertyNames.PROPERTY_POSITION_X,
+ PropertyNames.PROPERTY_POSITION_Y,
+ PropertyNames.PROPERTY_STEP,
+ PropertyNames.PROPERTY_TABINDEX,
+ PropertyNames.PROPERTY_WIDTH),
+ (39, self.resources.reslblIntroduction_value, True, 104, 145, 1, 55, 199))
+ self.ImageControl3 = self.insertInfoImage(92, 145, 1)
+ def buildStep2(self):
+ self.chkUseLogo = self.insertCheckBox("chkUseLogo",
+ CHKUSELOGO_ITEM_CHANGED,
+ (PropertyNames.PROPERTY_HEIGHT,
+ PropertyNames.PROPERTY_HELPURL,
+ PropertyNames.PROPERTY_LABEL,
+ PropertyNames.PROPERTY_POSITION_X,
+ PropertyNames.PROPERTY_POSITION_Y,
+ PropertyNames.PROPERTY_STATE,
+ PropertyNames.PROPERTY_STEP,
+ PropertyNames.PROPERTY_TABINDEX,
+ PropertyNames.PROPERTY_WIDTH),
+ (8, CHKUSELOGO_HID, self.resources.reschkUseLogo_value, 97, 28,
+ 0, 2, 5, 212), self)
+ self.chkUseDate = self.insertCheckBox("chkUseDate",
+ CHKUSEDATE_ITEM_CHANGED,
+ (PropertyNames.PROPERTY_HEIGHT,
+ PropertyNames.PROPERTY_HELPURL,
+ PropertyNames.PROPERTY_LABEL,
+ PropertyNames.PROPERTY_POSITION_X,
+ PropertyNames.PROPERTY_POSITION_Y,
+ PropertyNames.PROPERTY_STATE,
+ PropertyNames.PROPERTY_STEP,
+ PropertyNames.PROPERTY_TABINDEX,
+ PropertyNames.PROPERTY_WIDTH),
+ (8, CHKUSEDATE_HID, self.resources.reschkUseDate_value, 97, 43,
+ 0, 2, 6, 212), self)
+ self.chkUseCommunicationType = self.insertCheckBox(
+ "chkUseCommunicationType",
+ CHKUSECOMMUNICATIONTYPE_ITEM_CHANGED,
+ (PropertyNames.PROPERTY_HEIGHT,
+ PropertyNames.PROPERTY_HELPURL,
+ PropertyNames.PROPERTY_LABEL,
+ PropertyNames.PROPERTY_POSITION_X,
+ PropertyNames.PROPERTY_POSITION_Y,
+ PropertyNames.PROPERTY_STATE,
+ PropertyNames.PROPERTY_STEP,
+ PropertyNames.PROPERTY_TABINDEX,
+ PropertyNames.PROPERTY_WIDTH),
+ (8, CHKUSECOMMUNICATIONTYPE_HID,
+ self.resources.reschkUseCommunicationType_value, 97, 57,
+ 0, 2, 7, 100), self)
+ self.lstCommunicationType = self.insertComboBox(
+ "lstCommunicationType",
+ LSTCOMMUNICATIONTYPE_ACTION_PERFORMED,
+ LSTCOMMUNICATIONTYPE_ITEM_CHANGED,
+ LSTCOMMUNICATIONTYPE_TEXT_CHANGED,
+ ("Dropdown", PropertyNames.PROPERTY_HEIGHT,
+ PropertyNames.PROPERTY_HELPURL,
+ PropertyNames.PROPERTY_POSITION_X,
+ PropertyNames.PROPERTY_POSITION_Y,
+ PropertyNames.PROPERTY_STEP,
+ PropertyNames.PROPERTY_TABINDEX,
+ PropertyNames.PROPERTY_WIDTH),
+ (True, 12, LSTCOMMUNICATIONTYPE_HID, 105, 68, 2,
+ 8, 174), self)
+ self.chkUseSubject = self.insertCheckBox("chkUseSubject",
+ CHKUSESUBJECT_ITEM_CHANGED,
+ (PropertyNames.PROPERTY_HEIGHT,
+ PropertyNames.PROPERTY_HELPURL,
+ PropertyNames.PROPERTY_LABEL,
+ PropertyNames.PROPERTY_POSITION_X,
+ PropertyNames.PROPERTY_POSITION_Y,
+ PropertyNames.PROPERTY_STATE,
+ PropertyNames.PROPERTY_STEP,
+ PropertyNames.PROPERTY_TABINDEX,
+ PropertyNames.PROPERTY_WIDTH),
+ (8, CHKUSESUBJECT_HID, self.resources.reschkUseSubject_value,
+ 97, 87, 0, 2, 9, 212), self)
+ self.chkUseSalutation = self.insertCheckBox("chkUseSalutation",
+ CHKUSESALUTATION_ITEM_CHANGED,
+ (PropertyNames.PROPERTY_HEIGHT,
+ PropertyNames.PROPERTY_HELPURL,
+ PropertyNames.PROPERTY_LABEL,
+ PropertyNames.PROPERTY_POSITION_X,
+ PropertyNames.PROPERTY_POSITION_Y,
+ PropertyNames.PROPERTY_STATE,
+ PropertyNames.PROPERTY_STEP,
+ PropertyNames.PROPERTY_TABINDEX,
+ PropertyNames.PROPERTY_WIDTH),
+ (8, CHKUSESALUTATION_HID,
+ self.resources.reschkUseSalutation_value, 97, 102,
+ 0, 2, 10, 100), self)
+ self.lstSalutation = self.insertComboBox("lstSalutation",
+ LSTSALUTATION_ACTION_PERFORMED,
+ LSTSALUTATION_ITEM_CHANGED,
+ LSTSALUTATION_TEXT_CHANGED,
+ ("Dropdown", PropertyNames.PROPERTY_HEIGHT,
+ PropertyNames.PROPERTY_HELPURL,
+ PropertyNames.PROPERTY_POSITION_X,
+ PropertyNames.PROPERTY_POSITION_Y,
+ PropertyNames.PROPERTY_STEP,
+ PropertyNames.PROPERTY_TABINDEX,
+ PropertyNames.PROPERTY_WIDTH),
+ (True, 12, LSTSALUTATION_HID, 105, 113, 2,
+ 11, 174), self)
+ self.chkUseGreeting = self.insertCheckBox("chkUseGreeting",
+ CHKUSEGREETING_ITEM_CHANGED,
+ (PropertyNames.PROPERTY_HEIGHT,
+ PropertyNames.PROPERTY_HELPURL,
+ PropertyNames.PROPERTY_LABEL,
+ PropertyNames.PROPERTY_POSITION_X,
+ PropertyNames.PROPERTY_POSITION_Y,
+ PropertyNames.PROPERTY_STATE,
+ PropertyNames.PROPERTY_STEP,
+ PropertyNames.PROPERTY_TABINDEX,
+ PropertyNames.PROPERTY_WIDTH),
+ (8, CHKUSEGREETING_HID,
+ self.resources.reschkUseGreeting_value, 97, 132,
+ 0, 2, 12, 100), self)
+ self.lstGreeting = self.insertComboBox("lstGreeting",
+ LSTGREETING_ACTION_PERFORMED,
+ LSTGREETING_ITEM_CHANGED,
+ LSTGREETING_TEXT_CHANGED,
+ ("Dropdown", PropertyNames.PROPERTY_HEIGHT,
+ PropertyNames.PROPERTY_HELPURL,
+ PropertyNames.PROPERTY_POSITION_X,
+ PropertyNames.PROPERTY_POSITION_Y,
+ PropertyNames.PROPERTY_STEP,
+ PropertyNames.PROPERTY_TABINDEX,
+ PropertyNames.PROPERTY_WIDTH),
+ (True, 12, LSTGREETING_HID, 105, 143, 2, 13, 174), self)
+ self.chkUseFooter = self.insertCheckBox("chkUseFooter",
+ CHKUSEFOOTER_ITEM_CHANGED,
+ (PropertyNames.PROPERTY_HEIGHT,
+ PropertyNames.PROPERTY_HELPURL,
+ PropertyNames.PROPERTY_LABEL,
+ PropertyNames.PROPERTY_POSITION_X,
+ PropertyNames.PROPERTY_POSITION_Y,
+ PropertyNames.PROPERTY_STATE,
+ PropertyNames.PROPERTY_STEP,
+ PropertyNames.PROPERTY_TABINDEX,
+ PropertyNames.PROPERTY_WIDTH),
+ (8, CHKUSEFOOTER_HID,
+ self.resources.reschkUseFooter_value, 97, 163,
+ 0, 2, 14, 212), self)
+ self.lblTitle3 = self.insertLabel("lblTitle3",
+ ("FontDescriptor", PropertyNames.PROPERTY_HEIGHT,
+ PropertyNames.PROPERTY_LABEL,
+ PropertyNames.PROPERTY_MULTILINE,
+ PropertyNames.PROPERTY_POSITION_X,
+ PropertyNames.PROPERTY_POSITION_Y,
+ PropertyNames.PROPERTY_STEP,
+ PropertyNames.PROPERTY_TABINDEX,
+ PropertyNames.PROPERTY_WIDTH),
+ (self.fontDescriptor5, 16, self.resources.reslblTitle3_value,
+ True, 91, 8, 2, 59, 212))
+
+ def buildStep3(self):
+ self.optSenderPlaceholder = self.insertRadioButton(
+ "optSenderPlaceholder",
+ OPTSENDERPLACEHOLDER_ITEM_CHANGED,
+ (PropertyNames.PROPERTY_HEIGHT,
+ PropertyNames.PROPERTY_HELPURL,
+ PropertyNames.PROPERTY_LABEL,
+ PropertyNames.PROPERTY_POSITION_X,
+ PropertyNames.PROPERTY_POSITION_Y,
+ PropertyNames.PROPERTY_STEP,
+ PropertyNames.PROPERTY_TABINDEX,
+ PropertyNames.PROPERTY_WIDTH),
+ (8, OPTSENDERPLACEHOLDER_HID,
+ self.resources.resoptSenderPlaceholder_value,
+ 104, 42, 3, 15, 149), self)
+ self.optSenderDefine = self.insertRadioButton("optSenderDefine",
+ OPTSENDERDEFINE_ITEM_CHANGED,
+ (PropertyNames.PROPERTY_HEIGHT,
+ PropertyNames.PROPERTY_HELPURL,
+ PropertyNames.PROPERTY_LABEL,
+ PropertyNames.PROPERTY_POSITION_X,
+ PropertyNames.PROPERTY_POSITION_Y,
+ PropertyNames.PROPERTY_STEP,
+ PropertyNames.PROPERTY_TABINDEX,
+ PropertyNames.PROPERTY_WIDTH),
+ (8, OPTSENDERDEFINE_HID, self.resources.resoptSenderDefine_value,
+ 104, 54, 3, 16, 149), self)
+ self.txtSenderName = self.insertTextField("txtSenderName",
+ TXTSENDERNAME_TEXT_CHANGED,
+ (PropertyNames.PROPERTY_HEIGHT,
+ PropertyNames.PROPERTY_HELPURL,
+ PropertyNames.PROPERTY_POSITION_X,
+ PropertyNames.PROPERTY_POSITION_Y,
+ PropertyNames.PROPERTY_STEP,
+ PropertyNames.PROPERTY_TABINDEX,
+ PropertyNames.PROPERTY_WIDTH),
+ (12, TXTSENDERNAME_HID, 182, 67, 3,
+ 17, 119), self)
+ self.txtSenderStreet = self.insertTextField("txtSenderStreet",
+ TXTSENDERSTREET_TEXT_CHANGED,
+ (PropertyNames.PROPERTY_HEIGHT,
+ PropertyNames.PROPERTY_HELPURL,
+ PropertyNames.PROPERTY_POSITION_X,
+ PropertyNames.PROPERTY_POSITION_Y,
+ PropertyNames.PROPERTY_STEP,
+ PropertyNames.PROPERTY_TABINDEX,
+ PropertyNames.PROPERTY_WIDTH),
+ (12, TXTSENDERSTREET_HID, 182, 81, 3,
+ 18, 119), self)
+ self.txtSenderPostCode = self.insertTextField("txtSenderPostCode",
+ TXTSENDERPOSTCODE_TEXT_CHANGED,
+ (PropertyNames.PROPERTY_HEIGHT,
+ PropertyNames.PROPERTY_HELPURL,
+ PropertyNames.PROPERTY_POSITION_X,
+ PropertyNames.PROPERTY_POSITION_Y,
+ PropertyNames.PROPERTY_STEP,
+ PropertyNames.PROPERTY_TABINDEX,
+ PropertyNames.PROPERTY_WIDTH),
+ (12, TXTSENDERPOSTCODE_HID, 182, 95, 3,
+ 19, 25), self)
+ self.txtSenderState = self.insertTextField("txtSenderState",
+ TXTSENDERSTATE_TEXT_CHANGED,
+ (PropertyNames.PROPERTY_HEIGHT,
+ PropertyNames.PROPERTY_HELPURL,
+ PropertyNames.PROPERTY_POSITION_X,
+ PropertyNames.PROPERTY_POSITION_Y,
+ PropertyNames.PROPERTY_STEP,
+ PropertyNames.PROPERTY_TABINDEX,
+ PropertyNames.PROPERTY_WIDTH),
+ (12, TXTSENDERSTATE_HID, 211, 95, 3,
+ 20, 21), self)
+ self.txtSenderCity = self.insertTextField("txtSenderCity",
+ TXTSENDERCITY_TEXT_CHANGED,
+ (PropertyNames.PROPERTY_HEIGHT,
+ PropertyNames.PROPERTY_HELPURL,
+ PropertyNames.PROPERTY_POSITION_X,
+ PropertyNames.PROPERTY_POSITION_Y,
+ PropertyNames.PROPERTY_STEP,
+ PropertyNames.PROPERTY_TABINDEX,
+ PropertyNames.PROPERTY_WIDTH),
+ (12, TXTSENDERCITY_HID, 236, 95, 3,
+ 21, 65), self)
+ self.txtSenderFax = self.insertTextField("txtSenderFax",
+ TXTSENDERFAX_TEXT_CHANGED,
+ (PropertyNames.PROPERTY_HEIGHT,
+ PropertyNames.PROPERTY_HELPURL,
+ PropertyNames.PROPERTY_POSITION_X,
+ PropertyNames.PROPERTY_POSITION_Y,
+ PropertyNames.PROPERTY_STEP,
+ PropertyNames.PROPERTY_TABINDEX,
+ PropertyNames.PROPERTY_WIDTH),
+ (12, TXTSENDERFAX_HID, 182, 109, 3,
+ 22, 119), self)
+ self.optReceiverPlaceholder = self.insertRadioButton(
+ "optReceiverPlaceholder",
+ OPTRECEIVERPLACEHOLDER_ITEM_CHANGED,
+ (PropertyNames.PROPERTY_HEIGHT,
+ PropertyNames.PROPERTY_HELPURL,
+ PropertyNames.PROPERTY_LABEL,
+ PropertyNames.PROPERTY_POSITION_X,
+ PropertyNames.PROPERTY_POSITION_Y,
+ PropertyNames.PROPERTY_STEP,
+ PropertyNames.PROPERTY_TABINDEX,
+ PropertyNames.PROPERTY_WIDTH),
+ (8, OPTRECEIVERPLACEHOLDER_HID,
+ self.resources.resoptReceiverPlaceholder_value,
+ 104, 148, 3, 23, 200), self)
+ self.optReceiverDatabase = self.insertRadioButton(
+ "optReceiverDatabase",
+ OPTRECEIVERDATABASE_ITEM_CHANGED,
+ (PropertyNames.PROPERTY_HEIGHT,
+ PropertyNames.PROPERTY_HELPURL,
+ PropertyNames.PROPERTY_LABEL,
+ PropertyNames.PROPERTY_POSITION_X,
+ PropertyNames.PROPERTY_POSITION_Y,
+ PropertyNames.PROPERTY_STEP,
+ PropertyNames.PROPERTY_TABINDEX,
+ PropertyNames.PROPERTY_WIDTH),
+ (8, OPTRECEIVERDATABASE_HID,
+ self.resources.resoptReceiverDatabase_value, 104, 160, 3,
+ 24, 200), self)
+ self.lblSenderAddress = self.insertLabel("lblSenderAddress",
+ (PropertyNames.PROPERTY_HEIGHT,
+ PropertyNames.PROPERTY_LABEL,
+ PropertyNames.PROPERTY_POSITION_X,
+ PropertyNames.PROPERTY_POSITION_Y,
+ PropertyNames.PROPERTY_STEP,
+ PropertyNames.PROPERTY_TABINDEX,
+ PropertyNames.PROPERTY_WIDTH),
+ (8, self.resources.reslblSenderAddress_value, 97, 28, 3, 46, 136))
+ self.FixedLine2 = self.insertFixedLine("FixedLine2", (PropertyNames.PROPERTY_HEIGHT,
+ PropertyNames.PROPERTY_POSITION_X,
+ PropertyNames.PROPERTY_POSITION_Y,
+ PropertyNames.PROPERTY_STEP,
+ PropertyNames.PROPERTY_TABINDEX,
+ PropertyNames.PROPERTY_WIDTH),
+ (5, 90, 126, 3, 51, 212))
+ self.lblSenderName = self.insertLabel("lblSenderName",
+ (PropertyNames.PROPERTY_HEIGHT,
+ PropertyNames.PROPERTY_LABEL,
+ PropertyNames.PROPERTY_POSITION_X,
+ PropertyNames.PROPERTY_POSITION_Y,
+ PropertyNames.PROPERTY_STEP,
+ PropertyNames.PROPERTY_TABINDEX,
+ PropertyNames.PROPERTY_WIDTH),
+ (8, self.resources.reslblSenderName_value, 113, 69, 3,
+ 52, 68))
+ self.lblSenderStreet = self.insertLabel("lblSenderStreet",
+ (PropertyNames.PROPERTY_HEIGHT,
+ PropertyNames.PROPERTY_LABEL,
+ PropertyNames.PROPERTY_POSITION_X,
+ PropertyNames.PROPERTY_POSITION_Y,
+ PropertyNames.PROPERTY_STEP,
+ PropertyNames.PROPERTY_TABINDEX,
+ PropertyNames.PROPERTY_WIDTH),
+ (8, self.resources.reslblSenderStreet_value, 113, 82, 3,
+ 53, 68))
+ self.lblPostCodeCity = self.insertLabel("lblPostCodeCity",
+ (PropertyNames.PROPERTY_HEIGHT,
+ PropertyNames.PROPERTY_LABEL,
+ PropertyNames.PROPERTY_POSITION_X,
+ PropertyNames.PROPERTY_POSITION_Y,
+ PropertyNames.PROPERTY_STEP,
+ PropertyNames.PROPERTY_TABINDEX,
+ PropertyNames.PROPERTY_WIDTH),
+ (8, self.resources.reslblPostCodeCity_value,
+ 113, 97, 3, 54, 68))
+ self.lblTitle4 = self.insertLabel("lblTitle4",
+ ("FontDescriptor",
+ PropertyNames.PROPERTY_HEIGHT,
+ PropertyNames.PROPERTY_LABEL,
+ PropertyNames.PROPERTY_MULTILINE,
+ PropertyNames.PROPERTY_POSITION_X,
+ PropertyNames.PROPERTY_POSITION_Y,
+ PropertyNames.PROPERTY_STEP,
+ PropertyNames.PROPERTY_TABINDEX,
+ PropertyNames.PROPERTY_WIDTH),
+ (self.fontDescriptor5, 16, self.resources.reslblTitle4_value,
+ True, 91, 8, 3, 60, 212))
+ self.Label1 = self.insertLabel("lblSenderFax",
+ (PropertyNames.PROPERTY_HEIGHT,
+ PropertyNames.PROPERTY_LABEL,
+ PropertyNames.PROPERTY_POSITION_X,
+ PropertyNames.PROPERTY_POSITION_Y,
+ PropertyNames.PROPERTY_STEP,
+ PropertyNames.PROPERTY_TABINDEX,
+ PropertyNames.PROPERTY_WIDTH),
+ (8, self.resources.resLabel1_value, 113, 111, 3, 68, 68))
+ self.Label2 = self.insertLabel("Label2",
+ (PropertyNames.PROPERTY_HEIGHT,
+ PropertyNames.PROPERTY_LABEL,
+ PropertyNames.PROPERTY_POSITION_X,
+ PropertyNames.PROPERTY_POSITION_Y,
+ PropertyNames.PROPERTY_STEP,
+ PropertyNames.PROPERTY_TABINDEX,
+ PropertyNames.PROPERTY_WIDTH),
+ (8, self.resources.resLabel2_value, 97, 137, 3, 69, 136))
+
+ def buildStep4(self):
+ self.txtFooter = self.insertTextField("txtFooter",
+ TXTFOOTER_TEXT_CHANGED,
+ (PropertyNames.PROPERTY_HEIGHT,
+ PropertyNames.PROPERTY_HELPURL,
+ PropertyNames.PROPERTY_MULTILINE,
+ PropertyNames.PROPERTY_POSITION_X,
+ PropertyNames.PROPERTY_POSITION_Y,
+ PropertyNames.PROPERTY_STEP,
+ PropertyNames.PROPERTY_TABINDEX,
+ PropertyNames.PROPERTY_WIDTH),
+ (47, TXTFOOTER_HID, True, 97, 40, 4, 25, 203), self)
+ self.chkFooterNextPages = self.insertCheckBox("chkFooterNextPages",
+ CHKFOOTERNEXTPAGES_ITEM_CHANGED,
+ (PropertyNames.PROPERTY_HEIGHT,
+ PropertyNames.PROPERTY_HELPURL,
+ PropertyNames.PROPERTY_LABEL,
+ PropertyNames.PROPERTY_POSITION_X,
+ PropertyNames.PROPERTY_POSITION_Y,
+ PropertyNames.PROPERTY_STATE,
+ PropertyNames.PROPERTY_STEP,
+ PropertyNames.PROPERTY_TABINDEX,
+ PropertyNames.PROPERTY_WIDTH),
+ (8, CHKFOOTERNEXTPAGES_HID,
+ self.resources.reschkFooterNextPages_value, 97, 92,
+ 0, 4, 26, 202), self)
+ self.chkFooterPageNumbers = self.insertCheckBox("chkFooterPageNumbers",
+ CHKFOOTERPAGENUMBERS_ITEM_CHANGED,
+ (PropertyNames.PROPERTY_HEIGHT,
+ PropertyNames.PROPERTY_HELPURL,
+ PropertyNames.PROPERTY_LABEL,
+ PropertyNames.PROPERTY_POSITION_X,
+ PropertyNames.PROPERTY_POSITION_Y,
+ PropertyNames.PROPERTY_STATE,
+ PropertyNames.PROPERTY_STEP,
+ PropertyNames.PROPERTY_TABINDEX,
+ PropertyNames.PROPERTY_WIDTH),
+ (8, CHKFOOTERPAGENUMBERS_HID,
+ self.resources.reschkFooterPageNumbers_value, 97, 106,
+ 0, 4, 27, 201), self)
+ self.lblFooter = self.insertLabel("lblFooter",
+ ("FontDescriptor",
+ PropertyNames.PROPERTY_HEIGHT,
+ PropertyNames.PROPERTY_LABEL,
+ PropertyNames.PROPERTY_POSITION_X,
+ PropertyNames.PROPERTY_POSITION_Y,
+ PropertyNames.PROPERTY_STEP,
+ PropertyNames.PROPERTY_TABINDEX,
+ PropertyNames.PROPERTY_WIDTH),
+ (self.fontDescriptor4, 8, self.resources.reslblFooter_value,
+ 97, 28, 4, 33, 116))
+ self.lblTitle5 = self.insertLabel("lblTitle5",
+ ("FontDescriptor",
+ PropertyNames.PROPERTY_HEIGHT,
+ PropertyNames.PROPERTY_LABEL,
+ PropertyNames.PROPERTY_MULTILINE,
+ PropertyNames.PROPERTY_POSITION_X,
+ PropertyNames.PROPERTY_POSITION_Y,
+ PropertyNames.PROPERTY_STEP,
+ PropertyNames.PROPERTY_TABINDEX,
+ PropertyNames.PROPERTY_WIDTH),
+ (self.fontDescriptor5, 16, self.resources.reslblTitle5_value,
+ True, 91, 8, 4, 61, 212))
+
+ def buildStep5(self):
+ self.txtTemplateName = self.insertTextField("txtTemplateName",
+ TXTTEMPLATENAME_TEXT_CHANGED,
+ (PropertyNames.PROPERTY_HEIGHT,
+ PropertyNames.PROPERTY_HELPURL,
+ PropertyNames.PROPERTY_POSITION_X,
+ PropertyNames.PROPERTY_POSITION_Y,
+ PropertyNames.PROPERTY_STEP,
+ PropertyNames.PROPERTY_TABINDEX,
+ "Text",
+ PropertyNames.PROPERTY_WIDTH),
+ (12, TXTTEMPLATENAME_HID, 202, 56, 5, 28,
+ self.resources.restxtTemplateName_value, 100), self)
+
+ self.optCreateFax = self.insertRadioButton("optCreateFax",
+ OPTCREATEFAX_ITEM_CHANGED,
+ (PropertyNames.PROPERTY_HEIGHT,
+ PropertyNames.PROPERTY_HELPURL,
+ PropertyNames.PROPERTY_LABEL,
+ PropertyNames.PROPERTY_POSITION_X,
+ PropertyNames.PROPERTY_POSITION_Y,
+ PropertyNames.PROPERTY_STEP,
+ PropertyNames.PROPERTY_TABINDEX,
+ PropertyNames.PROPERTY_WIDTH),
+ (8, OPTCREATEFAX_HID, self.resources.resoptCreateFax_value,
+ 104, 111, 5, 30, 198), self)
+ self.optMakeChanges = self.insertRadioButton("optMakeChanges",
+ OPTMAKECHANGES_ITEM_CHANGED,
+ (PropertyNames.PROPERTY_HEIGHT,
+ PropertyNames.PROPERTY_HELPURL,
+ PropertyNames.PROPERTY_LABEL,
+ PropertyNames.PROPERTY_POSITION_X,
+ PropertyNames.PROPERTY_POSITION_Y,
+ PropertyNames.PROPERTY_STEP,
+ PropertyNames.PROPERTY_TABINDEX,
+ PropertyNames.PROPERTY_WIDTH),
+ (8, OPTMAKECHANGES_HID, self.resources.resoptMakeChanges_value,
+ 104, 123, 5, 31, 198), self)
+ self.lblFinalExplanation1 = self.insertLabel("lblFinalExplanation1",
+ (PropertyNames.PROPERTY_HEIGHT,
+ PropertyNames.PROPERTY_LABEL,
+ PropertyNames.PROPERTY_MULTILINE,
+ PropertyNames.PROPERTY_POSITION_X,
+ PropertyNames.PROPERTY_POSITION_Y,
+ PropertyNames.PROPERTY_STEP,
+ PropertyNames.PROPERTY_TABINDEX,
+ PropertyNames.PROPERTY_WIDTH),
+ (28, self.resources.reslblFinalExplanation1_value,
+ True, 97, 28, 5, 34, 205))
+ self.lblProceed = self.insertLabel("lblProceed",
+ (PropertyNames.PROPERTY_HEIGHT,
+ PropertyNames.PROPERTY_LABEL,
+ PropertyNames.PROPERTY_POSITION_X,
+ PropertyNames.PROPERTY_POSITION_Y,
+ PropertyNames.PROPERTY_STEP,
+ PropertyNames.PROPERTY_TABINDEX,
+ PropertyNames.PROPERTY_WIDTH),
+ (8, self.resources.reslblProceed_value, 97, 100, 5,
+ 35, 204))
+ self.lblFinalExplanation2 = self.insertLabel("lblFinalExplanation2",
+ (PropertyNames.PROPERTY_HEIGHT,
+ PropertyNames.PROPERTY_LABEL,
+ PropertyNames.PROPERTY_MULTILINE,
+ PropertyNames.PROPERTY_POSITION_X,
+ PropertyNames.PROPERTY_POSITION_Y,
+ PropertyNames.PROPERTY_STEP,
+ PropertyNames.PROPERTY_TABINDEX,
+ PropertyNames.PROPERTY_WIDTH),
+ (33, self.resources.reslblFinalExplanation2_value, True, 104, 145, 5,
+ 36, 199))
+ self.ImageControl2 = self.insertImage("ImageControl2",
+ ("Border",
+ PropertyNames.PROPERTY_HEIGHT,
+ PropertyNames.PROPERTY_IMAGEURL,
+ PropertyNames.PROPERTY_POSITION_X,
+ PropertyNames.PROPERTY_POSITION_Y,
+ "ScaleImage",
+ PropertyNames.PROPERTY_STEP,
+ PropertyNames.PROPERTY_TABINDEX,
+ PropertyNames.PROPERTY_WIDTH),
+ (0, 10, UIConsts.INFOIMAGEURL, 92, 145,
+ False, 5, 47, 10))
+ self.lblTemplateName = self.insertLabel("lblTemplateName",
+ (PropertyNames.PROPERTY_HEIGHT,
+ PropertyNames.PROPERTY_LABEL,
+ PropertyNames.PROPERTY_POSITION_X,
+ PropertyNames.PROPERTY_POSITION_Y,
+ PropertyNames.PROPERTY_STEP,
+ PropertyNames.PROPERTY_TABINDEX,
+ PropertyNames.PROPERTY_WIDTH),
+ (8, self.resources.reslblTemplateName_value, 97, 58, 5,
+ 57, 101))
+
+ self.lblTitle6 = self.insertLabel("lblTitle6",
+ ("FontDescriptor",
+ PropertyNames.PROPERTY_HEIGHT,
+ PropertyNames.PROPERTY_LABEL,
+ PropertyNames.PROPERTY_MULTILINE,
+ PropertyNames.PROPERTY_POSITION_X,
+ PropertyNames.PROPERTY_POSITION_Y,
+ PropertyNames.PROPERTY_STEP,
+ PropertyNames.PROPERTY_TABINDEX,
+ PropertyNames.PROPERTY_WIDTH),
+ (self.fontDescriptor5, 16, self.resources.reslblTitle6_value,
+ True, 91, 8, 5, 62, 212))
diff --git a/wizards/com/sun/star/wizards/fax/FaxWizardDialogConst.py b/wizards/com/sun/star/wizards/fax/FaxWizardDialogConst.py
new file mode 100644
index 000000000000..680a9e3de3bd
--- /dev/null
+++ b/wizards/com/sun/star/wizards/fax/FaxWizardDialogConst.py
@@ -0,0 +1,83 @@
+from common.HelpIds import HelpIds
+
+
+OPTBUSINESSFAX_ITEM_CHANGED = "optBusinessFaxItemChanged"
+LSTBUSINESSSTYLE_ACTION_PERFORMED = None # "lstBusinessStyleActionPerformed"
+LSTBUSINESSSTYLE_ITEM_CHANGED = "lstBusinessStyleItemChanged"
+OPTPRIVATEFAX_ITEM_CHANGED = "optPrivateFaxItemChanged"
+LSTPRIVATESTYLE_ACTION_PERFORMED = None # "lstPrivateStyleActionPerformed"
+LSTPRIVATESTYLE_ITEM_CHANGED = "lstPrivateStyleItemChanged"
+CHKUSELOGO_ITEM_CHANGED = "chkUseLogoItemChanged"
+CHKUSEDATE_ITEM_CHANGED = "chkUseDateItemChanged"
+CHKUSECOMMUNICATIONTYPE_ITEM_CHANGED = "chkUseCommunicationItemChanged"
+LSTCOMMUNICATIONTYPE_ACTION_PERFORMED = None # "lstCommunicationActionPerformed"
+LSTCOMMUNICATIONTYPE_ITEM_CHANGED = "lstCommunicationItemChanged"
+LSTCOMMUNICATIONTYPE_TEXT_CHANGED = "lstCommunicationItemChanged"
+CHKUSESUBJECT_ITEM_CHANGED = "chkUseSubjectItemChanged"
+CHKUSESALUTATION_ITEM_CHANGED = "chkUseSalutationItemChanged"
+LSTSALUTATION_ACTION_PERFORMED = None # "lstSalutationActionPerformed"
+LSTSALUTATION_ITEM_CHANGED = "lstSalutationItemChanged"
+LSTSALUTATION_TEXT_CHANGED = "lstSalutationItemChanged"
+CHKUSEGREETING_ITEM_CHANGED = "chkUseGreetingItemChanged"
+LSTGREETING_ACTION_PERFORMED = None # "lstGreetingActionPerformed"
+LSTGREETING_ITEM_CHANGED = "lstGreetingItemChanged"
+LSTGREETING_TEXT_CHANGED = "lstGreetingItemChanged"
+CHKUSEFOOTER_ITEM_CHANGED = "chkUseFooterItemChanged"
+OPTSENDERPLACEHOLDER_ITEM_CHANGED = "optSenderPlaceholderItemChanged"
+OPTSENDERDEFINE_ITEM_CHANGED = "optSenderDefineItemChanged"
+TXTSENDERNAME_TEXT_CHANGED = "txtSenderNameTextChanged"
+TXTSENDERSTREET_TEXT_CHANGED = "txtSenderStreetTextChanged"
+TXTSENDERPOSTCODE_TEXT_CHANGED = "txtSenderPostCodeTextChanged"
+TXTSENDERSTATE_TEXT_CHANGED = "txtSenderStateTextChanged"
+TXTSENDERCITY_TEXT_CHANGED = "txtSenderCityTextChanged"
+TXTSENDERFAX_TEXT_CHANGED = "txtSenderFaxTextChanged"
+OPTRECEIVERPLACEHOLDER_ITEM_CHANGED = "optReceiverPlaceholderItemChanged"
+OPTRECEIVERDATABASE_ITEM_CHANGED = "optReceiverDatabaseItemChanged"
+TXTFOOTER_TEXT_CHANGED = "txtFooterTextChanged"
+CHKFOOTERNEXTPAGES_ITEM_CHANGED = "chkFooterNextPagesItemChanged"
+CHKFOOTERPAGENUMBERS_ITEM_CHANGED = "chkFooterPageNumbersItemChanged"
+TXTTEMPLATENAME_TEXT_CHANGED = "txtTemplateNameTextChanged"
+FILETEMPLATEPATH_TEXT_CHANGED = None # "fileTemplatePathTextChanged"
+OPTCREATEFAX_ITEM_CHANGED = "optCreateFaxItemChanged"
+OPTMAKECHANGES_ITEM_CHANGED = "optMakeChangesItemChanged"
+imageURLImageControl2 = None #"images/ImageControl2"
+imageURLImageControl3 = None #"images/ImageControl3"
+
+#Help IDs
+
+HID = 41119 #TODO enter first hid here
+HIDMAIN = 41180
+OPTBUSINESSFAX_HID = HelpIds.getHelpIdString(HID + 1)
+LSTBUSINESSSTYLE_HID = HelpIds.getHelpIdString(HID + 2)
+OPTPRIVATEFAX_HID = HelpIds.getHelpIdString(HID + 3)
+LSTPRIVATESTYLE_HID = HelpIds.getHelpIdString(HID + 4)
+IMAGECONTROL3_HID = HelpIds.getHelpIdString(HID + 5)
+CHKUSELOGO_HID = HelpIds.getHelpIdString(HID + 6)
+CHKUSEDATE_HID = HelpIds.getHelpIdString(HID + 7)
+CHKUSECOMMUNICATIONTYPE_HID = HelpIds.getHelpIdString(HID + 8)
+LSTCOMMUNICATIONTYPE_HID = HelpIds.getHelpIdString(HID + 9)
+CHKUSESUBJECT_HID = HelpIds.getHelpIdString(HID + 10)
+CHKUSESALUTATION_HID = HelpIds.getHelpIdString(HID + 11)
+LSTSALUTATION_HID = HelpIds.getHelpIdString(HID + 12)
+CHKUSEGREETING_HID = HelpIds.getHelpIdString(HID + 13)
+LSTGREETING_HID = HelpIds.getHelpIdString(HID + 14)
+CHKUSEFOOTER_HID = HelpIds.getHelpIdString(HID + 15)
+OPTSENDERPLACEHOLDER_HID = HelpIds.getHelpIdString(HID + 16)
+OPTSENDERDEFINE_HID = HelpIds.getHelpIdString(HID + 17)
+TXTSENDERNAME_HID = HelpIds.getHelpIdString(HID + 18)
+TXTSENDERSTREET_HID = HelpIds.getHelpIdString(HID + 19)
+TXTSENDERPOSTCODE_HID = HelpIds.getHelpIdString(HID + 20)
+TXTSENDERSTATE_HID = HelpIds.getHelpIdString(HID + 21)
+TXTSENDERCITY_HID = HelpIds.getHelpIdString(HID + 22)
+TXTSENDERFAX_HID = HelpIds.getHelpIdString(HID + 23)
+OPTRECEIVERPLACEHOLDER_HID = HelpIds.getHelpIdString(HID + 24)
+OPTRECEIVERDATABASE_HID = HelpIds.getHelpIdString(HID + 25)
+TXTFOOTER_HID = HelpIds.getHelpIdString(HID + 26)
+CHKFOOTERNEXTPAGES_HID = HelpIds.getHelpIdString(HID + 27)
+CHKFOOTERPAGENUMBERS_HID = HelpIds.getHelpIdString(HID + 28)
+TXTTEMPLATENAME_HID = HelpIds.getHelpIdString(HID + 29)
+FILETEMPLATEPATH_HID = HelpIds.getHelpIdString(HID + 30)
+OPTCREATEFAX_HID = HelpIds.getHelpIdString(HID + 31)
+OPTMAKECHANGES_HID = HelpIds.getHelpIdString(HID + 32)
+IMAGECONTROL2_HID = HelpIds.getHelpIdString(HID + 33)
+
diff --git a/wizards/com/sun/star/wizards/fax/FaxWizardDialogImpl.py b/wizards/com/sun/star/wizards/fax/FaxWizardDialogImpl.py
new file mode 100644
index 000000000000..f4495e255579
--- /dev/null
+++ b/wizards/com/sun/star/wizards/fax/FaxWizardDialogImpl.py
@@ -0,0 +1,706 @@
+from FaxWizardDialog import *
+from CGFaxWizard import *
+from FaxDocument import *
+from ui.PathSelection import *
+from common.FileAccess import *
+from ui.event.UnoDataAware import *
+from ui.event.RadioDataAware import *
+from ui.XPathSelectionListener import XPathSelectionListener
+from common.Configuration import *
+from document.OfficeDocument import OfficeDocument
+from text.TextFieldHandler import TextFieldHandler
+from com.sun.star.awt.VclWindowPeerAttribute import YES_NO, DEF_NO
+
+from common.NoValidPathException import *
+from com.sun.star.uno import RuntimeException
+from com.sun.star.util import CloseVetoException
+
+from com.sun.star.view.DocumentZoomType import OPTIMAL
+from com.sun.star.document.UpdateDocMode import FULL_UPDATE
+from com.sun.star.document.MacroExecMode import ALWAYS_EXECUTE
+
+class FaxWizardDialogImpl(FaxWizardDialog):
+
+ def leaveStep(self, nOldStep, nNewStep):
+ pass
+
+ def enterStep(self, nOldStep, nNewStep):
+ pass
+
+ RM_TYPESTYLE = 1
+ RM_ELEMENTS = 2
+ RM_SENDERRECEIVER = 3
+ RM_FOOTER = 4
+ RM_FINALSETTINGS = 5
+
+
+ def __init__(self, xmsf):
+ super(FaxWizardDialogImpl, self).__init__(xmsf)
+ self.mainDA = []
+ self.faxDA = []
+ self.bSaveSuccess = False
+ self.__filenameChanged = False
+ self.UserTemplatePath = ""
+ self.sTemplatePath = ""
+
+ @classmethod
+ def main(self, args):
+ #only being called when starting wizard remotely
+ try:
+ ConnectStr = \
+ "uno:socket,host=localhost,port=2002;urp;StarOffice.ComponentContext"
+ xLocMSF = Desktop.connect(ConnectStr)
+ lw = FaxWizardDialogImpl(xLocMSF)
+ lw.startWizard(xLocMSF, None)
+ except RuntimeException, e:
+ # TODO Auto-generated catch block
+ traceback.print_exc()
+ except Exception, e:
+ # TODO Auto-generated catch blocksetMaxStep
+ traceback.print_exc()
+
+ def startWizard(self, xMSF, CurPropertyValue):
+ self.running = True
+ try:
+ #Number of steps on WizardDialog:
+ self.nMaxStep = 5
+
+ #instatiate The Document Frame for the Preview
+ self.myFaxDoc = FaxDocument(xMSF, self)
+
+ #create the dialog:
+ self.drawNaviBar()
+
+ self.buildStep1()
+ self.buildStep2()
+ self.buildStep3()
+ self.buildStep4()
+ self.buildStep5()
+
+ self.initializeSalutation()
+ self.initializeGreeting()
+ self.initializeCommunication()
+ self.__initializePaths()
+
+ #special Control fFrameor setting the save Path:
+ self.insertPathSelectionControl()
+
+ #load the last used settings
+ #from the registry and apply listeners to the controls:
+ self.initConfiguration()
+
+ self.initializeTemplates(xMSF)
+
+ #update the dialog UI according to the loaded Configuration
+ self.__updateUI()
+ if self.myPathSelection.xSaveTextBox.Text.lower() == "":
+ self.myPathSelection.initializePath()
+
+ self.xContainerWindow = self.myFaxDoc.xFrame.ContainerWindow
+ self.createWindowPeer(self.xContainerWindow)
+
+ #add the Roadmap to the dialog:
+ self.insertRoadmap()
+
+ #load the last used document and apply last used settings:
+ #TODO:
+ self.setConfiguration()
+
+ #If the configuration does not define
+ #Greeting/Salutation/CommunicationType yet choose a default
+ self.__setDefaultForGreetingAndSalutationAndCommunication()
+
+ #disable funtionality that is not supported by the template:
+ self.initializeElements()
+
+ #disable the document, so that the user cannot change anything:
+ self.myFaxDoc.xFrame.ComponentWindow.Enable = False
+ self.executeDialogFromComponent(self.myFaxDoc.xFrame)
+ self.removeTerminateListener()
+ self.closeDocument()
+ self.running = False
+ except Exception, exception:
+ self.removeTerminateListener()
+ traceback.print_exc()
+ self.running = False
+ return
+
+ def cancelWizard(self):
+ self.xUnoDialog.endExecute()
+ self.running = False
+
+ def finishWizard(self):
+ self.switchToStep(self.getCurrentStep(), self.nMaxStep)
+ self.myFaxDoc.setWizardTemplateDocInfo( \
+ self.resources.resFaxWizardDialog_title,
+ self.resources.resTemplateDescription)
+ endWizard = True
+ try:
+ fileAccess = FileAccess(self.xMSF)
+ self.sPath = self.myPathSelection.getSelectedPath()
+ if self.sPath == "":
+ self.myPathSelection.triggerPathPicker()
+ self.sPath = self.myPathSelection.getSelectedPath()
+
+ self.sPath = fileAccess.getURL(self.sPath)
+ #first, if the filename was not changed, thus
+ #it is coming from a saved session, check if the
+ # file exists and warn the user.
+ if not self.__filenameChanged:
+ if fileAccess.exists(self.sPath, True):
+ answer = SystemDialog.showMessageBox(
+ self.xMSF, "MessBox", YES_NO + DEF_NO,
+ self.resources.resOverwriteWarning, self.xUnoDialog.Peer)
+ if answer == 3:
+ # user said: no, do not overwrite...
+ endWizard = False
+ return False
+
+ self.myFaxDoc.setWizardTemplateDocInfo( \
+ self.resources.resFaxWizardDialog_title,
+ self.resources.resTemplateDescription)
+ self.myFaxDoc.killEmptyUserFields()
+ self.myFaxDoc.keepLogoFrame = (self.chkUseLogo.State is not 0)
+ self.myFaxDoc.keepTypeFrame = \
+ (self.chkUseCommunicationType.State is not 0)
+ self.myFaxDoc.killEmptyFrames()
+ self.bSaveSuccess = OfficeDocument.store(self.xMSF, TextDocument.xTextDocument,
+ self.sPath, "writer8_template")
+ if self.bSaveSuccess:
+ self.saveConfiguration()
+ xIH = self.xMSF.createInstance( \
+ "com.sun.star.comp.uui.UUIInteractionHandler")
+ loadValues = range(4)
+ loadValues[0] = uno.createUnoStruct( \
+ 'com.sun.star.beans.PropertyValue')
+ loadValues[0].Name = "AsTemplate"
+ loadValues[0].Value = True
+ loadValues[1] = uno.createUnoStruct( \
+ 'com.sun.star.beans.PropertyValue')
+ loadValues[1].Name = "MacroExecutionMode"
+ loadValues[1].Value = ALWAYS_EXECUTE
+ loadValues[2] = uno.createUnoStruct( \
+ 'com.sun.star.beans.PropertyValue')
+ loadValues[2].Name = "UpdateDocMode"
+ loadValues[2].Value = FULL_UPDATE
+ loadValues[3] = uno.createUnoStruct( \
+ 'com.sun.star.beans.PropertyValue')
+ loadValues[3].Name = "InteractionHandler"
+ loadValues[3].Value = xIH
+ if self.bEditTemplate:
+ loadValues[0].Value = False
+ else:
+ loadValues[0].Value = True
+
+ oDoc = OfficeDocument.load(Desktop.getDesktop(self.xMSF),
+ self.sPath, "_default", loadValues)
+ myViewHandler = ViewHandler(self.xMSF, oDoc)
+ myViewHandler.setViewSetting("ZoomType", OPTIMAL)
+ else:
+ pass
+ #TODO: Error Handling
+
+ except Exception, e:
+ traceback.print_exc()
+ finally:
+ if endWizard:
+ self.xUnoDialog.endExecute()
+ self.running = False
+
+ return True
+
+ def closeDocument(self):
+ try:
+ self.myFaxDoc.xFrame.close(False)
+ except CloseVetoException, e:
+ traceback.print_exc()
+
+ def insertRoadmap(self):
+ self.addRoadmap()
+ i = 0
+ i = self.insertRoadmapItem(
+ 0, True, self.resources.RoadmapLabels[
+ FaxWizardDialogImpl.RM_TYPESTYLE - 1],
+ FaxWizardDialogImpl.RM_TYPESTYLE)
+ i = self.insertRoadmapItem(
+ i, True, self.resources.RoadmapLabels[
+ FaxWizardDialogImpl.RM_ELEMENTS - 1],
+ FaxWizardDialogImpl.RM_ELEMENTS)
+ i = self.insertRoadmapItem(
+ i, True, self.resources.RoadmapLabels[
+ FaxWizardDialogImpl.RM_SENDERRECEIVER - 1],
+ FaxWizardDialogImpl.RM_SENDERRECEIVER)
+ i = self.insertRoadmapItem(
+ i, False, self.resources.RoadmapLabels[
+ FaxWizardDialogImpl.RM_FOOTER - 1], FaxWizardDialogImpl.RM_FOOTER)
+ i = self.insertRoadmapItem(i, True,
+ self.resources.RoadmapLabels[
+ FaxWizardDialogImpl.RM_FINALSETTINGS - 1],
+ FaxWizardDialogImpl.RM_FINALSETTINGS)
+ self.setRoadmapInteractive(True)
+ self.setRoadmapComplete(True)
+ self.setCurrentRoadmapItemID(1)
+
+ class __myPathSelectionListener(XPathSelectionListener):
+
+ def validatePath(self):
+ if self.myPathSelection.usedPathPicker:
+ self.__filenameChanged = True
+
+ self.myPathSelection.usedPathPicker = False
+
+ def insertPathSelectionControl(self):
+ self.myPathSelection = PathSelection(self.xMSF,
+ self, PathSelection.TransferMode.SAVE,
+ PathSelection.DialogTypes.FILE)
+ self.myPathSelection.insert(
+ 5, 97, 70, 205, 45, self.resources.reslblTemplatePath_value,
+ True, HelpIds.getHelpIdString(HID + 34),
+ HelpIds.getHelpIdString(HID + 35))
+ self.myPathSelection.sDefaultDirectory = self.UserTemplatePath
+ self.myPathSelection.sDefaultName = "myFaxTemplate.ott"
+ self.myPathSelection.sDefaultFilter = "writer8_template"
+ self.myPathSelection.addSelectionListener( \
+ self.__myPathSelectionListener())
+
+ def __updateUI(self):
+ UnoDataAware.updateUIs(self.mainDA)
+ UnoDataAware.updateUIs(self.faxDA)
+
+ def __initializePaths(self):
+ try:
+ self.sTemplatePath = FileAccess.getOfficePath2(self.xMSF,
+ "Template", "share", "/wizard")
+ self.UserTemplatePath = FileAccess.getOfficePath2(self.xMSF,
+ "Template", "user", "")
+ self.sBitmapPath = FileAccess.combinePaths(self.xMSF,
+ self.sTemplatePath, "/../wizard/bitmap")
+ except NoValidPathException, e:
+ traceback.print_exc()
+
+ def initializeTemplates(self, xMSF):
+ try:
+ self.sFaxPath = FileAccess.combinePaths(xMSF, self.sTemplatePath,
+ "/wizard/fax")
+ self.sWorkPath = FileAccess.getOfficePath2(xMSF, "Work", "", "")
+ self.BusinessFiles = FileAccess.getFolderTitles(xMSF, "bus",
+ self.sFaxPath)
+ self.PrivateFiles = FileAccess.getFolderTitles(xMSF, "pri",
+ self.sFaxPath)
+ self.setControlProperty("lstBusinessStyle", "StringItemList",
+ tuple(self.BusinessFiles[0]))
+ self.setControlProperty("lstPrivateStyle", "StringItemList",
+ tuple(self.PrivateFiles[0]))
+ self.setControlProperty("lstBusinessStyle", "SelectedItems", (0,))
+ self.setControlProperty("lstPrivateStyle", "SelectedItems" , (0,))
+ return True
+ except NoValidPathException, e:
+ # TODO Auto-generated catch block
+ traceback.print_exc()
+ return False
+
+ def initializeElements(self):
+ self.setControlProperty("chkUseLogo",
+ PropertyNames.PROPERTY_ENABLED,
+ self.myFaxDoc.hasElement("Company Logo"))
+ self.setControlProperty("chkUseSubject",
+ PropertyNames.PROPERTY_ENABLED,
+ self.myFaxDoc.hasElement("Subject Line"))
+ self.setControlProperty("chkUseDate",
+ PropertyNames.PROPERTY_ENABLED,
+ self.myFaxDoc.hasElement("Date"))
+ self.myFaxDoc.updateDateFields()
+
+ def initializeSalutation(self):
+ self.setControlProperty("lstSalutation", "StringItemList",
+ self.resources.SalutationLabels)
+
+ def initializeGreeting(self):
+ self.setControlProperty("lstGreeting", "StringItemList",
+ self.resources.GreetingLabels)
+
+ def initializeCommunication(self):
+ self.setControlProperty("lstCommunicationType", "StringItemList",
+ self.resources.CommunicationLabels)
+
+ def __setDefaultForGreetingAndSalutationAndCommunication(self):
+ if self.lstSalutation.Text == "":
+ self.lstSalutation.setText(self.resources.SalutationLabels[0])
+
+ if self.lstGreeting.Text == "":
+ self.lstGreeting.setText(self.resources.GreetingLabels[0])
+
+ if self.lstCommunicationType.Text == "":
+ self.lstCommunicationType.setText( \
+ self.resources.CommunicationLabels[0])
+
+ def initConfiguration(self):
+ try:
+ self.myConfig = CGFaxWizard()
+ root = Configuration.getConfigurationRoot(self.xMSF,
+ "/org.openoffice.Office.Writer/Wizards/Fax", False)
+ self.myConfig.readConfiguration(root, "cp_")
+ self.mainDA.append(RadioDataAware.attachRadioButtons(
+ self.myConfig, "cp_FaxType",
+ (self.optBusinessFax, self.optPrivateFax), True))
+ self.mainDA.append(UnoDataAware.attachListBox(
+ self.myConfig.cp_BusinessFax, "cp_Style",
+ self.lstBusinessStyle, True))
+ self.mainDA.append(UnoDataAware.attachListBox(
+ self.myConfig.cp_PrivateFax, "cp_Style", self.lstPrivateStyle,
+ True))
+ cgl = self.myConfig.cp_BusinessFax
+ self.faxDA.append(UnoDataAware.attachCheckBox(cgl,
+ "cp_PrintCompanyLogo", self.chkUseLogo, True))
+ self.faxDA.append(UnoDataAware.attachCheckBox(cgl,
+ "cp_PrintSubjectLine", self.chkUseSubject, True))
+ self.faxDA.append(UnoDataAware.attachCheckBox(cgl,
+ "cp_PrintSalutation", self.chkUseSalutation, True))
+ self.faxDA.append(UnoDataAware.attachCheckBox(cgl,
+ "cp_PrintDate", self.chkUseDate, True))
+ self.faxDA.append(UnoDataAware.attachCheckBox(cgl,
+ "cp_PrintCommunicationType", self.chkUseCommunicationType,
+ True))
+ self.faxDA.append(UnoDataAware.attachCheckBox(cgl,
+ "cp_PrintGreeting", self.chkUseGreeting, True))
+ self.faxDA.append(UnoDataAware.attachCheckBox(cgl,
+ "cp_PrintFooter", self.chkUseFooter, True))
+ self.faxDA.append(UnoDataAware.attachEditControl(cgl,
+ "cp_Salutation", self.lstSalutation, True))
+ self.faxDA.append(UnoDataAware.attachEditControl(cgl,
+ "cp_Greeting", self.lstGreeting, True))
+ self.faxDA.append(UnoDataAware.attachEditControl(cgl,
+ "cp_CommunicationType", self.lstCommunicationType,
+ True))
+ self.faxDA.append(RadioDataAware.attachRadioButtons(cgl,
+ "cp_SenderAddressType", (self.optSenderDefine, \
+ self.optSenderPlaceholder), True))
+ self.faxDA.append(UnoDataAware.attachEditControl(cgl,
+ "cp_SenderCompanyName", self.txtSenderName, True))
+ self.faxDA.append(UnoDataAware.attachEditControl(cgl,
+ "cp_SenderStreet", self.txtSenderStreet, True))
+ self.faxDA.append(UnoDataAware.attachEditControl(cgl,
+ "cp_SenderPostCode", self.txtSenderPostCode, True))
+ self.faxDA.append(UnoDataAware.attachEditControl(cgl,
+ "cp_SenderState", self.txtSenderState, True))
+ self.faxDA.append(UnoDataAware.attachEditControl(cgl,
+ "cp_SenderCity", self.txtSenderCity, True))
+ self.faxDA.append(UnoDataAware.attachEditControl(cgl,
+ "cp_SenderFax", self.txtSenderFax, True))
+ self.faxDA.append(RadioDataAware.attachRadioButtons(cgl,
+ "cp_ReceiverAddressType", (self.optReceiverDatabase,
+ self.optReceiverPlaceholder), True))
+ self.faxDA.append(UnoDataAware.attachEditControl(cgl,
+ "cp_Footer", self.txtFooter, True))
+ self.faxDA.append(UnoDataAware.attachCheckBox(cgl,
+ "cp_FooterOnlySecondPage", self.chkFooterNextPages,
+ True))
+ self.faxDA.append(UnoDataAware.attachCheckBox(cgl,
+ "cp_FooterPageNumbers", self.chkFooterPageNumbers,
+ True))
+ self.faxDA.append(RadioDataAware.attachRadioButtons(cgl,
+ "cp_CreationType", (self.optCreateFax, self.optMakeChanges),
+ True))
+ self.faxDA.append(UnoDataAware.attachEditControl(cgl,
+ "cp_TemplateName", self.txtTemplateName, True))
+ self.faxDA.append(UnoDataAware.attachEditControl(cgl,
+ "cp_TemplatePath", self.myPathSelection.xSaveTextBox,
+ True))
+ except Exception, exception:
+ traceback.print_exc()
+
+ def saveConfiguration(self):
+ try:
+ root = Configuration.getConfigurationRoot(self.xMSF,
+ "/org.openoffice.Office.Writer/Wizards/Fax", True)
+ self.myConfig.writeConfiguration(root, "cp_")
+ root.commitChanges()
+ except Exception, e:
+ traceback.print_exc()
+
+ def setConfiguration(self):
+ #set correct Configuration tree:
+ if self.optBusinessFax.State:
+ self.optBusinessFaxItemChanged()
+ if self.optPrivateFax.State:
+ self.optPrivateFaxItemChanged()
+
+ def optBusinessFaxItemChanged(self):
+ DataAware.setDataObjects(self.faxDA,
+ self.myConfig.cp_BusinessFax, True)
+ self.setControlProperty("lblBusinessStyle",
+ PropertyNames.PROPERTY_ENABLED, True)
+ self.setControlProperty("lstBusinessStyle",
+ PropertyNames.PROPERTY_ENABLED, True)
+ self.setControlProperty("lblPrivateStyle",
+ PropertyNames.PROPERTY_ENABLED, False)
+ self.setControlProperty("lstPrivateStyle",
+ PropertyNames.PROPERTY_ENABLED, False)
+ self.lstBusinessStyleItemChanged()
+ self.__enableSenderReceiver()
+ self.__setPossibleFooter(True)
+ def lstBusinessStyleItemChanged(self):
+ TextDocument.xTextDocument = self.myFaxDoc.loadAsPreview( \
+ self.BusinessFiles[1][self.lstBusinessStyle.SelectedItemPos],
+ False)
+ self.initializeElements()
+ self.setElements()
+
+ def optPrivateFaxItemChanged(self):
+ DataAware.setDataObjects(self.faxDA,
+ self.myConfig.cp_PrivateFax, True)
+ self.setControlProperty("lblBusinessStyle",
+ PropertyNames.PROPERTY_ENABLED, False)
+ self.setControlProperty("lstBusinessStyle",
+ PropertyNames.PROPERTY_ENABLED, False)
+ self.setControlProperty("lblPrivateStyle",
+ PropertyNames.PROPERTY_ENABLED, True)
+ self.setControlProperty("lstPrivateStyle",
+ PropertyNames.PROPERTY_ENABLED, True)
+ self.lstPrivateStyleItemChanged()
+ self.__disableSenderReceiver()
+ self.__setPossibleFooter(False)
+
+ def lstPrivateStyleItemChanged(self):
+ TextDocument.xTextDocument = self.myFaxDoc.loadAsPreview( \
+ self.PrivateFiles[1][self.lstPrivateStyle.SelectedItemPos],
+ False)
+ self.initializeElements()
+ self.setElements()
+
+ def txtTemplateNameTextChanged(self):
+ xDocProps = TextDocument.xTextDocument.DocumentProperties
+ xDocProps.Title = self.txtTemplateName.Text
+
+ def optSenderPlaceholderItemChanged(self):
+ self.setControlProperty("lblSenderName",
+ PropertyNames.PROPERTY_ENABLED, False)
+ self.setControlProperty("lblSenderStreet",
+ PropertyNames.PROPERTY_ENABLED, False)
+ self.setControlProperty("lblPostCodeCity",
+ PropertyNames.PROPERTY_ENABLED, False)
+ self.setControlProperty("lblSenderFax",
+ PropertyNames.PROPERTY_ENABLED, False)
+ self.setControlProperty("txtSenderName",
+ PropertyNames.PROPERTY_ENABLED, False)
+ self.setControlProperty("txtSenderStreet",
+ PropertyNames.PROPERTY_ENABLED, False)
+ self.setControlProperty("txtSenderPostCode",
+ PropertyNames.PROPERTY_ENABLED, False)
+ self.setControlProperty("txtSenderState",
+ PropertyNames.PROPERTY_ENABLED, False)
+ self.setControlProperty("txtSenderCity",
+ PropertyNames.PROPERTY_ENABLED, False)
+ self.setControlProperty("txtSenderFax",
+ PropertyNames.PROPERTY_ENABLED, False)
+ self.myFaxDoc.fillSenderWithUserData()
+
+ def optSenderDefineItemChanged(self):
+ self.setControlProperty("lblSenderName",
+ PropertyNames.PROPERTY_ENABLED, True)
+ self.setControlProperty("lblSenderStreet",
+ PropertyNames.PROPERTY_ENABLED, True)
+ self.setControlProperty("lblPostCodeCity",
+ PropertyNames.PROPERTY_ENABLED, True)
+ self.setControlProperty("lblSenderFax",
+ PropertyNames.PROPERTY_ENABLED, True)
+ self.setControlProperty("txtSenderName",
+ PropertyNames.PROPERTY_ENABLED, True)
+ self.setControlProperty("txtSenderStreet",
+ PropertyNames.PROPERTY_ENABLED, True)
+ self.setControlProperty("txtSenderPostCode",
+ PropertyNames.PROPERTY_ENABLED, True)
+ self.setControlProperty("txtSenderState",
+ PropertyNames.PROPERTY_ENABLED, True)
+ self.setControlProperty("txtSenderCity",
+ PropertyNames.PROPERTY_ENABLED, True)
+ self.setControlProperty("txtSenderFax",
+ PropertyNames.PROPERTY_ENABLED, True)
+
+ self.myFieldHandler = TextFieldHandler(self.myFaxDoc.xMSF,
+ TextDocument.xTextDocument)
+ self.txtSenderNameTextChanged()
+ self.txtSenderStreetTextChanged()
+ self.txtSenderPostCodeTextChanged()
+ self.txtSenderStateTextChanged()
+ self.txtSenderCityTextChanged()
+ self.txtSenderFaxTextChanged()
+
+ def optReceiverPlaceholderItemChanged(self):
+ OfficeDocument.attachEventCall(TextDocument.xTextDocument, "OnNew",
+ "StarBasic", "macro:#/Template.Correspondence.Placeholder()")
+
+ def optReceiverDatabaseItemChanged(self):
+ OfficeDocument.attachEventCall(TextDocument.xTextDocument, "OnNew",
+ "StarBasic", "macro:#/Template.Correspondence.Database()")
+
+ def optCreateFaxItemChanged(self):
+ self.bEditTemplate = False
+
+ def optMakeChangesItemChanged(self):
+ self.bEditTemplate = True
+
+ def txtSenderNameTextChanged(self):
+ self.myFieldHandler.changeUserFieldContent(
+ "Company", self.txtSenderName.Text)
+
+ def txtSenderStreetTextChanged(self):
+ self.myFieldHandler.changeUserFieldContent(
+ "Street", self.txtSenderStreet.Text)
+
+ def txtSenderCityTextChanged(self):
+ self.myFieldHandler.changeUserFieldContent(
+ "City", self.txtSenderCity.Text)
+
+ def txtSenderPostCodeTextChanged(self):
+ self.myFieldHandler.changeUserFieldContent(
+ "PostCode", self.txtSenderPostCode.Text)
+
+ def txtSenderStateTextChanged(self):
+ self.myFieldHandler.changeUserFieldContent(
+ PropertyNames.PROPERTY_STATE, self.txtSenderState.Text)
+
+ def txtSenderFaxTextChanged(self):
+ self.myFieldHandler.changeUserFieldContent(
+ "Fax", self.txtSenderFax.Text)
+
+ #switch Elements on/off --------------------------------------------------
+
+ def setElements(self):
+ #UI relevant:
+ if self.optSenderDefine.State:
+ self.optSenderDefineItemChanged()
+
+ if self.optSenderPlaceholder.State:
+ self.optSenderPlaceholderItemChanged()
+
+ self.chkUseLogoItemChanged()
+ self.chkUseSubjectItemChanged()
+ self.chkUseSalutationItemChanged()
+ self.chkUseGreetingItemChanged()
+ self.chkUseCommunicationItemChanged()
+ self.chkUseDateItemChanged()
+ self.chkUseFooterItemChanged()
+ self.txtTemplateNameTextChanged()
+ #not UI relevant:
+ if self.optReceiverDatabase.State:
+ self.optReceiverDatabaseItemChanged()
+
+ if self.optReceiverPlaceholder.State:
+ self.optReceiverPlaceholderItemChanged()
+
+ if self.optCreateFax.State:
+ self.optCreateFaxItemChanged()
+
+ if self.optMakeChanges.State:
+ self.optMakeChangesItemChanged()
+
+ def chkUseLogoItemChanged(self):
+ if self.myFaxDoc.hasElement("Company Logo"):
+ self.myFaxDoc.switchElement("Company Logo",
+ (self.chkUseLogo.State is not 0))
+
+ def chkUseSubjectItemChanged(self):
+ if self.myFaxDoc.hasElement("Subject Line"):
+ self.myFaxDoc.switchElement("Subject Line",
+ (self.chkUseSubject.State is not 0))
+
+ def chkUseDateItemChanged(self):
+ if self.myFaxDoc.hasElement("Date"):
+ self.myFaxDoc.switchElement("Date",
+ (self.chkUseDate.State is not 0))
+
+ def chkUseFooterItemChanged(self):
+ try:
+ bFooterPossible = (self.chkUseFooter.State is not 0) \
+ and bool(self.getControlProperty("chkUseFooter",
+ PropertyNames.PROPERTY_ENABLED))
+ if self.chkFooterNextPages.State is not 0:
+ self.myFaxDoc.switchFooter("First Page", False,
+ (self.chkFooterPageNumbers.State is not 0),
+ self.txtFooter.Text)
+ self.myFaxDoc.switchFooter("Standard", bFooterPossible,
+ (self.chkFooterPageNumbers.State is not 0),
+ self.txtFooter.Text)
+ else:
+ self.myFaxDoc.switchFooter("First Page", bFooterPossible,
+ (self.chkFooterPageNumbers.State is not 0),
+ self.txtFooter.Text)
+ self.myFaxDoc.switchFooter("Standard", bFooterPossible,
+ (self.chkFooterPageNumbers.State is not 0),
+ self.txtFooter.Text)
+
+ #enable/disable roadmap item for footer page
+ BPaperItem = self.getRoadmapItemByID( \
+ FaxWizardDialogImpl.RM_FOOTER)
+ Helper.setUnoPropertyValue(BPaperItem,
+ PropertyNames.PROPERTY_ENABLED, bFooterPossible)
+ except Exception, exception:
+ traceback.print_exc()
+
+ def chkFooterNextPagesItemChanged(self):
+ self.chkUseFooterItemChanged()
+
+ def chkFooterPageNumbersItemChanged(self):
+ self.chkUseFooterItemChanged()
+
+ def txtFooterTextChanged(self):
+ self.myFaxDoc.switchFooter("First Page", True,
+ (self.chkFooterPageNumbers.State is not 0),
+ self.txtFooter.Text)
+
+ def chkUseSalutationItemChanged(self):
+ self.myFaxDoc.switchUserField("Salutation",
+ self.lstSalutation.Text, (self.chkUseSalutation.State is not 0))
+ self.setControlProperty("lstSalutation",
+ PropertyNames.PROPERTY_ENABLED,
+ self.chkUseSalutation.State is not 0)
+
+ def lstSalutationItemChanged(self):
+ self.myFaxDoc.switchUserField("Salutation",
+ self.lstSalutation.Text, (self.chkUseSalutation.State is not 0))
+
+ def chkUseCommunicationItemChanged(self):
+ self.myFaxDoc.switchUserField("CommunicationType",
+ self.lstCommunicationType.Text,
+ (self.chkUseCommunicationType.State is not 0))
+ self.setControlProperty("lstCommunicationType",
+ PropertyNames.PROPERTY_ENABLED,
+ self.chkUseCommunicationType.State is not 0)
+
+ def lstCommunicationItemChanged(self):
+ self.myFaxDoc.switchUserField("CommunicationType",
+ self.lstCommunicationType.Text,
+ (self.chkUseCommunicationType.State is not 0))
+
+ def chkUseGreetingItemChanged(self):
+ self.myFaxDoc.switchUserField("Greeting",
+ self.lstGreeting.Text, (self.chkUseGreeting.State is not 0))
+ self.setControlProperty("lstGreeting",
+ PropertyNames.PROPERTY_ENABLED,
+ (self.chkUseGreeting.State is not 0))
+
+ def lstGreetingItemChanged(self):
+ self.myFaxDoc.switchUserField("Greeting", self.lstGreeting.Text,
+ (self.chkUseGreeting.State is not 0))
+
+ def __setPossibleFooter(self, bState):
+ self.setControlProperty("chkUseFooter",
+ PropertyNames.PROPERTY_ENABLED, bState)
+ if not bState:
+ self.chkUseFooter.State = 0
+
+ self.chkUseFooterItemChanged()
+
+ def __enableSenderReceiver(self):
+ BPaperItem = self.getRoadmapItemByID( \
+ FaxWizardDialogImpl.RM_SENDERRECEIVER)
+ Helper.setUnoPropertyValue(BPaperItem,
+ PropertyNames.PROPERTY_ENABLED, True)
+
+ def __disableSenderReceiver(self):
+ BPaperItem = self.getRoadmapItemByID( \
+ FaxWizardDialogImpl.RM_SENDERRECEIVER)
+ Helper.setUnoPropertyValue(BPaperItem,
+ PropertyNames.PROPERTY_ENABLED, False)
+
diff --git a/wizards/com/sun/star/wizards/fax/FaxWizardDialogResources.py b/wizards/com/sun/star/wizards/fax/FaxWizardDialogResources.py
new file mode 100644
index 000000000000..864112fedbd3
--- /dev/null
+++ b/wizards/com/sun/star/wizards/fax/FaxWizardDialogResources.py
@@ -0,0 +1,141 @@
+from common.Resource import Resource
+
+class FaxWizardDialogResources(Resource):
+ UNIT_NAME = "dbwizres"
+ MODULE_NAME = "dbw"
+ RID_FAXWIZARDDIALOG_START = 3200
+ RID_FAXWIZARDCOMMUNICATION_START = 3270
+ RID_FAXWIZARDGREETING_START = 3280
+ RID_FAXWIZARDSALUTATION_START = 3290
+ RID_FAXWIZARDROADMAP_START = 3300
+ RID_RID_COMMON_START = 500
+
+
+ def __init__(self, xmsf):
+ super(FaxWizardDialogResources,self).__init__(xmsf,
+ FaxWizardDialogResources.MODULE_NAME)
+ self.RoadmapLabels = ()
+ self.SalutationLabels = ()
+ self.GreetingLabels = ()
+ self.CommunicationLabels = ()
+
+ #Delete the String, uncomment the self.getResText method
+
+
+ self.resFaxWizardDialog_title = self.getResText(
+ FaxWizardDialogResources.RID_FAXWIZARDDIALOG_START + 1)
+ self.resLabel9_value = self.getResText(
+ FaxWizardDialogResources.RID_FAXWIZARDDIALOG_START + 2)
+ self.resoptBusinessFax_value = self.getResText(
+ FaxWizardDialogResources.RID_FAXWIZARDDIALOG_START + 3)
+ self.resoptPrivateFax_value = self.getResText(
+ FaxWizardDialogResources.RID_FAXWIZARDDIALOG_START + 4)
+ self.reschkUseLogo_value = self.getResText(
+ FaxWizardDialogResources.RID_FAXWIZARDDIALOG_START + 5)
+ self.reschkUseSubject_value = self.getResText(
+ FaxWizardDialogResources.RID_FAXWIZARDDIALOG_START + 6)
+ self.reschkUseSalutation_value = self.getResText(
+ FaxWizardDialogResources.RID_FAXWIZARDDIALOG_START + 7)
+ self.reschkUseGreeting_value = self.getResText(
+ FaxWizardDialogResources.RID_FAXWIZARDDIALOG_START + 8)
+ self.reschkUseFooter_value = self.getResText(
+ FaxWizardDialogResources.RID_FAXWIZARDDIALOG_START + 9)
+ self.resoptSenderPlaceholder_value = self.getResText(
+ FaxWizardDialogResources.RID_FAXWIZARDDIALOG_START + 10)
+ self.resoptSenderDefine_value = self.getResText(
+ FaxWizardDialogResources.RID_FAXWIZARDDIALOG_START + 11)
+ self.restxtTemplateName_value = self.getResText(
+ FaxWizardDialogResources.RID_FAXWIZARDDIALOG_START + 12)
+ self.resoptCreateFax_value = self.getResText(
+ FaxWizardDialogResources.RID_FAXWIZARDDIALOG_START + 13)
+ self.resoptMakeChanges_value = self.getResText(
+ FaxWizardDialogResources.RID_FAXWIZARDDIALOG_START + 14)
+ self.reslblBusinessStyle_value = self.getResText(
+ FaxWizardDialogResources.RID_FAXWIZARDDIALOG_START + 15)
+ self.reslblPrivateStyle_value = self.getResText(
+ FaxWizardDialogResources.RID_FAXWIZARDDIALOG_START + 16)
+ self.reslblIntroduction_value = self.getResText(
+ FaxWizardDialogResources.RID_FAXWIZARDDIALOG_START + 17)
+ self.reslblSenderAddress_value = self.getResText(
+ FaxWizardDialogResources.RID_FAXWIZARDDIALOG_START + 18)
+ self.reslblSenderName_value = self.getResText(
+ FaxWizardDialogResources.RID_FAXWIZARDDIALOG_START + 19)
+ self.reslblSenderStreet_value = self.getResText(
+ FaxWizardDialogResources.RID_FAXWIZARDDIALOG_START + 20)
+ self.reslblPostCodeCity_value = self.getResText(
+ FaxWizardDialogResources.RID_FAXWIZARDDIALOG_START + 21)
+ self.reslblFooter_value = self.getResText(
+ FaxWizardDialogResources.RID_FAXWIZARDDIALOG_START + 22)
+ self.reslblFinalExplanation1_value = self.getResText(
+ FaxWizardDialogResources.RID_FAXWIZARDDIALOG_START + 23)
+ self.reslblFinalExplanation2_value = self.getResText(
+ FaxWizardDialogResources.RID_FAXWIZARDDIALOG_START + 24)
+ self.reslblTemplateName_value = self.getResText(
+ FaxWizardDialogResources.RID_FAXWIZARDDIALOG_START + 25)
+ self.reslblTemplatePath_value = self.getResText(
+ FaxWizardDialogResources.RID_FAXWIZARDDIALOG_START + 26)
+ self.reslblProceed_value = self.getResText(
+ FaxWizardDialogResources.RID_FAXWIZARDDIALOG_START + 27)
+ self.reslblTitle1_value = self.getResText(
+ FaxWizardDialogResources.RID_FAXWIZARDDIALOG_START + 28)
+ self.reslblTitle3_value = self.getResText(
+ FaxWizardDialogResources.RID_FAXWIZARDDIALOG_START + 29)
+ self.reslblTitle4_value = self.getResText(
+ FaxWizardDialogResources.RID_FAXWIZARDDIALOG_START + 30)
+ self.reslblTitle5_value = self.getResText(
+ FaxWizardDialogResources.RID_FAXWIZARDDIALOG_START + 31)
+ self.reslblTitle6_value = self.getResText(
+ FaxWizardDialogResources.RID_FAXWIZARDDIALOG_START + 32)
+ self.reschkFooterNextPages_value = self.getResText(
+ FaxWizardDialogResources.RID_FAXWIZARDDIALOG_START + 33)
+ self.reschkFooterPageNumbers_value = self.getResText(
+ FaxWizardDialogResources.RID_FAXWIZARDDIALOG_START + 34)
+ self.reschkUseDate_value = self.getResText(
+ FaxWizardDialogResources.RID_FAXWIZARDDIALOG_START + 35)
+ self.reschkUseCommunicationType_value = self.getResText(
+ FaxWizardDialogResources.RID_FAXWIZARDDIALOG_START + 36)
+ self.resLabel1_value = self.getResText(
+ FaxWizardDialogResources.RID_FAXWIZARDDIALOG_START + 37)
+ self.resoptReceiverPlaceholder_value = self.getResText(
+ FaxWizardDialogResources.RID_FAXWIZARDDIALOG_START + 38)
+ self.resoptReceiverDatabase_value = self.getResText(
+ FaxWizardDialogResources.RID_FAXWIZARDDIALOG_START + 39)
+ self.resLabel2_value = self.getResText(
+ FaxWizardDialogResources.RID_FAXWIZARDDIALOG_START + 40)
+ self.loadRoadmapResources()
+ self.loadSalutationResources()
+ self.loadGreetingResources()
+ self.loadCommunicationResources()
+ self.loadCommonResources()
+
+ def loadCommonResources(self):
+ self.resOverwriteWarning = self.getResText(
+ FaxWizardDialogResources.RID_RID_COMMON_START + 19)
+ self.resTemplateDescription = self.getResText(
+ FaxWizardDialogResources.RID_RID_COMMON_START + 20)
+
+ def loadRoadmapResources(self):
+ for i in xrange(5):
+ self.RoadmapLabels = self.RoadmapLabels + ((self.getResText(
+ FaxWizardDialogResources.RID_FAXWIZARDROADMAP_START + \
+ + i + 1)),)
+
+ def loadSalutationResources(self):
+ i = 1
+ for i in xrange(4):
+ self.SalutationLabels = self.SalutationLabels + ((self.getResText(
+ FaxWizardDialogResources.RID_FAXWIZARDSALUTATION_START + \
+ i + 1)),)
+
+ def loadGreetingResources(self):
+ for i in xrange(4):
+ self.GreetingLabels = self.GreetingLabels + ((self.getResText(
+ FaxWizardDialogResources.RID_FAXWIZARDGREETING_START + \
+ i +1 )),)
+
+ def loadCommunicationResources(self):
+ for i in xrange(3):
+ self.CommunicationLabels = \
+ self.CommunicationLabels + ((self.getResText(
+ FaxWizardDialogResources.RID_FAXWIZARDCOMMUNICATION_START + \
+ i + 1)),)
diff --git a/wizards/com/sun/star/wizards/fax/__init__.py b/wizards/com/sun/star/wizards/fax/__init__.py
new file mode 100644
index 000000000000..ff5ad269ba10
--- /dev/null
+++ b/wizards/com/sun/star/wizards/fax/__init__.py
@@ -0,0 +1 @@
+"""fax """
diff --git a/wizards/com/sun/star/wizards/letter/CGLetter.py b/wizards/com/sun/star/wizards/letter/CGLetter.py
new file mode 100644
index 000000000000..b9550283711f
--- /dev/null
+++ b/wizards/com/sun/star/wizards/letter/CGLetter.py
@@ -0,0 +1,37 @@
+from common.ConfigGroup import *
+from CGPaperElementLocation import CGPaperElementLocation
+
+class CGLetter(ConfigGroup):
+
+ def __init__(self):
+ self.cp_Style = int()
+ self.cp_BusinessPaper = bool()
+ self.cp_CompanyLogo = CGPaperElementLocation()
+ self.cp_CompanyAddress = CGPaperElementLocation()
+ self.cp_PaperCompanyAddressReceiverField = bool()
+ self.cp_PaperFooter = bool()
+ self.cp_PaperFooterHeight = float()
+ self.cp_Norm = int()
+ self.cp_PrintCompanyLogo = bool()
+ self.cp_PrintCompanyAddressReceiverField = bool()
+ self.cp_PrintLetterSigns = bool()
+ self.cp_PrintSubjectLine = bool()
+ self.cp_PrintSalutation = bool()
+ self.cp_PrintBendMarks = bool()
+ self.cp_PrintGreeting = bool()
+ self.cp_PrintFooter = bool()
+ self.cp_Salutation = str()
+ self.cp_Greeting = str()
+ self.cp_SenderAddressType = int()
+ self.cp_SenderCompanyName = str()
+ self.cp_SenderStreet = str()
+ self.cp_SenderPostCode = str()
+ self.cp_SenderState = str()
+ self.cp_SenderCity = str()
+ self.cp_ReceiverAddressType = int()
+ self.cp_Footer = str()
+ self.cp_FooterOnlySecondPage = bool()
+ self.cp_FooterPageNumbers = bool()
+ self.cp_CreationType = int()
+ self.cp_TemplateName = str()
+ self.cp_TemplatePath = str()
diff --git a/wizards/com/sun/star/wizards/letter/CGLetterWizard.py b/wizards/com/sun/star/wizards/letter/CGLetterWizard.py
new file mode 100644
index 000000000000..3df1ee17b800
--- /dev/null
+++ b/wizards/com/sun/star/wizards/letter/CGLetterWizard.py
@@ -0,0 +1,10 @@
+from common.ConfigGroup import *
+from CGLetter import CGLetter
+
+class CGLetterWizard (ConfigGroup):
+
+ def __init__(self):
+ self.cp_LetterType = int()
+ self.cp_BusinessLetter = CGLetter()
+ self.cp_PrivateOfficialLetter = CGLetter()
+ self.cp_PrivateLetter = CGLetter()
diff --git a/wizards/com/sun/star/wizards/letter/CGPaperElementLocation.py b/wizards/com/sun/star/wizards/letter/CGPaperElementLocation.py
new file mode 100644
index 000000000000..901fbae82a91
--- /dev/null
+++ b/wizards/com/sun/star/wizards/letter/CGPaperElementLocation.py
@@ -0,0 +1,10 @@
+from common.ConfigGroup import *
+
+class CGPaperElementLocation(ConfigGroup):
+
+ def __init__(self):
+ self.cp_Display = bool()
+ self.cp_Width = float()
+ self.cp_Height = float()
+ self.cp_X = float()
+ self.cp_Y = float()
diff --git a/wizards/com/sun/star/wizards/letter/LetterDocument.py b/wizards/com/sun/star/wizards/letter/LetterDocument.py
new file mode 100644
index 000000000000..517d0c669adb
--- /dev/null
+++ b/wizards/com/sun/star/wizards/letter/LetterDocument.py
@@ -0,0 +1,261 @@
+from text.TextDocument import *
+from text.TextSectionHandler import TextSectionHandler
+from text.TextFieldHandler import TextFieldHandler
+from com.sun.star.table import BorderLine
+from common.PropertyNames import PropertyNames
+
+from com.sun.star.text.ControlCharacter import PARAGRAPH_BREAK
+from com.sun.star.style.ParagraphAdjust import CENTER
+from com.sun.star.text.PageNumberType import CURRENT
+from com.sun.star.style.NumberingType import ARABIC
+from com.sun.star.text.HoriOrientation import NONE as NONEHORI
+from com.sun.star.text.VertOrientation import NONE as NONEVERT
+from com.sun.star.text.RelOrientation import PAGE_FRAME
+from com.sun.star.text.TextContentAnchorType import AT_PAGE
+from com.sun.star.text.SizeType import FIX
+from com.sun.star.text.WrapTextMode import THROUGHT
+from com.sun.star.awt.FontWeight import BOLD
+
+class LetterDocument(TextDocument):
+
+ TextDocument = None
+
+ def __init__(self, xMSF, listener):
+ super(LetterDocument,self).__init__(xMSF, listener, None,
+ "WIZARD_LIVE_PREVIEW")
+ self.keepLogoFrame = True
+ self.keepBendMarksFrame = True
+ self.keepLetterSignsFrame = True
+ self.keepSenderAddressRepeatedFrame = True
+ self.keepAddressFrame = True
+
+ def switchElement(self, sElement, bState):
+ try:
+ mySectionHandler = TextSectionHandler(
+ self.xMSF, TextDocument.xTextDocument)
+ oSection = \
+ mySectionHandler.xTextDocument.TextSections.getByName(sElement)
+ Helper.setUnoPropertyValue(oSection, "IsVisible", bState)
+ except Exception:
+ traceback.print_exc()
+
+ def updateDateFields(self):
+ FH = TextFieldHandler(
+ TextDocument.xTextDocument, TextDocument.xTextDocument)
+ FH.updateDateFields()
+
+ def switchFooter(self, sPageStyle, bState, bPageNumber, sText):
+ if TextDocument.xTextDocument != None:
+ try:
+ TextDocument.xTextDocument.lockControllers()
+ xNameAccess = TextDocument.xTextDocument.StyleFamilies
+ xPageStyleCollection = xNameAccess.getByName("PageStyles")
+ xPageStyle = xPageStyleCollection.getByName(sPageStyle)
+ if bState:
+ Helper.setUnoPropertyValue(xPageStyle, "FooterIsOn", True)
+ xFooterText = \
+ Helper.getUnoPropertyValue(xPageStyle, "FooterText")
+ xFooterText.String = sText
+ if bPageNumber:
+ #Adding the Page Number
+ myCursor = xFooterText.Text.createTextCursor()
+ myCursor.gotoEnd(False)
+ xFooterText.insertControlCharacter(myCursor,
+ PARAGRAPH_BREAK, False)
+ myCursor.setPropertyValue("ParaAdjust", CENTER )
+
+ xPageNumberField = \
+ TextDocument.xTextDocument.createInstance(
+ "com.sun.star.text.TextField.PageNumber")
+ xPageNumberField.setPropertyValue("SubType", CURRENT)
+ xPageNumberField.NumberingType = ARABIC
+ xFooterText.insertTextContent(xFooterText.End,
+ xPageNumberField, False)
+
+ else:
+ Helper.setUnoPropertyValue(
+ xPageStyle, "FooterIsOn", False)
+
+ TextDocument.xTextDocument.unlockControllers()
+ except Exception:
+ traceback.print_exc()
+
+ def hasElement(self, sElement):
+ if TextDocument.xTextDocument != None:
+ SH = TextSectionHandler(self.xMSF, TextDocument.xTextDocument)
+ return SH.hasTextSectionByName(sElement)
+ else:
+ return False
+
+ def switchUserField(self, sFieldName, sNewContent, bState):
+ myFieldHandler = TextFieldHandler(
+ self.xMSF, TextDocument.xTextDocument)
+ if bState:
+ myFieldHandler.changeUserFieldContent(sFieldName, sNewContent)
+ else:
+ myFieldHandler.changeUserFieldContent(sFieldName, "")
+
+ def fillSenderWithUserData(self):
+ try:
+ myFieldHandler = TextFieldHandler(
+ TextDocument.xTextDocument, TextDocument.xTextDocument)
+ oUserDataAccess = Configuration.getConfigurationRoot(
+ self.xMSF, "org.openoffice.UserProfile/Data", False)
+ myFieldHandler.changeUserFieldContent(
+ "Company", Helper.getUnoObjectbyName(oUserDataAccess, "o"))
+ myFieldHandler.changeUserFieldContent(
+ "Street", Helper.getUnoObjectbyName(oUserDataAccess, "street"))
+ myFieldHandler.changeUserFieldContent(
+ "PostCode",
+ Helper.getUnoObjectbyName(oUserDataAccess, "postalcode"))
+ myFieldHandler.changeUserFieldContent(
+ "City", Helper.getUnoObjectbyName(oUserDataAccess, "l"))
+ myFieldHandler.changeUserFieldContent(
+ PropertyNames.PROPERTY_STATE,
+ Helper.getUnoObjectbyName(oUserDataAccess, "st"))
+ except Exception:
+ traceback.print_exc()
+
+ def killEmptyUserFields(self):
+ myFieldHandler = TextFieldHandler(
+ self.xMSF, TextDocument.xTextDocument)
+ myFieldHandler.removeUserFieldByContent("")
+
+ def killEmptyFrames(self):
+ try:
+ if not self.keepLogoFrame:
+ xTF = self.getFrameByName(
+ "Company Logo", TextDocument.xTextDocument)
+ if xTF != None:
+ xTF.dispose()
+
+ if not self.keepBendMarksFrame:
+ xTF = self.getFrameByName(
+ "Bend Marks", TextDocument.xTextDocument)
+ if xTF != None:
+ xTF.dispose()
+
+ if not self.keepLetterSignsFrame:
+ xTF = self.getFrameByName(
+ "Letter Signs", TextDocument.xTextDocument)
+ if xTF != None:
+ xTF.dispose()
+
+ if not self.keepSenderAddressRepeatedFrame:
+ xTF = self.getFrameByName(
+ "Sender Address Repeated", TextDocument.xTextDocument)
+ if xTF != None:
+ xTF.dispose()
+
+ if not self.keepAddressFrame:
+ xTF = self.getFrameByName(
+ "Sender Address", TextDocument.xTextDocument)
+ if xTF != None:
+ xTF.dispose()
+
+ except Exception:
+ traceback.print_exc()
+
+class BusinessPaperObject(object):
+
+ def __init__(self, FrameText, Width, Height, XPos, YPos):
+ self.iWidth = Width
+ self.iHeight = Height
+ self.iXPos = XPos
+ self.iYPos = YPos
+ self.xFrame = None
+ try:
+ self.xFrame = \
+ TextDocument.xTextDocument.createInstance(
+ "com.sun.star.text.TextFrame")
+ self.setFramePosition()
+ Helper.setUnoPropertyValue(
+ self.xFrame,
+ "AnchorType", AT_PAGE)
+ Helper.setUnoPropertyValue(
+ self.xFrame,
+ "SizeType", FIX)
+
+ Helper.setUnoPropertyValue(
+ self.xFrame,
+ "TextWrap", THROUGHT)
+ Helper.setUnoPropertyValue(
+ self.xFrame,
+ "Opaque", True);
+ Helper.setUnoPropertyValue(
+ self.xFrame,
+ "BackColor", 15790320)
+
+ myBorder = BorderLine()
+ myBorder.OuterLineWidth = 0
+ Helper.setUnoPropertyValue(
+ self.xFrame,
+ "LeftBorder", myBorder)
+ Helper.setUnoPropertyValue(
+ self.xFrame,
+ "RightBorder", myBorder)
+ Helper.setUnoPropertyValue(
+ self.xFrame,
+ "TopBorder", myBorder)
+ Helper.setUnoPropertyValue(
+ self.xFrame,
+ "BottomBorder", myBorder)
+ Helper.setUnoPropertyValue(
+ self.xFrame,
+ "Print", False)
+
+ xTextCursor = \
+ TextDocument.xTextDocument.Text.createTextCursor()
+ xTextCursor.gotoEnd(True)
+ xText = TextDocument.xTextDocument.Text
+ xText.insertTextContent(
+ xTextCursor, self.xFrame,
+ False)
+
+ xFrameText = self.xFrame.Text
+ xFrameCursor = xFrameText.createTextCursor()
+ xFrameCursor.setPropertyValue("CharWeight", BOLD)
+ xFrameCursor.setPropertyValue("CharColor", 16777215)
+ xFrameCursor.setPropertyValue("CharFontName", "Albany")
+ xFrameCursor.setPropertyValue("CharHeight", 18)
+
+ xFrameText.insertString(xFrameCursor, FrameText, False)
+ except Exception:
+ traceback.print_exc()
+
+ def setFramePosition(self):
+ try:
+ Helper.setUnoPropertyValue(
+ self.xFrame,
+ "HoriOrient", NONEHORI)
+ Helper.setUnoPropertyValue(
+ self.xFrame,
+ "VertOrient", NONEVERT)
+ Helper.setUnoPropertyValue(
+ self.xFrame,
+ PropertyNames.PROPERTY_HEIGHT, self.iHeight)
+ Helper.setUnoPropertyValue(
+ self.xFrame,
+ PropertyNames.PROPERTY_WIDTH, self.iWidth)
+ Helper.setUnoPropertyValue(
+ self.xFrame,
+ "HoriOrientPosition", self.iXPos)
+ Helper.setUnoPropertyValue(
+ self.xFrame,
+ "VertOrientPosition", self.iYPos)
+ Helper.setUnoPropertyValue(
+ self.xFrame,
+ "HoriOrientRelation", PAGE_FRAME)
+ Helper.setUnoPropertyValue(
+ self.xFrame,
+ "VertOrientRelation", PAGE_FRAME)
+ except Exception:
+ traceback.print_exc()
+
+ def removeFrame(self):
+ if self.xFrame is not None:
+ try:
+ TextDocument.xTextDocument.Text.removeTextContent(
+ self.xFrame)
+ except Exception:
+ traceback.print_exc()
diff --git a/wizards/com/sun/star/wizards/letter/LetterWizardDialog.py b/wizards/com/sun/star/wizards/letter/LetterWizardDialog.py
new file mode 100644
index 000000000000..ac87206f243c
--- /dev/null
+++ b/wizards/com/sun/star/wizards/letter/LetterWizardDialog.py
@@ -0,0 +1,1141 @@
+from ui.WizardDialog import *
+from LetterWizardDialogConst import *
+from LetterWizardDialogResources import LetterWizardDialogResources
+
+from com.sun.star.awt.FontUnderline import SINGLE
+
+class LetterWizardDialog(WizardDialog):
+
+ def __init__(self, xmsf):
+ super(LetterWizardDialog, self).__init__(xmsf, HIDMAIN )
+
+ self.resources = LetterWizardDialogResources(xmsf)
+ Helper.setUnoPropertyValues(
+ self.xDialogModel,
+ ("Closeable",
+ PropertyNames.PROPERTY_HEIGHT,
+ "Moveable",
+ PropertyNames.PROPERTY_NAME,
+ PropertyNames.PROPERTY_POSITION_X,
+ PropertyNames.PROPERTY_POSITION_Y,
+ PropertyNames.PROPERTY_STEP,
+ PropertyNames.PROPERTY_TABINDEX,
+ "Title",
+ PropertyNames.PROPERTY_WIDTH),
+ (True, 210, True,
+ "LetterWizardDialog", 104, 52, 1, 1,
+ self.resources.resLetterWizardDialog_title, 310))
+ self.fontDescriptor1 = \
+ uno.createUnoStruct('com.sun.star.awt.FontDescriptor')
+ self.fontDescriptor2 = \
+ uno.createUnoStruct('com.sun.star.awt.FontDescriptor')
+ self.fontDescriptor5 = \
+ uno.createUnoStruct('com.sun.star.awt.FontDescriptor')
+ self.fontDescriptor6 = \
+ uno.createUnoStruct('com.sun.star.awt.FontDescriptor')
+ self.fontDescriptor1.Weight = 150
+ self.fontDescriptor1.Underline = SINGLE
+ self.fontDescriptor2.Weight = 100
+ self.fontDescriptor5.Weight = 100
+ self.fontDescriptor6.Weight = 150
+
+ def buildStep1(self):
+ self.optBusinessLetter = self.insertRadioButton(
+ "optBusinessLetter", OPTBUSINESSLETTER_ITEM_CHANGED,
+ (PropertyNames.PROPERTY_HEIGHT,
+ PropertyNames.PROPERTY_HELPURL,
+ PropertyNames.PROPERTY_LABEL,
+ PropertyNames.PROPERTY_NAME,
+ PropertyNames.PROPERTY_POSITION_X,
+ PropertyNames.PROPERTY_POSITION_Y,
+ PropertyNames.PROPERTY_STEP,
+ PropertyNames.PROPERTY_TABINDEX,
+ PropertyNames.PROPERTY_WIDTH),
+ (8, HelpIds.getHelpIdString(HID + 1),
+ self.resources.resoptBusinessLetter_value,
+ "optBusinessLetter", 97, 28, 1, 1, 184), self)
+ self.optPrivOfficialLetter = self.insertRadioButton(
+ "optPrivOfficialLetter", OPTPRIVOFFICIALLETTER_ITEM_CHANGED,
+ (PropertyNames.PROPERTY_HEIGHT,
+ PropertyNames.PROPERTY_HELPURL,
+ PropertyNames.PROPERTY_LABEL,
+ PropertyNames.PROPERTY_NAME,
+ PropertyNames.PROPERTY_POSITION_X,
+ PropertyNames.PROPERTY_POSITION_Y,
+ PropertyNames.PROPERTY_STEP,
+ PropertyNames.PROPERTY_TABINDEX,
+ PropertyNames.PROPERTY_WIDTH),
+ (8, HelpIds.getHelpIdString(HID + 2),
+ self.resources.resoptPrivOfficialLetter_value,
+ "optPrivOfficialLetter", 97, 74, 1, 2, 184), self)
+ self.optPrivateLetter = self.insertRadioButton(
+ "optPrivateLetter", OPTPRIVATELETTER_ITEM_CHANGED,
+ (PropertyNames.PROPERTY_HEIGHT,
+ PropertyNames.PROPERTY_HELPURL,
+ PropertyNames.PROPERTY_LABEL,
+ PropertyNames.PROPERTY_NAME,
+ PropertyNames.PROPERTY_POSITION_X,
+ PropertyNames.PROPERTY_POSITION_Y,
+ PropertyNames.PROPERTY_STEP,
+ PropertyNames.PROPERTY_TABINDEX,
+ PropertyNames.PROPERTY_WIDTH),
+ (8, HelpIds.getHelpIdString(HID + 3),
+ self.resources.resoptPrivateLetter_value,
+ "optPrivateLetter", 97, 106, 1, 3, 184), self)
+ self.lstBusinessStyle = self.insertListBox(
+ "lstBusinessStyle", LSTBUSINESSSTYLE_ACTION_PERFORMED,
+ LSTBUSINESSSTYLE_ITEM_CHANGED,
+ ("Dropdown",
+ PropertyNames.PROPERTY_HEIGHT,
+ PropertyNames.PROPERTY_HELPURL,
+ PropertyNames.PROPERTY_NAME,
+ PropertyNames.PROPERTY_POSITION_X,
+ PropertyNames.PROPERTY_POSITION_Y,
+ PropertyNames.PROPERTY_STEP,
+ PropertyNames.PROPERTY_TABINDEX,
+ PropertyNames.PROPERTY_WIDTH),
+ (True, 12, HelpIds.getHelpIdString(HID + 4),
+ "lstBusinessStyle",
+ 180, 40, 1, 4, 74), self)
+ self.chkBusinessPaper = self.insertCheckBox(
+ "chkBusinessPaper", CHKBUSINESSPAPER_ITEM_CHANGED,
+ (PropertyNames.PROPERTY_HEIGHT,
+ PropertyNames.PROPERTY_HELPURL,
+ PropertyNames.PROPERTY_LABEL,
+ PropertyNames.PROPERTY_NAME,
+ PropertyNames.PROPERTY_POSITION_X,
+ PropertyNames.PROPERTY_POSITION_Y,
+ PropertyNames.PROPERTY_STATE,
+ PropertyNames.PROPERTY_STEP,
+ PropertyNames.PROPERTY_TABINDEX,
+ PropertyNames.PROPERTY_WIDTH),
+ (8, HelpIds.getHelpIdString(HID + 5),
+ self.resources.reschkBusinessPaper_value,
+ "chkBusinessPaper", 110, 56, 0, 1, 5, 168), self)
+ self.lstPrivOfficialStyle = self.insertListBox(
+ "lstPrivOfficialStyle", LSTPRIVOFFICIALSTYLE_ACTION_PERFORMED,
+ LSTPRIVOFFICIALSTYLE_ITEM_CHANGED,
+ ("Dropdown",
+ PropertyNames.PROPERTY_HEIGHT,
+ PropertyNames.PROPERTY_HELPURL,
+ PropertyNames.PROPERTY_NAME,
+ PropertyNames.PROPERTY_POSITION_X,
+ PropertyNames.PROPERTY_POSITION_Y,
+ PropertyNames.PROPERTY_STEP,
+ PropertyNames.PROPERTY_TABINDEX,
+ PropertyNames.PROPERTY_WIDTH),
+ (True, 12, HelpIds.getHelpIdString(HID + 6),
+ "lstPrivOfficialStyle", 180, 86, 1, 6, 74), self)
+ self.lstPrivateStyle = self.insertListBox(
+ "lstPrivateStyle", LSTPRIVATESTYLE_ACTION_PERFORMED,
+ LSTPRIVATESTYLE_ITEM_CHANGED,
+ ("Dropdown",
+ PropertyNames.PROPERTY_HEIGHT,
+ PropertyNames.PROPERTY_HELPURL,
+ PropertyNames.PROPERTY_NAME,
+ PropertyNames.PROPERTY_POSITION_X,
+ PropertyNames.PROPERTY_POSITION_Y,
+ PropertyNames.PROPERTY_STEP,
+ PropertyNames.PROPERTY_TABINDEX,
+ PropertyNames.PROPERTY_WIDTH),
+ (True, 12, HelpIds.getHelpIdString(HID + 7),
+ "lstPrivateStyle", 180, 118, 1, 7, 74), self)
+ self.lblBusinessStyle = self.insertLabel(
+ "lblBusinessStyle",
+ (PropertyNames.PROPERTY_HEIGHT,
+ PropertyNames.PROPERTY_LABEL,
+ PropertyNames.PROPERTY_NAME,
+ PropertyNames.PROPERTY_POSITION_X,
+ PropertyNames.PROPERTY_POSITION_Y,
+ PropertyNames.PROPERTY_STEP,
+ PropertyNames.PROPERTY_TABINDEX,
+ PropertyNames.PROPERTY_WIDTH),
+ (8, self.resources.reslblBusinessStyle_value,
+ "lblBusinessStyle", 110, 42, 1, 48, 60))
+ self.lblPrivOfficialStyle = self.insertLabel(
+ "lblPrivOfficialStyle",
+ (PropertyNames.PROPERTY_HEIGHT,
+ PropertyNames.PROPERTY_LABEL,
+ PropertyNames.PROPERTY_NAME,
+ PropertyNames.PROPERTY_POSITION_X,
+ PropertyNames.PROPERTY_POSITION_Y,
+ PropertyNames.PROPERTY_STEP,
+ PropertyNames.PROPERTY_TABINDEX,
+ PropertyNames.PROPERTY_WIDTH),
+ (8, self.resources.reslblPrivOfficialStyle_value,
+ "lblPrivOfficialStyle", 110, 88, 1, 49, 60))
+ self.lblTitle1 = self.insertLabel(
+ "lblTitle1",
+ ("FontDescriptor",
+ PropertyNames.PROPERTY_HEIGHT,
+ PropertyNames.PROPERTY_LABEL,
+ PropertyNames.PROPERTY_MULTILINE,
+ PropertyNames.PROPERTY_NAME,
+ PropertyNames.PROPERTY_POSITION_X,
+ PropertyNames.PROPERTY_POSITION_Y,
+ PropertyNames.PROPERTY_STEP,
+ PropertyNames.PROPERTY_TABINDEX,
+ PropertyNames.PROPERTY_WIDTH),
+ (self.fontDescriptor6, 16,
+ self.resources.reslblTitle1_value, True,
+ "lblTitle1", 91, 8, 1, 55, 212))
+ self.lblPrivateStyle = self.insertLabel(
+ "lblPrivateStyle",
+ (PropertyNames.PROPERTY_HEIGHT,
+ PropertyNames.PROPERTY_LABEL,
+ PropertyNames.PROPERTY_NAME,
+ PropertyNames.PROPERTY_POSITION_X,
+ PropertyNames.PROPERTY_POSITION_Y,
+ PropertyNames.PROPERTY_STEP,
+ PropertyNames.PROPERTY_TABINDEX,
+ PropertyNames.PROPERTY_WIDTH),
+ (8, self.resources.reslblPrivateStyle_value,
+ "lblPrivateStyle", 110, 120, 1, 74, 60))
+ self.lblIntroduction = self.insertLabel(
+ "lblIntroduction",
+ (PropertyNames.PROPERTY_HEIGHT,
+ PropertyNames.PROPERTY_LABEL,
+ PropertyNames.PROPERTY_MULTILINE,
+ PropertyNames.PROPERTY_NAME,
+ PropertyNames.PROPERTY_POSITION_X,
+ PropertyNames.PROPERTY_POSITION_Y,
+ PropertyNames.PROPERTY_STEP,
+ PropertyNames.PROPERTY_TABINDEX,
+ PropertyNames.PROPERTY_WIDTH),
+ (39, self.resources.reslblIntroduction_value,
+ True,
+ "lblIntroduction", 104, 145, 1, 80, 199))
+ self.ImageControl3 = self.insertInfoImage(92, 145, 1)
+
+ def buildStep2(self):
+ self.chkPaperCompanyLogo = self.insertCheckBox(
+ "chkPaperCompanyLogo",
+ CHKPAPERCOMPANYLOGO_ITEM_CHANGED,
+ (PropertyNames.PROPERTY_HEIGHT,
+ PropertyNames.PROPERTY_HELPURL,
+ PropertyNames.PROPERTY_LABEL,
+ PropertyNames.PROPERTY_NAME,
+ PropertyNames.PROPERTY_POSITION_X,
+ PropertyNames.PROPERTY_POSITION_Y,
+ PropertyNames.PROPERTY_STATE,
+ PropertyNames.PROPERTY_STEP,
+ PropertyNames.PROPERTY_TABINDEX,
+ PropertyNames.PROPERTY_WIDTH),
+ (8, HelpIds.getHelpIdString(HID + 8),
+ self.resources.reschkPaperCompanyLogo_value,
+ "chkPaperCompanyLogo", 97, 28, 0, 2, 8, 68), self)
+ self.numLogoHeight = self.insertNumericField(
+ "numLogoHeight",
+ NUMLOGOHEIGHT_TEXT_CHANGED,
+ (PropertyNames.PROPERTY_HEIGHT,
+ PropertyNames.PROPERTY_HELPURL,
+ PropertyNames.PROPERTY_NAME,
+ PropertyNames.PROPERTY_POSITION_X,
+ PropertyNames.PROPERTY_POSITION_Y,
+ "Spin",
+ PropertyNames.PROPERTY_STEP,
+ "StrictFormat",
+ PropertyNames.PROPERTY_TABINDEX,
+ "Value",
+ PropertyNames.PROPERTY_WIDTH),
+ (12, HelpIds.getHelpIdString(HID + 9),
+ "numLogoHeight", 138, 40, True, 2, True, 9, 3, 30), self)
+ self.numLogoX = self.insertNumericField(
+ "numLogoX", NUMLOGOX_TEXT_CHANGED,
+ (PropertyNames.PROPERTY_HEIGHT,
+ PropertyNames.PROPERTY_HELPURL,
+ PropertyNames.PROPERTY_NAME,
+ PropertyNames.PROPERTY_POSITION_X,
+ PropertyNames.PROPERTY_POSITION_Y,
+ "Spin",
+ PropertyNames.PROPERTY_STEP,
+ PropertyNames.PROPERTY_TABINDEX,
+ "Value",
+ PropertyNames.PROPERTY_WIDTH),
+ (12, HelpIds.getHelpIdString(HID + 10),
+ "numLogoX", 266, 40, True, 2, 10, 0, 30), self)
+ self.numLogoWidth = self.insertNumericField(
+ "numLogoWidth", NUMLOGOWIDTH_TEXT_CHANGED,
+ (PropertyNames.PROPERTY_HEIGHT,
+ PropertyNames.PROPERTY_HELPURL,
+ PropertyNames.PROPERTY_NAME,
+ PropertyNames.PROPERTY_POSITION_X,
+ PropertyNames.PROPERTY_POSITION_Y,
+ "Spin",
+ PropertyNames.PROPERTY_STEP,
+ PropertyNames.PROPERTY_TABINDEX,
+ "Value",
+ PropertyNames.PROPERTY_WIDTH),
+ (12, HelpIds.getHelpIdString(HID + 11),
+ "numLogoWidth", 138, 56, True, 2, 11, 3.8, 30), self)
+ self.numLogoY = self.insertNumericField(
+ "numLogoY", NUMLOGOY_TEXT_CHANGED,
+ (PropertyNames.PROPERTY_HEIGHT,
+ PropertyNames.PROPERTY_HELPURL,
+ PropertyNames.PROPERTY_NAME,
+ PropertyNames.PROPERTY_POSITION_X,
+ PropertyNames.PROPERTY_POSITION_Y,
+ "Spin",
+ PropertyNames.PROPERTY_STEP,
+ PropertyNames.PROPERTY_TABINDEX,
+ "Value",
+ PropertyNames.PROPERTY_WIDTH),
+ (12, HelpIds.getHelpIdString(HID + 12),
+ "numLogoY", 266, 56, True, 2, 12, -3.4, 30), self)
+ self.chkPaperCompanyAddress = self.insertCheckBox(
+ "chkPaperCompanyAddress", CHKPAPERCOMPANYADDRESS_ITEM_CHANGED,
+ (PropertyNames.PROPERTY_HEIGHT,
+ PropertyNames.PROPERTY_HELPURL,
+ PropertyNames.PROPERTY_LABEL,
+ PropertyNames.PROPERTY_NAME,
+ PropertyNames.PROPERTY_POSITION_X,
+ PropertyNames.PROPERTY_POSITION_Y,
+ PropertyNames.PROPERTY_STATE,
+ PropertyNames.PROPERTY_STEP,
+ PropertyNames.PROPERTY_TABINDEX,
+ PropertyNames.PROPERTY_WIDTH),
+ (8, HelpIds.getHelpIdString(HID + 13),
+ self.resources.reschkPaperCompanyAddress_value,
+ "chkPaperCompanyAddress", 98, 84, 0, 2, 13, 68), self)
+ self.numAddressHeight = self.insertNumericField(
+ "numAddressHeight", NUMADDRESSHEIGHT_TEXT_CHANGED,
+ (PropertyNames.PROPERTY_HEIGHT,
+ PropertyNames.PROPERTY_HELPURL,
+ PropertyNames.PROPERTY_NAME,
+ PropertyNames.PROPERTY_POSITION_X,
+ PropertyNames.PROPERTY_POSITION_Y,
+ "Spin",
+ PropertyNames.PROPERTY_STEP,
+ "StrictFormat",
+ PropertyNames.PROPERTY_TABINDEX,
+ "Value",
+ PropertyNames.PROPERTY_WIDTH),
+ (12, HelpIds.getHelpIdString(HID + 14),
+ "numAddressHeight", 138, 96, True, 2, True, 14, 3, 30), self)
+ self.numAddressX = self.insertNumericField(
+ "numAddressX", NUMADDRESSX_TEXT_CHANGED,
+ (PropertyNames.PROPERTY_HEIGHT,
+ PropertyNames.PROPERTY_HELPURL,
+ PropertyNames.PROPERTY_NAME,
+ PropertyNames.PROPERTY_POSITION_X,
+ PropertyNames.PROPERTY_POSITION_Y,
+ "Spin",
+ PropertyNames.PROPERTY_STEP,
+ PropertyNames.PROPERTY_TABINDEX,
+ "Value",
+ PropertyNames.PROPERTY_WIDTH),
+ (12, HelpIds.getHelpIdString(HID + 15),
+ "numAddressX", 266, 96, True, 2, 15, 3.8, 30), self)
+ self.numAddressWidth = self.insertNumericField(
+ "numAddressWidth", NUMADDRESSWIDTH_TEXT_CHANGED,
+ (PropertyNames.PROPERTY_HEIGHT,
+ PropertyNames.PROPERTY_HELPURL,
+ PropertyNames.PROPERTY_NAME,
+ PropertyNames.PROPERTY_POSITION_X,
+ PropertyNames.PROPERTY_POSITION_Y,
+ "Spin",
+ PropertyNames.PROPERTY_STEP,
+ PropertyNames.PROPERTY_TABINDEX,
+ "Value",
+ PropertyNames.PROPERTY_WIDTH),
+ (12, HelpIds.getHelpIdString(HID + 16),
+ "numAddressWidth", 138, 112, True, 2, 16, 13.8, 30), self)
+ self.numAddressY = self.insertNumericField(
+ "numAddressY", NUMADDRESSY_TEXT_CHANGED,
+ (PropertyNames.PROPERTY_HEIGHT,
+ PropertyNames.PROPERTY_HELPURL,
+ PropertyNames.PROPERTY_NAME,
+ PropertyNames.PROPERTY_POSITION_X,
+ PropertyNames.PROPERTY_POSITION_Y,
+ "Spin",
+ PropertyNames.PROPERTY_STEP,
+ PropertyNames.PROPERTY_TABINDEX,
+ "Value",
+ PropertyNames.PROPERTY_WIDTH),
+ (12, HelpIds.getHelpIdString(HID + 17),
+ "numAddressY", 266, 112, True, 2, 17, -3.4, 30), self)
+ self.chkCompanyReceiver = self.insertCheckBox(
+ "chkCompanyReceiver", CHKCOMPANYRECEIVER_ITEM_CHANGED,
+ (PropertyNames.PROPERTY_HEIGHT,
+ PropertyNames.PROPERTY_HELPURL,
+ PropertyNames.PROPERTY_LABEL,
+ PropertyNames.PROPERTY_NAME,
+ PropertyNames.PROPERTY_POSITION_X,
+ PropertyNames.PROPERTY_POSITION_Y, PropertyNames.PROPERTY_STATE,
+ PropertyNames.PROPERTY_STEP,
+ PropertyNames.PROPERTY_TABINDEX,
+ PropertyNames.PROPERTY_WIDTH),
+ (8, HelpIds.getHelpIdString(HID + 18),
+ self.resources.reschkCompanyReceiver_value,
+ "chkCompanyReceiver", 103, 131, 0, 2, 18, 185), self)
+ self.chkPaperFooter = self.insertCheckBox(
+ "chkPaperFooter", CHKPAPERFOOTER_ITEM_CHANGED,
+ (PropertyNames.PROPERTY_HEIGHT,
+ PropertyNames.PROPERTY_HELPURL,
+ PropertyNames.PROPERTY_LABEL,
+ PropertyNames.PROPERTY_NAME,
+ PropertyNames.PROPERTY_POSITION_X,
+ PropertyNames.PROPERTY_POSITION_Y,
+ PropertyNames.PROPERTY_STATE,
+ PropertyNames.PROPERTY_STEP,
+ PropertyNames.PROPERTY_TABINDEX,
+ PropertyNames.PROPERTY_WIDTH),
+ (8, HelpIds.getHelpIdString(HID + 19),
+ self.resources.reschkPaperFooter_value,
+ "chkPaperFooter", 97, 158, 0, 2, 19, 68), self)
+ self.numFooterHeight = self.insertNumericField(
+ "numFooterHeight", NUMFOOTERHEIGHT_TEXT_CHANGED,
+ (PropertyNames.PROPERTY_HEIGHT,
+ PropertyNames.PROPERTY_HELPURL,
+ PropertyNames.PROPERTY_NAME,
+ PropertyNames.PROPERTY_POSITION_X,
+ PropertyNames.PROPERTY_POSITION_Y,
+ "Spin",
+ PropertyNames.PROPERTY_STEP,
+ PropertyNames.PROPERTY_TABINDEX,
+ "Value",
+ PropertyNames.PROPERTY_WIDTH),
+ (12, HelpIds.getHelpIdString(HID + 20),
+ "numFooterHeight", 236, 156, True, 2, 20, 5, 30), self)
+ self.lblLogoHeight = self.insertLabel(
+ "lblLogoHeight",
+ (PropertyNames.PROPERTY_HEIGHT,
+ PropertyNames.PROPERTY_LABEL,
+ PropertyNames.PROPERTY_NAME,
+ PropertyNames.PROPERTY_POSITION_X,
+ PropertyNames.PROPERTY_POSITION_Y,
+ PropertyNames.PROPERTY_STEP,
+ PropertyNames.PROPERTY_TABINDEX,
+ PropertyNames.PROPERTY_WIDTH),
+ (8, self.resources.reslblLogoHeight_value,
+ "lblLogoHeight", 103, 42, 2, 68, 32))
+ self.lblLogoWidth = self.insertLabel(
+ "lblLogoWidth",
+ (PropertyNames.PROPERTY_HEIGHT,
+ PropertyNames.PROPERTY_LABEL,
+ PropertyNames.PROPERTY_NAME,
+ PropertyNames.PROPERTY_POSITION_X,
+ PropertyNames.PROPERTY_POSITION_Y,
+ PropertyNames.PROPERTY_STEP,
+ PropertyNames.PROPERTY_TABINDEX,
+ PropertyNames.PROPERTY_WIDTH),
+ (8, self.resources.reslblLogoWidth_value,
+ "lblLogoWidth", 103, 58, 2, 69, 32))
+ self.FixedLine5 = self.insertFixedLine(
+ "FixedLine5",
+ (PropertyNames.PROPERTY_HEIGHT,
+ PropertyNames.PROPERTY_NAME,
+ PropertyNames.PROPERTY_POSITION_X,
+ PropertyNames.PROPERTY_POSITION_Y,
+ PropertyNames.PROPERTY_STEP,
+ PropertyNames.PROPERTY_TABINDEX,
+ PropertyNames.PROPERTY_WIDTH),
+ (2,
+ "FixedLine5", 90, 78, 2, 70, 215))
+ self.FixedLine6 = self.insertFixedLine(
+ "FixedLine6",
+ (PropertyNames.PROPERTY_HEIGHT,
+ PropertyNames.PROPERTY_NAME,
+ PropertyNames.PROPERTY_POSITION_X,
+ PropertyNames.PROPERTY_POSITION_Y,
+ PropertyNames.PROPERTY_STEP,
+ PropertyNames.PROPERTY_TABINDEX,
+ PropertyNames.PROPERTY_WIDTH),
+ (2,
+ "FixedLine6", 90, 150, 2, 71, 215))
+ self.lblFooterHeight = self.insertLabel(
+ "lblFooterHeight",
+ (PropertyNames.PROPERTY_HEIGHT,
+ PropertyNames.PROPERTY_LABEL,
+ PropertyNames.PROPERTY_NAME,
+ PropertyNames.PROPERTY_POSITION_X,
+ PropertyNames.PROPERTY_POSITION_Y,
+ PropertyNames.PROPERTY_STEP,
+ PropertyNames.PROPERTY_TABINDEX,
+ PropertyNames.PROPERTY_WIDTH),
+ (8, self.resources.reslblFooterHeight_value,
+ "lblFooterHeight", 200, 158, 2, 72, 32))
+ self.lblLogoX = self.insertLabel(
+ "lblLogoX",
+ (PropertyNames.PROPERTY_HEIGHT,
+ PropertyNames.PROPERTY_LABEL,
+ PropertyNames.PROPERTY_NAME,
+ PropertyNames.PROPERTY_POSITION_X,
+ PropertyNames.PROPERTY_POSITION_Y,
+ PropertyNames.PROPERTY_STEP,
+ PropertyNames.PROPERTY_TABINDEX,
+ PropertyNames.PROPERTY_WIDTH),
+ (8, self.resources.reslblLogoX_value,
+ "lblLogoX", 170, 42, 2, 84, 94))
+ self.lblLogoY = self.insertLabel(
+ "lblLogoY",
+ (PropertyNames.PROPERTY_HEIGHT,
+ PropertyNames.PROPERTY_LABEL,
+ PropertyNames.PROPERTY_NAME,
+ PropertyNames.PROPERTY_POSITION_X,
+ PropertyNames.PROPERTY_POSITION_Y,
+ PropertyNames.PROPERTY_STEP,
+ PropertyNames.PROPERTY_TABINDEX,
+ PropertyNames.PROPERTY_WIDTH),
+ (8, self.resources.reslblLogoY_value,
+ "lblLogoY", 170, 58, 2, 85, 94))
+ self.lblAddressHeight = self.insertLabel(
+ "lblAddressHeight",
+ (PropertyNames.PROPERTY_HEIGHT,
+ PropertyNames.PROPERTY_LABEL,
+ PropertyNames.PROPERTY_NAME,
+ PropertyNames.PROPERTY_POSITION_X,
+ PropertyNames.PROPERTY_POSITION_Y,
+ PropertyNames.PROPERTY_STEP,
+ PropertyNames.PROPERTY_TABINDEX,
+ PropertyNames.PROPERTY_WIDTH),
+ (8, self.resources.reslblAddressHeight_value,
+ "lblAddressHeight", 103, 98, 2, 86, 32))
+ self.lblAddressWidth = self.insertLabel(
+ "lblAddressWidth",
+ (PropertyNames.PROPERTY_HEIGHT,
+ PropertyNames.PROPERTY_LABEL,
+ PropertyNames.PROPERTY_NAME,
+ PropertyNames.PROPERTY_POSITION_X,
+ PropertyNames.PROPERTY_POSITION_Y,
+ PropertyNames.PROPERTY_STEP,
+ PropertyNames.PROPERTY_TABINDEX,
+ PropertyNames.PROPERTY_WIDTH),
+ (8, self.resources.reslblAddressWidth_value,
+ "lblAddressWidth", 103, 114, 2, 87, 32))
+ self.lblAddressX = self.insertLabel(
+ "lblAddressX",
+ (PropertyNames.PROPERTY_HEIGHT,
+ PropertyNames.PROPERTY_LABEL,
+ PropertyNames.PROPERTY_NAME,
+ PropertyNames.PROPERTY_POSITION_X,
+ PropertyNames.PROPERTY_POSITION_Y,
+ PropertyNames.PROPERTY_STEP,
+ PropertyNames.PROPERTY_TABINDEX,
+ PropertyNames.PROPERTY_WIDTH),
+ (8, self.resources.reslblAddressX_value,
+ "lblAddressX", 170, 98, 2, 88, 94))
+ self.lblAddressY = self.insertLabel(
+ "lblAddressY",
+ (PropertyNames.PROPERTY_HEIGHT,
+ PropertyNames.PROPERTY_LABEL,
+ PropertyNames.PROPERTY_NAME,
+ PropertyNames.PROPERTY_POSITION_X,
+ PropertyNames.PROPERTY_POSITION_Y,
+ PropertyNames.PROPERTY_STEP,
+ PropertyNames.PROPERTY_TABINDEX,
+ PropertyNames.PROPERTY_WIDTH),
+ (8, self.resources.reslblAddressY_value,
+ "lblAddressY", 170, 114, 2, 89, 94))
+ self.lblTitle2 = self.insertLabel(
+ "lblTitle2",
+ ("FontDescriptor",
+ PropertyNames.PROPERTY_HEIGHT,
+ PropertyNames.PROPERTY_LABEL,
+ PropertyNames.PROPERTY_MULTILINE,
+ PropertyNames.PROPERTY_NAME,
+ PropertyNames.PROPERTY_POSITION_X,
+ PropertyNames.PROPERTY_POSITION_Y,
+ PropertyNames.PROPERTY_STEP,
+ PropertyNames.PROPERTY_TABINDEX,
+ PropertyNames.PROPERTY_WIDTH),
+ (self.fontDescriptor6, 16,
+ self.resources.reslblTitle2_value, True,
+ "lblTitle2", 91, 8, 2, 91, 212))
+
+ def buildStep3(self):
+ self.lstLetterNorm = self.insertListBox(
+ "lstLetterNorm",
+ LSTLETTERNORM_ACTION_PERFORMED,
+ LSTLETTERNORM_ITEM_CHANGED,
+ ("Dropdown",
+ PropertyNames.PROPERTY_HEIGHT,
+ PropertyNames.PROPERTY_HELPURL,
+ PropertyNames.PROPERTY_NAME,
+ PropertyNames.PROPERTY_POSITION_X,
+ PropertyNames.PROPERTY_POSITION_Y,
+ PropertyNames.PROPERTY_STEP,
+ PropertyNames.PROPERTY_TABINDEX,
+ PropertyNames.PROPERTY_WIDTH),
+ (True, 12, HelpIds.getHelpIdString(HID + 21),
+ "lstLetterNorm", 210, 34, 3, 21, 74), self)
+ self.chkUseLogo = self.insertCheckBox(
+ "chkUseLogo", CHKUSELOGO_ITEM_CHANGED,
+ (PropertyNames.PROPERTY_HEIGHT,
+ PropertyNames.PROPERTY_HELPURL,
+ PropertyNames.PROPERTY_LABEL,
+ PropertyNames.PROPERTY_NAME,
+ PropertyNames.PROPERTY_POSITION_X,
+ PropertyNames.PROPERTY_POSITION_Y,
+ PropertyNames.PROPERTY_STATE,
+ PropertyNames.PROPERTY_STEP,
+ PropertyNames.PROPERTY_TABINDEX,
+ PropertyNames.PROPERTY_WIDTH),
+ (8, HelpIds.getHelpIdString(HID + 22),
+ self.resources.reschkUseLogo_value,
+ "chkUseLogo", 97, 54, 0, 3, 22, 212), self)
+ self.chkUseAddressReceiver = self.insertCheckBox(
+ "chkUseAddressReceiver",
+ CHKUSEADDRESSRECEIVER_ITEM_CHANGED,
+ (PropertyNames.PROPERTY_HEIGHT,
+ PropertyNames.PROPERTY_HELPURL,
+ PropertyNames.PROPERTY_LABEL,
+ PropertyNames.PROPERTY_NAME,
+ PropertyNames.PROPERTY_POSITION_X,
+ PropertyNames.PROPERTY_POSITION_Y,
+ PropertyNames.PROPERTY_STATE,
+ PropertyNames.PROPERTY_STEP,
+ PropertyNames.PROPERTY_TABINDEX,
+ PropertyNames.PROPERTY_WIDTH),
+ (8, HelpIds.getHelpIdString(HID + 23),
+ self.resources.reschkUseAddressReceiver_value,
+ "chkUseAddressReceiver", 97, 69, 0, 3, 23, 212), self)
+ self.chkUseSigns = self.insertCheckBox(
+ "chkUseSigns", CHKUSESIGNS_ITEM_CHANGED,
+ (PropertyNames.PROPERTY_HEIGHT,
+ PropertyNames.PROPERTY_HELPURL,
+ PropertyNames.PROPERTY_LABEL,
+ PropertyNames.PROPERTY_NAME,
+ PropertyNames.PROPERTY_POSITION_X,
+ PropertyNames.PROPERTY_POSITION_Y,
+ PropertyNames.PROPERTY_STATE,
+ PropertyNames.PROPERTY_STEP,
+ PropertyNames.PROPERTY_TABINDEX,
+ PropertyNames.PROPERTY_WIDTH),
+ (8, HelpIds.getHelpIdString(HID + 24),
+ self.resources.reschkUseSigns_value,
+ "chkUseSigns", 97, 82, 0, 3, 24, 212), self)
+ self.chkUseSubject = self.insertCheckBox(
+ "chkUseSubject", CHKUSESUBJECT_ITEM_CHANGED,
+ (PropertyNames.PROPERTY_HEIGHT,
+ PropertyNames.PROPERTY_HELPURL,
+ PropertyNames.PROPERTY_LABEL,
+ PropertyNames.PROPERTY_NAME,
+ PropertyNames.PROPERTY_POSITION_X,
+ PropertyNames.PROPERTY_POSITION_Y,
+ PropertyNames.PROPERTY_STATE,
+ PropertyNames.PROPERTY_STEP,
+ PropertyNames.PROPERTY_TABINDEX,
+ PropertyNames.PROPERTY_WIDTH),
+ (8, HelpIds.getHelpIdString(HID + 25),
+ self.resources.reschkUseSubject_value,
+ "chkUseSubject", 97, 98, 0, 3, 25, 212), self)
+ self.chkUseSalutation = self.insertCheckBox(
+ "chkUseSalutation", CHKUSESALUTATION_ITEM_CHANGED,
+ (PropertyNames.PROPERTY_HEIGHT,
+ PropertyNames.PROPERTY_HELPURL,
+ PropertyNames.PROPERTY_LABEL,
+ PropertyNames.PROPERTY_NAME,
+ PropertyNames.PROPERTY_POSITION_X,
+ PropertyNames.PROPERTY_POSITION_Y,
+ PropertyNames.PROPERTY_STATE,
+ PropertyNames.PROPERTY_STEP,
+ PropertyNames.PROPERTY_TABINDEX,
+ PropertyNames.PROPERTY_WIDTH),
+ (8, HelpIds.getHelpIdString(HID + 26),
+ self.resources.reschkUseSalutation_value,
+ "chkUseSalutation", 97, 113, 0, 3, 26, 66), self)
+ self.lstSalutation = self.insertComboBox(
+ "lstSalutation",
+ LSTSALUTATION_ACTION_PERFORMED,
+ LSTSALUTATION_ITEM_CHANGED,
+ LSTSALUTATION_TEXT_CHANGED,
+ ("Dropdown",
+ PropertyNames.PROPERTY_HEIGHT,
+ PropertyNames.PROPERTY_HELPURL,
+ PropertyNames.PROPERTY_NAME,
+ PropertyNames.PROPERTY_POSITION_X,
+ PropertyNames.PROPERTY_POSITION_Y,
+ PropertyNames.PROPERTY_STEP,
+ PropertyNames.PROPERTY_TABINDEX,
+ PropertyNames.PROPERTY_WIDTH),
+ (True, 12, HelpIds.getHelpIdString(HID + 27),
+ "lstSalutation", 210, 110, 3, 27, 74), self)
+ self.chkUseBendMarks = self.insertCheckBox(
+ "chkUseBendMarks", CHKUSEBENDMARKS_ITEM_CHANGED,
+ (PropertyNames.PROPERTY_HEIGHT,
+ PropertyNames.PROPERTY_HELPURL,
+ PropertyNames.PROPERTY_LABEL,
+ PropertyNames.PROPERTY_NAME,
+ PropertyNames.PROPERTY_POSITION_X,
+ PropertyNames.PROPERTY_POSITION_Y,
+ PropertyNames.PROPERTY_STATE,
+ PropertyNames.PROPERTY_STEP,
+ PropertyNames.PROPERTY_TABINDEX,
+ PropertyNames.PROPERTY_WIDTH),
+ (8, HelpIds.getHelpIdString(HID + 28),
+ self.resources.reschkUseBendMarks_value,
+ "chkUseBendMarks", 97, 127, 0, 3, 28, 212), self)
+ self.chkUseGreeting = self.insertCheckBox(
+ "chkUseGreeting", CHKUSEGREETING_ITEM_CHANGED,
+ (PropertyNames.PROPERTY_HEIGHT,
+ PropertyNames.PROPERTY_HELPURL,
+ PropertyNames.PROPERTY_LABEL,
+ PropertyNames.PROPERTY_NAME,
+ PropertyNames.PROPERTY_POSITION_X,
+ PropertyNames.PROPERTY_POSITION_Y,
+ PropertyNames.PROPERTY_STATE,
+ PropertyNames.PROPERTY_STEP,
+ PropertyNames.PROPERTY_TABINDEX,
+ PropertyNames.PROPERTY_WIDTH),
+ (8, HelpIds.getHelpIdString(HID + 29),
+ self.resources.reschkUseGreeting_value,
+ "chkUseGreeting", 97, 142, 0, 3, 29, 66), self)
+ self.lstGreeting = self.insertComboBox(
+ "lstGreeting", LSTGREETING_ACTION_PERFORMED,
+ LSTGREETING_ITEM_CHANGED, LSTGREETING_TEXT_CHANGED,
+ ("Dropdown",
+ PropertyNames.PROPERTY_HEIGHT,
+ PropertyNames.PROPERTY_HELPURL,
+ PropertyNames.PROPERTY_NAME,
+ PropertyNames.PROPERTY_POSITION_X,
+ PropertyNames.PROPERTY_POSITION_Y,
+ PropertyNames.PROPERTY_STEP,
+ PropertyNames.PROPERTY_TABINDEX,
+ PropertyNames.PROPERTY_WIDTH),
+ (True, 12, HelpIds.getHelpIdString(HID + 30),
+ "lstGreeting", 210, 141, 3, 30, 74), self)
+ self.chkUseFooter = self.insertCheckBox(
+ "chkUseFooter", CHKUSEFOOTER_ITEM_CHANGED,
+ (PropertyNames.PROPERTY_HEIGHT,
+ PropertyNames.PROPERTY_HELPURL,
+ PropertyNames.PROPERTY_LABEL,
+ PropertyNames.PROPERTY_NAME,
+ PropertyNames.PROPERTY_POSITION_X,
+ PropertyNames.PROPERTY_POSITION_Y,
+ PropertyNames.PROPERTY_STATE,
+ PropertyNames.PROPERTY_STEP,
+ PropertyNames.PROPERTY_TABINDEX,
+ PropertyNames.PROPERTY_WIDTH),
+ (8, HelpIds.getHelpIdString(HID + 31),
+ self.resources.reschkUseFooter_value,
+ "chkUseFooter", 97, 158, 0, 3, 31, 212), self)
+ self.lblLetterNorm = self.insertLabel(
+ "lblLetterNorm",
+ (PropertyNames.PROPERTY_HEIGHT,
+ PropertyNames.PROPERTY_LABEL,
+ PropertyNames.PROPERTY_MULTILINE,
+ PropertyNames.PROPERTY_NAME,
+ PropertyNames.PROPERTY_POSITION_X,
+ PropertyNames.PROPERTY_POSITION_Y,
+ PropertyNames.PROPERTY_STEP,
+ PropertyNames.PROPERTY_TABINDEX,
+ PropertyNames.PROPERTY_WIDTH),
+ (16, self.resources.reslblLetterNorm_value, True,
+ "lblLetterNorm", 97, 28, 3, 50, 109))
+ self.lblTitle3 = self.insertLabel(
+ "lblTitle3",
+ (
+ "FontDescriptor", PropertyNames.PROPERTY_HEIGHT,
+ PropertyNames.PROPERTY_LABEL,
+ PropertyNames.PROPERTY_MULTILINE,
+ PropertyNames.PROPERTY_NAME,
+ PropertyNames.PROPERTY_POSITION_X,
+ PropertyNames.PROPERTY_POSITION_Y,
+ PropertyNames.PROPERTY_STEP,
+ PropertyNames.PROPERTY_TABINDEX,
+ PropertyNames.PROPERTY_WIDTH),
+ (self.fontDescriptor6, 16,
+ self.resources.reslblTitle3_value, True,
+ "lblTitle3", 91, 8, 3, 90, 212))
+
+ def buildStep4(self):
+ self.optSenderPlaceholder = self.insertRadioButton(
+ "optSenderPlaceholder", OPTSENDERPLACEHOLDER_ITEM_CHANGED,
+ (PropertyNames.PROPERTY_HEIGHT,
+ PropertyNames.PROPERTY_HELPURL,
+ PropertyNames.PROPERTY_LABEL,
+ PropertyNames.PROPERTY_NAME,
+ PropertyNames.PROPERTY_POSITION_X,
+ PropertyNames.PROPERTY_POSITION_Y,
+ PropertyNames.PROPERTY_STEP,
+ PropertyNames.PROPERTY_TABINDEX,
+ PropertyNames.PROPERTY_WIDTH),
+ (8, HelpIds.getHelpIdString(HID + 32),
+ self.resources.resoptSenderPlaceholder_value,
+ "optSenderPlaceholder", 104, 42, 4, 32, 149), self)
+ self.optSenderDefine = self.insertRadioButton(
+ "optSenderDefine", OPTSENDERDEFINE_ITEM_CHANGED,
+ (PropertyNames.PROPERTY_HEIGHT,
+ PropertyNames.PROPERTY_HELPURL,
+ PropertyNames.PROPERTY_LABEL,
+ PropertyNames.PROPERTY_NAME,
+ PropertyNames.PROPERTY_POSITION_X,
+ PropertyNames.PROPERTY_POSITION_Y,
+ PropertyNames.PROPERTY_STEP,
+ PropertyNames.PROPERTY_TABINDEX,
+ PropertyNames.PROPERTY_WIDTH),
+ (8, HelpIds.getHelpIdString(HID + 33),
+ self.resources.resoptSenderDefine_value,
+ "optSenderDefine", 104, 54, 4, 33, 149), self)
+ self.txtSenderName = self.insertTextField(
+ "txtSenderName", TXTSENDERNAME_TEXT_CHANGED,
+ (PropertyNames.PROPERTY_HEIGHT,
+ PropertyNames.PROPERTY_HELPURL,
+ PropertyNames.PROPERTY_NAME,
+ PropertyNames.PROPERTY_POSITION_X,
+ PropertyNames.PROPERTY_POSITION_Y,
+ PropertyNames.PROPERTY_STEP,
+ PropertyNames.PROPERTY_TABINDEX,
+ PropertyNames.PROPERTY_WIDTH),
+ (12, HelpIds.getHelpIdString(HID + 34),
+ "txtSenderName", 182, 67, 4, 34, 119), self)
+ self.txtSenderStreet = self.insertTextField(
+ "txtSenderStreet", TXTSENDERSTREET_TEXT_CHANGED,
+ (PropertyNames.PROPERTY_HEIGHT,
+ PropertyNames.PROPERTY_HELPURL,
+ PropertyNames.PROPERTY_NAME,
+ PropertyNames.PROPERTY_POSITION_X,
+ PropertyNames.PROPERTY_POSITION_Y,
+ PropertyNames.PROPERTY_STEP,
+ PropertyNames.PROPERTY_TABINDEX,
+ PropertyNames.PROPERTY_WIDTH),
+ (12, HelpIds.getHelpIdString(HID + 35),
+ "txtSenderStreet", 182, 81, 4, 35, 119), self)
+ self.txtSenderPostCode = self.insertTextField(
+ "txtSenderPostCode", TXTSENDERPOSTCODE_TEXT_CHANGED,
+ (PropertyNames.PROPERTY_HEIGHT,
+ PropertyNames.PROPERTY_HELPURL,
+ PropertyNames.PROPERTY_NAME,
+ PropertyNames.PROPERTY_POSITION_X,
+ PropertyNames.PROPERTY_POSITION_Y,
+ PropertyNames.PROPERTY_STEP,
+ PropertyNames.PROPERTY_TABINDEX,
+ PropertyNames.PROPERTY_WIDTH),
+ (12, HelpIds.getHelpIdString(HID + 36),
+ "txtSenderPostCode", 182, 95, 4, 36, 25), self)
+ self.txtSenderState = self.insertTextField(
+ "txtSenderState", TXTSENDERSTATE_TEXT_CHANGED,
+ (PropertyNames.PROPERTY_HEIGHT,
+ PropertyNames.PROPERTY_HELPURL,
+ PropertyNames.PROPERTY_NAME,
+ PropertyNames.PROPERTY_POSITION_X,
+ PropertyNames.PROPERTY_POSITION_Y,
+ PropertyNames.PROPERTY_STEP,
+ PropertyNames.PROPERTY_TABINDEX,
+ PropertyNames.PROPERTY_WIDTH),
+ (12, HelpIds.getHelpIdString(HID + 37),
+ "txtSenderState", 211, 95, 4, 37, 21), self)
+ self.txtSenderCity = self.insertTextField(
+ "txtSenderCity", TXTSENDERCITY_TEXT_CHANGED,
+ (PropertyNames.PROPERTY_HEIGHT,
+ PropertyNames.PROPERTY_HELPURL,
+ PropertyNames.PROPERTY_NAME,
+ PropertyNames.PROPERTY_POSITION_X,
+ PropertyNames.PROPERTY_POSITION_Y,
+ PropertyNames.PROPERTY_STEP,
+ PropertyNames.PROPERTY_TABINDEX,
+ PropertyNames.PROPERTY_WIDTH),
+ (12, HelpIds.getHelpIdString(HID + 38),
+ "txtSenderCity", 236, 95, 4, 38, 65), self)
+ self.optReceiverPlaceholder = self.insertRadioButton(
+ "optReceiverPlaceholder", OPTRECEIVERPLACEHOLDER_ITEM_CHANGED,
+ (PropertyNames.PROPERTY_HEIGHT,
+ PropertyNames.PROPERTY_HELPURL,
+ PropertyNames.PROPERTY_LABEL,
+ PropertyNames.PROPERTY_NAME,
+ PropertyNames.PROPERTY_POSITION_X,
+ PropertyNames.PROPERTY_POSITION_Y,
+ PropertyNames.PROPERTY_STEP,
+ PropertyNames.PROPERTY_TABINDEX,
+ PropertyNames.PROPERTY_WIDTH),
+ (8, HelpIds.getHelpIdString(HID + 39),
+ self.resources.resoptReceiverPlaceholder_value,
+ "optReceiverPlaceholder", 104, 145, 4, 39, 200), self)
+ self.optReceiverDatabase = self.insertRadioButton(
+ "optReceiverDatabase", OPTRECEIVERDATABASE_ITEM_CHANGED,
+ (PropertyNames.PROPERTY_HEIGHT,
+ PropertyNames.PROPERTY_HELPURL,
+ PropertyNames.PROPERTY_LABEL,
+ PropertyNames.PROPERTY_NAME,
+ PropertyNames.PROPERTY_POSITION_X,
+ PropertyNames.PROPERTY_POSITION_Y,
+ PropertyNames.PROPERTY_STEP,
+ PropertyNames.PROPERTY_TABINDEX,
+ PropertyNames.PROPERTY_WIDTH),
+ (8, HelpIds.getHelpIdString(HID + 40),
+ self.resources.resoptReceiverDatabase_value,
+ "optReceiverDatabase", 104, 157, 4, 40, 200), self)
+ self.lblSenderAddress = self.insertLabel(
+ "lblSenderAddress",
+ (PropertyNames.PROPERTY_HEIGHT,
+ PropertyNames.PROPERTY_LABEL,
+ PropertyNames.PROPERTY_NAME,
+ PropertyNames.PROPERTY_POSITION_X,
+ PropertyNames.PROPERTY_POSITION_Y,
+ PropertyNames.PROPERTY_STEP,
+ PropertyNames.PROPERTY_TABINDEX,
+ PropertyNames.PROPERTY_WIDTH),
+ (8, self.resources.reslblSenderAddress_value,
+ "lblSenderAddress", 97, 28, 4, 64, 136))
+ self.FixedLine2 = self.insertFixedLine(
+ "FixedLine2",
+ (PropertyNames.PROPERTY_HEIGHT,
+ PropertyNames.PROPERTY_NAME,
+ PropertyNames.PROPERTY_POSITION_X,
+ PropertyNames.PROPERTY_POSITION_Y,
+ PropertyNames.PROPERTY_STEP,
+ PropertyNames.PROPERTY_TABINDEX,
+ PropertyNames.PROPERTY_WIDTH),
+ (5,
+ "FixedLine2", 90, 126, 4, 75, 212))
+ self.lblReceiverAddress = self.insertLabel(
+ "lblReceiverAddress",
+ (PropertyNames.PROPERTY_HEIGHT,
+ PropertyNames.PROPERTY_LABEL,
+ PropertyNames.PROPERTY_NAME,
+ PropertyNames.PROPERTY_POSITION_X,
+ PropertyNames.PROPERTY_POSITION_Y,
+ PropertyNames.PROPERTY_STEP,
+ PropertyNames.PROPERTY_TABINDEX,
+ PropertyNames.PROPERTY_WIDTH),
+ (8, self.resources.reslblReceiverAddress_value,
+ "lblReceiverAddress", 97, 134, 4, 76, 136))
+ self.lblSenderName = self.insertLabel(
+ "lblSenderName",
+ (PropertyNames.PROPERTY_HEIGHT,
+ PropertyNames.PROPERTY_LABEL,
+ PropertyNames.PROPERTY_NAME,
+ PropertyNames.PROPERTY_POSITION_X,
+ PropertyNames.PROPERTY_POSITION_Y,
+ PropertyNames.PROPERTY_STEP,
+ PropertyNames.PROPERTY_TABINDEX,
+ PropertyNames.PROPERTY_WIDTH),
+ (8, self.resources.reslblSenderName_value,
+ "lblSenderName", 113, 69, 4, 77, 68))
+ self.lblSenderStreet = self.insertLabel(
+ "lblSenderStreet",
+ (PropertyNames.PROPERTY_HEIGHT,
+ PropertyNames.PROPERTY_LABEL,
+ PropertyNames.PROPERTY_NAME,
+ PropertyNames.PROPERTY_POSITION_X,
+ PropertyNames.PROPERTY_POSITION_Y,
+ PropertyNames.PROPERTY_STEP,
+ PropertyNames.PROPERTY_TABINDEX,
+ PropertyNames.PROPERTY_WIDTH),
+ (8, self.resources.reslblSenderStreet_value,
+ "lblSenderStreet", 113, 82, 4, 78, 68))
+ self.lblPostCodeCity = self.insertLabel(
+ "lblPostCodeCity",
+ (PropertyNames.PROPERTY_HEIGHT,
+ PropertyNames.PROPERTY_LABEL,
+ PropertyNames.PROPERTY_NAME,
+ PropertyNames.PROPERTY_POSITION_X,
+ PropertyNames.PROPERTY_POSITION_Y,
+ PropertyNames.PROPERTY_STEP,
+ PropertyNames.PROPERTY_TABINDEX,
+ PropertyNames.PROPERTY_WIDTH),
+ (8, self.resources.reslblPostCodeCity_value,
+ "lblPostCodeCity", 113, 97, 4, 79, 68))
+ self.lblTitle4 = self.insertLabel(
+ "lblTitle4",
+ (
+ "FontDescriptor", PropertyNames.PROPERTY_HEIGHT,
+ PropertyNames.PROPERTY_LABEL,
+ PropertyNames.PROPERTY_MULTILINE,
+ PropertyNames.PROPERTY_NAME,
+ PropertyNames.PROPERTY_POSITION_X,
+ PropertyNames.PROPERTY_POSITION_Y,
+ PropertyNames.PROPERTY_STEP,
+ PropertyNames.PROPERTY_TABINDEX,
+ PropertyNames.PROPERTY_WIDTH),
+ (self.fontDescriptor6, 16,
+ self.resources.reslblTitle4_value, True,
+ "lblTitle4", 91, 8, 4, 92, 212))
+
+ def buildStep5(self):
+ self.txtFooter = self.insertTextField(
+ "txtFooter", TXTFOOTER_TEXT_CHANGED,
+ (PropertyNames.PROPERTY_HEIGHT,
+ PropertyNames.PROPERTY_HELPURL,
+ PropertyNames.PROPERTY_MULTILINE,
+ PropertyNames.PROPERTY_NAME,
+ PropertyNames.PROPERTY_POSITION_X,
+ PropertyNames.PROPERTY_POSITION_Y,
+ PropertyNames.PROPERTY_STEP,
+ PropertyNames.PROPERTY_TABINDEX,
+ PropertyNames.PROPERTY_WIDTH),
+ (47, HelpIds.getHelpIdString(HID + 41), True,
+ "txtFooter", 97, 40, 5, 41, 203), self)
+ self.chkFooterNextPages = self.insertCheckBox(
+ "chkFooterNextPages", CHKFOOTERNEXTPAGES_ITEM_CHANGED,
+ (PropertyNames.PROPERTY_HEIGHT,
+ PropertyNames.PROPERTY_HELPURL,
+ PropertyNames.PROPERTY_LABEL,
+ PropertyNames.PROPERTY_NAME,
+ PropertyNames.PROPERTY_POSITION_X,
+ PropertyNames.PROPERTY_POSITION_Y,
+ PropertyNames.PROPERTY_STATE,
+ PropertyNames.PROPERTY_STEP,
+ PropertyNames.PROPERTY_TABINDEX,
+ PropertyNames.PROPERTY_WIDTH),
+ (8, HelpIds.getHelpIdString(HID + 42),
+ self.resources.reschkFooterNextPages_value,
+ "chkFooterNextPages", 97, 92, 0, 5, 42, 202), self)
+ self.chkFooterPageNumbers = self.insertCheckBox(
+ "chkFooterPageNumbers", CHKFOOTERPAGENUMBERS_ITEM_CHANGED,
+ (PropertyNames.PROPERTY_HEIGHT,
+ PropertyNames.PROPERTY_HELPURL,
+ PropertyNames.PROPERTY_LABEL,
+ PropertyNames.PROPERTY_NAME,
+ PropertyNames.PROPERTY_POSITION_X,
+ PropertyNames.PROPERTY_POSITION_Y,
+ PropertyNames.PROPERTY_STATE,
+ PropertyNames.PROPERTY_STEP,
+ PropertyNames.PROPERTY_TABINDEX,
+ PropertyNames.PROPERTY_WIDTH),
+ (8, HelpIds.getHelpIdString(HID + 43),
+ self.resources.reschkFooterPageNumbers_value,
+ "chkFooterPageNumbers", 97, 106, 0, 5, 43, 201), self)
+ self.lblFooter = self.insertLabel(
+ "lblFooter",
+ (
+ "FontDescriptor", PropertyNames.PROPERTY_HEIGHT,
+ PropertyNames.PROPERTY_LABEL,
+ PropertyNames.PROPERTY_NAME,
+ PropertyNames.PROPERTY_POSITION_X,
+ PropertyNames.PROPERTY_POSITION_Y,
+ PropertyNames.PROPERTY_STEP,
+ PropertyNames.PROPERTY_TABINDEX,
+ PropertyNames.PROPERTY_WIDTH),
+ (self.fontDescriptor5, 8, self.resources.reslblFooter_value,
+ "lblFooter", 97, 28, 5, 52, 116))
+ self.lblTitle5 = self.insertLabel(
+ "lblTitle5",
+ (
+ "FontDescriptor", PropertyNames.PROPERTY_HEIGHT,
+ PropertyNames.PROPERTY_LABEL,
+ PropertyNames.PROPERTY_MULTILINE,
+ PropertyNames.PROPERTY_NAME,
+ PropertyNames.PROPERTY_POSITION_X,
+ PropertyNames.PROPERTY_POSITION_Y,
+ PropertyNames.PROPERTY_STEP,
+ PropertyNames.PROPERTY_TABINDEX,
+ PropertyNames.PROPERTY_WIDTH),
+ (self.fontDescriptor6, 16,
+ self.resources.reslblTitle5_value, True,
+ "lblTitle5", 91, 8, 5, 93, 212))
+
+ def buildStep6(self):
+ self.txtTemplateName = self.insertTextField(
+ "txtTemplateName", TXTTEMPLATENAME_TEXT_CHANGED,
+ (PropertyNames.PROPERTY_HEIGHT,
+ PropertyNames.PROPERTY_HELPURL,
+ PropertyNames.PROPERTY_NAME,
+ PropertyNames.PROPERTY_POSITION_X,
+ PropertyNames.PROPERTY_POSITION_Y,
+ PropertyNames.PROPERTY_STEP,
+ PropertyNames.PROPERTY_TABINDEX,
+ "Text",
+ PropertyNames.PROPERTY_WIDTH),
+ (12, HelpIds.getHelpIdString(HID + 44),
+ "txtTemplateName", 202, 56, 6, 44,
+ self.resources.restxtTemplateName_value, 100), self)
+ self.optCreateLetter = self.insertRadioButton(
+ "optCreateLetter", OPTCREATELETTER_ITEM_CHANGED,
+ (PropertyNames.PROPERTY_HEIGHT,
+ PropertyNames.PROPERTY_HELPURL,
+ PropertyNames.PROPERTY_LABEL,
+ PropertyNames.PROPERTY_NAME,
+ PropertyNames.PROPERTY_POSITION_X,
+ PropertyNames.PROPERTY_POSITION_Y,
+ PropertyNames.PROPERTY_STEP,
+ PropertyNames.PROPERTY_TABINDEX,
+ PropertyNames.PROPERTY_WIDTH),
+ (8, HelpIds.getHelpIdString(HID + 45),
+ self.resources.resoptCreateLetter_value,
+ "optCreateLetter", 104, 111, 6, 50, 198), self)
+ self.optMakeChanges = self.insertRadioButton(
+ "optMakeChanges", OPTMAKECHANGES_ITEM_CHANGED,
+ (PropertyNames.PROPERTY_HEIGHT,
+ PropertyNames.PROPERTY_HELPURL,
+ PropertyNames.PROPERTY_LABEL,
+ PropertyNames.PROPERTY_NAME,
+ PropertyNames.PROPERTY_POSITION_X,
+ PropertyNames.PROPERTY_POSITION_Y,
+ PropertyNames.PROPERTY_STEP,
+ PropertyNames.PROPERTY_TABINDEX,
+ PropertyNames.PROPERTY_WIDTH),
+ (8, HelpIds.getHelpIdString(HID + 46),
+ self.resources.resoptMakeChanges_value,
+ "optMakeChanges", 104, 123, 6, 51, 198), self)
+ self.lblFinalExplanation1 = self.insertLabel(
+ "lblFinalExplanation1",
+ (PropertyNames.PROPERTY_HEIGHT,
+ PropertyNames.PROPERTY_LABEL,
+ PropertyNames.PROPERTY_MULTILINE,
+ PropertyNames.PROPERTY_NAME,
+ PropertyNames.PROPERTY_POSITION_X,
+ PropertyNames.PROPERTY_POSITION_Y,
+ PropertyNames.PROPERTY_STEP,
+ PropertyNames.PROPERTY_TABINDEX,
+ PropertyNames.PROPERTY_WIDTH),
+ (26, self.resources.reslblFinalExplanation1_value, True,
+ "lblFinalExplanation1", 97, 28, 6, 52, 205))
+ self.lblProceed = self.insertLabel(
+ "lblProceed",
+ (PropertyNames.PROPERTY_HEIGHT,
+ PropertyNames.PROPERTY_LABEL,
+ PropertyNames.PROPERTY_NAME,
+ PropertyNames.PROPERTY_POSITION_X,
+ PropertyNames.PROPERTY_POSITION_Y,
+ PropertyNames.PROPERTY_STEP,
+ PropertyNames.PROPERTY_TABINDEX,
+ PropertyNames.PROPERTY_WIDTH),
+ (8, self.resources.reslblProceed_value,
+ "lblProceed", 97, 100, 6, 53, 204))
+ self.lblFinalExplanation2 = self.insertLabel(
+ "lblFinalExplanation2",
+ (PropertyNames.PROPERTY_HEIGHT,
+ PropertyNames.PROPERTY_LABEL,
+ PropertyNames.PROPERTY_MULTILINE,
+ PropertyNames.PROPERTY_NAME,
+ PropertyNames.PROPERTY_POSITION_X,
+ PropertyNames.PROPERTY_POSITION_Y,
+ PropertyNames.PROPERTY_STEP,
+ PropertyNames.PROPERTY_TABINDEX,
+ PropertyNames.PROPERTY_WIDTH),
+ (33, self.resources.reslblFinalExplanation2_value, True,
+ "lblFinalExplanation2", 104, 145, 6, 54, 199))
+ self.ImageControl2 = self.insertImage(
+ "ImageControl2",
+ (
+ "Border", PropertyNames.PROPERTY_HEIGHT,
+ PropertyNames.PROPERTY_IMAGEURL,
+ PropertyNames.PROPERTY_NAME,
+ PropertyNames.PROPERTY_POSITION_X,
+ PropertyNames.PROPERTY_POSITION_Y,
+ "ScaleImage",
+ PropertyNames.PROPERTY_STEP,
+ PropertyNames.PROPERTY_TABINDEX,
+ PropertyNames.PROPERTY_WIDTH),
+ (0, 10,
+ "private:resource/dbu/image/19205",
+ "ImageControl2", 92, 145, False, 6, 66, 10))
+ self.lblTemplateName = self.insertLabel(
+ "lblTemplateName",
+ (PropertyNames.PROPERTY_HEIGHT,
+ PropertyNames.PROPERTY_LABEL,
+ PropertyNames.PROPERTY_NAME,
+ PropertyNames.PROPERTY_POSITION_X,
+ PropertyNames.PROPERTY_POSITION_Y,
+ PropertyNames.PROPERTY_STEP,
+ PropertyNames.PROPERTY_TABINDEX,
+ PropertyNames.PROPERTY_WIDTH),
+ (8, self.resources.reslblTemplateName_value,
+ "lblTemplateName", 97, 58, 6, 82, 101))
+ self.lblTitle6 = self.insertLabel(
+ "lblTitle6",
+ (
+ "FontDescriptor", PropertyNames.PROPERTY_HEIGHT,
+ PropertyNames.PROPERTY_LABEL,
+ PropertyNames.PROPERTY_MULTILINE,
+ PropertyNames.PROPERTY_NAME,
+ PropertyNames.PROPERTY_POSITION_X,
+ PropertyNames.PROPERTY_POSITION_Y,
+ PropertyNames.PROPERTY_STEP,
+ PropertyNames.PROPERTY_TABINDEX,
+ PropertyNames.PROPERTY_WIDTH),
+ (self.fontDescriptor6, 16,
+ self.resources.reslblTitle6_value, True,
+ "lblTitle6", 91, 8, 6, 94, 212))
diff --git a/wizards/com/sun/star/wizards/letter/LetterWizardDialogConst.py b/wizards/com/sun/star/wizards/letter/LetterWizardDialogConst.py
new file mode 100644
index 000000000000..5efa78eea662
--- /dev/null
+++ b/wizards/com/sun/star/wizards/letter/LetterWizardDialogConst.py
@@ -0,0 +1,60 @@
+OPTBUSINESSLETTER_ITEM_CHANGED = "optBusinessLetterItemChanged"
+OPTPRIVOFFICIALLETTER_ITEM_CHANGED = "optPrivOfficialLetterItemChanged"
+OPTPRIVATELETTER_ITEM_CHANGED = "optPrivateLetterItemChanged"
+LSTBUSINESSSTYLE_ACTION_PERFORMED = None
+LSTBUSINESSSTYLE_ITEM_CHANGED = "lstBusinessStyleItemChanged"
+LSTPRIVOFFICIALSTYLE_ACTION_PERFORMED = None
+LSTPRIVOFFICIALSTYLE_ITEM_CHANGED = "lstPrivOfficialStyleItemChanged"
+CHKBUSINESSPAPER_ITEM_CHANGED = "chkBusinessPaperItemChanged"
+LSTPRIVATESTYLE_ACTION_PERFORMED = None
+LSTPRIVATESTYLE_ITEM_CHANGED = "lstPrivateStyleItemChanged"
+CHKPAPERCOMPANYLOGO_ITEM_CHANGED = "chkPaperCompanyLogoItemChanged"
+NUMLOGOHEIGHT_TEXT_CHANGED = "numLogoHeightTextChanged"
+NUMLOGOX_TEXT_CHANGED = "numLogoXTextChanged"
+NUMLOGOWIDTH_TEXT_CHANGED = "numLogoWidthTextChanged"
+NUMLOGOY_TEXT_CHANGED = "numLogoYTextChanged"
+CHKCOMPANYRECEIVER_ITEM_CHANGED = "chkCompanyReceiverItemChanged"
+CHKPAPERFOOTER_ITEM_CHANGED = "chkPaperFooterItemChanged"
+NUMFOOTERHEIGHT_TEXT_CHANGED = "numFooterHeightTextChanged"
+CHKPAPERCOMPANYADDRESS_ITEM_CHANGED = "chkPaperCompanyAddressItemChanged"
+NUMADDRESSHEIGHT_TEXT_CHANGED = "numAddressHeightTextChanged"
+NUMADDRESSX_TEXT_CHANGED = "numAddressXTextChanged"
+NUMADDRESSWIDTH_TEXT_CHANGED = "numAddressWidthTextChanged"
+NUMADDRESSY_TEXT_CHANGED = "numAddressYTextChanged"
+LSTLETTERNORM_ACTION_PERFORMED = None
+LSTLETTERNORM_ITEM_CHANGED = "lstLetterNormItemChanged"
+CHKUSELOGO_ITEM_CHANGED = "chkUseLogoItemChanged"
+CHKUSEADDRESSRECEIVER_ITEM_CHANGED = "chkUseAddressReceiverItemChanged"
+CHKUSESIGNS_ITEM_CHANGED = "chkUseSignsItemChanged"
+CHKUSESUBJECT_ITEM_CHANGED = "chkUseSubjectItemChanged"
+CHKUSEBENDMARKS_ITEM_CHANGED = "chkUseBendMarksItemChanged"
+CHKUSEFOOTER_ITEM_CHANGED = "chkUseFooterItemChanged"
+CHKUSESALUTATION_ITEM_CHANGED = "chkUseSalutationItemChanged"
+CHKUSEGREETING_ITEM_CHANGED = "chkUseGreetingItemChanged"
+LSTSALUTATION_ACTION_PERFORMED = None
+LSTSALUTATION_ITEM_CHANGED = "lstSalutationItemChanged"
+LSTSALUTATION_TEXT_CHANGED = "lstSalutationItemChanged"
+LSTGREETING_ACTION_PERFORMED = None
+LSTGREETING_ITEM_CHANGED = "lstGreetingItemChanged"
+LSTGREETING_TEXT_CHANGED = "lstGreetingItemChanged"
+OPTSENDERPLACEHOLDER_ITEM_CHANGED = "optSenderPlaceholderItemChanged"
+OPTSENDERDEFINE_ITEM_CHANGED = "optSenderDefineItemChanged"
+OPTRECEIVERPLACEHOLDER_ITEM_CHANGED = "optReceiverPlaceholderItemChanged"
+OPTRECEIVERDATABASE_ITEM_CHANGED = "optReceiverDatabaseItemChanged"
+TXTSENDERNAME_TEXT_CHANGED = "txtSenderNameTextChanged"
+TXTSENDERSTREET_TEXT_CHANGED = "txtSenderStreetTextChanged"
+TXTSENDERCITY_TEXT_CHANGED = "txtSenderCityTextChanged"
+TXTSENDERPOSTCODE_TEXT_CHANGED = "txtSenderPostCodeTextChanged"
+TXTSENDERSTATE_TEXT_CHANGED = "txtSenderStateTextChanged"
+TXTFOOTER_TEXT_CHANGED = "txtFooterTextChanged"
+CHKFOOTERNEXTPAGES_ITEM_CHANGED = "chkFooterNextPagesItemChanged"
+CHKFOOTERPAGENUMBERS_ITEM_CHANGED = "chkFooterPageNumbersItemChanged"
+TXTTEMPLATENAME_TEXT_CHANGED = "txtTemplateNameTextChanged"
+OPTCREATELETTER_ITEM_CHANGED = "optCreateLetterItemChanged"
+OPTMAKECHANGES_ITEM_CHANGED = "optMakeChangesItemChanged"
+FILETEMPLATEPATH_TEXT_CHANGED = None
+imageURLImageControl1 = None
+imageURLImageControl2 = None
+imageURLImageControl3 = None
+HID = 40768
+HIDMAIN = 40820
diff --git a/wizards/com/sun/star/wizards/letter/LetterWizardDialogImpl.py b/wizards/com/sun/star/wizards/letter/LetterWizardDialogImpl.py
new file mode 100644
index 000000000000..d24728612947
--- /dev/null
+++ b/wizards/com/sun/star/wizards/letter/LetterWizardDialogImpl.py
@@ -0,0 +1,1278 @@
+import traceback
+from LetterWizardDialog import *
+from LetterDocument import *
+from common.NoValidPathException import *
+from common.FileAccess import *
+from LocaleCodes import LocaleCodes
+from ui.PathSelection import *
+from common.Configuration import *
+from CGLetterWizard import CGLetterWizard
+from ui.event.UnoDataAware import *
+from ui.event.RadioDataAware import *
+from document.OfficeDocument import OfficeDocument
+from ui.XPathSelectionListener import XPathSelectionListener
+from text.TextFieldHandler import TextFieldHandler
+from com.sun.star.awt.VclWindowPeerAttribute import YES_NO, DEF_NO
+
+from com.sun.star.view.DocumentZoomType import OPTIMAL
+from com.sun.star.document.UpdateDocMode import FULL_UPDATE
+from com.sun.star.document.MacroExecMode import ALWAYS_EXECUTE
+
+class LetterWizardDialogImpl(LetterWizardDialog):
+ RM_TYPESTYLE = 1
+ RM_BUSINESSPAPER = 2
+ RM_ELEMENTS = 3
+ RM_SENDERRECEIVER = 4
+ RM_FOOTER = 5
+ RM_FINALSETTINGS = 6
+
+ def enterStep(self, OldStep, NewStep):
+ pass
+
+ def leaveStep(self, OldStep, NewStep):
+ pass
+
+ def __init__(self, xmsf):
+ super(LetterWizardDialogImpl, self).__init__(xmsf)
+ self.xmsf = xmsf
+ self.mainDA = []
+ self.letterDA = []
+ self.businessDA = []
+ self.bSaveSuccess = False
+ self.filenameChanged = False
+ self.BusCompanyLogo = None
+ self.BusCompanyAddress = None
+ self.BusCompanyAddressReceiver = None
+ self.BusFooter = None
+ self.Norms = []
+ self.NormPaths = []
+
+ @classmethod
+ def main(self, args):
+ ConnectStr = \
+ "uno:socket,host=localhost,port=2002;urp;StarOffice.ComponentContext"
+ xLocMSF = None
+ try:
+ xLocMSF = Desktop.connect(ConnectStr)
+ except Exception, e:
+ traceback.print_exc()
+
+ lw = LetterWizardDialogImpl(xLocMSF)
+ lw.startWizard(xLocMSF, None)
+
+ def startWizard(self, xMSF, CurPropertyValue):
+ self.running = True
+ try:
+ #Number of steps on WizardDialog
+ self.nMaxStep = 6
+
+ #instatiate The Document Frame for the Preview
+ self.myLetterDoc = LetterDocument(xMSF, self)
+
+ #create the dialog
+ self.drawNaviBar()
+ self.buildStep1()
+ self.buildStep2()
+ self.buildStep3()
+ self.buildStep4()
+ self.buildStep5()
+ self.buildStep6()
+
+ self.__initializePaths()
+ self.initializeNorms()
+ self.initializeSalutation()
+ self.initializeGreeting()
+
+ #special Control fFrameor setting the save Path:
+ self.insertPathSelectionControl()
+
+ #load the last used settings
+ #from the registry and apply listeners to the controls:
+ self.initConfiguration()
+
+ oL = self.getOfficeLinguistic()
+ self.myConfig.cp_BusinessLetter.cp_Norm = oL
+ self.myConfig.cp_PrivateOfficialLetter.cp_Norm = oL
+ self.myConfig.cp_PrivateLetter.cp_Norm = oL
+ self.initializeTemplates(xMSF)
+ if self.myConfig.cp_BusinessLetter.cp_Greeting == "":
+ self.myConfig.cp_BusinessLetter.cp_Greeting = \
+ self.resources.GreetingLabels[0]
+
+ if self.myConfig.cp_BusinessLetter.cp_Salutation == "":
+ self.myConfig.cp_BusinessLetter.cp_Salutation = \
+ self.resources.SalutationLabels[0]
+
+ if self.myConfig.cp_PrivateOfficialLetter.cp_Greeting == "":
+ self.myConfig.cp_PrivateOfficialLetter.cp_Greeting = \
+ self.resources.GreetingLabels[1]
+
+ if self.myConfig.cp_PrivateOfficialLetter.cp_Salutation == "":
+ self.myConfig.cp_PrivateOfficialLetter.cp_Salutation = \
+ self.resources.SalutationLabels[1]
+
+ if self.myConfig.cp_PrivateLetter.cp_Greeting == "":
+ self.myConfig.cp_PrivateLetter.cp_Greeting = \
+ self.resources.GreetingLabels[2]
+
+ if self.myConfig.cp_PrivateLetter.cp_Salutation == "":
+ self.myConfig.cp_PrivateLetter.cp_Salutation = \
+ self.resources.SalutationLabels[2]
+
+ self.updateUI()
+ if self.myPathSelection.xSaveTextBox.Text.lower() == "":
+ self.myPathSelection.initializePath()
+
+ xContainerWindow = self.myLetterDoc.xFrame.ContainerWindow
+ self.createWindowPeer(xContainerWindow)
+ self.insertRoadmap()
+ self.setConfiguration()
+ self.setDefaultForGreetingAndSalutation()
+ self.initializeElements()
+ self.myLetterDoc.xFrame.ComponentWindow.Enable = False
+ self.executeDialogFromComponent(self.myLetterDoc.xFrame)
+ self.removeTerminateListener()
+ self.closeDocument()
+ self.running = False
+ except Exception, exception:
+ self.removeTerminateListener()
+ traceback.print_exc()
+ self.running = False
+ return
+
+ def cancelWizard(self):
+ self.xUnoDialog.endExecute()
+ self.running = False
+
+ def finishWizard(self):
+ self.switchToStep(self.getCurrentStep(), self.nMaxStep)
+ try:
+ fileAccess = FileAccess(self.xMSF)
+ self.sPath = self.myPathSelection.getSelectedPath()
+ if self.sPath == "":
+ self.myPathSelection.triggerPathPicker()
+ self.sPath = self.myPathSelection.getSelectedPath()
+
+ self.sPath = fileAccess.getURL(self.sPath)
+ if not self.filenameChanged:
+ if fileAccess.exists(self.sPath, True):
+ answer = SystemDialog.showMessageBox(
+ self.xMSF, "MessBox", YES_NO + DEF_NO,
+ self.resources.resOverwriteWarning,
+ self.xUnoDialog.Peer)
+ if answer == 3:
+ return False
+
+ self.myLetterDoc.setWizardTemplateDocInfo(
+ self.resources.resLetterWizardDialog_title,
+ self.resources.resTemplateDescription)
+ self.myLetterDoc.killEmptyUserFields()
+ self.myLetterDoc.keepLogoFrame = self.chkUseLogo.State != 0
+ if self.chkBusinessPaper.State != 0 \
+ and self.chkPaperCompanyLogo.State != 0:
+ self.myLetterDoc.keepLogoFrame = False
+
+ self.myLetterDoc.keepBendMarksFrame = \
+ self.chkUseBendMarks.State != 0
+ self.myLetterDoc.keepLetterSignsFrame = \
+ self.chkUseSigns.State != 0
+ self.myLetterDoc.keepSenderAddressRepeatedFrame = \
+ self.chkUseAddressReceiver.State != 0
+ if self.optBusinessLetter.State:
+ if self.chkBusinessPaper.State != 0 \
+ and self.chkCompanyReceiver.State != 0:
+ self.myLetterDoc.keepSenderAddressRepeatedFrame = False
+
+ if self.chkBusinessPaper.State != 0 \
+ and self.chkPaperCompanyAddress.State != 0:
+ self.myLetterDoc.keepAddressFrame = False
+
+ self.myLetterDoc.killEmptyFrames()
+ self.bSaveSuccess = \
+ OfficeDocument.store(
+ self.xMSF, TextDocument.xTextDocument,
+ self.sPath, "writer8_template")
+ if self.bSaveSuccess:
+ self.saveConfiguration()
+ xIH = self.xMSF.createInstance(
+ "com.sun.star.comp.uui.UUIInteractionHandler")
+ loadValues = range(4)
+ loadValues[0] = uno.createUnoStruct( \
+ 'com.sun.star.beans.PropertyValue')
+ loadValues[0].Name = "AsTemplate"
+ loadValues[1] = uno.createUnoStruct( \
+ 'com.sun.star.beans.PropertyValue')
+ loadValues[1].Name = "MacroExecutionMode"
+ loadValues[1].Value = ALWAYS_EXECUTE
+ loadValues[2] = uno.createUnoStruct( \
+ 'com.sun.star.beans.PropertyValue')
+ loadValues[2].Name = "UpdateDocMode"
+ loadValues[2].Value = FULL_UPDATE
+ loadValues[3] = uno.createUnoStruct( \
+ 'com.sun.star.beans.PropertyValue')
+ loadValues[3].Name = "InteractionHandler"
+ loadValues[3].Value = xIH
+ if self.bEditTemplate:
+ loadValues[0].Value = False
+ else:
+ loadValues[0].Value = True
+
+ oDoc = OfficeDocument.load(
+ Desktop.getDesktop(self.xMSF),
+ self.sPath, "_default", loadValues)
+ myViewHandler = ViewHandler(self.xMSF, oDoc)
+ myViewHandler.setViewSetting("ZoomType", OPTIMAL)
+ else:
+ pass
+
+ except Exception, e:
+ traceback.print_exc()
+ finally:
+ self.xUnoDialog.endExecute()
+ self.running = False
+
+ return True;
+
+ def closeDocument(self):
+ try:
+ xCloseable = self.myLetterDoc.xFrame
+ xCloseable.close(False)
+ except CloseVetoException, e:
+ traceback.print_exc()
+
+ def optBusinessLetterItemChanged(self):
+ DataAware.setDataObjects(
+ self.letterDA, self.myConfig.cp_BusinessLetter, True)
+ self.setControlProperty(
+ "lblBusinessStyle", PropertyNames.PROPERTY_ENABLED, True)
+ self.setControlProperty(
+ "lstBusinessStyle", PropertyNames.PROPERTY_ENABLED, True)
+ self.setControlProperty(
+ "chkBusinessPaper", PropertyNames.PROPERTY_ENABLED, True)
+ self.setControlProperty(
+ "lblPrivOfficialStyle", PropertyNames.PROPERTY_ENABLED, False)
+ self.setControlProperty(
+ "lstPrivOfficialStyle", PropertyNames.PROPERTY_ENABLED, False)
+ self.setControlProperty(
+ "lblPrivateStyle", PropertyNames.PROPERTY_ENABLED, False)
+ self.setControlProperty(
+ "lstPrivateStyle", PropertyNames.PROPERTY_ENABLED, False)
+ self.lstBusinessStyleItemChanged()
+ self.enableSenderReceiver()
+ self.setPossibleFooter(True)
+ if self.myPathSelection.xSaveTextBox.Text.lower() == "":
+ self.myPathSelection.initializePath()
+
+ def optPrivOfficialLetterItemChanged(self):
+ DataAware.setDataObjects(
+ self.letterDA, self.myConfig.cp_PrivateOfficialLetter, True)
+ self.setControlProperty(
+ "lblBusinessStyle", PropertyNames.PROPERTY_ENABLED, False)
+ self.setControlProperty(
+ "lstBusinessStyle", PropertyNames.PROPERTY_ENABLED, False)
+ self.setControlProperty(
+ "chkBusinessPaper", PropertyNames.PROPERTY_ENABLED, False)
+ self.setControlProperty(
+ "lblPrivOfficialStyle", PropertyNames.PROPERTY_ENABLED, True)
+ self.setControlProperty(
+ "lstPrivOfficialStyle", PropertyNames.PROPERTY_ENABLED, True)
+ self.setControlProperty(
+ "lblPrivateStyle", PropertyNames.PROPERTY_ENABLED, False)
+ self.setControlProperty(
+ "lstPrivateStyle", PropertyNames.PROPERTY_ENABLED, False)
+ self.lstPrivOfficialStyleItemChanged()
+ self.disableBusinessPaper()
+ self.enableSenderReceiver()
+ self.setPossibleFooter(True)
+ if self.myPathSelection.xSaveTextBox.Text.lower() == "":
+ self.myPathSelection.initializePath()
+
+ def optPrivateLetterItemChanged(self):
+ DataAware.setDataObjects(
+ self.letterDA, self.myConfig.cp_PrivateLetter, True)
+ self.setControlProperty(
+ "lblBusinessStyle", PropertyNames.PROPERTY_ENABLED, False)
+ self.setControlProperty(
+ "lstBusinessStyle", PropertyNames.PROPERTY_ENABLED, False)
+ self.setControlProperty(
+ "chkBusinessPaper", PropertyNames.PROPERTY_ENABLED, False)
+ self.setControlProperty(
+ "lblPrivOfficialStyle", PropertyNames.PROPERTY_ENABLED, False)
+ self.setControlProperty(
+ "lstPrivOfficialStyle", PropertyNames.PROPERTY_ENABLED, False)
+ self.setControlProperty(
+ "lblPrivateStyle", PropertyNames.PROPERTY_ENABLED, True)
+ self.setControlProperty(
+ "lstPrivateStyle", PropertyNames.PROPERTY_ENABLED, True)
+ self.lstPrivateStyleItemChanged()
+ self.disableBusinessPaper()
+ self.disableSenderReceiver()
+ self.setPossibleFooter(False)
+ if self.myPathSelection.xSaveTextBox.Text.lower() == "":
+ self.myPathSelection.initializePath()
+
+ def optSenderPlaceholderItemChanged(self):
+ self.setControlProperty(
+ "lblSenderName", PropertyNames.PROPERTY_ENABLED, False)
+ self.setControlProperty(
+ "lblSenderStreet", PropertyNames.PROPERTY_ENABLED, False)
+ self.setControlProperty(
+ "lblPostCodeCity", PropertyNames.PROPERTY_ENABLED, False)
+ self.setControlProperty(
+ "txtSenderName", PropertyNames.PROPERTY_ENABLED, False)
+ self.setControlProperty(
+ "txtSenderStreet", PropertyNames.PROPERTY_ENABLED, False)
+ self.setControlProperty(
+ "txtSenderPostCode", PropertyNames.PROPERTY_ENABLED, False)
+ self.setControlProperty(
+ "txtSenderState", PropertyNames.PROPERTY_ENABLED, False)
+ self.setControlProperty(
+ "txtSenderCity", PropertyNames.PROPERTY_ENABLED, False)
+ self.myLetterDoc.fillSenderWithUserData()
+
+ def optSenderDefineItemChanged(self):
+ self.setControlProperty(
+ "lblSenderName", PropertyNames.PROPERTY_ENABLED, True)
+ self.setControlProperty(
+ "lblSenderStreet", PropertyNames.PROPERTY_ENABLED, True)
+ self.setControlProperty(
+ "lblPostCodeCity", PropertyNames.PROPERTY_ENABLED, True)
+ self.setControlProperty(
+ "txtSenderName", PropertyNames.PROPERTY_ENABLED, True)
+ self.setControlProperty(
+ "txtSenderStreet", PropertyNames.PROPERTY_ENABLED, True)
+ self.setControlProperty(
+ "txtSenderPostCode", PropertyNames.PROPERTY_ENABLED, True)
+ self.setControlProperty(
+ "txtSenderState", PropertyNames.PROPERTY_ENABLED, True)
+ self.setControlProperty(
+ "txtSenderCity", PropertyNames.PROPERTY_ENABLED, True)
+ self.txtSenderNameTextChanged()
+ self.txtSenderStreetTextChanged()
+ self.txtSenderPostCodeTextChanged()
+ self.txtSenderStateTextChanged()
+ self.txtSenderCityTextChanged()
+
+ def optCreateLetterItemChanged(self):
+ self.bEditTemplate = False
+
+ def optMakeChangesItemChanged(self):
+ self.bEditTemplate = True
+
+ def optReceiverPlaceholderItemChanged(self):
+ OfficeDocument.attachEventCall(
+ TextDocument.xTextDocument, "OnNew", "StarBasic",
+ "macro:///Template.Correspondence.Placeholder()")
+
+ def optReceiverDatabaseItemChanged(self):
+ OfficeDocument.attachEventCall(
+ TextDocument.xTextDocument, "OnNew", "StarBasic",
+ "macro:///Template.Correspondence.Database()")
+
+ def lstBusinessStyleItemChanged(self):
+ TextDocument.xTextDocument = \
+ self.myLetterDoc.loadAsPreview(
+ self.BusinessFiles[1][self.lstBusinessStyle.SelectedItemPos],
+ False)
+ self.myLetterDoc.xTextDocument.lockControllers()
+ self.initializeElements()
+ self.chkBusinessPaperItemChanged()
+ self.setElements(False)
+ self.myLetterDoc.xTextDocument.unlockControllers()
+ self.activate()
+
+ def lstPrivOfficialStyleItemChanged(self):
+ TextDocument.xTextDocument = \
+ self.myLetterDoc.loadAsPreview(
+ self.OfficialFiles[1][self.lstPrivOfficialStyle.SelectedItemPos],
+ False)
+ self.myLetterDoc.xTextDocument.lockControllers()
+ self.initializeElements()
+ self.setPossibleSenderData(True)
+ self.setElements(False)
+ self.myLetterDoc.xTextDocument.unlockControllers()
+ self.activate()
+
+ def lstPrivateStyleItemChanged(self):
+ TextDocument.xTextDocument = \
+ self.myLetterDoc.loadAsPreview(
+ self.PrivateFiles[1][self.lstPrivateStyle.getSelectedItemPos()],
+ False)
+ self.myLetterDoc.xTextDocument.lockControllers()
+ self.initializeElements()
+ self.setElements(True)
+ self.myLetterDoc.xTextDocument.unlockControllers()
+ self.activate()
+
+ def numLogoHeightTextChanged(self):
+ self.BusCompanyLogo.iHeight = int(self.numLogoHeight.Value * 1000)
+ self.BusCompanyLogo.setFramePosition()
+
+ def numLogoWidthTextChanged(self):
+ self.BusCompanyLogo.iWidth = int(self.numLogoWidth.Value * 1000)
+ self.BusCompanyLogo.setFramePosition()
+
+ def numLogoXTextChanged(self):
+ self.BusCompanyLogo.iXPos = int(self.numLogoX.Value * 1000)
+ self.BusCompanyLogo.setFramePosition()
+
+ def numLogoYTextChanged(self):
+ self.BusCompanyLogo.iYPos = int(self.numLogoY.Value * 1000)
+ self.BusCompanyLogo.setFramePosition()
+
+ def numAddressWidthTextChanged(self):
+ self.BusCompanyAddress.iWidth = int(self.numAddressWidth.Value * 1000)
+ self.BusCompanyAddress.setFramePosition()
+
+ def numAddressXTextChanged(self):
+ self.BusCompanyAddress.iXPos = int(self.numAddressX.Value * 1000)
+ self.BusCompanyAddress.setFramePosition()
+
+ def numAddressYTextChanged(self):
+ self.BusCompanyAddress.iYPos = int(self.numAddressY.Value * 1000)
+ self.BusCompanyAddress.setFramePosition()
+
+ def numAddressHeightTextChanged(self):
+ self.BusCompanyAddress.iHeight = int(self.numAddressHeight.Value * 1000)
+ self.BusCompanyAddress.setFramePosition()
+
+ def numFooterHeightTextChanged(self):
+ self.BusFooter.iHeight = int(self.numFooterHeight.Value * 1000)
+ self.BusFooter.iYPos = \
+ self.myLetterDoc.DocSize.Height - self.BusFooter.iHeight
+ self.BusFooter.setFramePosition()
+
+ def chkPaperCompanyLogoItemChanged(self):
+ if self.chkPaperCompanyLogo.State != 0:
+ if self.numLogoWidth.Value == 0:
+ self.numLogoWidth.Value = 0.1
+
+ if self.numLogoHeight.Value == 0:
+ self.numLogoHeight.Value = 0.1
+ self.BusCompanyLogo = BusinessPaperObject(
+ "Company Logo", int(self.numLogoWidth.Value * 1000),
+ int(self.numLogoHeight.Value * 1000),
+ int(self.numLogoX.Value * 1000),
+ self.numLogoY.Value * 1000)
+ self.setControlProperty(
+ "numLogoHeight", PropertyNames.PROPERTY_ENABLED, True)
+ self.setControlProperty(
+ "lblCompanyLogoHeight", PropertyNames.PROPERTY_ENABLED, True)
+ self.setControlProperty(
+ "numLogoWidth", PropertyNames.PROPERTY_ENABLED, True)
+ self.setControlProperty(
+ "lblCompanyLogoWidth", PropertyNames.PROPERTY_ENABLED, True)
+ self.setControlProperty(
+ "numLogoX", PropertyNames.PROPERTY_ENABLED, True)
+ self.setControlProperty(
+ "lblCompanyLogoX", PropertyNames.PROPERTY_ENABLED, True)
+ self.setControlProperty(
+ "numLogoY", PropertyNames.PROPERTY_ENABLED, True)
+ self.setControlProperty(
+ "lblCompanyLogoY", PropertyNames.PROPERTY_ENABLED, True)
+ self.setPossibleLogo(False)
+ else:
+ if self.BusCompanyLogo != None:
+ self.BusCompanyLogo.removeFrame()
+
+ self.setControlProperty(
+ "numLogoHeight", PropertyNames.PROPERTY_ENABLED, False)
+ self.setControlProperty(
+ "lblCompanyLogoHeight", PropertyNames.PROPERTY_ENABLED, False)
+ self.setControlProperty(
+ "numLogoWidth", PropertyNames.PROPERTY_ENABLED, False)
+ self.setControlProperty(
+ "lblCompanyLogoWidth", PropertyNames.PROPERTY_ENABLED, False)
+ self.setControlProperty(
+ "numLogoX", PropertyNames.PROPERTY_ENABLED, False)
+ self.setControlProperty(
+ "lblCompanyLogoX", PropertyNames.PROPERTY_ENABLED, False)
+ self.setControlProperty(
+ "numLogoY", PropertyNames.PROPERTY_ENABLED, False)
+ self.setControlProperty(
+ "lblCompanyLogoY", PropertyNames.PROPERTY_ENABLED, False)
+ self.setPossibleLogo(True)
+
+ def chkPaperCompanyAddressItemChanged(self):
+ if self.chkPaperCompanyAddress.State != 0:
+ if self.numAddressWidth.Value == 0:
+ self.numAddressWidth.Value = 0.1
+
+ if self.numAddressHeight.Value == 0:
+ self.numAddressHeight.Value = 0.1
+
+ self.BusCompanyAddress = BusinessPaperObject(
+ "Company Address", int(self.numAddressWidth.Value * 1000),
+ int(self.numAddressHeight.Value * 1000),
+ int(self.numAddressX.Value * 1000),
+ int(self.numAddressY.Value * 1000))
+ self.setControlProperty(
+ "self.numAddressHeight", PropertyNames.PROPERTY_ENABLED, True)
+ self.setControlProperty(
+ "lblCompanyAddressHeight", PropertyNames.PROPERTY_ENABLED, True)
+ self.setControlProperty(
+ "self.numAddressWidth", PropertyNames.PROPERTY_ENABLED, True)
+ self.setControlProperty(
+ "lblCompanyAddressWidth", PropertyNames.PROPERTY_ENABLED, True)
+ self.setControlProperty(
+ "self.numAddressX", PropertyNames.PROPERTY_ENABLED, True)
+ self.setControlProperty(
+ "lblCompanyAddressX", PropertyNames.PROPERTY_ENABLED, True)
+ self.setControlProperty(
+ "self.numAddressY", PropertyNames.PROPERTY_ENABLED, True)
+ self.setControlProperty(
+ "lblCompanyAddressY", PropertyNames.PROPERTY_ENABLED, True)
+ if self.myLetterDoc.hasElement("Sender Address"):
+ self.myLetterDoc.switchElement(
+ "Sender Address", False)
+
+ if self.chkCompanyReceiver.State != 0:
+ self.setPossibleSenderData(False)
+
+ else:
+ if self.BusCompanyAddress != None:
+ self.BusCompanyAddress.removeFrame()
+
+ self.setControlProperty(
+ "self.numAddressHeight", PropertyNames.PROPERTY_ENABLED, False)
+ self.setControlProperty(
+ "lblCompanyAddressHeight", PropertyNames.PROPERTY_ENABLED, False)
+ self.setControlProperty(
+ "self.numAddressWidth", PropertyNames.PROPERTY_ENABLED, False)
+ self.setControlProperty(
+ "lblCompanyAddressWidth", PropertyNames.PROPERTY_ENABLED, False)
+ self.setControlProperty(
+ "self.numAddressX", PropertyNames.PROPERTY_ENABLED, False)
+ self.setControlProperty(
+ "lblCompanyAddressX", PropertyNames.PROPERTY_ENABLED, False)
+ self.setControlProperty(
+ "self.numAddressY", PropertyNames.PROPERTY_ENABLED, False)
+ self.setControlProperty(
+ "lblCompanyAddressY", PropertyNames.PROPERTY_ENABLED, False)
+ if self.myLetterDoc.hasElement("Sender Address"):
+ self.myLetterDoc.switchElement(
+ "Sender Address", (True))
+
+ self.setPossibleSenderData(True)
+ if self.optSenderDefine.State:
+ self.optSenderDefineItemChanged()
+
+ if self.optSenderPlaceholder.State:
+ self.optSenderPlaceholderItemChanged()
+
+ def chkCompanyReceiverItemChanged(self):
+ xReceiverFrame = None
+ if self.chkCompanyReceiver.State != 0:
+ try:
+ xReceiverFrame = TextDocument.getFrameByName(
+ "Receiver Address", TextDocument.xTextDocument)
+ iFrameWidth = int(Helper.getUnoPropertyValue(
+ xReceiverFrame, PropertyNames.PROPERTY_WIDTH))
+ iFrameX = int(Helper.getUnoPropertyValue(
+ xReceiverFrame, "HoriOrientPosition"))
+ iFrameY = int(Helper.getUnoPropertyValue(
+ xReceiverFrame, "VertOrientPosition"))
+ iReceiverHeight = int(0.5 * 1000)
+ self.BusCompanyAddressReceiver = BusinessPaperObject(
+ " ", iFrameWidth, iReceiverHeight, iFrameX,
+ iFrameY - iReceiverHeight)
+ self.setPossibleAddressReceiver(False)
+ except NoSuchElementException:
+ traceback.print_exc()
+ except WrappedTargetException:
+ traceback.print_exc()
+
+ if self.chkPaperCompanyAddress.State != 0:
+ self.setPossibleSenderData(False)
+
+ else:
+ if self.BusCompanyAddressReceiver != None:
+ self.BusCompanyAddressReceiver.removeFrame()
+
+ self.setPossibleAddressReceiver(True)
+ self.setPossibleSenderData(True)
+ if self.optSenderDefine.State:
+ self.optSenderDefineItemChanged()
+
+ if self.optSenderPlaceholder.State:
+ self.optSenderPlaceholderItemChanged()
+
+ def chkPaperFooterItemChanged(self):
+ if self.chkPaperFooter.State != 0:
+ if self.numFooterHeight.Value == 0:
+ self.numFooterHeight.Value = 0.1
+
+ self.BusFooter = BusinessPaperObject(
+ "Footer", self.myLetterDoc.DocSize.Width,
+ int(self.numFooterHeight.Value * 1000), 0,
+ int(self.myLetterDoc.DocSize.Height - \
+ (self.numFooterHeight.Value * 1000)))
+ self.setControlProperty(
+ "self.numFooterHeight", PropertyNames.PROPERTY_ENABLED, True)
+ self.setControlProperty(
+ "lblFooterHeight", PropertyNames.PROPERTY_ENABLED, True)
+ self.setPossibleFooter(False)
+ else:
+ if self.BusFooter != None:
+ self.BusFooter.removeFrame()
+
+ self.setControlProperty(
+ "self.numFooterHeight", PropertyNames.PROPERTY_ENABLED, False)
+ self.setControlProperty(
+ "lblFooterHeight", PropertyNames.PROPERTY_ENABLED, False)
+ self.setPossibleFooter(True)
+
+ def chkUseLogoItemChanged(self):
+ try:
+ if self.myLetterDoc.hasElement("Company Logo"):
+ logostatus = \
+ bool(self.getControlProperty(
+ "chkUseLogo", PropertyNames.PROPERTY_ENABLED)) \
+ and (self.chkUseLogo.State != 0)
+ self.myLetterDoc.switchElement(
+ "Company Logo", logostatus)
+ except IllegalArgumentException, e:
+ traceback.print_exc()
+
+ def chkUseAddressReceiverItemChanged(self):
+ try:
+ if self.myLetterDoc.hasElement("Sender Address Repeated"):
+ rstatus = \
+ bool(self.getControlProperty(
+ "chkUseAddressReceiver",
+ PropertyNames.PROPERTY_ENABLED)) \
+ and (self.chkUseAddressReceiver.State != 0)
+ self.myLetterDoc.switchElement(
+ "Sender Address Repeated", rstatus)
+
+ except IllegalArgumentException, e:
+ traceback.print_exc()
+
+ def chkUseSignsItemChanged(self):
+ if self.myLetterDoc.hasElement("Letter Signs"):
+ self.myLetterDoc.switchElement(
+ "Letter Signs", self.chkUseSigns.State != 0)
+
+ def chkUseSubjectItemChanged(self):
+ if self.myLetterDoc.hasElement("Subject Line"):
+ self.myLetterDoc.switchElement(
+ "Subject Line", self.chkUseSubject.State != 0)
+
+ def chkUseBendMarksItemChanged(self):
+ if self.myLetterDoc.hasElement("Bend Marks"):
+ self.myLetterDoc.switchElement(
+ "Bend Marks", self.chkUseBendMarks.State != 0)
+
+ def chkUseFooterItemChanged(self):
+ try:
+ bFooterPossible = (self.chkUseFooter.State != 0) \
+ and bool(self.getControlProperty(
+ "chkUseFooter", PropertyNames.PROPERTY_ENABLED))
+ if self.chkFooterNextPages.State != 0:
+ self.myLetterDoc.switchFooter(
+ "First Page", False, self.chkFooterPageNumbers.State != 0,
+ txtFooter.Text)
+ self.myLetterDoc.switchFooter("Standard", bFooterPossible,
+ self.chkFooterPageNumbers.State != 0, self.txtFooter.Text)
+ else:
+ self.myLetterDoc.switchFooter(
+ "First Page", bFooterPossible,
+ self.chkFooterPageNumbers.State != 0, self.txtFooter.Text)
+ self.myLetterDoc.switchFooter(
+ "Standard", bFooterPossible,
+ self.chkFooterPageNumbers.State != 0, self.txtFooter.Text)
+
+ BPaperItem = \
+ self.getRoadmapItemByID(LetterWizardDialogImpl.RM_FOOTER)
+ Helper.setUnoPropertyValue(
+ BPaperItem, PropertyNames.PROPERTY_ENABLED, bFooterPossible)
+ except Exception, exception:
+ traceback.print_exc()
+
+ def chkFooterNextPagesItemChanged(self):
+ self.chkUseFooterItemChanged()
+
+ def chkFooterPageNumbersItemChanged(self):
+ self.chkUseFooterItemChanged()
+
+ def setPossibleFooter(self, bState):
+ self.setControlProperty(
+ "chkUseFooter", PropertyNames.PROPERTY_ENABLED, bState)
+ self.chkUseFooterItemChanged()
+
+ def setPossibleAddressReceiver(self, bState):
+ if self.myLetterDoc.hasElement("Sender Address Repeated"):
+ self.setControlProperty(
+ "chkUseAddressReceiver", PropertyNames.PROPERTY_ENABLED, bState)
+ self.chkUseAddressReceiverItemChanged()
+
+ def setPossibleLogo(self, bState):
+ if self.myLetterDoc.hasElement("Company Logo"):
+ self.setControlProperty(
+ "chkUseLogo", PropertyNames.PROPERTY_ENABLED, bState)
+ self.chkUseLogoItemChanged()
+
+ def txtFooterTextChanged(self):
+ self.chkUseFooterItemChanged()
+
+ def txtSenderNameTextChanged(self):
+ myFieldHandler = TextFieldHandler(
+ self.myLetterDoc.xMSF, TextDocument.xTextDocument)
+ myFieldHandler.changeUserFieldContent(
+ "Company", self.txtSenderName.Text)
+
+ def txtSenderStreetTextChanged(self):
+ myFieldHandler = TextFieldHandler(
+ self.myLetterDoc.xMSF, TextDocument.xTextDocument)
+ myFieldHandler.changeUserFieldContent(
+ "Street", self.txtSenderStreet.Text)
+
+ def txtSenderCityTextChanged(self):
+ myFieldHandler = TextFieldHandler(
+ self.myLetterDoc.xMSF, TextDocument.xTextDocument)
+ myFieldHandler.changeUserFieldContent(
+ "City", self.txtSenderCity.Text)
+
+ def txtSenderPostCodeTextChanged(self):
+ myFieldHandler = TextFieldHandler(
+ self.myLetterDoc.xMSF, TextDocument.xTextDocument)
+ myFieldHandler.changeUserFieldContent(
+ "PostCode", self.txtSenderPostCode.Text)
+
+ def txtSenderStateTextChanged(self):
+ myFieldHandler = TextFieldHandler(
+ self.myLetterDoc.xMSF, TextDocument.xTextDocument)
+ myFieldHandler.changeUserFieldContent(
+ PropertyNames.PROPERTY_STATE, self.txtSenderState.Text)
+
+ def txtTemplateNameTextChanged(self):
+ xDocProps = TextDocument.xTextDocument.DocumentProperties
+ TitleName = self.txtTemplateName.Text
+ xDocProps.Title = TitleName
+
+ def chkUseSalutationItemChanged(self):
+ self.myLetterDoc.switchUserField(
+ "Salutation", self.lstSalutation.Text,
+ self.chkUseSalutation.State != 0)
+ self.setControlProperty(
+ "lstSalutation", PropertyNames.PROPERTY_ENABLED,
+ self.chkUseSalutation.State != 0)
+
+ def lstSalutationItemChanged(self):
+ self.myLetterDoc.switchUserField(
+ "Salutation", self.lstSalutation.Text,
+ self.chkUseSalutation.State != 0)
+
+ def chkUseGreetingItemChanged(self):
+ self.myLetterDoc.switchUserField(
+ "Greeting", self.lstGreeting.Text, self.chkUseGreeting.State != 0)
+ self.setControlProperty(
+ "lstGreeting", PropertyNames.PROPERTY_ENABLED,
+ self.chkUseGreeting.State != 0)
+
+ def setDefaultForGreetingAndSalutation(self):
+ if self.lstSalutation.Text == "":
+ self.lstSalutation.Text = self.resources.SalutationLabels[0]
+
+ if self.lstGreeting.Text == "":
+ self.lstGreeting.Text = self.resources.GreetingLabels[0]
+
+ def lstGreetingItemChanged(self):
+ self.myLetterDoc.switchUserField(
+ "Greeting", self.lstGreeting.Text, self.chkUseGreeting.State != 0)
+
+ def chkBusinessPaperItemChanged(self):
+ if self.chkBusinessPaper.State != 0:
+ self.enableBusinessPaper()
+ else:
+ self.disableBusinessPaper()
+ self.setPossibleSenderData(True)
+
+ def getOfficeLinguistic(self):
+ oL = 0
+ found = False
+ OfficeLinguistic = Configuration.getOfficeLinguistic(self.xMSF)
+ i = 0
+ for i in xrange(len(self.Norms)):
+ if self.Norms[i].lower() == OfficeLinguistic.lower():
+ oL = i
+ found = True
+ break
+
+ if not found:
+ for i in xrange(len(self.Norms)):
+ if self.Norms[i].lower() == "en-US".lower():
+ oL = i
+ found = True
+ break
+ return oL
+
+ def setPossibleSenderData(self, bState):
+ self.setControlProperty(
+ "optSenderDefine", PropertyNames.PROPERTY_ENABLED, bState)
+ self.setControlProperty(
+ "optSenderPlaceholder", PropertyNames.PROPERTY_ENABLED, bState)
+ self.setControlProperty(
+ "lblSenderAddress", PropertyNames.PROPERTY_ENABLED, bState)
+ if not bState:
+ self.setControlProperty(
+ "txtSenderCity", PropertyNames.PROPERTY_ENABLED, bState)
+ self.setControlProperty(
+ "txtSenderName", PropertyNames.PROPERTY_ENABLED, bState)
+ self.setControlProperty(
+ "txtSenderPostCode", PropertyNames.PROPERTY_ENABLED, bState)
+ self.setControlProperty(
+ "txtSenderStreet", PropertyNames.PROPERTY_ENABLED, bState)
+ self.setControlProperty(
+ "txtSenderCity", PropertyNames.PROPERTY_ENABLED, bState)
+ self.setControlProperty(
+ "txtSenderState", PropertyNames.PROPERTY_ENABLED, bState)
+ self.setControlProperty(
+ "lblSenderName", PropertyNames.PROPERTY_ENABLED, bState)
+ self.setControlProperty(
+ "lblSenderStreet", PropertyNames.PROPERTY_ENABLED, bState)
+ self.setControlProperty(
+ "lblPostCodeCity", PropertyNames.PROPERTY_ENABLED, bState)
+
+ def enableSenderReceiver(self):
+ BPaperItem = self.getRoadmapItemByID(
+ LetterWizardDialogImpl.RM_SENDERRECEIVER)
+ Helper.setUnoPropertyValue(
+ BPaperItem, PropertyNames.PROPERTY_ENABLED, True)
+
+ def disableSenderReceiver(self):
+ BPaperItem = self.getRoadmapItemByID(
+ LetterWizardDialogImpl.RM_SENDERRECEIVER)
+ Helper.setUnoPropertyValue(
+ BPaperItem, PropertyNames.PROPERTY_ENABLED, False)
+
+ def enableBusinessPaper(self):
+ try:
+ BPaperItem = self.getRoadmapItemByID(
+ LetterWizardDialogImpl.RM_BUSINESSPAPER)
+ Helper.setUnoPropertyValue(
+ BPaperItem, PropertyNames.PROPERTY_ENABLED, True)
+ self.chkPaperCompanyLogoItemChanged()
+ self.chkPaperCompanyAddressItemChanged()
+ self.chkPaperFooterItemChanged()
+ self.chkCompanyReceiverItemChanged()
+ except Exception:
+ traceback.print_exc()
+
+ def disableBusinessPaper(self):
+ try:
+ BPaperItem = self.getRoadmapItemByID(
+ LetterWizardDialogImpl.RM_BUSINESSPAPER)
+ Helper.setUnoPropertyValue(
+ BPaperItem, PropertyNames.PROPERTY_ENABLED, False)
+ if self.BusCompanyLogo != None:
+ self.BusCompanyLogo.removeFrame()
+
+ if self.BusCompanyAddress != None:
+ self.BusCompanyAddress.removeFrame()
+
+ if self.BusFooter != None:
+ self.BusFooter.removeFrame()
+
+ if self.BusCompanyAddressReceiver != None:
+ self.BusCompanyAddressReceiver.removeFrame()
+
+ self.setPossibleAddressReceiver(True)
+ self.setPossibleFooter(True)
+ self.setPossibleLogo(True)
+ if self.myLetterDoc.hasElement("Sender Address"):
+ self.myLetterDoc.switchElement(
+ "Sender Address", True)
+ except Exception:
+ traceback.print_exc()
+
+ def lstLetterNormItemChanged(self):
+ sCurrentNorm = self.Norms[getCurrentLetter().cp_Norm]
+ initializeTemplates(xMSF)
+ if self.optBusinessLetter.State:
+ self.lstBusinessStyleItemChanged()
+
+ if optPrivOfficialLetter.State:
+ self.lstPrivOfficialStyleItemChanged()
+
+ if optPrivateLetter.State:
+ self.lstPrivateStyleItemChanged()
+
+ def initializeSalutation(self):
+ self.setControlProperty(
+ "lstSalutation", "StringItemList",
+ self.resources.SalutationLabels)
+
+ def initializeGreeting(self):
+ self.setControlProperty(
+ "lstGreeting", "StringItemList", self.resources.GreetingLabels)
+
+ def initializeNorms(self):
+ lc = LocaleCodes(self.xmsf)
+ allLocales = lc.getIDs()
+ nameList = []
+ sLetterSubPath = "/wizard/letter/"
+ try:
+ self.sTemplatePath = \
+ FileAccess.deleteLastSlashfromUrl(self.sTemplatePath)
+ nuString = \
+ self.sTemplatePath[:self.sTemplatePath.rfind("/")] + "/"
+ sMainPath = FileAccess.deleteLastSlashfromUrl(nuString)
+ self.sLetterPath = sMainPath + sLetterSubPath
+ xInterface = \
+ self.xmsf.createInstance("com.sun.star.ucb.SimpleFileAccess")
+ nameList = xInterface.getFolderContents(self.sLetterPath, True)
+ except Exception, e:
+ traceback.print_exc()
+
+ found = False
+ cIsoCode = ""
+ MSID = ""
+
+ for i in nameList:
+ found = False
+ cIsoCode = FileAccess.getFilename(i)
+ for j in allLocales:
+ aLang = j.split(";")
+ if cIsoCode.lower() == aLang[1].lower():
+ MSID = aLang[2]
+ found = True
+ break
+
+ if not found:
+ for j in allLocales:
+ aLang = j.split(";")
+ if cIsoCode.lower() == aLang[1][:2]:
+ MSID = aLang[2]
+ found = True
+ break
+
+ if found:
+ self.Norms.append(cIsoCode)
+ self.NormPaths.append(i)
+ #LanguageLabelsVector.add(lc.getLanguageString(MSID))
+
+ #COMMENTED
+ #LanguageLabels = [LanguageLabelsVector.size()]
+ #LanguageLabelsVector.toArray(LanguageLabels)
+ #self.setControlProperty(
+ # "lstLetterNorm", "StringItemList", LanguageLabels)
+
+ def getCurrentLetter(self):
+ if self.myConfig.cp_LetterType == 0:
+ return self.myConfig.cp_BusinessLetter
+ elif self.myConfig.cp_LetterType == 1:
+ return self.myConfig.cp_PrivateOfficialLetter
+ elif self.myConfig.cp_LetterType == 2:
+ return self.myConfig.cp_PrivateLetter
+ else:
+ return None
+
+ def __initializePaths(self):
+ try:
+ self.sTemplatePath = \
+ FileAccess.getOfficePath2(
+ self.xMSF, "Template", "share", "/wizard")
+ self.sUserTemplatePath = \
+ FileAccess.getOfficePath2(self.xMSF, "Template", "user", "")
+ self.sBitmapPath = \
+ FileAccess.combinePaths(
+ self.xMSF, self.sTemplatePath, "/../wizard/bitmap")
+ except NoValidPathException, e:
+ traceback.print_exc()
+
+ def initializeTemplates(self, xMSF):
+ self.sCurrentNorm = self.Norms[self.getCurrentLetter().cp_Norm]
+ sLetterPath = self.NormPaths[self.getCurrentLetter().cp_Norm]
+ self.BusinessFiles = \
+ FileAccess.getFolderTitles(xMSF, "bus", sLetterPath)
+ self.OfficialFiles = \
+ FileAccess.getFolderTitles(xMSF, "off", sLetterPath)
+ self.PrivateFiles = \
+ FileAccess.getFolderTitles(xMSF, "pri", sLetterPath)
+ self.setControlProperty(
+ "lstBusinessStyle", "StringItemList",
+ tuple(self.BusinessFiles[0]))
+ self.setControlProperty(
+ "lstPrivOfficialStyle", "StringItemList",
+ tuple(self.OfficialFiles[0]))
+ self.setControlProperty(
+ "lstPrivateStyle", "StringItemList",
+ tuple(self.PrivateFiles[0]))
+ self.setControlProperty(
+ "lstBusinessStyle", "SelectedItems", (0,))
+ self.setControlProperty(
+ "lstPrivOfficialStyle", "SelectedItems", (0,))
+ self.setControlProperty(
+ "lstPrivateStyle", "SelectedItems", (0,))
+ return True
+
+ def initializeElements(self):
+ self.setControlProperty(
+ "chkUseLogo", PropertyNames.PROPERTY_ENABLED,
+ self.myLetterDoc.hasElement("Company Logo"))
+ self.setControlProperty(
+ "chkUseBendMarks", PropertyNames.PROPERTY_ENABLED,
+ self.myLetterDoc.hasElement("Bend Marks"))
+ self.setControlProperty(
+ "chkUseAddressReceiver", PropertyNames.PROPERTY_ENABLED,
+ self.myLetterDoc.hasElement("Sender Address Repeated"))
+ self.setControlProperty(
+ "chkUseSubject", PropertyNames.PROPERTY_ENABLED,
+ self.myLetterDoc.hasElement("Subject Line"))
+ self.setControlProperty(
+ "chkUseSigns", PropertyNames.PROPERTY_ENABLED,
+ self.myLetterDoc.hasElement("Letter Signs"))
+ self.myLetterDoc.updateDateFields()
+
+ def setConfiguration(self):
+ if self.optBusinessLetter.State:
+ self.optBusinessLetterItemChanged()
+
+ if self.optPrivOfficialLetter.State:
+ self.optPrivOfficialLetterItemChanged()
+
+ if self.optPrivateLetter.State:
+ self.optPrivateLetterItemChanged()
+
+ def setElements(self, privLetter):
+ if self.optSenderDefine.State:
+ self.optSenderDefineItemChanged()
+
+ if self.optSenderPlaceholder.State:
+ self.optSenderPlaceholderItemChanged()
+
+ self.chkUseSignsItemChanged()
+ self.chkUseSubjectItemChanged()
+ self.chkUseSalutationItemChanged()
+ self.chkUseGreetingItemChanged()
+ self.chkUseBendMarksItemChanged()
+ self.chkUseAddressReceiverItemChanged()
+ self.txtTemplateNameTextChanged()
+ if self.optReceiverDatabase.State and not privLetter:
+ self.optReceiverDatabaseItemChanged()
+
+ if self.optReceiverPlaceholder.State and not privLetter:
+ self.optReceiverPlaceholderItemChanged()
+
+ if self.optCreateLetter.State:
+ self.optCreateLetterItemChanged()
+
+ if self.optMakeChanges.State:
+ self.optMakeChangesItemChanged()
+
+ def insertRoadmap(self):
+ self.addRoadmap()
+ i = 0
+ i = self.insertRoadmapItem(
+ 0, True,
+ self.resources.RoadmapLabels[LetterWizardDialogImpl.RM_TYPESTYLE -1],
+ LetterWizardDialogImpl.RM_TYPESTYLE)
+ i = self.insertRoadmapItem(
+ i, False,
+ self.resources.RoadmapLabels[LetterWizardDialogImpl.RM_BUSINESSPAPER - 1],
+ LetterWizardDialogImpl.RM_BUSINESSPAPER)
+ i = self.insertRoadmapItem(
+ i, True,
+ self.resources.RoadmapLabels[LetterWizardDialogImpl.RM_ELEMENTS - 1],
+ LetterWizardDialogImpl.RM_ELEMENTS)
+ i = self.insertRoadmapItem(
+ i, True,
+ self.resources.RoadmapLabels[LetterWizardDialogImpl.RM_SENDERRECEIVER - 1],
+ LetterWizardDialogImpl.RM_SENDERRECEIVER)
+ i = self.insertRoadmapItem(
+ i, False,
+ self.resources.RoadmapLabels[LetterWizardDialogImpl.RM_FOOTER -1],
+ LetterWizardDialogImpl.RM_FOOTER)
+ i = self.insertRoadmapItem(
+ i, True,
+ self.resources.RoadmapLabels[LetterWizardDialogImpl.RM_FINALSETTINGS - 1],
+ LetterWizardDialogImpl.RM_FINALSETTINGS)
+ self.setRoadmapInteractive(True)
+ self.setRoadmapComplete(True)
+ self.setCurrentRoadmapItemID(1)
+
+ class myPathSelectionListener(XPathSelectionListener):
+
+ def validatePath(self):
+ if self.myPathSelection.usedPathPicker:
+ self.filenameChanged = True
+
+ self.myPathSelection.usedPathPicker = False
+
+ def insertPathSelectionControl(self):
+ self.myPathSelection = \
+ PathSelection(self.xMSF, self, PathSelection.TransferMode.SAVE,
+ PathSelection.DialogTypes.FILE)
+ self.myPathSelection.insert(
+ 6, 97, 70, 205, 45, self.resources.reslblTemplatePath_value,
+ True, HelpIds.getHelpIdString(HID + 47),
+ HelpIds.getHelpIdString(HID + 48))
+ self.myPathSelection.sDefaultDirectory = self.sUserTemplatePath
+ self.myPathSelection.sDefaultName = "myLetterTemplate.ott"
+ self.myPathSelection.sDefaultFilter = "writer8_template"
+ self.myPathSelection.addSelectionListener(
+ self.myPathSelectionListener())
+
+ def initConfiguration(self):
+ try:
+ self.myConfig = CGLetterWizard()
+ root = Configuration.getConfigurationRoot(
+ self.xMSF, "/org.openoffice.Office.Writer/Wizards/Letter",
+ False)
+ self.myConfig.readConfiguration(root, "cp_")
+ self.mainDA.append(
+ RadioDataAware.attachRadioButtons(
+ self.myConfig, "cp_LetterType",
+ (self.optBusinessLetter, self.optPrivOfficialLetter,
+ self.optPrivateLetter), True))
+ self.mainDA.append(
+ UnoDataAware.attachListBox(
+ self.myConfig.cp_BusinessLetter, "cp_Style",
+ self.lstBusinessStyle, True))
+ self.mainDA.append(
+ UnoDataAware.attachListBox(
+ self.myConfig.cp_PrivateOfficialLetter, "cp_Style",
+ self.lstPrivOfficialStyle, True))
+ self.mainDA.append(
+ UnoDataAware.attachListBox(
+ self.myConfig.cp_PrivateLetter, "cp_Style",
+ self.lstPrivateStyle, True))
+ self.mainDA.append(
+ UnoDataAware.attachCheckBox(
+ self.myConfig.cp_BusinessLetter, "cp_BusinessPaper",
+ self.chkBusinessPaper, True))
+ cgl = self.myConfig.cp_BusinessLetter
+ cgpl = self.myConfig.cp_BusinessLetter.cp_CompanyLogo
+ cgpa = self.myConfig.cp_BusinessLetter.cp_CompanyAddress
+ self.businessDA.append(
+ UnoDataAware.attachCheckBox(
+ cgpl, "cp_Display", self.chkPaperCompanyLogo, True))
+ self.businessDA.append(
+ UnoDataAware.attachNumericControl(
+ cgpl, "cp_Width", self.numLogoWidth, True))
+ self.businessDA.append(
+ UnoDataAware.attachNumericControl(
+ cgpl, "cp_Height", self.numLogoHeight, True))
+ self.businessDA.append(
+ UnoDataAware.attachNumericControl(
+ cgpl, "cp_X", self.numLogoX, True))
+ self.businessDA.append(
+ UnoDataAware.attachNumericControl(
+ cgpl, "cp_Y", self.numLogoY, True))
+ self.businessDA.append(
+ UnoDataAware.attachCheckBox(
+ cgpa, "cp_Display", self.chkPaperCompanyAddress, True))
+ self.businessDA.append(
+ UnoDataAware.attachNumericControl(
+ cgpa, "cp_Width", self.numAddressWidth, True))
+ self.businessDA.append(
+ UnoDataAware.attachNumericControl(
+ cgpa, "cp_Height", self.numAddressHeight, True))
+ self.businessDA.append(
+ UnoDataAware.attachNumericControl(
+ cgpa, "cp_X", self.numAddressX, True))
+ self.businessDA.append(
+ UnoDataAware.attachNumericControl(
+ cgpa, "cp_Y", self.numAddressY, True))
+ self.businessDA.append(
+ UnoDataAware.attachCheckBox(
+ cgl, "cp_PaperCompanyAddressReceiverField",
+ self.chkCompanyReceiver, True))
+ self.businessDA.append(
+ UnoDataAware.attachCheckBox(
+ cgl, "cp_PaperFooter", self.chkPaperFooter, True))
+ self.businessDA.append(
+ UnoDataAware.attachNumericControl(
+ cgl, "cp_PaperFooterHeight", self.numFooterHeight, True))
+ self.businessDA.append(
+ UnoDataAware.attachListBox(
+ cgl, "cp_Norm", self.lstLetterNorm, True))
+ self.businessDA.append(
+ UnoDataAware.attachCheckBox(
+ cgl, "cp_PrintCompanyLogo", self.chkUseLogo, True))
+ self.businessDA.append(
+ UnoDataAware.attachCheckBox(
+ cgl, "cp_PrintCompanyAddressReceiverField",
+ self.chkUseAddressReceiver, True))
+ self.businessDA.append(
+ UnoDataAware.attachCheckBox(
+ cgl, "cp_PrintLetterSigns", self.chkUseSigns, True))
+ self.businessDA.append(
+ UnoDataAware.attachCheckBox(
+ cgl, "cp_PrintSubjectLine", self.chkUseSubject, True))
+ self.businessDA.append(
+ UnoDataAware.attachCheckBox(
+ cgl, "cp_PrintSalutation", self.chkUseSalutation, True))
+ self.businessDA.append(
+ UnoDataAware.attachCheckBox(
+ cgl, "cp_PrintBendMarks", self.chkUseBendMarks, True))
+ self.businessDA.append(
+ UnoDataAware.attachCheckBox(
+ cgl, "cp_PrintGreeting", self.chkUseGreeting, True))
+ self.businessDA.append(
+ UnoDataAware.attachCheckBox(
+ cgl, "cp_PrintFooter", self.chkUseFooter, True))
+ self.businessDA.append(
+ UnoDataAware.attachEditControl(
+ cgl, "cp_Salutation", self.lstSalutation, True))
+ self.businessDA.append(
+ UnoDataAware.attachEditControl(
+ cgl, "cp_Greeting", self.lstGreeting, True))
+ self.letterDA.append(RadioDataAware.attachRadioButtons(
+ cgl, "cp_SenderAddressType",
+ (self.optSenderDefine, self.optSenderPlaceholder), True))
+ self.businessDA.append(
+ UnoDataAware.attachEditControl(
+ cgl, "cp_SenderCompanyName", self.txtSenderName, True))
+ self.businessDA.append(
+ UnoDataAware.attachEditControl(
+ cgl, "cp_SenderStreet", self.txtSenderStreet, True))
+ self.businessDA.append(
+ UnoDataAware.attachEditControl(
+ cgl, "cp_SenderPostCode", self.txtSenderPostCode, True))
+ self.businessDA.append(
+ UnoDataAware.attachEditControl(
+ cgl, "cp_SenderState", self.txtSenderState, True))
+ self.businessDA.append(
+ UnoDataAware.attachEditControl(
+ cgl, "cp_SenderCity", self.txtSenderCity, True))
+ self.letterDA.append(RadioDataAware.attachRadioButtons(
+ cgl, "cp_ReceiverAddressType",
+ (self.optReceiverDatabase, self.optReceiverPlaceholder),
+ True))
+ self.businessDA.append(
+ UnoDataAware.attachEditControl(
+ cgl, "cp_Footer", self.txtFooter, True))
+ self.businessDA.append(
+ UnoDataAware.attachCheckBox(
+ cgl, "cp_FooterOnlySecondPage",
+ self.chkFooterNextPages, True))
+ self.businessDA.append(
+ UnoDataAware.attachCheckBox(
+ cgl, "cp_FooterPageNumbers",
+ self.chkFooterPageNumbers, True))
+ self.letterDA.append(RadioDataAware.attachRadioButtons(
+ cgl, "cp_CreationType",
+ (self.optCreateLetter, self.optMakeChanges), True))
+ self.businessDA.append(
+ UnoDataAware.attachEditControl(
+ cgl, "cp_TemplateName", self.txtTemplateName, True))
+ self.businessDA.append(
+ UnoDataAware.attachEditControl(
+ cgl, "cp_TemplatePath", self.myPathSelection.xSaveTextBox, True))
+ except Exception, exception:
+ traceback.print_exc()
+
+ def updateUI(self):
+ UnoDataAware.updateUIs(self.mainDA)
+ UnoDataAware.updateUIs(self.letterDA)
+ UnoDataAware.updateUIs(self.businessDA)
+
+ def saveConfiguration(self):
+ try:
+ root = Configuration.getConfigurationRoot(self.xMSF, "/org.openoffice.Office.Writer/Wizards/Letter", True)
+ self.myConfig.writeConfiguration(root, "cp_")
+ root.commitChanges()
+ except Exception, e:
+ traceback.print_exc()
diff --git a/wizards/com/sun/star/wizards/letter/LetterWizardDialogResources.py b/wizards/com/sun/star/wizards/letter/LetterWizardDialogResources.py
new file mode 100644
index 000000000000..d25c0c2651ac
--- /dev/null
+++ b/wizards/com/sun/star/wizards/letter/LetterWizardDialogResources.py
@@ -0,0 +1,219 @@
+from common.Resource import Resource
+
+class LetterWizardDialogResources(Resource):
+ UNIT_NAME = "dbwizres"
+ MODULE_NAME = "dbw"
+ RID_LETTERWIZARDDIALOG_START = 3000
+ RID_LETTERWIZARDGREETING_START = 3080
+ RID_LETTERWIZARDSALUTATION_START = 3090
+ RID_LETTERWIZARDROADMAP_START = 3100
+ RID_LETTERWIZARDLANGUAGE_START = 3110
+ RID_RID_COMMON_START = 500
+
+ def __init__(self, xmsf):
+ super(LetterWizardDialogResources,self).__init__(
+ xmsf, LetterWizardDialogResources.MODULE_NAME)
+
+ self.RoadmapLabels = ()
+ self.SalutationLabels = ()
+ self.GreetingLabels = ()
+ self.LanguageLabels = ()
+ self.resLetterWizardDialog_title = \
+ self.getResText(
+ LetterWizardDialogResources.RID_LETTERWIZARDDIALOG_START + 1)
+ self.resLabel9_value = \
+ self.getResText(
+ LetterWizardDialogResources.RID_LETTERWIZARDDIALOG_START + 2)
+ self.resoptBusinessLetter_value = \
+ self.getResText(
+ LetterWizardDialogResources.RID_LETTERWIZARDDIALOG_START + 3)
+ self.resoptPrivOfficialLetter_value = \
+ self.getResText(
+ LetterWizardDialogResources.RID_LETTERWIZARDDIALOG_START + 4)
+ self.resoptPrivateLetter_value = \
+ self.getResText(
+ LetterWizardDialogResources.RID_LETTERWIZARDDIALOG_START + 5)
+ self.reschkBusinessPaper_value = \
+ self.getResText(
+ LetterWizardDialogResources.RID_LETTERWIZARDDIALOG_START + 6)
+ self.reschkPaperCompanyLogo_value = \
+ self.getResText(
+ LetterWizardDialogResources.RID_LETTERWIZARDDIALOG_START + 7)
+ self.reschkPaperCompanyAddress_value = \
+ self.getResText(
+ LetterWizardDialogResources.RID_LETTERWIZARDDIALOG_START + 8)
+ self.reschkPaperFooter_value = \
+ self.getResText(
+ LetterWizardDialogResources.RID_LETTERWIZARDDIALOG_START + 9)
+ self.reschkCompanyReceiver_value = \
+ self.getResText(
+ LetterWizardDialogResources.RID_LETTERWIZARDDIALOG_START + 10)
+ self.reschkUseLogo_value = \
+ self.getResText(
+ LetterWizardDialogResources.RID_LETTERWIZARDDIALOG_START + 11)
+ self.reschkUseAddressReceiver_value = \
+ self.getResText(
+ LetterWizardDialogResources.RID_LETTERWIZARDDIALOG_START + 12)
+ self.reschkUseSigns_value = \
+ self.getResText(
+ LetterWizardDialogResources.RID_LETTERWIZARDDIALOG_START + 13)
+ self.reschkUseSubject_value = \
+ self.getResText(
+ LetterWizardDialogResources.RID_LETTERWIZARDDIALOG_START + 14)
+ self.reschkUseSalutation_value = \
+ self.getResText(
+ LetterWizardDialogResources.RID_LETTERWIZARDDIALOG_START + 15)
+ self.reschkUseBendMarks_value = \
+ self.getResText(
+ LetterWizardDialogResources.RID_LETTERWIZARDDIALOG_START + 16)
+ self.reschkUseGreeting_value = \
+ self.getResText(
+ LetterWizardDialogResources.RID_LETTERWIZARDDIALOG_START + 17)
+ self.reschkUseFooter_value = \
+ self.getResText(
+ LetterWizardDialogResources.RID_LETTERWIZARDDIALOG_START + 18)
+ self.resoptSenderPlaceholder_value = \
+ self.getResText(
+ LetterWizardDialogResources.RID_LETTERWIZARDDIALOG_START + 19)
+ self.resoptSenderDefine_value = \
+ self.getResText(
+ LetterWizardDialogResources.RID_LETTERWIZARDDIALOG_START + 20)
+ self.resoptReceiverPlaceholder_value = \
+ self.getResText(
+ LetterWizardDialogResources.RID_LETTERWIZARDDIALOG_START + 21)
+ self.resoptReceiverDatabase_value = \
+ self.getResText(
+ LetterWizardDialogResources.RID_LETTERWIZARDDIALOG_START + 22)
+ self.reschkFooterNextPages_value = \
+ self.getResText(
+ LetterWizardDialogResources.RID_LETTERWIZARDDIALOG_START + 23)
+ self.reschkFooterPageNumbers_value = \
+ self.getResText(
+ LetterWizardDialogResources.RID_LETTERWIZARDDIALOG_START + 24)
+ self.restxtTemplateName_value = \
+ self.getResText(
+ LetterWizardDialogResources.RID_LETTERWIZARDDIALOG_START + 25)
+ self.resoptCreateLetter_value = \
+ self.getResText(
+ LetterWizardDialogResources.RID_LETTERWIZARDDIALOG_START + 26)
+ self.resoptMakeChanges_value = \
+ self.getResText(
+ LetterWizardDialogResources.RID_LETTERWIZARDDIALOG_START + 27)
+ self.reslblBusinessStyle_value = \
+ self.getResText(
+ LetterWizardDialogResources.RID_LETTERWIZARDDIALOG_START + 28)
+ self.reslblPrivOfficialStyle_value = \
+ self.getResText(
+ LetterWizardDialogResources.RID_LETTERWIZARDDIALOG_START + 29)
+ self.reslblPrivateStyle_value = \
+ self.getResText(
+ LetterWizardDialogResources.RID_LETTERWIZARDDIALOG_START + 30)
+ self.reslblIntroduction_value = \
+ self.getResText(
+ LetterWizardDialogResources.RID_LETTERWIZARDDIALOG_START + 31)
+ self.reslblLogoHeight_value = \
+ self.getResText(
+ LetterWizardDialogResources.RID_LETTERWIZARDDIALOG_START + 32)
+ self.reslblLogoWidth_value = \
+ self.getResText(
+ LetterWizardDialogResources.RID_LETTERWIZARDDIALOG_START + 33)
+ self.reslblLogoX_value = \
+ self.getResText(
+ LetterWizardDialogResources.RID_LETTERWIZARDDIALOG_START + 34)
+ self.reslblLogoY_value = \
+ self.getResText(
+ LetterWizardDialogResources.RID_LETTERWIZARDDIALOG_START + 35)
+ self.reslblAddressHeight_value = \
+ self.getResText(
+ LetterWizardDialogResources.RID_LETTERWIZARDDIALOG_START + 36)
+ self.reslblAddressWidth_value = \
+ self.getResText(
+ LetterWizardDialogResources.RID_LETTERWIZARDDIALOG_START + 37)
+ self.reslblAddressX_value = \
+ self.getResText(
+ LetterWizardDialogResources.RID_LETTERWIZARDDIALOG_START + 38)
+ self.reslblAddressY_value = \
+ self.getResText(
+ LetterWizardDialogResources.RID_LETTERWIZARDDIALOG_START + 39)
+ self.reslblFooterHeight_value = \
+ self.getResText(
+ LetterWizardDialogResources.RID_LETTERWIZARDDIALOG_START + 40)
+ self.reslblLetterNorm_value = \
+ self.getResText(
+ LetterWizardDialogResources.RID_LETTERWIZARDDIALOG_START + 41)
+ self.reslblSenderAddress_value = \
+ self.getResText(
+ LetterWizardDialogResources.RID_LETTERWIZARDDIALOG_START + 42)
+ self.reslblSenderName_value = \
+ self.getResText(
+ LetterWizardDialogResources.RID_LETTERWIZARDDIALOG_START + 43)
+ self.reslblSenderStreet_value = \
+ self.getResText(
+ LetterWizardDialogResources.RID_LETTERWIZARDDIALOG_START + 44)
+ self.reslblPostCodeCity_value = \
+ self.getResText(
+ LetterWizardDialogResources.RID_LETTERWIZARDDIALOG_START + 45)
+ self.reslblReceiverAddress_value = \
+ self.getResText(
+ LetterWizardDialogResources.RID_LETTERWIZARDDIALOG_START + 46)
+ self.reslblFooter_value = \
+ self.getResText(
+ LetterWizardDialogResources.RID_LETTERWIZARDDIALOG_START + 47)
+ self.reslblFinalExplanation1_value = \
+ self.getResText(
+ LetterWizardDialogResources.RID_LETTERWIZARDDIALOG_START + 48)
+ self.reslblFinalExplanation2_value = \
+ self.getResText(
+ LetterWizardDialogResources.RID_LETTERWIZARDDIALOG_START + 49)
+ self.reslblTemplateName_value = \
+ self.getResText(
+ LetterWizardDialogResources.RID_LETTERWIZARDDIALOG_START + 50)
+ self.reslblTemplatePath_value = \
+ self.getResText(
+ LetterWizardDialogResources.RID_LETTERWIZARDDIALOG_START + 51)
+ self.reslblProceed_value = \
+ self.getResText(
+ LetterWizardDialogResources.RID_LETTERWIZARDDIALOG_START + 52)
+ self.reslblTitle1_value = \
+ self.getResText(
+ LetterWizardDialogResources.RID_LETTERWIZARDDIALOG_START + 53)
+ self.reslblTitle3_value = \
+ self.getResText(
+ LetterWizardDialogResources.RID_LETTERWIZARDDIALOG_START + 54)
+ self.reslblTitle2_value = \
+ self.getResText(
+ LetterWizardDialogResources.RID_LETTERWIZARDDIALOG_START + 55)
+ self.reslblTitle4_value = \
+ self.getResText(
+ LetterWizardDialogResources.RID_LETTERWIZARDDIALOG_START + 56)
+ self.reslblTitle5_value = \
+ self.getResText(
+ LetterWizardDialogResources.RID_LETTERWIZARDDIALOG_START + 57)
+ self.reslblTitle6_value = \
+ self.getResText(
+ LetterWizardDialogResources.RID_LETTERWIZARDDIALOG_START + 58)
+ self.loadRoadmapResources()
+ self.loadSalutationResources()
+ self.loadGreetingResources()
+ self.loadCommonResources()
+
+ def loadCommonResources(self):
+ self.resOverwriteWarning = \
+ self.getResText(
+ LetterWizardDialogResources.RID_RID_COMMON_START + 19)
+ self.resTemplateDescription = \
+ self.getResText(
+ LetterWizardDialogResources.RID_RID_COMMON_START + 20)
+
+ def loadRoadmapResources(self):
+ i = 1
+ for i in xrange(6):
+ self.RoadmapLabels = self.RoadmapLabels + (self.getResText(LetterWizardDialogResources.RID_LETTERWIZARDROADMAP_START + i + 1),)
+
+ def loadSalutationResources(self):
+ for i in xrange(3):
+ self.SalutationLabels = self.SalutationLabels + (self.getResText(LetterWizardDialogResources.RID_LETTERWIZARDSALUTATION_START + i + 1),)
+
+ def loadGreetingResources(self):
+ for i in xrange(3):
+ self.GreetingLabels = self.GreetingLabels + (self.getResText(LetterWizardDialogResources.RID_LETTERWIZARDGREETING_START + i + 1),)
diff --git a/wizards/com/sun/star/wizards/letter/LocaleCodes.py b/wizards/com/sun/star/wizards/letter/LocaleCodes.py
new file mode 100644
index 000000000000..ef376c575d8f
--- /dev/null
+++ b/wizards/com/sun/star/wizards/letter/LocaleCodes.py
@@ -0,0 +1,154 @@
+from common.Resource import Resource
+
+class LocaleCodes(Resource):
+ UNIT_NAME = "svtres",
+ MODULE_NAME = "svt",
+
+ def __init__(self, xmsf):
+ super(LocaleCodes, self).__init__(xmsf, LocaleCodes.MODULE_NAME)
+ #self.allLanguageStrings = self.getStringList(16633)
+
+ def getLanguageString(self, MSID):
+ LS = "unknown Language",
+ for i in self.allLanguageStrings:
+ if str(i.Value).lower() == MSID.lower():
+ LS = i.Name
+ return LS
+
+ def getIDs(self):
+ Ids = ("Afrikaans;af;1078",
+ "Albanian;sq;1052",
+ "Arabic - United Arab Emirates;ar-ae;14337",
+ "Arabic - Bahrain;ar-bh;15361",
+ "Arabic - Algeria;ar-dz;5121",
+ "Arabic - Egypt;ar-eg;3073",
+ "Arabic - Iraq;ar-iq;2049",
+ "Arabic - Jordan;ar-jo;11265",
+ "Arabic - Kuwait;ar-kw;13313",
+ "Arabic - Lebanon;ar-lb;12289",
+ "Arabic - Libya;ar-ly;4097",
+ "Arabic - Morocco;ar-ma;6145",
+ "Arabic - Oman;ar-om;8193",
+ "Arabic - Qatar;ar-qa;16385",
+ "Arabic - Saudi Arabia;ar-sa;1025",
+ "Arabic - Syria;ar-sy;10241",
+ "Arabic - Tunisia;ar-tn;7169",
+ "Arabic - Yemen;ar-ye;9217",
+ "Armenian;hy;1067",
+ "Azeri - Latin;az-az;1068",
+ "Azeri - Cyrillic;az-az;2092",
+ "Basque;eu;1069",
+ "Belarusian;be;1059",
+ "Bulgarian;bg;1026",
+ "Catalan;ca;1027",
+ "Chinese - China;zh-cn;2052",
+ "Chinese - Hong Kong SAR;zh-hk;3076",
+ "Chinese - Macau SAR;zh-mo;5124",
+ "Chinese - Singapore;zh-sg;4100",
+ "Chinese - Taiwan;zh-tw;1028",
+ "Croatian;hr;1050",
+ "Czech;cs;1029",
+ "Danish;da;1030",
+ "Dutch - The Netherlands;nl-nl;1043",
+ "Dutch - Belgium;nl-be;2067",
+ "English - Australia;en-au;3081",
+ "English - Belize;en-bz;10249",
+ "English - Canada;en-ca;4105",
+ "English - Caribbean;en-cb;9225",
+ "English - Ireland;en-ie;6153",
+ "English - Jamaica;en-jm;8201",
+ "English - New Zealand;en-nz;5129",
+ "English - Phillippines;en-ph;13321",
+ "English - South Africa;en-za;7177",
+ "English - Trinidad;en-tt;11273",
+ "English - United Kingdom;en-gb;2057",
+ "English - United States;en-us;1033",
+ "Estonian;et;1061",
+ "Farsi;fa;1065",
+ "Finnish;fi;1035",
+ "Faroese;fo;1080",
+ "French - France;fr-fr;1036",
+ "French - Belgium;fr-be;2060",
+ "French - Canada;fr-ca;3084",
+ "French - Luxembourg;fr-lu;5132",
+ "French - Switzerland;fr-ch;4108",
+ "Gaelic - Ireland;gd-ie;2108",
+ "Gaelic - Scotland;gd;1084",
+ "German - Germany;de-de;1031",
+ "German - Austria;de-at;3079",
+ "German - Liechtenstein;de-li;5127",
+ "German - Luxembourg;de-lu;4103",
+ "German - Switzerland;de-ch;2055",
+ "Greek;el;1032",
+ "Hebrew;he;1037",
+ "Hindi;hi;1081",
+ "Hungarian;hu;1038",
+ "Icelandic;is;1039",
+ "Indonesian;id;1057",
+ "Italian - Italy;it-it;1040",
+ "Italian - Switzerland;it-ch;2064",
+ "Japanese;ja;1041",
+ "Korean;ko;1042",
+ "Latvian;lv;1062",
+ "Lithuanian;lt;1063",
+ "FYRO Macedonian;mk;1071",
+ "Malay - Malaysia;ms-my;1086",
+ "Malay - Brunei;ms-bn;2110",
+ "Maltese;mt;1082",
+ "Marathi;mr;1102",
+ "Norwegian - Bokm?l;no-no;1044",
+ "Norwegian - Nynorsk;no-no;2068",
+ "Polish;pl;1045",
+ "Portuguese - Portugal;pt-pt;2070",
+ "Portuguese - Brazil;pt-br;1046",
+ "Raeto-Romance;rm;1047",
+ "Romanian - Romania;ro;1048",
+ "Romanian - Moldova;ro-mo;2072",
+ "Russian;ru;1049",
+ "Russian - Moldova;ru-mo;2073",
+ "Sanskrit;sa;1103",
+ "Serbian - Cyrillic;sr-sp;3098",
+ "Serbian - Latin;sr-sp;2074",
+ "Setsuana;tn;1074",
+ "Slovenian;sl;1060",
+ "Slovak;sk;1051",
+ "Sorbian;sb;1070",
+ "Spanish - Spain;es-es;3082",
+ "Spanish - Argentina;es-ar;11274",
+ "Spanish - Bolivia;es-bo;16394",
+ "Spanish - Chile;es-cl;13322",
+ "Spanish - Colombia;es-co;9226",
+ "Spanish - Costa Rica;es-cr;5130",
+ "Spanish - Dominican Republic;es-do;7178",
+ "Spanish - Ecuador;es-ec;12298",
+ "Spanish - Guatemala;es-gt;4106",
+ "Spanish - Honduras;es-hn;18442",
+ "Spanish - Mexico;es-mx;2058",
+ "Spanish - Nicaragua;es-ni;19466",
+ "Spanish - Panama;es-pa;6154",
+ "Spanish - Peru;es-pe;10250",
+ "Spanish - Puerto Rico;es-pr;20490",
+ "Spanish - Paraguay;es-py;15370",
+ "Spanish - El Salvador;es-sv;17418",
+ "Spanish - Uruguay;es-uy;14346",
+ "Spanish - Venezuela;es-ve;8202",
+ "Sutu;sx;1072",
+ "Swahili;sw;1089",
+ "Swedish - Sweden;sv-se;1053",
+ "Swedish - Finland;sv-fi;2077",
+ "Tamil;ta;1097",
+ "Tatar;tt;1092",
+ "Thai;th;1054",
+ "Turkish;tr;1055",
+ "Tsonga;ts;1073",
+ "Ukrainian;uk;1058",
+ "Urdu;ur;1056",
+ "Uzbek - Cyrillic;uz-uz;2115",
+ "Uzbek - Latin;uz-uz;1091",
+ "Vietnamese;vi;1066",
+ "Xhosa;xh;1076",
+ "Yiddish;yi;1085",
+ "Zulu;zu;1077",
+ "Khmer;km-kh;1107",
+ "Burmese;my-mm;1109")
+ return Ids
diff --git a/wizards/com/sun/star/wizards/letter/__init__.py b/wizards/com/sun/star/wizards/letter/__init__.py
new file mode 100644
index 000000000000..e69de29bb2d1
--- /dev/null
+++ b/wizards/com/sun/star/wizards/letter/__init__.py
diff --git a/wizards/com/sun/star/wizards/text/TextDocument.py b/wizards/com/sun/star/wizards/text/TextDocument.py
new file mode 100644
index 000000000000..9a4e741cb14d
--- /dev/null
+++ b/wizards/com/sun/star/wizards/text/TextDocument.py
@@ -0,0 +1,285 @@
+import uno
+from common.Desktop import Desktop
+from com.sun.star.view.DocumentZoomType import ENTIRE_PAGE
+from com.sun.star.beans.PropertyState import DIRECT_VALUE
+from common.Helper import Helper
+from document.OfficeDocument import OfficeDocument
+import traceback
+from text.ViewHandler import ViewHandler
+from text.TextFieldHandler import TextFieldHandler
+from com.sun.star.container import NoSuchElementException
+from com.sun.star.lang import WrappedTargetException
+from common.Configuration import Configuration
+import time
+from datetime import date as dateTimeObject
+from com.sun.star.util import DateTime
+from com.sun.star.i18n.NumberFormatIndex import DATE_SYS_DDMMYY
+
+class TextDocument(object):
+
+ xTextDocument = None
+
+ def __init__(self, xMSF,listener=None,bShowStatusIndicator=None,
+ FrameName=None,_sPreviewURL=None,_moduleIdentifier=None,
+ _textDocument=None, xArgs=None):
+
+ self.xMSF = xMSF
+
+ if listener is not None:
+ if FrameName is not None:
+ '''creates an instance of TextDocument
+ and creates a named frame.
+ No document is actually loaded into this frame.'''
+ self.xFrame = OfficeDocument.createNewFrame(
+ xMSF, listener, FrameName)
+ return
+
+ elif _sPreviewURL is not None:
+ '''creates an instance of TextDocument by
+ loading a given URL as preview'''
+ self.xFrame = OfficeDocument.createNewFrame(xMSF, listener)
+ TextDocument.xTextDocument = self.loadAsPreview(_sPreviewURL, True)
+
+ elif xArgs is not None:
+ '''creates an instance of TextDocument
+ and creates a frame and loads a document'''
+ self.xDesktop = Desktop.getDesktop(xMSF);
+ self.xFrame = OfficeDocument.createNewFrame(xMSF, listener)
+ TextDocument.xTextDocument = OfficeDocument.load(
+ xFrame, URL, "_self", xArgs);
+ self.xWindowPeer = xFrame.getComponentWindow()
+ self.m_xDocProps = TextDocument.xTextDocument.DocumentProperties
+ CharLocale = Helper.getUnoStructValue(
+ TextDocument.xTextDocument, "CharLocale");
+ return
+
+ else:
+ '''creates an instance of TextDocument from
+ the desktop's current frame'''
+ self.xDesktop = Desktop.getDesktop(xMSF);
+ self.xFrame = self.xDesktop.getActiveFrame()
+ TextDocument.xTextDocument = self.xFrame.getController().Model
+
+ elif _moduleIdentifier is not None:
+ try:
+ '''create the empty document, and set its module identifier'''
+ TextDocument.xTextDocument = xMSF.createInstance(
+ "com.sun.star.text.TextDocument")
+ TextDocument.xTextDocument.initNew()
+ TextDocument.xTextDocument.setIdentifier(_moduleIdentifier.Identifier)
+ # load the document into a blank frame
+ xDesktop = Desktop.getDesktop(xMSF)
+ loadArgs = range(1)
+ loadArgs[0] = "Model"
+ loadArgs[0] = -1
+ loadArgs[0] = TextDocument.xTextDocument
+ loadArgs[0] = DIRECT_VALUE
+ xDesktop.loadComponentFromURL(
+ "private:object", "_blank", 0, loadArgs)
+ # remember some things for later usage
+ self.xFrame = TextDocument.xTextDocument.CurrentController.Frame
+ except Exception, e:
+ traceback.print_exc()
+
+ elif _textDocument is not None:
+ '''creates an instance of TextDocument
+ from a given XTextDocument'''
+ self.xFrame = _textDocument.CurrentController.Frame
+ TextDocument.xTextDocument = _textDocument
+ if bShowStatusIndicator:
+ self.showStatusIndicator()
+ self.init()
+
+ def init(self):
+ self.xWindowPeer = self.xFrame.getComponentWindow()
+ self.m_xDocProps = TextDocument.xTextDocument.getDocumentProperties()
+ self.CharLocale = Helper.getUnoStructValue(
+ TextDocument.xTextDocument, "CharLocale")
+ self.xText = TextDocument.xTextDocument.Text
+
+ def showStatusIndicator(self):
+ self.xProgressBar = self.xFrame.createStatusIndicator()
+ self.xProgressBar.start("", 100)
+ self.xProgressBar.setValue(5)
+
+ def loadAsPreview(self, sDefaultTemplate, asTemplate):
+ loadValues = range(3)
+ # open document in the Preview mode
+ loadValues[0] = uno.createUnoStruct(
+ 'com.sun.star.beans.PropertyValue')
+ loadValues[0].Name = "ReadOnly"
+ loadValues[0].Value = True
+ loadValues[1] = uno.createUnoStruct(
+ 'com.sun.star.beans.PropertyValue')
+ loadValues[1].Name = "AsTemplate"
+ if asTemplate:
+ loadValues[1].Value = True
+ else:
+ loadValues[1].Value = False
+
+ loadValues[2] = uno.createUnoStruct(
+ 'com.sun.star.beans.PropertyValue')
+ loadValues[2].Name = "Preview"
+ loadValues[2].Value = True
+ '''set the preview document to non-modified
+ mode in order to avoid the 'do u want to save' box'''
+ if TextDocument.xTextDocument is not None:
+ try:
+ TextDocument.xTextDocument.Modified = False
+ except PropertyVetoException, e1:
+ traceback.print_exc()
+
+ TextDocument.xTextDocument = OfficeDocument.load(
+ self.xFrame, sDefaultTemplate, "_self", loadValues)
+
+ self.DocSize = self.getPageSize()
+
+ myViewHandler = ViewHandler(TextDocument.xTextDocument, TextDocument.xTextDocument)
+ try:
+ myViewHandler.setViewSetting(
+ "ZoomType", ENTIRE_PAGE)
+ except Exception, e:
+ traceback.print_exc()
+ myFieldHandler = TextFieldHandler(self.xMSF, TextDocument.xTextDocument)
+ myFieldHandler.updateDocInfoFields()
+ return TextDocument.xTextDocument
+
+ def getPageSize(self):
+ try:
+ xNameAccess = TextDocument.xTextDocument.StyleFamilies
+ xPageStyleCollection = xNameAccess.getByName("PageStyles")
+ xPageStyle = xPageStyleCollection.getByName("First Page")
+ return Helper.getUnoPropertyValue(xPageStyle, "Size")
+ except Exception, exception:
+ traceback.print_exc()
+ return None
+
+ '''creates an instance of TextDocument and creates a
+ frame and loads a document'''
+
+ def createTextCursor(self, oCursorContainer):
+ xTextCursor = oCursorContainer.createTextCursor()
+ return xTextCursor
+
+ # Todo: This method is unsecure because the last index is not necessarily the last section
+ # Todo: This Routine should be modified, because I cannot rely on the last Table in the document to be the last in the TextTables sequence
+ # to make it really safe you must acquire the Tablenames before the insertion and after the insertion of the new Table. By comparing the
+ # two sequences of tablenames you can find out the tablename of the last inserted Table
+ # Todo: This method is unsecure because the last index is not necessarily the last section
+
+ def getCharWidth(self, ScaleString):
+ iScale = 200
+ TextDocument.xTextDocument.lockControllers()
+ iScaleLen = ScaleString.length()
+ xTextCursor = createTextCursor(TextDocument.xTextDocument.Text)
+ xTextCursor.gotoStart(False)
+ com.sun.star.wizards.common.Helper.setUnoPropertyValue(
+ xTextCursor, "PageDescName", "First Page")
+ xTextCursor.String = ScaleString
+ xViewCursor = TextDocument.xTextDocument.CurrentController
+ xTextViewCursor = xViewCursor.ViewCursor
+ xTextViewCursor.gotoStart(False)
+ iFirstPos = xTextViewCursor.Position.X
+ xTextViewCursor.gotoEnd(False)
+ iLastPos = xTextViewCursor.Position.X
+ iScale = (iLastPos - iFirstPos) / iScaleLen
+ xTextCursor.gotoStart(False)
+ xTextCursor.gotoEnd(True)
+ xTextCursor.String = ""
+ unlockallControllers()
+ return iScale
+
+ def unlockallControllers(self):
+ while TextDocument.xTextDocument.hasControllersLocked() == True:
+ TextDocument.xTextDocument.unlockControllers()
+
+ def refresh(self):
+ TextDocument.xTextDocument.refresh()
+
+ '''
+ This method sets the Author of a Wizard-generated template correctly
+ and adds a explanatory sentence to the template description.
+ @param WizardName The name of the Wizard.
+ @param TemplateDescription The old Description which is being
+ appended with another sentence.
+ @return void.
+ '''
+
+ def setWizardTemplateDocInfo(self, WizardName, TemplateDescription):
+ try:
+ xNA = Configuration.getConfigurationRoot(
+ self.xMSF, "/org.openoffice.UserProfile/Data", False)
+ gn = xNA.getByName("givenname")
+ sn = xNA.getByName("sn")
+ fullname = str(gn) + " " + str(sn)
+ currentDate = DateTime()
+ now = time.localtime(time.time())
+ year = time.strftime("%Y", now)
+ month = time.strftime("%m", now)
+ day = time.strftime("%d", now)
+ currentDate.Day = day
+ currentDate.Year = year
+ currentDate.Month = month
+ dateObject = dateTimeObject(int(year), int(month), int(day))
+ du = Helper.DateUtils(self.xMSF, TextDocument.xTextDocument)
+ ff = du.getFormat(DATE_SYS_DDMMYY)
+ myDate = du.format(ff, dateObject)
+ xDocProps2 = TextDocument.xTextDocument.DocumentProperties
+ xDocProps2.Author = fullname
+ xDocProps2.ModifiedBy = fullname
+ description = xDocProps2.Description
+ description = description + " " + TemplateDescription
+ description = description.replace("<wizard_name>", WizardName)
+ description = description.replace("<current_date>", myDate)
+ xDocProps2.Description = description
+ except NoSuchElementException, e:
+ # TODO Auto-generated catch block
+ traceback.print_exc()
+ except WrappedTargetException, e:
+ # TODO Auto-generated catch block
+ traceback.print_exc()
+ except Exception, e:
+ # TODO Auto-generated catch block
+ traceback.print_exc()
+
+ '''
+ removes an arbitrary Object which supports the 'XTextContent' interface
+ @param oTextContent
+ @return
+ '''
+
+ def removeTextContent(self, oTextContent):
+ try:
+ self.xText.removeTextContent(oxTextContent)
+ print "remove"
+ return True
+ except NoSuchElementException, e:
+ traceback.print_exc()
+ return False
+
+ '''
+ Apparently there is no other way to get the
+ page count of a text document other than using a cursor and
+ making it jump to the last page...
+ @param model the document model.
+ @return the page count of the document.
+ '''
+
+ def getPageCount(self, model):
+ xController = model.getCurrentController()
+ xPC = xController.getViewCursor()
+ xPC.jumpToLastPage()
+ return xPC.getPage()
+
+ @classmethod
+ def getFrameByName(self, sFrameName, xTD):
+ if xTD.TextFrames.hasByName(sFrameName):
+ return xTD.TextFrames.getByName(sFrameName)
+
+ return None
+
+ '''
+ Possible Values for "OptionString" are: "LoadCellStyles",
+ "LoadTextStyles", "LoadFrameStyles",
+ "LoadPageStyles", "LoadNumberingStyles", "OverwriteStyles"
+ '''
diff --git a/wizards/com/sun/star/wizards/text/TextFieldHandler.py b/wizards/com/sun/star/wizards/text/TextFieldHandler.py
new file mode 100644
index 000000000000..97d578dd24e9
--- /dev/null
+++ b/wizards/com/sun/star/wizards/text/TextFieldHandler.py
@@ -0,0 +1,190 @@
+import traceback
+import time
+from com.sun.star.util import DateTime
+from common.PropertyNames import PropertyNames
+import unicodedata
+
+import inspect
+
+class TextFieldHandler(object):
+ '''
+ Creates a new instance of TextFieldHandler
+ @param xMSF
+ @param xTextDocument
+ '''
+
+ xTextFieldsSupplierAux = None
+ arrayTextFields = None
+ dictTextFields = None
+
+ def __init__(self, xMSF, xTextDocument):
+ self.xMSFDoc = xMSF
+ self.xTextFieldsSupplier = xTextDocument
+ if TextFieldHandler.xTextFieldsSupplierAux is not \
+ self.xTextFieldsSupplier:
+ self.__getTextFields()
+ TextFieldHandler.xTextFieldsSupplierAux = self.xTextFieldsSupplier
+
+ def refreshTextFields(self):
+ xUp = self.xTextFieldsSupplier.TextFields
+ xUp.refresh()
+
+ def getUserFieldContent(self, xTextCursor):
+ try:
+ xTextRange = xTextCursor.getEnd()
+ oTextField = Helper.getUnoPropertyValue(xTextRange, "TextField")
+ if com.sun.star.uno.AnyConverter.isVoid(oTextField):
+ return ""
+ else:
+ xMaster = oTextField.getTextFieldMaster()
+ UserFieldContent = xMaster.getPropertyValue("Content")
+ return UserFieldContent
+
+ except Exception, exception:
+ traceback.print_exc()
+
+ return ""
+
+ def insertUserField(self, xTextCursor, FieldName, FieldTitle):
+ try:
+ xField = self.xMSFDoc.createInstance(
+ "com.sun.star.text.TextField.User")
+
+ if self.xTextFieldsSupplier.TextFieldMasters.hasByName(
+ "com.sun.star.text.FieldMaster.User." + FieldName):
+ oMaster = self.xTextFieldsSupplier.TextFieldMasters.getByName( \
+ "com.sun.star.text.FieldMaster.User." + FieldName)
+ oMaster.dispose()
+
+ xPSet = createUserField(FieldName, FieldTitle)
+ xField.attachTextFieldMaster(xPSet)
+ xTextCursor.getText().insertTextContent(
+ xTextCursor, xField, False)
+ except com.sun.star.uno.Exception, exception:
+ traceback.print_exc()
+
+ def createUserField(self, FieldName, FieldTitle):
+ xPSet = self.xMSFDoc.createInstance(
+ "com.sun.star.text.FieldMaster.User")
+ xPSet.setPropertyValue(PropertyNames.PROPERTY_NAME, FieldName)
+ xPSet.setPropertyValue("Content", FieldTitle)
+ return xPSet
+
+ def __getTextFields(self):
+ try:
+ if self.xTextFieldsSupplier.TextFields.hasElements():
+ TextFieldHandler.dictTextFields = {}
+ TextFieldHandler.arrayTextFields = []
+ xEnum = \
+ self.xTextFieldsSupplier.TextFields.createEnumeration()
+ while xEnum.hasMoreElements():
+ oTextField = xEnum.nextElement()
+ TextFieldHandler.arrayTextFields.append(oTextField)
+ xPropertySet = oTextField.TextFieldMaster
+ if len(xPropertySet.Name) is not 0:
+ TextFieldHandler.dictTextFields[xPropertySet.Name] = \
+ oTextField
+ except Exception, e:
+ #TODO Auto-generated catch block
+ traceback.print_exc()
+
+ def __getTextFieldsByProperty(
+ self, _PropertyName, _aPropertyValue, _TypeName):
+ try:
+ xProperty = TextFieldHandler.dictTextFields[_aPropertyValue]
+ xPropertySet = xProperty.TextFieldMaster
+ if xPropertySet.PropertySetInfo.hasPropertyByName(
+ _PropertyName):
+ oValue = xPropertySet.getPropertyValue(_PropertyName)
+ if _TypeName == "String":
+ sValue = unicodedata.normalize(
+ 'NFKD', oValue).encode('ascii','ignore')
+ if sValue == _aPropertyValue:
+ return xProperty
+ #COMMENTED
+ '''elif AnyConverter.isShort(oValue):
+ if _TypeName.equals("Short"):
+ iShortParam = (_aPropertyValue).shortValue()
+ ishortValue = AnyConverter.toShort(oValue)
+ if ishortValue == iShortParam:
+ xDependentVector.append(oTextField) '''
+ return None
+ except KeyError, e:
+ return None
+
+ def changeUserFieldContent(self, _FieldName, _FieldContent):
+ DependentTextFields = self.__getTextFieldsByProperty(
+ PropertyNames.PROPERTY_NAME, _FieldName, "String")
+ if DependentTextFields is not None:
+ DependentTextFields.TextFieldMaster.setPropertyValue("Content", _FieldContent)
+ self.refreshTextFields()
+
+ def updateDocInfoFields(self):
+ try:
+ for i in TextFieldHandler.arrayTextFields:
+ if i.supportsService(
+ "com.sun.star.text.TextField.ExtendedUser"):
+ i.update()
+
+ if i.supportsService(
+ "com.sun.star.text.TextField.User"):
+ i.update()
+
+ except Exception, e:
+ traceback.print_exc()
+
+ def updateDateFields(self):
+ try:
+ now = time.localtime(time.time())
+ dt = DateTime()
+ dt.Day = time.strftime("%d", now)
+ dt.Year = time.strftime("%Y", now)
+ dt.Month = time.strftime("%m", now)
+ dt.Month += 1
+ for i in TextFieldHandler.arrayTextFields:
+ if i.supportsService(
+ "com.sun.star.text.TextField.DateTime"):
+ i.setPropertyValue("IsFixed", False)
+ i.setPropertyValue("DateTimeValue", dt)
+
+ except Exception, e:
+ traceback.print_exc()
+
+ def fixDateFields(self, _bSetFixed):
+ try:
+ for i in TextFieldHandler.arrayTextFields:
+ if i.supportsService(
+ "com.sun.star.text.TextField.DateTime"):
+ i.setPropertyValue("IsFixed", _bSetFixed)
+
+ except Exception, e:
+ traceback.print_exc()
+
+ def removeUserFieldByContent(self, _FieldContent):
+ try:
+ xDependentTextFields = self.__getTextFieldsByProperty(
+ "Content", _FieldContent, "String")
+ if xDependentTextFields != None:
+ i = 0
+ while i < xDependentTextFields.length:
+ xDependentTextFields[i].dispose()
+ i += 1
+
+ except Exception, e:
+ traceback.print_exc()
+
+ def changeExtendedUserFieldContent(self, UserDataPart, _FieldContent):
+ try:
+ xDependentTextFields = self.__getTextFieldsByProperty(
+ "UserDataType", UserDataPart, "Short")
+ if xDependentTextFields != None:
+ i = 0
+ while i < xDependentTextFields.length:
+ xDependentTextFields[i].getTextFieldMaster().setPropertyValue(
+ "Content", _FieldContent)
+ i += 1
+
+ self.refreshTextFields()
+ except Exception, e:
+ traceback.print_exc()
+
diff --git a/wizards/com/sun/star/wizards/text/TextSectionHandler.py b/wizards/com/sun/star/wizards/text/TextSectionHandler.py
new file mode 100644
index 000000000000..67eee12e2d51
--- /dev/null
+++ b/wizards/com/sun/star/wizards/text/TextSectionHandler.py
@@ -0,0 +1,133 @@
+import traceback
+
+class TextSectionHandler(object):
+ '''Creates a new instance of TextSectionHandler'''
+ def __init__(self, xMSF, xTextDocument):
+ self.xMSFDoc = xMSF
+ self.xTextDocument = xTextDocument
+ self.xText = xTextDocument.Text
+
+ def removeTextSectionbyName(self, SectionName):
+ try:
+ xAllTextSections = self.xTextDocument.TextSections
+ if xAllTextSections.hasByName(SectionName):
+ oTextSection = self.xTextDocument.TextSections.getByName(
+ SectionName)
+ self.removeTextSection(oTextSection)
+
+
+ except Exception, exception:
+ traceback.print_exc()
+
+ def hasTextSectionByName(self, SectionName):
+ xAllTextSections = self.xTextDocument.TextSections
+ return xAllTextSections.hasByName(SectionName)
+
+ def removeLastTextSection(self):
+ try:
+ xAllTextSections = self.xTextDocument.TextSections
+ oTextSection = xAllTextSections.getByIndex(
+ xAllTextSections.getCount() - 1)
+ self.removeTextSection(oTextSection)
+ except Exception, exception:
+ traceback.print_exc()
+
+ def removeTextSection(self, _oTextSection):
+ try:
+ self.xText.removeTextContent(_oTextSection)
+ except Exception, exception:
+ traceback.print_exc()
+
+ def removeInvisibleTextSections(self):
+ try:
+ xAllTextSections = self.xTextDocument.TextSections
+ TextSectionCount = xAllTextSections.getCount()
+ i = TextSectionCount - 1
+ while i >= 0:
+ xTextContentTextSection = xAllTextSections.getByIndex(i)
+ if not bool(xTextContentTextSection.getPropertyValue("IsVisible")):
+ self.xText.removeTextContent(xTextContentTextSection)
+
+ i -= 1
+ except Exception, exception:
+ traceback.print_exc()
+
+ def removeAllTextSections(self):
+ try:
+ TextSectionCount = self.xTextDocument.TextSections.getCount()
+ i = TextSectionCount - 1
+ while i >= 0:
+ xTextContentTextSection = xAllTextSections.getByIndex(i)
+ self.xText.removeTextContent(xTextContentTextSection)
+ i -= 1
+ except Exception, exception:
+ traceback.print_exc()
+
+ def breakLinkofTextSections(self):
+ try:
+ iSectionCount = self.xTextDocument.TextSections.getCount()
+ oSectionLink = SectionFileLink.SectionFileLink()
+ oSectionLink.FileURL = ""
+ i = 0
+ while i < iSectionCount:
+ oTextSection = xAllTextSections.getByIndex(i)
+ Helper.setUnoPropertyValues(
+ oTextSection, ["FileLink", "LinkRegion"],
+ [oSectionLink, ""])
+ i += 1
+ except Exception, exception:
+ traceback.print_exc()
+
+ def breakLinkOfTextSection(self, oTextSection):
+ oSectionLink = SectionFileLink.SectionFileLink()
+ oSectionLink.FileURL = ""
+ Helper.setUnoPropertyValues(
+ oTextSection, ["FileLink", "LinkRegion"],[oSectionLink, ""])
+
+ def linkSectiontoTemplate(self, TemplateName, SectionName):
+ try:
+ oTextSection = self.xTextDocument.TextSections.getByName(
+ SectionName)
+ linkSectiontoTemplate(oTextSection, TemplateName, SectionName)
+ except Exception, e:
+ traceback.print_exc()
+
+ def linkSectiontoTemplate(self, oTextSection, TemplateName, SectionName):
+ oSectionLink = SectionFileLink.SectionFileLink()
+ oSectionLink.FileURL = TemplateName
+ Helper.setUnoPropertyValues(
+ oTextSection, ["FileLink", "LinkRegion"],
+ [oSectionLink, SectionName])
+ NewSectionName = oTextSection.getName()
+ if NewSectionName.compareTo(SectionName) != 0:
+ oTextSection.setName(SectionName)
+
+ def insertTextSection(self, GroupName, TemplateName, _bAddParagraph):
+ try:
+ if _bAddParagraph:
+ xTextCursor = self.xText.createTextCursor()
+ self.xText.insertControlCharacter(
+ xTextCursor, ControlCharacter.PARAGRAPH_BREAK, False)
+ xTextCursor.collapseToEnd()
+
+ xSecondTextCursor = self.xText.createTextCursor()
+ xSecondTextCursor.gotoEnd(False)
+ insertTextSection(GroupName, TemplateName, xSecondTextCursor)
+ except IllegalArgumentException, e:
+ traceback.print_exc()
+
+ def insertTextSection(self, sectionName, templateName, position):
+ try:
+ if self.xTextDocument.TextSections.hasByName(sectionName):
+ xTextSection = \
+ self.xTextDocument.TextSections.getByName(sectionName)
+ else:
+ xTextSection = self.xMSFDoc.createInstance(
+ "com.sun.star.text.TextSection")
+ position.getText().insertTextContent(
+ position, xTextSection, False)
+
+ linkSectiontoTemplate(xTextSection, templateName, sectionName)
+ except Exception, exception:
+ traceback.print_exc()
+
diff --git a/wizards/com/sun/star/wizards/text/ViewHandler.py b/wizards/com/sun/star/wizards/text/ViewHandler.py
new file mode 100644
index 000000000000..cf5401efb834
--- /dev/null
+++ b/wizards/com/sun/star/wizards/text/ViewHandler.py
@@ -0,0 +1,37 @@
+class ViewHandler(object):
+ '''Creates a new instance of View '''
+
+ def __init__ (self, xMSF, xTextDocument):
+ self.xMSFDoc = xMSF
+ self.xTextDocument = xTextDocument
+ self.xTextViewCursorSupplier = xTextDocument.CurrentController
+
+ def selectFirstPage(self, oTextTableHandler):
+ try:
+ xPageCursor = self.xTextViewCursorSupplier.ViewCursor
+ xPageCursor.jumpToFirstPage()
+ xPageCursor.jumpToStartOfPage()
+ Helper.setUnoPropertyValue(
+ xPageCursor, "PageDescName", "First Page")
+ oPageStyles = self.xTextDocument.StyleFamilies.getByName(
+ "PageStyles")
+ oPageStyle = oPageStyles.getByName("First Page")
+ xAllTextTables = oTextTableHandler.xTextTablesSupplier.TextTables
+ xTextTable = xAllTextTables.getByIndex(0)
+ xRange = xTextTable.getAnchor().getText()
+ xPageCursor.gotoRange(xRange, False)
+ if not com.sun.star.uno.AnyConverter.isVoid(XTextRange):
+ xViewTextCursor.gotoRange(xHeaderRange, False)
+ xViewTextCursor.collapseToStart()
+ else:
+ print "No Headertext available"
+
+ except com.sun.star.uno.Exception, exception:
+ exception.printStackTrace(System.out)
+
+ def setViewSetting(self, Setting, Value):
+ self.xTextViewCursorSupplier.ViewSettings.setPropertyValue(Setting, Value)
+
+ def collapseViewCursorToStart(self):
+ xTextViewCursor = self.xTextViewCursorSupplier.ViewCursor
+ xTextViewCursor.collapseToStart()
diff --git a/wizards/com/sun/star/wizards/text/__init__.py b/wizards/com/sun/star/wizards/text/__init__.py
new file mode 100644
index 000000000000..e69de29bb2d1
--- /dev/null
+++ b/wizards/com/sun/star/wizards/text/__init__.py
diff --git a/wizards/com/sun/star/wizards/ui/PathSelection.py b/wizards/com/sun/star/wizards/ui/PathSelection.py
new file mode 100644
index 000000000000..2be27ac836f9
--- /dev/null
+++ b/wizards/com/sun/star/wizards/ui/PathSelection.py
@@ -0,0 +1,121 @@
+import traceback
+from common.PropertyNames import *
+from common.FileAccess import *
+from common.SystemDialog import SystemDialog
+
+class PathSelection(object):
+
+ class DialogTypes(object):
+ FOLDER = 0
+ FILE = 1
+
+ class TransferMode(object):
+ SAVE = 0
+ LOAD = 1
+
+ def __init__(self, xMSF, CurUnoDialog, TransferMode, DialogType):
+ self.CurUnoDialog = CurUnoDialog
+ self.xMSF = xMSF
+ self.iDialogType = DialogType
+ self.iTransferMode = TransferMode
+ self.sDefaultDirectory = ""
+ self.sDefaultName = ""
+ self.sDefaultFilter = ""
+ self.usedPathPicker = False
+ self.CMDSELECTPATH = 1
+ self.TXTSAVEPATH = 1
+
+ def insert(
+ self, DialogStep, XPos, YPos, Width,
+ CurTabIndex, LabelText, Enabled, TxtHelpURL, BtnHelpURL):
+
+ self.CurUnoDialog.insertControlModel(
+ "com.sun.star.awt.UnoControlFixedTextModel", "lblSaveAs",
+ (PropertyNames.PROPERTY_ENABLED,
+ PropertyNames.PROPERTY_HEIGHT,
+ PropertyNames.PROPERTY_LABEL,
+ PropertyNames.PROPERTY_POSITION_X,
+ PropertyNames.PROPERTY_POSITION_Y,
+ PropertyNames.PROPERTY_STEP,
+ PropertyNames.PROPERTY_TABINDEX,
+ PropertyNames.PROPERTY_WIDTH),
+ (Enabled, 8, LabelText, XPos, YPos, DialogStep,
+ CurTabIndex, Width))
+ self.xSaveTextBox = self.CurUnoDialog.insertTextField(
+ "txtSavePath", "callXPathSelectionListener",
+ (PropertyNames.PROPERTY_ENABLED,
+ PropertyNames.PROPERTY_HEIGHT,
+ PropertyNames.PROPERTY_HELPURL,
+ PropertyNames.PROPERTY_POSITION_X,
+ PropertyNames.PROPERTY_POSITION_Y,
+ PropertyNames.PROPERTY_STEP,
+ PropertyNames.PROPERTY_TABINDEX,
+ PropertyNames.PROPERTY_WIDTH),
+ (Enabled, 12, TxtHelpURL, XPos, YPos + 10, DialogStep,
+ (CurTabIndex + 1), Width - 26), self)
+
+ self.CurUnoDialog.setControlProperty("txtSavePath",
+ PropertyNames.PROPERTY_ENABLED, False )
+ self.CurUnoDialog.insertButton("cmdSelectPath", "triggerPathPicker",
+ (PropertyNames.PROPERTY_ENABLED,
+ PropertyNames.PROPERTY_HEIGHT,
+ PropertyNames.PROPERTY_HELPURL,
+ PropertyNames.PROPERTY_LABEL,
+ PropertyNames.PROPERTY_POSITION_X,
+ PropertyNames.PROPERTY_POSITION_Y,
+ PropertyNames.PROPERTY_STEP,
+ PropertyNames.PROPERTY_TABINDEX,
+ PropertyNames.PROPERTY_WIDTH),
+ (Enabled, 14, BtnHelpURL, "...",XPos + Width - 16, YPos + 9,
+ DialogStep, (CurTabIndex + 2), 16), self)
+
+ def addSelectionListener(self, xAction):
+ self.xAction = xAction
+
+ def getSelectedPath(self):
+ return self.xSaveTextBox.Text
+
+ def initializePath(self):
+ try:
+ myFA = FileAccess(self.xMSF)
+ self.xSaveTextBox.setText(
+ myFA.getPath(self.sDefaultDirectory + \
+ "/" + \
+ self.sDefaultName, None))
+ except Exception, e:
+ traceback.print_exc()
+
+ def triggerPathPicker(self):
+ try:
+ if self.iTransferMode == self.TransferMode.SAVE:
+ if self.iDialogType == self.DialogTypes.FOLDER:
+ #TODO: write code for picking a folder for saving
+ return
+ elif self.iDialogType == self.DialogTypes.FILE:
+ self.usedPathPicker = True
+ myFilePickerDialog = \
+ SystemDialog.createStoreDialog(self.xMSF)
+ myFilePickerDialog.callStoreDialog(
+ self.sDefaultDirectory,
+ self.sDefaultName, self.sDefaultFilter)
+ sStorePath = myFilePickerDialog.sStorePath
+ if sStorePath is not None:
+ myFA = FileAccess(self.xMSF);
+ self.xSaveTextBox.Text = myFA.getPath(sStorePath, None)
+ self.sDefaultDirectory = \
+ FileAccess.getParentDir(sStorePath)
+ self.sDefaultName = myFA.getFilename(sStorePath)
+ return
+ elif iTransferMode == TransferMode.LOAD:
+ if iDialogType == DialogTypes.FOLDER:
+ #TODO: write code for picking a folder for loading
+ return
+ elif iDialogType == DialogTypes.FILE:
+ #TODO: write code for picking a file for loading
+ return
+ except Exception, e:
+ traceback.print_exc()
+
+ def callXPathSelectionListener(self):
+ if self.xAction != None:
+ self.xAction.validatePath()
diff --git a/wizards/com/sun/star/wizards/ui/UIConsts.py b/wizards/com/sun/star/wizards/ui/UIConsts.py
new file mode 100644
index 000000000000..a975ff4904d5
--- /dev/null
+++ b/wizards/com/sun/star/wizards/ui/UIConsts.py
@@ -0,0 +1,53 @@
+RID_COMMON = 500
+RID_DB_COMMON = 1000
+RID_FORM = 2200
+RID_QUERY = 2300
+RID_REPORT = 2400
+RID_TABLE = 2500
+RID_IMG_REPORT = 1000
+RID_IMG_FORM = 1100
+RID_IMG_WEB = 1200
+INVISIBLESTEP = 99
+INFOIMAGEURL = "private:resource/dbu/image/19205"
+
+'''
+The tabindex of the navigation buttons in a wizard must be assigned a very
+high tabindex because on every step their taborder must appear at the end
+'''
+SOFIRSTWIZARDNAVITABINDEX = 30000
+
+#Steps of the QueryWizard
+
+SOFIELDSELECTIONPAGE = 1
+SOSORTINGPAGE = 2
+SOFILTERPAGE = 3
+SOAGGREGATEPAGE = 4
+SOGROUPSELECTIONPAGE = 5
+SOGROUPFILTERPAGE = 6
+SOTITLESPAGE = 7
+SOSUMMARYPAGE = 8
+
+class CONTROLTYPE():
+
+ BUTTON = 1
+ IMAGECONTROL = 2
+ LISTBOX = 3
+ COMBOBOX = 4
+ CHECKBOX = 5
+ RADIOBUTTON = 6
+ DATEFIELD = 7
+ EDITCONTROL = 8
+ FILECONTROL = 9
+ FIXEDLINE = 10
+ FIXEDTEXT = 11
+ FORMATTEDFIELD = 12
+ GROUPBOX = 13
+ HYPERTEXT = 14
+ NUMERICFIELD = 15
+ PATTERNFIELD = 16
+ PROGRESSBAR = 17
+ ROADMAP = 18
+ SCROLLBAR = 19
+ TIMEFIELD = 20
+ CURRENCYFIELD = 21
+ UNKNOWN = -1
diff --git a/wizards/com/sun/star/wizards/ui/UnoDialog.py b/wizards/com/sun/star/wizards/ui/UnoDialog.py
new file mode 100644
index 000000000000..fbc1984a36a6
--- /dev/null
+++ b/wizards/com/sun/star/wizards/ui/UnoDialog.py
@@ -0,0 +1,552 @@
+import uno
+import traceback
+from common.PropertyNames import PropertyNames
+from com.sun.star.awt import Rectangle
+from common.Helper import Helper
+from com.sun.star.awt import Rectangle
+from com.sun.star.awt.PosSize import POS
+
+class UnoDialog(object):
+
+ def __init__(self, xMSF, PropertyNames, PropertyValues):
+ try:
+ self.xMSF = xMSF
+ self.ControlList = {}
+ self.xDialogModel = xMSF.createInstance(
+ "com.sun.star.awt.UnoControlDialogModel")
+ self.xDialogModel.setPropertyValues(PropertyNames, PropertyValues)
+ self.xUnoDialog = xMSF.createInstance(
+ "com.sun.star.awt.UnoControlDialog")
+ self.xUnoDialog.setModel(self.xDialogModel)
+ self.m_oPeerConfig = None
+ self.xWindowPeer = None
+ except Exception, e:
+ traceback.print_exc()
+
+ def getControlKey(self, EventObject, ControlList):
+ xControlModel = EventObject.getModel()
+ try:
+ sName = xControlModel.getPropertyValue(
+ PropertyNames.PROPERTY_NAME)
+ iKey = ControlList.get(sName).intValue()
+ except com.sun.star.uno.Exception, exception:
+ traceback.print_exc()
+ iKey = 2000
+
+ return iKey
+
+ def createPeerConfiguration(self):
+ self.m_oPeerConfig = PeerConfig(self)
+
+ def getPeerConfiguration(self):
+ if self.m_oPeerConfig == None:
+ self.createPeerConfiguration()
+ return self.m_oPeerConfig
+
+ def setControlProperty(self, ControlName, PropertyName, PropertyValue):
+ try:
+ if PropertyValue is not None:
+ if not self.xDialogModel.hasByName(ControlName):
+ return
+ xPSet = self.xDialogModel.getByName(ControlName)
+ setattr(xPSet,PropertyName, PropertyValue)
+
+ except Exception, exception:
+ traceback.print_exc()
+
+ def setControlProperties(
+ self, ControlName, PropertyNames, PropertyValues):
+ self.setControlProperty(ControlName, PropertyNames, PropertyValues)
+
+ def getControlProperty(self, ControlName, PropertyName):
+ try:
+ xPSet = self.xDialogModel.getByName(ControlName)
+ return xPSet.getPropertyValue(PropertyName)
+ except Exception, exception:
+ traceback.print_exc()
+ return None
+
+
+ def printControlProperties(self, ControlName):
+ try:
+ xControlModel = self.xDialogModel().getByName(ControlName)
+ allProps = xControlModel.PropertySetInfo.Properties
+ i = 0
+ while i < allProps.length:
+ sName = allProps[i].Name
+ i += 1
+ except Exception, exception:
+ traceback.print_exc()
+
+ def getMAPConversionFactor(self, ControlName):
+ xControl2 = self.xUnoDialog.getControl(ControlName)
+ aSize = xControl2.Size
+ dblMAPWidth = Helper.getUnoPropertyValue(xControl2.Model,
+ int(PropertyNames.PROPERTY_WIDTH))
+ return (aSize.Width / dblMAPWidth)
+
+ def getpreferredLabelSize(self, LabelName, sLabel):
+ xControl2 = self.xUnoDialog.getControl(LabelName)
+ OldText = xControl2.Text
+ xControl2.setText(sLabel)
+ aSize = xControl2.PreferredSize
+ xControl2.setText(OldText)
+ return aSize
+
+ def removeSelectedItems(self, xListBox):
+ SelList = xListBox.SelectedItemsPos
+ Sellen = SelList.length
+ i = Sellen - 1
+ while i >= 0:
+ xListBox.removeItems(SelList[i], 1)
+ i -= 1
+
+ def getListBoxItemCount(self, _xListBox):
+ # This function may look ugly, but this is the only way to check
+ # the count of values in the model,which is always right.
+ # the control is only a view and could be right or not.
+ fieldnames = Helper.getUnoPropertyValue(getModel(_xListBox),
+ "StringItemList")
+ return fieldnames.length
+
+ def getSelectedItemPos(self, _xListBox):
+ ipos = Helper.getUnoPropertyValue(getModel(_xListBox),
+ "SelectedItems")
+ return ipos[0]
+
+ def isListBoxSelected(self, _xListBox):
+ ipos = Helper.getUnoPropertyValue(getModel(_xListBox),
+ "SelectedItems")
+ return ipos.length > 0
+
+ def addSingleItemtoListbox(self, xListBox, ListItem, iSelIndex):
+ xListBox.addItem(ListItem, xListBox.getItemCount())
+ if iSelIndex != -1:
+ xListBox.selectItemPos(iSelIndex, True)
+
+ def insertLabel(self, sName, sPropNames, oPropValues):
+ try:
+ oFixedText = self.insertControlModel(
+ "com.sun.star.awt.UnoControlFixedTextModel",
+ sName, sPropNames, oPropValues)
+ oFixedText.setPropertyValue(PropertyNames.PROPERTY_NAME, sName)
+ oLabel = self.xUnoDialog.getControl(sName)
+ return oLabel
+ except Exception, ex:
+ traceback.print_exc()
+ return None
+
+ def insertButton(
+ self, sName, iControlKey, xActionListener, sProperties, sValues):
+ oButtonModel = self.insertControlModel(
+ "com.sun.star.awt.UnoControlButtonModel",
+ sName, sProperties, sValues)
+ xPSet.setPropertyValue(PropertyNames.PROPERTY_NAME, sName)
+ xButton = self.xUnoDialog.getControl(sName)
+ if xActionListener != None:
+ xButton.addActionListener(
+ ActionListenerProcAdapter(xActionListener))
+
+ ControlKey = iControlKey
+ if self.ControlList != None:
+ self.ControlList.put(sName, ControlKey)
+
+ return xButton
+
+ def insertCheckBox(
+ self, sName, iControlKey, xItemListener, sProperties, sValues):
+ oButtonModel = self.insertControlModel(
+ "com.sun.star.awt.UnoControlCheckBoxModel",
+ sName, sProperties, sValues)
+ oButtonModel.setPropertyValue(PropertyNames.PROPERTY_NAME, sName)
+ xCheckBox = self.xUnoDialog.getControl(sName)
+ if xItemListener != None:
+ xCheckBox.addItemListener(
+ ItemListenerProcAdapter(xItemListener))
+
+ ControlKey = iControlKey
+ if self.ControlList != None:
+ self.ControlList.put(sName, ControlKey)
+
+ def insertNumericField(
+ self, sName, iControlKey, xTextListener, sProperties, sValues):
+ oNumericFieldModel = self.insertControlModel(
+ "com.sun.star.awt.UnoControlNumericFieldModel",
+ sName, sProperties, sValues)
+ oNumericFieldModel.setPropertyValue(
+ PropertyNames.PROPERTY_NAME, sName)
+ xNumericField = self.xUnoDialog.getControl(sName)
+ if xTextListener != None:
+ xNumericField.addTextListener(
+ TextListenerProcAdapter(xTextListener))
+
+ ControlKey = iControlKey
+ if self.ControlList != None:
+ self.ControlList.put(sName, ControlKey)
+
+ def insertScrollBar(
+ self, sName, iControlKey, xAdjustmentListener, sProperties, sValues):
+ try:
+ oScrollModel = self.insertControlModel(
+ "com.sun.star.awt.UnoControlScrollBarModel",
+ sName, sProperties, sValues)
+ oScrollModel.setPropertyValue(PropertyNames.PROPERTY_NAME, sName)
+ xScrollBar = self.xUnoDialog.getControl(sName)
+ if xAdjustmentListener != None:
+ xScrollBar.addAdjustmentListener(xAdjustmentListener)
+
+ ControlKey = iControlKey
+ if self.ControlList != None:
+ self.ControlList.put(sName, ControlKey)
+
+ return xScrollBar
+ except com.sun.star.uno.Exception, exception:
+ traceback.print_exc()
+ return None
+
+ def insertTextField(
+ self, sName, iControlKey, xTextListener, sProperties, sValues):
+ xTextBox = insertEditField(
+ "com.sun.star.awt.UnoControlEditModel", sName, iControlKey,
+ xTextListener, sProperties, sValues)
+ return xTextBox
+
+ def insertFormattedField(
+ self, sName, iControlKey, xTextListener, sProperties, sValues):
+ xTextBox = insertEditField(
+ "com.sun.star.awt.UnoControlFormattedFieldModel", sName,
+ iControlKey, xTextListener, sProperties, sValues)
+ return xTextBox
+
+ def insertEditField(
+ self, ServiceName, sName, iControlKey,
+ xTextListener, sProperties, sValues):
+
+ try:
+ xTextModel = self.insertControlModel(
+ ServiceName, sName, sProperties, sValues)
+ xTextModel.setPropertyValue(PropertyNames.PROPERTY_NAME, sName)
+ xTextBox = self.xUnoDialog.getControl(sName)
+ if xTextListener != None:
+ xTextBox.addTextListener(TextListenerProcAdapter(xTextListener))
+
+ ControlKey = iControlKey
+ self.ControlList.put(sName, ControlKey)
+ return xTextBox
+ except com.sun.star.uno.Exception, exception:
+ traceback.print_exc()
+ return None
+
+ def insertListBox(
+ self, sName, iControlKey, xActionListener,
+ xItemListener, sProperties, sValues):
+ xListBoxModel = self.insertControlModel(
+ "com.sun.star.awt.UnoControlListBoxModel",
+ sName, sProperties, sValues)
+ xListBoxModel.setPropertyValue(PropertyNames.PROPERTY_NAME, sName)
+ xListBox = self.xUnoDialog.getControl(sName)
+ if xItemListener != None:
+ xListBox.addItemListener(ItemListenerProcAdapter(xItemListener))
+
+ if xActionListener != None:
+ xListBox.addActionListener(
+ ActionListenerProcAdapter(xActionListener))
+
+ ControlKey = iControlKey
+ self.ControlList.put(sName, ControlKey)
+ return xListBox
+
+ def insertComboBox(
+ self, sName, iControlKey, xActionListener, xTextListener,
+ xItemListener, sProperties, sValues):
+ xComboBoxModel = self.insertControlModel(
+ "com.sun.star.awt.UnoControlComboBoxModel",
+ sName, sProperties, sValues)
+ xComboBoxModel.setPropertyValue(PropertyNames.PROPERTY_NAME, sName)
+ xComboBox = self.xUnoDialog.getControl(sName)
+ if xItemListener != None:
+ xComboBox.addItemListener(ItemListenerProcAdapter(xItemListener))
+
+ if xTextListener != None:
+ xComboBox.addTextListener(TextListenerProcAdapter(xTextListener))
+
+ if xActionListener != None:
+ xComboBox.addActionListener(
+ ActionListenerProcAdapter(xActionListener))
+
+ ControlKey = iControlKey
+ self.ControlList.put(sName, ControlKey)
+ return xComboBox
+
+ def insertRadioButton(
+ self, sName, iControlKey, xItemListener, sProperties, sValues):
+ try:
+ xRadioButton = insertRadioButton(
+ sName, iControlKey, sProperties, sValues)
+ if xItemListener != None:
+ xRadioButton.addItemListener(
+ ItemListenerProcAdapter(xItemListener))
+
+ return xRadioButton
+ except com.sun.star.uno.Exception, exception:
+ traceback.print_exc()
+ return None
+
+ def insertRadioButton(
+ self, sName, iControlKey, xActionListener, sProperties, sValues):
+ try:
+ xButton = insertRadioButton(
+ sName, iControlKey, sProperties, sValues)
+ if xActionListener != None:
+ xButton.addActionListener(
+ ActionListenerProcAdapter(xActionListener))
+
+ return xButton
+ except com.sun.star.uno.Exception, exception:
+ traceback.print_exc()
+ return None
+
+ def insertRadioButton(self, sName, iControlKey, sProperties, sValues):
+ xRadioButton = insertRadioButton(sName, sProperties, sValues)
+ ControlKey = iControlKey
+ self.ControlList.put(sName, ControlKey)
+ return xRadioButton
+
+ def insertRadioButton(self, sName, sProperties, sValues):
+ try:
+ oRadioButtonModel = self.insertControlModel(
+ "com.sun.star.awt.UnoControlRadioButtonModel",
+ sName, sProperties, sValues)
+ oRadioButtonModel.setPropertyValue(
+ PropertyNames.PROPERTY_NAME, sName)
+ xRadioButton = self.xUnoDialog.getControl(sName)
+ return xRadioButton
+ except com.sun.star.uno.Exception, exception:
+ traceback.print_exc()
+ return None
+ '''
+ The problem with setting the visibility of controls
+ is that changing the current step of a dialog will automatically
+ make all controls visible. The PropertyNames.PROPERTY_STEP property
+ always wins against the property "visible". Therfor a control meant
+ to be invisible is placed on a step far far away.
+ @param the name of the control
+ @param iStep change the step if you want to make the control invisible
+ '''
+
+ def setControlVisible(self, controlname, iStep):
+ try:
+ iCurStep = int(getControlProperty(
+ controlname, PropertyNames.PROPERTY_STEP))
+ setControlProperty(
+ controlname, PropertyNames.PROPERTY_STEP, iStep)
+ except com.sun.star.uno.Exception, exception:
+ traceback.print_exc()
+
+ '''
+ The problem with setting the visibility of controls is that
+ changing the current step of a dialog will automatically make
+ all controls visible. The PropertyNames.PROPERTY_STEP property
+ always wins against the property "visible".
+ Therfor a control meant to be invisible is placed on a step far far away.
+ Afterwards the step property of the dialog has to be set with
+ "repaintDialogStep". As the performance of that method is very bad it
+ should be used only once for all controls
+ @param controlname the name of the control
+ @param bIsVisible sets the control visible or invisible
+ '''
+
+ def setControlVisible(self, controlname, bIsVisible):
+ try:
+ iCurControlStep = int(getControlProperty(
+ controlname, PropertyNames.PROPERTY_STEP))
+ iCurDialogStep = int(Helper.getUnoPropertyValue(
+ self.xDialogModel, PropertyNames.PROPERTY_STEP))
+ if bIsVisible:
+ setControlProperty(
+ controlname, PropertyNames.PROPERTY_STEP, iCurDialogStep)
+ else:
+ setControlProperty(
+ controlname, PropertyNames.PROPERTY_STEP,
+ UIConsts.INVISIBLESTEP)
+
+ except com.sun.star.uno.Exception, exception:
+ traceback.print_exc()
+
+ # repaints the currentDialogStep
+
+
+ def repaintDialogStep(self):
+ try:
+ ncurstep = int(Helper.getUnoPropertyValue(
+ self.xDialogModel, PropertyNames.PROPERTY_STEP))
+ Helper.setUnoPropertyValue(
+ self.xDialogModel, PropertyNames.PROPERTY_STEP, 99)
+ Helper.setUnoPropertyValue(
+ self.xDialogModel, PropertyNames.PROPERTY_STEP, ncurstep)
+ except com.sun.star.uno.Exception, exception:
+ traceback.print_exc()
+
+ def insertControlModel(self, ServiceName, sName, sProperties, sValues):
+ try:
+ xControlModel = self.xDialogModel.createInstance(ServiceName)
+ Helper.setUnoPropertyValues(xControlModel, sProperties, sValues)
+ self.xDialogModel.insertByName(sName, xControlModel)
+ return xControlModel
+ except Exception, exception:
+ traceback.print_exc()
+ return None
+
+ def setFocus(self, ControlName):
+ oFocusControl = self.xUnoDialog.getControl(ControlName)
+ oFocusControl.setFocus()
+
+ def combineListboxList(self, sFirstEntry, MainList):
+ try:
+ FirstList = [sFirstEntry]
+ ResultList = [MainList.length + 1]
+ System.arraycopy(FirstList, 0, ResultList, 0, 1)
+ System.arraycopy(MainList, 0, ResultList, 1, len(MainList))
+ return ResultList
+ except java.lang.Exception, jexception:
+ traceback.print_exc()
+ return None
+
+ def selectListBoxItem(self, xListBox, iFieldsSelIndex):
+ if iFieldsSelIndex > -1:
+ FieldCount = xListBox.getItemCount()
+ if FieldCount > 0:
+ if iFieldsSelIndex < FieldCount:
+ xListBox.selectItemPos(iFieldsSelIndex, True)
+ else:
+ xListBox.selectItemPos((short)(iFieldsSelIndex - 1), True)
+
+ # deselects a Listbox. MultipleMode is not supported
+
+ def deselectListBox(self, _xBasisListBox):
+ oListBoxModel = getModel(_xBasisListBox)
+ sList = Helper.getUnoPropertyValue(oListBoxModel, "StringItemList")
+ Helper.setUnoPropertyValue(oListBoxModel, "StringItemList", [[],[]])
+ Helper.setUnoPropertyValue(oListBoxModel, "StringItemList", sList)
+
+ def calculateDialogPosition(self, FramePosSize):
+ # Todo:check if it would be useful or possible to create a dialog peer
+ # that can be used for the messageboxes to
+ # maintain modality when they pop up.
+ CurPosSize = self.xUnoDialog.getPosSize()
+ WindowHeight = FramePosSize.Height
+ WindowWidth = FramePosSize.Width
+ DialogWidth = CurPosSize.Width
+ DialogHeight = CurPosSize.Height
+ iXPos = ((WindowWidth / 2) - (DialogWidth / 2))
+ iYPos = ((WindowHeight / 2) - (DialogHeight / 2))
+ self.xUnoDialog.setPosSize(
+ iXPos, iYPos, DialogWidth, DialogHeight, POS)
+
+ '''
+ @param FramePosSize
+ @return 0 for cancel, 1 for ok
+ @throws com.sun.star.uno.Exception
+ '''
+
+ def executeDialog(self, FramePosSize):
+ if self.xUnoDialog.getPeer() == None:
+ raise AttributeError(
+ "Please create a peer, using your own frame");
+
+ self.calculateDialogPosition(FramePosSize)
+
+ if self.xWindowPeer == None:
+ self.createWindowPeer()
+ return self.xUnoDialog.execute()
+
+ def setVisible(self, parent):
+ self.calculateDialogPosition(parent.xWindow.getPosSize())
+ if self.xWindowPeer == None:
+ self.createWindowPeer()
+
+ self.xUnoDialog.setVisible(True)
+
+ '''
+ @param parent
+ @return 0 for cancel, 1 for ok
+ @throws com.sun.star.uno.Exception
+ '''
+
+ def executeDialogFromParent(self, parent):
+ return self.executeDialog(parent.xWindow.PosSize)
+
+ '''
+ @param XComponent
+ @return 0 for cancel, 1 for ok
+ @throws com.sun.star.uno.Exception
+ '''
+
+ def executeDialogFromComponent(self, xComponent):
+ if xComponent is not None:
+ w = xComponent.ComponentWindow
+ if w is not None:
+ return self.executeDialog(w.PosSize)
+
+ return self.executeDialog( Rectangle (0, 0, 640, 400))
+
+ def setAutoMnemonic(self, ControlName, bValue):
+ self.xUnoDialog = self.xUnoDialog.getControl(ControlName)
+ xVclWindowPedsfer = self.xUnoDialog.getPeer()
+ self.xContainerWindow.setProperty("AutoMnemonics", bValue)
+
+ def modifyFontWeight(self, ControlName, FontWeight):
+ oFontDesc = FontDescriptor.FontDescriptor()
+ oFontDesc.Weight = FontWeight
+ setControlProperty(ControlName, "FontDescriptor", oFontDesc)
+
+ '''
+ create a peer for this
+ dialog, using the given
+ peer as a parent.
+ @param parentPeer
+ @return
+ @throws java.lang.Exception
+ '''
+
+ def createWindowPeer(self, parentPeer=None):
+ self.xUnoDialog.setVisible(False)
+ xToolkit = self.xMSF.createInstance("com.sun.star.awt.Toolkit")
+ if parentPeer == None:
+ parentPeer = xToolkit.getDesktopWindow()
+
+ self.xUnoDialog.createPeer(xToolkit, parentPeer)
+ self.xWindowPeer = self.xUnoDialog.getPeer()
+ return self.xUnoDialog.getPeer()
+
+ # deletes the first entry when this is equal to "DelEntryName"
+ # returns true when a new item is selected
+
+ def deletefirstListboxEntry(self, ListBoxName, DelEntryName):
+ xListBox = self.xUnoDialog.getControl(ListBoxName)
+ FirstItem = xListBox.getItem(0)
+ if FirstItem.equals(DelEntryName):
+ SelPos = xListBox.getSelectedItemPos()
+ xListBox.removeItems(0, 1)
+ if SelPos > 0:
+ setControlProperty(ListBoxName, "SelectedItems", [SelPos])
+ xListBox.selectItemPos((short)(SelPos - 1), True)
+
+ def setPeerProperty(self, ControlName, PropertyName, PropertyValue):
+ xControl = self.xUnoDialog.getControl(ControlName)
+ xVclWindowPeer = self.xControl.getPeer()
+ self.xContainerWindow.setProperty(PropertyName, PropertyValue)
+
+ @classmethod
+ def setEnabled(self, control, enabled):
+ Helper.setUnoPropertyValue(
+ getModel(control), PropertyNames.PROPERTY_ENABLED, enabled)
+
+ def addResourceHandler(self, _Unit, _Module):
+ self.m_oResource = Resource(self.xMSF, _Unit, _Module)
+
+ def setInitialTabindex(self, _istep):
+ return (short)(_istep * 100)
+
+ def getListBoxLineCount(self):
+ return 20
diff --git a/wizards/com/sun/star/wizards/ui/UnoDialog2.py b/wizards/com/sun/star/wizards/ui/UnoDialog2.py
new file mode 100644
index 000000000000..0bf868687017
--- /dev/null
+++ b/wizards/com/sun/star/wizards/ui/UnoDialog2.py
@@ -0,0 +1,259 @@
+from UnoDialog import *
+from ui.event.CommonListener import *
+from common.Desktop import Desktop
+import UIConsts
+
+'''
+This class contains convenience methods for inserting components to a dialog.
+It was created for use with the automatic conversion of Basic XML Dialog
+description files to a Java class which builds
+the same dialog through the UNO API.<br/>
+It uses an Event-Listener method, which calls a method through reflection
+wenn an event on a component is trigered.
+see the classes CommonListener for details
+'''
+
+class UnoDialog2(UnoDialog):
+
+ '''
+ Override this method to return another listener.
+ @return
+ '''
+
+ def __init__(self, xmsf):
+ super(UnoDialog2,self).__init__(xmsf,(), ())
+
+ def insertButton(
+ self, sName, actionPerformed, sPropNames, oPropValues, listener):
+ xButton = self.insertControlModel2(
+ "com.sun.star.awt.UnoControlButtonModel",
+ sName, sPropNames, oPropValues)
+ if actionPerformed is not None:
+ actionPerformed = getattr(listener, actionPerformed)
+ xButton.addActionListener(
+ ActionListenerProcAdapter(actionPerformed))
+
+ return xButton
+
+ def insertImageButton(
+ self, sName, actionPerformed, sPropNames, oPropValues, listener):
+ xButton = self.insertControlModel2(
+ "com.sun.star.awt.UnoControlButtonModel",
+ sName, sPropNames, oPropValues)
+ if actionPerformed is not None:
+ actionPerformed = getattr(listener, actionPerformed)
+ xButton.addActionListener(
+ ActionListenerProcAdapter(actionPerformed))
+
+ return xButton
+
+ def insertCheckBox(
+ self, sName, itemChanged, sPropNames, oPropValues, listener):
+ xCheckBox = self.insertControlModel2(
+ "com.sun.star.awt.UnoControlCheckBoxModel",
+ sName, sPropNames, oPropValues)
+ if itemChanged is not None:
+ itemChanged = getattr(listener, itemChanged)
+ xCheckBox.addItemListener(ItemListenerProcAdapter(itemChanged))
+
+ return xCheckBox
+
+ def insertComboBox(
+ self, sName, actionPerformed, itemChanged,
+ textChanged, sPropNames, oPropValues, listener):
+ xComboBox = self.insertControlModel2(
+ "com.sun.star.awt.UnoControlComboBoxModel",
+ sName, sPropNames, oPropValues)
+ if actionPerformed is not None:
+ actionPerformed = getattr(listener, actionPerformed)
+ xComboBox.addActionListener(
+ ActionListenerProcAdapter(actionPerformed))
+
+ if itemChanged is not None:
+ itemChanged = getattr(listener, itemChanged)
+ xComboBox.addItemListener(ItemListenerProcAdapter(itemChanged))
+
+ if textChanged is not None:
+ textChanged = getattr(listener, textChanged)
+ xComboBox.addTextListener(TextListenerProcAdapter(textChanged))
+
+ return xComboBox
+
+ def insertListBox(
+ self, sName, actionPerformed, itemChanged,
+ sPropNames, oPropValues, listener):
+ xListBox = self.insertControlModel2(
+ "com.sun.star.awt.UnoControlListBoxModel",
+ sName, sPropNames, oPropValues)
+
+ if actionPerformed is not None:
+ actionPerformed = getattr(listener, actionPerformed)
+ xListBox.addActionListener(actionPerformed)
+
+ if itemChanged is not None:
+ itemChanged = getattr(listener, itemChanged)
+ xListBox.addItemListener(ItemListenerProcAdapter(itemChanged))
+
+ return xListBox
+
+ def insertRadioButton(
+ self, sName, itemChanged, sPropNames, oPropValues, listener):
+ xRadioButton = self.insertControlModel2(
+ "com.sun.star.awt.UnoControlRadioButtonModel",
+ sName, sPropNames, oPropValues)
+ if itemChanged is not None:
+ itemChanged = getattr(listener, itemChanged)
+ xRadioButton.addItemListener(
+ ItemListenerProcAdapter(itemChanged))
+
+
+ return xRadioButton
+
+ def insertTitledBox(self, sName, sPropNames, oPropValues):
+ oTitledBox = self.insertControlModel2(
+ "com.sun.star.awt.UnoControlGroupBoxModel",
+ sName, sPropNames, oPropValues)
+ return oTitledBox
+
+ def insertTextField(
+ self, sName, sTextChanged, sPropNames, oPropValues, listener):
+ return self.insertEditField(
+ sName, sTextChanged, "com.sun.star.awt.UnoControlEditModel",
+ sPropNames, oPropValues, listener)
+
+ def insertImage(self, sName, sPropNames, oPropValues):
+ return self.insertControlModel2(
+ "com.sun.star.awt.UnoControlImageControlModel",
+ sName, sPropNames, oPropValues)
+
+ def insertInfoImage(self, _posx, _posy, _iStep):
+ xImgControl = self.insertImage(
+ Desktop.getUniqueName(self.xDialogModel, "imgHint"),
+ ("Border",
+ PropertyNames.PROPERTY_HEIGHT,
+ PropertyNames.PROPERTY_IMAGEURL,
+ PropertyNames.PROPERTY_POSITION_X,
+ PropertyNames.PROPERTY_POSITION_Y, "ScaleImage",
+ PropertyNames.PROPERTY_STEP,
+ PropertyNames.PROPERTY_WIDTH),
+ (0, 10, UIConsts.INFOIMAGEURL, _posx, _posy, False, _iStep, 10))
+ return xImgControl
+
+ '''
+ This method is used for creating Edit, Currency, Date, Formatted,
+ Pattern, File and Time edit components.
+ '''
+
+ def insertEditField(
+ self, sName, sTextChanged, sModelClass,
+ sPropNames, oPropValues, listener):
+ xField = self.insertControlModel2(sModelClass,
+ sName, sPropNames, oPropValues)
+ if sTextChanged is not None:
+ sTextChanged = getattr(listener, sTextChanged)
+ xField.addTextListener(TextListenerProcAdapter(sTextChanged))
+
+ return xField
+
+ def insertFileControl(
+ self, sName, sTextChanged, sPropNames, oPropValues, listener):
+ return self.insertEditField(sName, sTextChanged,
+ "com.sun.star.awt.UnoControlFileControlModel",
+ sPropNames, oPropValues, listener)
+
+ def insertCurrencyField(
+ self, sName, sTextChanged, sPropNames, oPropValues, listener):
+ return self.insertEditField(
+ sName, sTextChanged,
+ "com.sun.star.awt.UnoControlCurrencyFieldModel",
+ sPropNames, oPropValues, listener)
+
+ def insertDateField(
+ self, sName, sTextChanged, sPropNames, oPropValues, listener):
+ return self.insertEditField(
+ sName, sTextChanged,
+ "com.sun.star.awt.UnoControlDateFieldModel",
+ sPropNames, oPropValues, listener)
+
+ def insertNumericField(
+ self, sName, sTextChanged, sPropNames, oPropValues, listener):
+ return self.insertEditField(
+ sName, sTextChanged,
+ "com.sun.star.awt.UnoControlNumericFieldModel",
+ sPropNames, oPropValues, listener)
+
+ def insertTimeField(
+ self, sName, sTextChanged, sPropNames, oPropValues, listener):
+ return self.insertEditField(
+ sName, sTextChanged,
+ "com.sun.star.awt.UnoControlTimeFieldModel",
+ sPropNames, oPropValues, listener)
+
+ def insertPatternField(
+ self, sName, sTextChanged, oPropValues, listener):
+ return self.insertEditField(sName, sTextChanged,
+ "com.sun.star.awt.UnoControlPatternFieldModel",
+ sPropNames, oPropValues, listener)
+
+ def insertFormattedField(
+ self, sName, sTextChanged, sPropNames, oPropValues, listener):
+ return self.insertEditField(
+ sName, sTextChanged,
+ "com.sun.star.awt.UnoControlFormattedFieldModel",
+ sPropNames, oPropValues, listener)
+
+ def insertFixedLine(self, sName, sPropNames, oPropValues):
+ oLine = self.insertControlModel2(
+ "com.sun.star.awt.UnoControlFixedLineModel",
+ sName, sPropNames, oPropValues)
+ return oLine
+
+ def insertScrollBar(self, sName, sPropNames, oPropValues):
+ oScrollBar = self.insertControlModel2(
+ "com.sun.star.awt.UnoControlScrollBarModel",
+ sName, sPropNames, oPropValues)
+ return oScrollBar
+
+ def insertProgressBar(self, sName, sPropNames, oPropValues):
+ oProgressBar = self.insertControlModel2(
+ "com.sun.star.awt.UnoControlProgressBarModel",
+ sName, sPropNames, oPropValues)
+ return oProgressBar
+
+ def insertGroupBox(self, sName, sPropNames, oPropValues):
+ oGroupBox = self.insertControlModel2(
+ "com.sun.star.awt.UnoControlGroupBoxModel",
+ sName, sPropNames, oPropValues)
+ return oGroupBox
+
+ def insertControlModel2(
+ self, serviceName, componentName, sPropNames, oPropValues):
+ try:
+ xControlModel = self.insertControlModel(
+ serviceName, componentName, (), ())
+ Helper.setUnoPropertyValues(
+ xControlModel, sPropNames, oPropValues)
+ Helper.setUnoPropertyValue(xControlModel,
+ PropertyNames.PROPERTY_NAME, componentName)
+ except Exception, ex:
+ traceback.print_exc()
+
+ aObj = self.xUnoDialog.getControl(componentName)
+ return aObj
+
+ def setControlPropertiesDebug(self, model, names, values):
+ i = 0
+ while i < len(names):
+ print " Settings: ", names[i]
+ Helper.setUnoPropertyValue(model, names[i], values[i])
+ i += 1
+
+ def getControlModel(self, unoControl):
+ obj = unoControl.Model
+ return obj
+
+ def showMessageBox(self, windowServiceName, windowAttribute, MessageText):
+ return SystemDialog.showMessageBox(
+ xMSF, self.xControl.Peer,
+ windowServiceName, windowAttribute, MessageText)
+
diff --git a/wizards/com/sun/star/wizards/ui/WizardDialog.py b/wizards/com/sun/star/wizards/ui/WizardDialog.py
new file mode 100644
index 000000000000..f32f01a3d5a1
--- /dev/null
+++ b/wizards/com/sun/star/wizards/ui/WizardDialog.py
@@ -0,0 +1,499 @@
+from UnoDialog2 import *
+from common.Resource import Resource
+from abc import ABCMeta, abstractmethod
+from com.sun.star.lang import NoSuchMethodException
+from com.sun.star.lang import IllegalArgumentException
+from com.sun.star.frame import TerminationVetoException
+from common.HelpIds import *
+from com.sun.star.awt.PushButtonType import HELP, STANDARD
+
+class WizardDialog(UnoDialog2):
+
+ __metaclass__ = ABCMeta
+
+ __NEXT_ACTION_PERFORMED = "gotoNextAvailableStep"
+ __BACK_ACTION_PERFORMED = "gotoPreviousAvailableStep"
+ __FINISH_ACTION_PERFORMED = "finishWizard_1"
+ __CANCEL_ACTION_PERFORMED = "cancelWizard_1"
+ __HELP_ACTION_PERFORMED = None
+
+ '''
+ Creates a new instance of WizardDialog
+ the hid is used as following :
+ "HID:(hid)" - the dialog
+ "HID:(hid+1) - the help button
+ "HID:(hid+2)" - the back button
+ "HID:(hid+3)" - the next button
+ "HID:(hid+4)" - the create button
+ "HID:(hid+5)" - the cancel button
+ @param xMSF
+ @param hid_
+ '''
+
+ def __init__(self, xMSF, hid_):
+ super(WizardDialog,self).__init__(xMSF)
+ self.__hid = hid_
+ self.__iButtonWidth = 50
+ self.nNewStep = 1
+ self.nOldStep = 1
+ self.nMaxStep = 1
+ self.__bTerminateListenermustberemoved = True
+ self.__oWizardResource = Resource(xMSF, "dbw")
+ self.sMsgEndAutopilot = self.__oWizardResource.getResText(
+ UIConsts.RID_DB_COMMON + 33)
+ self.oRoadmap = None
+ #self.vetos = VetoableChangeSupport.VetoableChangeSupport_unknown(this)
+
+ def getResource(self):
+ return self.__oWizardResource
+
+ def activate(self):
+ try:
+ if self.xUnoDialog is not None:
+ self.xUnoDialog.toFront()
+
+ except Exception, ex:
+ pass
+ # do nothing;
+
+ def itemStateChanged(self, itemEvent):
+ try:
+ self.nNewStep = itemEvent.ItemId
+ self.nOldStep = int(Helper.getUnoPropertyValue(
+ self.xDialogModel,
+ PropertyNames.PROPERTY_STEP))
+ if self.nNewStep != self.nOldStep:
+ self.switchToStep()
+
+ except IllegalArgumentException, exception:
+ traceback.print_exc()
+
+ def setRoadmapInteractive(self, _bInteractive):
+ Helper.setUnoPropertyValue(self.oRoadmap, "Activated", _bInteractive)
+
+ def setRoadmapComplete(self, bComplete):
+ Helper.setUnoPropertyValue(self.oRoadmap, "Complete", bComplete)
+
+ def isRoadmapComplete(self):
+ try:
+ return bool(Helper.getUnoPropertyValue(self.oRoadmap, "Complete"))
+ except IllegalArgumentException, exception:
+ traceback.print_exc()
+ return False
+
+ def setCurrentRoadmapItemID(self, ID):
+ if self.oRoadmap != None:
+ nCurItemID = self.getCurrentRoadmapItemID()
+ if nCurItemID != ID:
+ Helper.setUnoPropertyValue(self.oRoadmap, "CurrentItemID",ID)
+
+ def getCurrentRoadmapItemID(self):
+ try:
+ return int(Helper.getUnoPropertyValue(
+ self.oRoadmap, "CurrentItemID"))
+ except Exception, exception:
+ traceback.print_exc()
+ return -1
+
+ def addRoadmap(self):
+ try:
+ iDialogHeight = Helper.getUnoPropertyValue(
+ self.xDialogModel,
+ PropertyNames.PROPERTY_HEIGHT)
+ # the roadmap control has got no real TabIndex ever
+ # that is not correct, but changing this would need time,
+ # so it is used without TabIndex as before
+ self.oRoadmap = self.insertControlModel(
+ "com.sun.star.awt.UnoControlRoadmapModel",
+ "rdmNavi",
+ (PropertyNames.PROPERTY_HEIGHT,
+ PropertyNames.PROPERTY_POSITION_X,
+ PropertyNames.PROPERTY_POSITION_Y,
+ PropertyNames.PROPERTY_STEP,
+ PropertyNames.PROPERTY_TABINDEX, "Tabstop",
+ PropertyNames.PROPERTY_WIDTH),
+ ((iDialogHeight - 26), 0, 0, 0,
+ 0, True, 85))
+ self.oRoadmap.setPropertyValue(
+ PropertyNames.PROPERTY_NAME, "rdmNavi")
+
+ self.xRoadmapControl = self.xUnoDialog.getControl("rdmNavi")
+ method = getattr(self, "itemStateChanged")
+ self.xRoadmapControl.addItemListener(
+ ItemListenerProcAdapter(method))
+
+ Helper.setUnoPropertyValue(
+ self.oRoadmap, "Text",
+ self.__oWizardResource.getResText(UIConsts.RID_COMMON + 16))
+ except NoSuchMethodException, ex:
+ Resource.showCommonResourceError(xMSF)
+ except Exception, jexception:
+ traceback.print_exc()
+
+ def setRMItemLabels(self, _oResource, StartResID):
+ self.sRMItemLabels = _oResource.getResArray(
+ StartResID, self.nMaxStep)
+
+ def getRMItemLabels(self):
+ return self.sRMItemLabels
+
+ def insertRoadmapItem(self, Index, _bEnabled, _sLabel, _CurItemID):
+ try:
+ if isinstance(_sLabel, int):
+ _sLabel = self.sRMItemLabels(_sLabel)
+ oRoadmapItem = self.oRoadmap.createInstance()
+ Helper.setUnoPropertyValue(oRoadmapItem,
+ PropertyNames.PROPERTY_LABEL, _sLabel)
+ Helper.setUnoPropertyValue(oRoadmapItem,
+ PropertyNames.PROPERTY_ENABLED, _bEnabled)
+ Helper.setUnoPropertyValue(oRoadmapItem, "ID", _CurItemID)
+ self.oRoadmap.insertByIndex(Index, oRoadmapItem)
+ NextIndex = Index + 1
+ return NextIndex
+ except Exception, exception:
+ traceback.print_exc()
+ return -1
+
+ def getRMItemCount(self):
+ return self.oRoadmap.Count
+
+ def getRoadmapItemByID(self, _ID):
+ try:
+ getByIndex = self.oRoadmap.getByIndex
+ for i in xrange(self.oRoadmap.Count):
+ CurRoadmapItem = getByIndex(i)
+ CurID = int(Helper.getUnoPropertyValue(CurRoadmapItem, "ID"))
+ if CurID == _ID:
+ return CurRoadmapItem
+
+ return None
+ except Exception, exception:
+ traceback.print_exc()
+ return None
+
+ def switchToStep(self,_nOldStep=None, _nNewStep=None):
+ if _nOldStep is not None and _nNewStep is not None:
+ self.nOldStep = _nOldStep
+ self.nNewStep = _nNewStep
+
+ self.leaveStep(self.nOldStep, self.nNewStep)
+ if self.nNewStep != self.nOldStep:
+ if self.nNewStep == self.nMaxStep:
+ self.setControlProperty(
+ "btnWizardNext", "DefaultButton", False)
+ self.setControlProperty(
+ "btnWizardFinish", "DefaultButton", True)
+ else:
+ self.setControlProperty(
+ "btnWizardNext", "DefaultButton", True)
+ self.setControlProperty(
+ "btnWizardFinish", "DefaultButton", False)
+
+ self.changeToStep(self.nNewStep)
+ self.enterStep(self.nOldStep, self.nNewStep)
+ return True
+
+ return False
+
+ @abstractmethod
+ def leaveStep(self, nOldStep, nNewStep):
+ pass
+
+ @abstractmethod
+ def enterStep(self, nOldStep, nNewStep):
+ pass
+
+ def changeToStep(self, nNewStep):
+ Helper.setUnoPropertyValue(self.xDialogModel,
+ PropertyNames.PROPERTY_STEP, nNewStep)
+ self.setCurrentRoadmapItemID(nNewStep)
+ self.enableNextButton(self.getNextAvailableStep() > 0)
+ self.enableBackButton(nNewStep != 1)
+
+ def iscompleted(self, _ndialogpage):
+ return False
+
+ def ismodified(self, _ndialogpage):
+ return False
+
+ def drawNaviBar(self):
+ try:
+ curtabindex = UIConsts.SOFIRSTWIZARDNAVITABINDEX
+ iButtonWidth = self.__iButtonWidth
+ iButtonHeight = 14
+ iCurStep = 0
+ iDialogHeight = Helper.getUnoPropertyValue(self.xDialogModel,
+ PropertyNames.PROPERTY_HEIGHT)
+ iDialogWidth = Helper.getUnoPropertyValue(self.xDialogModel,
+ PropertyNames.PROPERTY_WIDTH)
+ iHelpPosX = 8
+ iBtnPosY = iDialogHeight - iButtonHeight - 6
+ iCancelPosX = iDialogWidth - self.__iButtonWidth - 6
+ iFinishPosX = iCancelPosX - 6 - self.__iButtonWidth
+ iNextPosX = iFinishPosX - 6 - self.__iButtonWidth
+ iBackPosX = iNextPosX - 3 - self.__iButtonWidth
+ self.insertControlModel(
+ "com.sun.star.awt.UnoControlFixedLineModel",
+ "lnNaviSep",
+ (PropertyNames.PROPERTY_HEIGHT, "Orientation",
+ PropertyNames.PROPERTY_POSITION_X,
+ PropertyNames.PROPERTY_POSITION_Y,
+ PropertyNames.PROPERTY_STEP,
+ PropertyNames.PROPERTY_WIDTH),
+ (1, 0, 0, iDialogHeight - 26, iCurStep, iDialogWidth))
+ self.insertControlModel(
+ "com.sun.star.awt.UnoControlFixedLineModel",
+ "lnRoadSep",
+ (PropertyNames.PROPERTY_HEIGHT,
+ "Orientation",
+ PropertyNames.PROPERTY_POSITION_X,
+ PropertyNames.PROPERTY_POSITION_Y,
+ PropertyNames.PROPERTY_STEP,
+ PropertyNames.PROPERTY_WIDTH),
+ (iBtnPosY - 6, 1, 85, 0, iCurStep, 1))
+ propNames = (PropertyNames.PROPERTY_ENABLED,
+ PropertyNames.PROPERTY_HEIGHT,
+ PropertyNames.PROPERTY_HELPURL,
+ PropertyNames.PROPERTY_LABEL,
+ PropertyNames.PROPERTY_POSITION_X,
+ PropertyNames.PROPERTY_POSITION_Y,
+ "PushButtonType",
+ PropertyNames.PROPERTY_STEP,
+ PropertyNames.PROPERTY_TABINDEX,
+ PropertyNames.PROPERTY_WIDTH)
+ Helper.setUnoPropertyValue(
+ self.xDialogModel, PropertyNames.PROPERTY_HELPURL,
+ HelpIds.getHelpIdString(self.__hid))
+ self.insertButton("btnWizardHelp",
+ WizardDialog.__HELP_ACTION_PERFORMED,
+ (PropertyNames.PROPERTY_ENABLED,
+ PropertyNames.PROPERTY_HEIGHT,
+ PropertyNames.PROPERTY_LABEL,
+ PropertyNames.PROPERTY_POSITION_X,
+ PropertyNames.PROPERTY_POSITION_Y,
+ "PushButtonType",
+ PropertyNames.PROPERTY_STEP,
+ PropertyNames.PROPERTY_TABINDEX,
+ PropertyNames.PROPERTY_WIDTH),
+ (True, iButtonHeight,
+ self.__oWizardResource.getResText(UIConsts.RID_COMMON + 15),
+ iHelpPosX, iBtnPosY,
+ uno.Any("short",HELP), iCurStep,
+ uno.Any("short",(curtabindex + 1)), iButtonWidth), self)
+ self.insertButton("btnWizardBack",
+ WizardDialog.__BACK_ACTION_PERFORMED, propNames,
+ (False, iButtonHeight, HelpIds.getHelpIdString(self.__hid + 2),
+ self.__oWizardResource.getResText(UIConsts.RID_COMMON + 13),
+ iBackPosX, iBtnPosY, uno.Any("short",STANDARD), iCurStep,
+ uno.Any("short",(curtabindex + 1)), iButtonWidth), self)
+ self.insertButton("btnWizardNext",
+ WizardDialog.__NEXT_ACTION_PERFORMED, propNames,
+ (True, iButtonHeight, HelpIds.getHelpIdString(self.__hid + 3),
+ self.__oWizardResource.getResText(UIConsts.RID_COMMON + 14),
+ iNextPosX, iBtnPosY, uno.Any("short",STANDARD), iCurStep,
+ uno.Any("short",(curtabindex + 1)), iButtonWidth), self)
+ self.insertButton("btnWizardFinish",
+ WizardDialog.__FINISH_ACTION_PERFORMED, propNames,
+ (True, iButtonHeight, HelpIds.getHelpIdString(self.__hid + 4),
+ self.__oWizardResource.getResText(UIConsts.RID_COMMON + 12),
+ iFinishPosX, iBtnPosY, uno.Any("short",STANDARD),
+ iCurStep,
+ uno.Any("short",(curtabindex + 1)),
+ iButtonWidth), self)
+ self.insertButton("btnWizardCancel",
+ WizardDialog.__CANCEL_ACTION_PERFORMED, propNames,
+ (True, iButtonHeight, HelpIds.getHelpIdString(self.__hid + 5),
+ self.__oWizardResource.getResText(UIConsts.RID_COMMON + 11),
+ iCancelPosX, iBtnPosY, uno.Any("short",STANDARD), iCurStep,
+ uno.Any("short",(curtabindex + 1)),
+ iButtonWidth), self)
+ self.setControlProperty("btnWizardNext", "DefaultButton", True)
+ except Exception, exception:
+ traceback.print_exc()
+
+ def insertRoadMapItems(self, items, steps, enabled):
+ i = 0
+ while i < items.length:
+ insertRoadmapItem(i, enabled(i), items(i), steps(i))
+ i += 1
+
+ def setStepEnabled(self, _nStep, bEnabled, enableNextButton):
+ setStepEnabled(_nStep, bEnabled)
+ if self.getNextAvailableStep() > 0:
+ self.enableNextButton(bEnabled)
+
+ def enableNavigationButtons(
+ self, _bEnableBack, _bEnableNext, _bEnableFinish):
+ self.enableBackButton(_bEnableBack)
+ self.enableNextButton(_bEnableNext)
+ self.enableFinishButton(_bEnableFinish)
+
+ def enableBackButton(self, enabled):
+ self.setControlProperty("btnWizardBack",
+ PropertyNames.PROPERTY_ENABLED, enabled)
+
+ def enableNextButton(self, enabled):
+ self.setControlProperty("btnWizardNext",
+ PropertyNames.PROPERTY_ENABLED, enabled)
+
+ def enableFinishButton(self, enabled):
+ self.setControlProperty("btnWizardFinish",
+ PropertyNames.PROPERTY_ENABLED, enabled)
+
+ def setStepEnabled(self, _nStep, bEnabled):
+ xRoadmapItem = getRoadmapItemByID(_nStep)
+ if xRoadmapItem != None:
+ Helper.setUnoPropertyValue(xRoadmapItem,
+ PropertyNames.PROPERTY_ENABLED, bEnabled)
+
+ def enablefromStep(self, _iStep, _bDoEnable):
+ if _iStep <= self.nMaxStep:
+ i = _iStep
+ while i <= self.nMaxStep:
+ setStepEnabled(i, _bDoEnable)
+ i += 1
+ enableFinishButton(_bDoEnable)
+ if not _bDoEnable:
+ enableNextButton(_iStep > getCurrentStep() + 1)
+ else:
+ enableNextButton(not (getCurrentStep() == self.nMaxStep))
+
+ def isStepEnabled(self, _nStep):
+ try:
+ xRoadmapItem = self.getRoadmapItemByID(_nStep)
+ # Todo: In this case an exception should be thrown
+ if (xRoadmapItem == None):
+ return False
+ bIsEnabled = bool(Helper.getUnoPropertyValue(xRoadmapItem,
+ PropertyNames.PROPERTY_ENABLED))
+ return bIsEnabled
+ except Exception, exception:
+ traceback.print_exc()
+ return False
+
+ def gotoPreviousAvailableStep(self):
+ try:
+ if self.nNewStep > 1:
+ self.nOldStep = self.nNewStep
+ self.nNewStep -= 1
+ while self.nNewStep > 0:
+ bIsEnabled = self.isStepEnabled(self.nNewStep)
+ if bIsEnabled:
+ break;
+
+ self.nNewStep -= 1
+ if (self.nNewStep == 0):
+ self.nNewStep = self.nOldStep
+ self.switchToStep()
+ except Exception, e:
+ traceback.print_exc()
+
+ #TODO discuss with rp
+
+ def getNextAvailableStep(self):
+ if self.isRoadmapComplete():
+ i = self.nNewStep + 1
+ while i <= self.nMaxStep:
+ if self.isStepEnabled(i):
+ return i
+
+ i += 1
+
+ return -1
+
+ def gotoNextAvailableStep(self):
+ try:
+ self.nOldStep = self.nNewStep
+ self.nNewStep = self.getNextAvailableStep()
+ if self.nNewStep > -1:
+ self.switchToStep()
+ except Exception, e:
+ traceback.print_exc()
+
+ @abstractmethod
+ def finishWizard(self):
+ pass
+
+ def finishWizard_1(self):
+ '''This function will call
+ if the finish button is pressed on the UI'''
+ try:
+ self.enableFinishButton(False)
+ success = False
+ try:
+ success = self.finishWizard()
+ finally:
+ if not success:
+ self.enableFinishButton(True)
+
+ if success:
+ self.removeTerminateListener()
+ except Exception, e:
+ traceback.print_exc()
+
+ def getMaximalStep(self):
+ return self.nMaxStep
+
+ def getCurrentStep(self):
+ try:
+ return int(Helper.getUnoPropertyValue(self.xDialogModel,
+ PropertyNames.PROPERTY_STEP))
+ except Exception, exception:
+ traceback.print_exc()
+ return -1
+
+ def setCurrentStep(self, _nNewstep):
+ self.nNewStep = _nNewstep
+ changeToStep(self.nNewStep)
+
+ def setRightPaneHeaders(self, _oResource, StartResID, _nMaxStep):
+ self.sRightPaneHeaders = _oResource.getResArray(StartResID, _nMaxStep)
+ setRightPaneHeaders(self.sRightPaneHeaders)
+
+ def setRightPaneHeaders(self, _sRightPaneHeaders):
+ self.nMaxStep = _sRightPaneHeaders.length
+ self.sRightPaneHeaders = _sRightPaneHeaders
+ oFontDesc = FontDescriptor.FontDescriptor()
+ oFontDesc.Weight = com.sun.star.awt.FontWeight.BOLD
+ i = 0
+ while i < self.sRightPaneHeaders.length:
+ insertLabel("lblQueryTitle" + String.valueOf(i),("FontDescriptor",
+ PropertyNames.PROPERTY_HEIGHT,
+ PropertyNames.PROPERTY_LABEL,
+ PropertyNames.PROPERTY_MULTILINE,
+ PropertyNames.PROPERTY_POSITION_X,
+ PropertyNames.PROPERTY_POSITION_Y,
+ PropertyNames.PROPERTY_STEP,
+ PropertyNames.PROPERTY_TABINDEX,
+ PropertyNames.PROPERTY_WIDTH),(
+ oFontDesc, 16, self.sRightPaneHeaders(i),
+ True, 91, 8, i + 1, 12, 212))
+ i += 1
+
+ def cancelWizard(self):
+ #can be overwritten by extending class
+ xDialog.endExecute()
+
+ def removeTerminateListener(self):
+ if self.__bTerminateListenermustberemoved:
+ Desktop.getDesktop(self.xMSF).removeTerminateListener( \
+ TerminateListenerProcAdapter(self))
+ self.__bTerminateListenermustberemoved = False
+
+ '''
+ called by the cancel button and
+ by the window hidden event.
+ if this method was not called before,
+ perform a cancel.
+ '''
+
+ def cancelWizard_1(self):
+ try:
+ self.cancelWizard()
+ self.removeTerminateListener()
+ except Exception,e:
+ traceback.print_exc()
+
+ def queryTermination(self):
+ self.activate()
+ raise TerminationVetoException()
diff --git a/wizards/com/sun/star/wizards/ui/XPathSelectionListener.py b/wizards/com/sun/star/wizards/ui/XPathSelectionListener.py
new file mode 100644
index 000000000000..1f065209d2ea
--- /dev/null
+++ b/wizards/com/sun/star/wizards/ui/XPathSelectionListener.py
@@ -0,0 +1,7 @@
+from abc import ABCMeta, abstractmethod
+
+class XPathSelectionListener(object):
+
+ @abstractmethod
+ def validatePath(self):
+ pass
diff --git a/wizards/com/sun/star/wizards/ui/__init__.py b/wizards/com/sun/star/wizards/ui/__init__.py
new file mode 100644
index 000000000000..51429ce86cfb
--- /dev/null
+++ b/wizards/com/sun/star/wizards/ui/__init__.py
@@ -0,0 +1 @@
+"""UI"""
diff --git a/wizards/com/sun/star/wizards/ui/event/CommonListener.py b/wizards/com/sun/star/wizards/ui/event/CommonListener.py
new file mode 100644
index 000000000000..3bd4862402ec
--- /dev/null
+++ b/wizards/com/sun/star/wizards/ui/event/CommonListener.py
@@ -0,0 +1,85 @@
+#**********************************************************************
+#
+# Danny.OOo.Listeners.ListenerProcAdapters.py
+#
+# A module to easily work with OpenOffice.org.
+#
+#**********************************************************************
+# Copyright (c) 2003-2004 Danny Brewer
+# d29583@groovegarden.com
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU Lesser General Public
+# License as published by the Free Software Foundation; either
+# version 2.1 of the License, or (at your option) any later version.
+#
+# This library 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 for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this library; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+#
+# See: http://www.gnu.org/licenses/lgpl.html
+#
+#**********************************************************************
+# If you make changes, please append to the change log below.
+#
+# Change Log
+# Danny Brewer Revised 2004-06-05-01
+#
+#**********************************************************************
+
+# OOo's libraries
+import unohelper
+
+from com.sun.star.awt import XActionListener
+class ActionListenerProcAdapter( unohelper.Base, XActionListener ):
+ def __init__( self, oProcToCall, tParams=() ):
+ self.oProcToCall = oProcToCall # a python procedure
+ self.tParams = tParams # a tuple
+
+
+ # oActionEvent is a com.sun.star.awt.ActionEvent struct.
+ def actionPerformed( self, oActionEvent ):
+ if callable( self.oProcToCall ):
+ apply( self.oProcToCall )
+
+from com.sun.star.awt import XItemListener
+class ItemListenerProcAdapter( unohelper.Base, XItemListener ):
+ def __init__( self, oProcToCall, tParams=() ):
+ self.oProcToCall = oProcToCall # a python procedure
+ self.tParams = tParams # a tuple
+
+ # oItemEvent is a com.sun.star.awt.ItemEvent struct.
+ def itemStateChanged( self, oItemEvent ):
+ if callable( self.oProcToCall ):
+ try:
+ apply( self.oProcToCall)
+ except:
+ apply( self.oProcToCall, (oItemEvent,) + self.tParams )
+
+from com.sun.star.awt import XTextListener
+class TextListenerProcAdapter( unohelper.Base, XTextListener ):
+ def __init__( self, oProcToCall, tParams=() ):
+ self.oProcToCall = oProcToCall # a python procedure
+ self.tParams = tParams # a tuple
+
+ # oTextEvent is a com.sun.star.awt.TextEvent struct.
+ def textChanged( self, oTextEvent ):
+ if callable( self.oProcToCall ):
+ apply( self.oProcToCall )
+
+from com.sun.star.frame import XTerminateListener
+class TerminateListenerProcAdapter( unohelper.Base, XTerminateListener ):
+ def __init__( self, oProcToCall, tParams=() ):
+ self.oProcToCall = oProcToCall # a python procedure
+ self.tParams = tParams # a tuple
+
+ # oTextEvent is a com.sun.star.awt.TextEvent struct.
+ def queryTermination(self, TerminateEvent):
+ self.oProcToCall = getattr(self.oProcToCall,"queryTermination")
+ if callable( self.oProcToCall ):
+ apply( self.oProcToCall )
diff --git a/wizards/com/sun/star/wizards/ui/event/DataAware.py b/wizards/com/sun/star/wizards/ui/event/DataAware.py
new file mode 100644
index 000000000000..c2771d5a47c1
--- /dev/null
+++ b/wizards/com/sun/star/wizards/ui/event/DataAware.py
@@ -0,0 +1,127 @@
+from common.PropertyNames import *
+from abc import ABCMeta, abstractmethod
+import traceback
+from ui.event.CommonListener import *
+
+'''
+@author rpiterman
+DataAware objects are used to live-synchronize UI and DataModel/DataObject.
+It is used as listener on UI events, to keep the DataObject up to date.
+This class, as a base abstract class, sets a frame of functionality,
+delegating the data Object get/set methods to a Value object,
+and leaving the UI get/set methods abstract.
+Note that event listenning is *not* a part of this model.
+the updateData() or updateUI() methods should be porogramatically called.
+in child classes, the updateData() will be binded to UI event calls.
+<br><br>
+This class holds references to a Data Object and a Value object.
+The Value object "knows" how to get and set a value from the
+Data Object.
+'''
+
+class DataAware(object):
+ __metaclass__ = ABCMeta
+
+ '''
+ creates a DataAware object for the given data object and Value object.
+ @param dataObject_
+ @param value_
+ '''
+
+ def __init__(self, dataObject_, field_):
+ self._dataObject = dataObject_
+ self._field = field_
+
+ '''
+ sets the given value to the UI control
+ @param newValue the value to set to the ui control.
+ '''
+ @abstractmethod
+ def setToUI (self,newValue):
+ pass
+
+ '''
+ gets the current value from the UI control.
+ @return the current value from the UI control.
+ '''
+
+ @abstractmethod
+ def getFromUI (self):
+ pass
+
+ '''
+ updates the UI control according to the
+ current state of the data object.
+ '''
+
+ def updateUI(self):
+ data = getattr(self._dataObject, self._field)
+ ui = self.getFromUI()
+ if data is not ui:
+ try:
+ self.setToUI(data)
+ except Exception, ex:
+ traceback.print_exc()
+ #TODO tell user...
+
+ '''
+ updates the DataObject according to
+ the current state of the UI control.
+ '''
+
+ def updateData(self):
+ try:
+ data = getattr(self._dataObject, self._field)
+ ui = self.getFromUI()
+ if data is not ui:
+ if isinstance(ui,tuple):
+ #Selected Element listbox
+ ui = ui[0]
+ setattr(self._dataObject, self._field, ui)
+ except Exception:
+ traceback.print_exc()
+
+ '''
+ given a collection containing DataAware objects,
+ calls updateUI() on each memebr of the collection.
+ @param dataAwares a collection containing DataAware objects.
+ '''
+ @classmethod
+ def updateUIs(self, dataAwares):
+ for i in dataAwares:
+ i.updateUI()
+
+ '''
+ Given a collection containing DataAware objects,
+ sets the given DataObject to each DataAware object
+ in the given collection
+ @param dataAwares a collection of DataAware objects.
+ @param dataObject new data object to set to the DataAware
+ objects in the given collection.
+ @param updateUI if true, calls updateUI() on each DataAware object.
+ '''
+
+ def setDataObject(self, dataObject, updateUI):
+ if dataObject is not None:
+ if not (type(self._field) is not
+ type(dataObject)):
+ raise ClassCastException (
+ "can not cast new DataObject to original Class")
+ self._dataObject = dataObject
+ if updateUI:
+ self.updateUI()
+
+ '''
+ Given a collection containing DataAware objects,
+ sets the given DataObject to each DataAware object
+ in the given collection
+ @param dataAwares a collection of DataAware objects.
+ @param dataObject new data object to set to the DataAware objects
+ in the given collection.
+ @param updateUI if true, calls updateUI() on each DataAware object.
+ '''
+
+ @classmethod
+ def setDataObjects(self, dataAwares, dataObject, updateUI):
+ for i in dataAwares:
+ i.setDataObject(dataObject, updateUI)
diff --git a/wizards/com/sun/star/wizards/ui/event/RadioDataAware.py b/wizards/com/sun/star/wizards/ui/event/RadioDataAware.py
new file mode 100644
index 000000000000..41ce307a0c15
--- /dev/null
+++ b/wizards/com/sun/star/wizards/ui/event/RadioDataAware.py
@@ -0,0 +1,39 @@
+from DataAware import *
+from UnoDataAware import *
+import time
+'''
+@author rpiterman
+To change the template for this generated type comment go to
+Window>Preferences>Java>Code Generation>Code and Comments
+'''
+
+class RadioDataAware(DataAware):
+
+ def __init__(self, data, value, radioButtons):
+ super(RadioDataAware,self).__init__(data, value)
+ self.radioButtons = radioButtons
+
+ def setToUI(self, value):
+ selected = int(value)
+ if selected == -1:
+ i = 0
+ while i < self.radioButtons.length:
+ self.radioButtons[i].State = False
+ i += 1
+ else:
+ self.radioButtons[selected].State = True
+
+ def getFromUI(self):
+ for i in xrange(len(self.radioButtons)):
+ if self.radioButtons[i].State:
+ return i
+
+ return -1
+
+ @classmethod
+ def attachRadioButtons(self, data, prop, buttons, field):
+ da = RadioDataAware(data, prop, buttons)
+ method = getattr(da,"updateData")
+ for i in da.radioButtons:
+ i.addItemListener(ItemListenerProcAdapter(method))
+ return da
diff --git a/wizards/com/sun/star/wizards/ui/event/UnoDataAware.py b/wizards/com/sun/star/wizards/ui/event/UnoDataAware.py
new file mode 100644
index 000000000000..7c3436caa59c
--- /dev/null
+++ b/wizards/com/sun/star/wizards/ui/event/UnoDataAware.py
@@ -0,0 +1,74 @@
+from DataAware import *
+from common.Helper import *
+
+'''
+@author rpiterman
+This class suppoprts imple cases where a UI control can
+be directly synchronized with a data property.
+Such controls are: the different text controls
+(synchronizing the "Text" , "Value", "Date", "Time" property),
+Checkbox controls, Dropdown listbox controls (synchronizing the
+SelectedItems[] property.
+For those controls, static convenience methods are offered, to simplify use.
+'''
+
+class UnoDataAware(DataAware):
+
+ def __init__(self, dataObject, field, unoObject_, unoPropName_, isShort=False):
+ super(UnoDataAware,self).__init__(dataObject, field)
+ self.unoControl = unoObject_
+ self.unoModel = self.unoControl.Model
+ self.unoPropName = unoPropName_
+ self.isShort = isShort
+
+ def setToUI(self, value):
+ if self.isShort:
+ value = uno.Any("[]short", (value,))
+ Helper.setUnoPropertyValue(self.unoModel, self.unoPropName, value)
+
+ def getFromUI(self):
+ return Helper.getUnoPropertyValue(self.unoModel, self.unoPropName)
+
+ @classmethod
+ def __attachTextControl(
+ self, data, prop, unoText, unoProperty, field, value):
+ uda = UnoDataAware(data, prop, unoText, unoProperty)
+ method = getattr(uda,"updateData")
+ unoText.addTextListener(TextListenerProcAdapter(method))
+ return uda
+
+ @classmethod
+ def attachEditControl(self, data, prop, unoControl, field):
+ return self.__attachTextControl(
+ data, prop, unoControl, "Text", field, "")
+
+ @classmethod
+ def attachDateControl(self, data, prop, unoControl, field):
+ return self.__attachTextControl(
+ data, prop, unoControl, "Date", field, 0)
+
+ def attachTimeControl(self, data, prop, unoControl, field):
+ return self.__attachTextControl(
+ data, prop, unoControl, "Time", field, 0)
+
+ @classmethod
+ def attachNumericControl(self, data, prop, unoControl, field):
+ return self.__attachTextControl(
+ data, prop, unoControl, "Value", field, float(0))
+
+ @classmethod
+ def attachCheckBox(self, data, prop, checkBox, field):
+ uda = UnoDataAware(data, prop, checkBox, PropertyNames.PROPERTY_STATE)
+ method = getattr(uda,"updateData")
+ checkBox.addItemListener(ItemListenerProcAdapter(method))
+ return uda
+
+ def attachLabel(self, data, prop, label, field):
+ return UnoDataAware(data, prop, label, PropertyNames.PROPERTY_LABEL)
+
+ @classmethod
+ def attachListBox(self, data, prop, listBox, field):
+ uda = UnoDataAware(data, prop, listBox, "SelectedItems", True)
+ method = getattr(uda,"updateData")
+ listBox.addItemListener(ItemListenerProcAdapter(method))
+ return uda
diff --git a/wizards/com/sun/star/wizards/ui/event/__init__.py b/wizards/com/sun/star/wizards/ui/event/__init__.py
new file mode 100644
index 000000000000..e69de29bb2d1
--- /dev/null
+++ b/wizards/com/sun/star/wizards/ui/event/__init__.py