| /************************************************************** |
| * |
| * Licensed to the Apache Software Foundation (ASF) under one |
| * or more contributor license agreements. See the NOTICE file |
| * distributed with this work for additional information |
| * regarding copyright ownership. The ASF licenses this file |
| * to you under the Apache License, Version 2.0 (the |
| * "License"); you may not use this file except in compliance |
| * with the License. You may obtain a copy of the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, |
| * software distributed under the License is distributed on an |
| * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY |
| * KIND, either express or implied. See the License for the |
| * specific language governing permissions and limitations |
| * under the License. |
| * |
| *************************************************************/ |
| |
| |
| |
| // MARKER(update_precomp.py): autogen include statement, do not remove |
| #include "precompiled_unotools.hxx" |
| |
| #include <unotools/useroptions.hxx> |
| #include <unotools/useroptions_const.hxx> |
| |
| #include <unotools/configmgr.hxx> |
| #include <tools/debug.hxx> |
| #include <com/sun/star/uno/Any.hxx> |
| #include <com/sun/star/uno/Sequence.hxx> |
| #include <vos/mutex.hxx> |
| #include <rtl/instance.hxx> |
| #include <rtl/logfile.hxx> |
| #include "itemholder1.hxx" |
| |
| #include <com/sun/star/beans/Property.hpp> |
| #include <com/sun/star/beans/XPropertySet.hpp> |
| #include <com/sun/star/beans/PropertyAttribute.hpp> |
| #include <com/sun/star/container/XNameAccess.hpp> |
| #include <com/sun/star/container/XNameContainer.hpp> |
| #include <com/sun/star/lang/XSingleServiceFactory.hpp> |
| #include <com/sun/star/util/XChangesListener.hpp> |
| #include <com/sun/star/util/XChangesNotifier.hpp> |
| #include <com/sun/star/util/ChangesEvent.hpp> |
| #include <comphelper/configurationhelper.hxx> |
| #include <unotools/processfactory.hxx> |
| #include <unotools/loghelper.hxx> |
| |
| using namespace utl; |
| using namespace rtl; |
| using namespace com::sun::star; |
| using namespace com::sun::star::uno; |
| |
| namespace css = ::com::sun::star; |
| |
| // class SvtUserOptions_Impl --------------------------------------------- |
| class SvtUserOptions_Impl; |
| class SvtUserConfigChangeListener_Impl : public cppu::WeakImplHelper1 |
| < |
| com::sun::star::util::XChangesListener |
| > |
| { |
| SvtUserOptions_Impl& m_rParent; |
| public: |
| SvtUserConfigChangeListener_Impl(SvtUserOptions_Impl& rParent); |
| ~SvtUserConfigChangeListener_Impl(); |
| |
| //XChangesListener |
| virtual void SAL_CALL changesOccurred( const util::ChangesEvent& Event ) throw(RuntimeException); |
| //XEventListener |
| virtual void SAL_CALL disposing( const lang::EventObject& Source ) throw(RuntimeException); |
| }; |
| |
| class SvtUserOptions_Impl : public utl::ConfigurationBroadcaster |
| { |
| public: |
| SvtUserOptions_Impl(); |
| ~SvtUserOptions_Impl(); |
| |
| // get the user token |
| ::rtl::OUString GetCompany() const; |
| ::rtl::OUString GetFirstName() const; |
| ::rtl::OUString GetLastName() const; |
| ::rtl::OUString GetID() const; |
| ::rtl::OUString GetStreet() const; |
| ::rtl::OUString GetCity() const; |
| ::rtl::OUString GetState() const; |
| ::rtl::OUString GetZip() const; |
| ::rtl::OUString GetCountry() const; |
| ::rtl::OUString GetPosition() const; |
| ::rtl::OUString GetTitle() const; |
| ::rtl::OUString GetTelephoneHome() const; |
| ::rtl::OUString GetTelephoneWork() const; |
| ::rtl::OUString GetFax() const; |
| ::rtl::OUString GetEmail() const; |
| ::rtl::OUString GetCustomerNumber() const; |
| ::rtl::OUString GetFathersName() const; |
| ::rtl::OUString GetApartment() const; |
| |
| ::rtl::OUString GetFullName() const; |
| ::rtl::OUString GetLocale() const { return m_aLocale; } |
| |
| // set the address token |
| void SetCompany( const ::rtl::OUString& rNewToken ); |
| void SetFirstName( const ::rtl::OUString& rNewToken ); |
| void SetLastName( const ::rtl::OUString& rNewToken ); |
| void SetID( const ::rtl::OUString& rNewToken ); |
| void SetStreet( const ::rtl::OUString& rNewToken ); |
| void SetCity( const ::rtl::OUString& rNewToken ); |
| void SetState( const ::rtl::OUString& rNewToken ); |
| void SetZip( const ::rtl::OUString& rNewToken ); |
| void SetCountry( const ::rtl::OUString& rNewToken ); |
| void SetPosition( const ::rtl::OUString& rNewToken ); |
| void SetTitle( const ::rtl::OUString& rNewToken ); |
| void SetTelephoneHome( const ::rtl::OUString& rNewToken ); |
| void SetTelephoneWork( const ::rtl::OUString& rNewToken ); |
| void SetFax( const ::rtl::OUString& rNewToken ); |
| void SetEmail( const ::rtl::OUString& rNewToken ); |
| void SetCustomerNumber( const ::rtl::OUString& rNewToken ); |
| void SetFathersName( const ::rtl::OUString& rNewToken ); |
| void SetApartment( const ::rtl::OUString& rNewToken ); |
| |
| sal_Bool IsTokenReadonly( sal_uInt16 nToken ) const; |
| ::rtl::OUString GetToken(sal_uInt16 nToken) const; |
| void Notify(); |
| |
| private: |
| uno::Reference< util::XChangesListener > m_xChangeListener; |
| css::uno::Reference< css::container::XNameAccess > m_xCfg; |
| css::uno::Reference< css::beans::XPropertySet > m_xData; |
| ::rtl::OUString m_aLocale; |
| }; |
| |
| // global ---------------------------------------------------------------- |
| |
| static SvtUserOptions_Impl* pOptions = NULL; |
| static sal_Int32 nRefCount = 0; |
| |
| #define READONLY_DEFAULT sal_False |
| |
| /*-- 16.06.2009 14:22:56--------------------------------------------------- |
| |
| -----------------------------------------------------------------------*/ |
| SvtUserConfigChangeListener_Impl::SvtUserConfigChangeListener_Impl(SvtUserOptions_Impl& rParent) : |
| m_rParent( rParent ) |
| { |
| } |
| /*-- 16.06.2009 14:22:56--------------------------------------------------- |
| |
| -----------------------------------------------------------------------*/ |
| SvtUserConfigChangeListener_Impl::~SvtUserConfigChangeListener_Impl() |
| { |
| } |
| /*-- 16.06.2009 14:22:56--------------------------------------------------- |
| |
| -----------------------------------------------------------------------*/ |
| void SvtUserConfigChangeListener_Impl::changesOccurred( const util::ChangesEvent& rEvent ) throw(RuntimeException) |
| { |
| if(rEvent.Changes.getLength()) |
| m_rParent.Notify(); |
| } |
| /*-- 16.06.2009 14:22:56--------------------------------------------------- |
| |
| -----------------------------------------------------------------------*/ |
| void SvtUserConfigChangeListener_Impl::disposing( const lang::EventObject& rSource ) throw(RuntimeException) |
| { |
| try |
| { |
| uno::Reference< util::XChangesNotifier > xChgNot( rSource.Source, UNO_QUERY_THROW); |
| xChgNot->removeChangesListener(this); |
| } |
| catch(Exception& ) |
| { |
| } |
| } |
| |
| // class SvtUserOptions_Impl --------------------------------------------- |
| |
| // ----------------------------------------------------------------------- |
| SvtUserOptions_Impl::SvtUserOptions_Impl() : |
| m_xChangeListener( new SvtUserConfigChangeListener_Impl(*this) ) |
| { |
| try |
| { |
| m_xCfg = Reference< css::container::XNameAccess > ( |
| ::comphelper::ConfigurationHelper::openConfig( |
| utl::getProcessServiceFactory(), |
| s_sData, |
| ::comphelper::ConfigurationHelper::E_STANDARD), |
| css::uno::UNO_QUERY ); |
| |
| m_xData = css::uno::Reference< css::beans::XPropertySet >(m_xCfg, css::uno::UNO_QUERY); |
| uno::Reference< util::XChangesNotifier > xChgNot( m_xCfg, UNO_QUERY); |
| try |
| { |
| xChgNot->addChangesListener( m_xChangeListener ); |
| } |
| catch(RuntimeException& ) |
| { |
| } |
| } |
| catch(const css::uno::Exception& ex) |
| { |
| m_xCfg.clear(); |
| LogHelper::logIt(ex); |
| } |
| |
| Any aAny = ConfigManager::GetConfigManager()->GetDirectConfigProperty( ConfigManager::LOCALE ); |
| ::rtl::OUString aLocale; |
| if ( aAny >>= aLocale ) |
| m_aLocale = aLocale; |
| else |
| { |
| DBG_ERRORFILE( "SvtUserOptions_Impl::SvtUserOptions_Impl(): no locale found" ); |
| } |
| } |
| |
| // ----------------------------------------------------------------------- |
| |
| SvtUserOptions_Impl::~SvtUserOptions_Impl() |
| { |
| } |
| |
| ::rtl::OUString SvtUserOptions_Impl::GetCompany() const |
| { |
| ::rtl::OUString sCompany; |
| |
| try |
| { |
| m_xData->getPropertyValue(s_so) >>= sCompany; |
| } |
| catch ( const css::uno::Exception& ex ) |
| { |
| LogHelper::logIt(ex); |
| } |
| |
| return sCompany; |
| } |
| |
| ::rtl::OUString SvtUserOptions_Impl::GetFirstName() const |
| { |
| ::rtl::OUString sFirstName; |
| |
| try |
| { |
| m_xData->getPropertyValue(s_sgivenname) >>= sFirstName; |
| } |
| catch ( const css::uno::Exception& ex ) |
| { |
| LogHelper::logIt(ex); |
| } |
| |
| return sFirstName; |
| } |
| |
| ::rtl::OUString SvtUserOptions_Impl::GetLastName() const |
| { |
| ::rtl::OUString sLastName; |
| |
| try |
| { |
| m_xData->getPropertyValue(s_ssn) >>= sLastName; |
| } |
| catch ( const css::uno::Exception& ex ) |
| { |
| LogHelper::logIt(ex); |
| } |
| |
| return sLastName; |
| } |
| |
| ::rtl::OUString SvtUserOptions_Impl::GetID() const |
| { |
| ::rtl::OUString sID; |
| |
| try |
| { |
| m_xData->getPropertyValue(s_sinitials) >>= sID; |
| } |
| catch ( const css::uno::Exception& ex ) |
| { |
| LogHelper::logIt(ex); |
| } |
| |
| return sID; |
| } |
| |
| ::rtl::OUString SvtUserOptions_Impl::GetStreet() const |
| { |
| ::rtl::OUString sStreet; |
| |
| try |
| { |
| m_xData->getPropertyValue(s_sstreet) >>= sStreet; |
| } |
| catch ( const css::uno::Exception& ex ) |
| { |
| LogHelper::logIt(ex); |
| } |
| |
| return sStreet; |
| } |
| |
| ::rtl::OUString SvtUserOptions_Impl::GetCity() const |
| { |
| ::rtl::OUString sCity; |
| |
| try |
| { |
| m_xData->getPropertyValue(s_sl) >>= sCity; |
| } |
| catch ( const css::uno::Exception& ex ) |
| { |
| LogHelper::logIt(ex); |
| } |
| |
| return sCity; |
| } |
| |
| ::rtl::OUString SvtUserOptions_Impl::GetState() const |
| { |
| ::rtl::OUString sState; |
| |
| try |
| { |
| m_xData->getPropertyValue(s_sst) >>= sState; |
| } |
| catch ( const css::uno::Exception& ex ) |
| { |
| LogHelper::logIt(ex); |
| } |
| |
| return sState; |
| } |
| |
| ::rtl::OUString SvtUserOptions_Impl::GetZip() const |
| { |
| ::rtl::OUString sZip; |
| |
| try |
| { |
| m_xData->getPropertyValue(s_spostalcode) >>= sZip; |
| } |
| catch ( const css::uno::Exception& ex ) |
| { |
| LogHelper::logIt(ex); |
| } |
| |
| return sZip; |
| } |
| |
| ::rtl::OUString SvtUserOptions_Impl::GetCountry() const |
| { |
| ::rtl::OUString sCountry; |
| |
| try |
| { |
| m_xData->getPropertyValue(s_sc) >>= sCountry; |
| } |
| catch ( const css::uno::Exception& ex ) |
| { |
| LogHelper::logIt(ex); |
| } |
| |
| return sCountry; |
| } |
| |
| ::rtl::OUString SvtUserOptions_Impl::GetPosition() const |
| { |
| ::rtl::OUString sPosition; |
| |
| try |
| { |
| m_xData->getPropertyValue(s_sposition) >>= sPosition; |
| } |
| catch ( const css::uno::Exception& ex ) |
| { |
| LogHelper::logIt(ex); |
| } |
| |
| return sPosition; |
| } |
| |
| ::rtl::OUString SvtUserOptions_Impl::GetTitle() const |
| { |
| ::rtl::OUString sTitle; |
| |
| try |
| { |
| m_xData->getPropertyValue(s_stitle) >>= sTitle; |
| } |
| catch ( const css::uno::Exception& ex ) |
| { |
| LogHelper::logIt(ex); |
| } |
| |
| return sTitle; |
| } |
| |
| ::rtl::OUString SvtUserOptions_Impl::GetTelephoneHome() const |
| { |
| ::rtl::OUString sTelephoneHome; |
| |
| try |
| { |
| m_xData->getPropertyValue(s_shomephone) >>= sTelephoneHome; |
| } |
| catch ( const css::uno::Exception& ex ) |
| { |
| LogHelper::logIt(ex); |
| } |
| |
| return sTelephoneHome; |
| } |
| |
| ::rtl::OUString SvtUserOptions_Impl::GetTelephoneWork() const |
| { |
| ::rtl::OUString sTelephoneWork; |
| |
| try |
| { |
| m_xData->getPropertyValue(s_stelephonenumber) >>= sTelephoneWork; |
| } |
| catch ( const css::uno::Exception& ex ) |
| { |
| LogHelper::logIt(ex); |
| } |
| |
| return sTelephoneWork; |
| } |
| |
| ::rtl::OUString SvtUserOptions_Impl::GetFax() const |
| { |
| ::rtl::OUString sFax; |
| |
| try |
| { |
| m_xData->getPropertyValue(s_sfacsimiletelephonenumber) >>= sFax; |
| } |
| catch ( const css::uno::Exception& ex ) |
| { |
| LogHelper::logIt(ex); |
| } |
| |
| return sFax; |
| } |
| |
| ::rtl::OUString SvtUserOptions_Impl::GetEmail() const |
| { |
| ::rtl::OUString sEmail; |
| |
| try |
| { |
| m_xData->getPropertyValue(s_smail) >>= sEmail; |
| } |
| catch ( const css::uno::Exception& ex ) |
| { |
| LogHelper::logIt(ex); |
| } |
| |
| return sEmail; |
| } |
| |
| ::rtl::OUString SvtUserOptions_Impl::GetCustomerNumber() const |
| { |
| ::rtl::OUString sCustomerNumber; |
| |
| try |
| { |
| m_xData->getPropertyValue(s_scustomernumber) >>= sCustomerNumber; |
| } |
| catch ( const css::uno::Exception& ex ) |
| { |
| LogHelper::logIt(ex); |
| } |
| |
| return sCustomerNumber; |
| } |
| |
| ::rtl::OUString SvtUserOptions_Impl::GetFathersName() const |
| { |
| ::rtl::OUString sFathersName; |
| |
| try |
| { |
| m_xData->getPropertyValue(s_sfathersname) >>= sFathersName; |
| } |
| catch ( const css::uno::Exception& ex ) |
| { |
| LogHelper::logIt(ex); |
| } |
| |
| return sFathersName; |
| } |
| |
| ::rtl::OUString SvtUserOptions_Impl::GetApartment() const |
| { |
| ::rtl::OUString sApartment; |
| |
| try |
| { |
| m_xData->getPropertyValue(s_sapartment) >>= sApartment; |
| } |
| catch ( const css::uno::Exception& ex ) |
| { |
| LogHelper::logIt(ex); |
| } |
| |
| return sApartment; |
| } |
| |
| void SvtUserOptions_Impl::SetCompany( const ::rtl::OUString& sCompany ) |
| { |
| try |
| { |
| m_xData->setPropertyValue(s_so, css::uno::makeAny(::rtl::OUString(sCompany))); |
| ::comphelper::ConfigurationHelper::flush(m_xCfg); |
| } |
| catch ( const css::uno::Exception& ex) |
| { |
| LogHelper::logIt(ex); |
| } |
| } |
| |
| void SvtUserOptions_Impl::SetFirstName( const ::rtl::OUString& sFirstName ) |
| { |
| try |
| { |
| m_xData->setPropertyValue(s_sgivenname, css::uno::makeAny(::rtl::OUString(sFirstName))); |
| ::comphelper::ConfigurationHelper::flush(m_xCfg); |
| } |
| catch ( const css::uno::Exception& ex) |
| { |
| LogHelper::logIt(ex); |
| } |
| } |
| |
| void SvtUserOptions_Impl::SetLastName( const ::rtl::OUString& sLastName ) |
| { |
| try |
| { |
| m_xData->setPropertyValue(s_ssn, css::uno::makeAny(::rtl::OUString(sLastName))); |
| ::comphelper::ConfigurationHelper::flush(m_xCfg); |
| } |
| catch ( const css::uno::Exception& ex) |
| { |
| LogHelper::logIt(ex); |
| } |
| } |
| void SvtUserOptions_Impl::SetID( const ::rtl::OUString& sID ) |
| { |
| try |
| { |
| m_xData->setPropertyValue(s_sinitials, css::uno::makeAny(::rtl::OUString(sID))); |
| ::comphelper::ConfigurationHelper::flush(m_xCfg); |
| } |
| catch ( const css::uno::Exception& ex) |
| { |
| LogHelper::logIt(ex); |
| } |
| } |
| |
| void SvtUserOptions_Impl::SetStreet( const ::rtl::OUString& sStreet ) |
| { |
| try |
| { |
| m_xData->setPropertyValue(s_sstreet, css::uno::makeAny(::rtl::OUString(sStreet))); |
| ::comphelper::ConfigurationHelper::flush(m_xCfg); |
| } |
| catch ( const css::uno::Exception& ex) |
| { |
| LogHelper::logIt(ex); |
| } |
| } |
| |
| void SvtUserOptions_Impl::SetCity( const ::rtl::OUString& sCity ) |
| { |
| try |
| { |
| m_xData->setPropertyValue(s_sl, css::uno::makeAny(::rtl::OUString(sCity))); |
| ::comphelper::ConfigurationHelper::flush(m_xCfg); |
| } |
| catch ( const css::uno::Exception& ex) |
| { |
| LogHelper::logIt(ex); |
| } |
| } |
| |
| void SvtUserOptions_Impl::SetState( const ::rtl::OUString& sState ) |
| { |
| try |
| { |
| m_xData->setPropertyValue(s_sst, css::uno::makeAny(::rtl::OUString(sState))); |
| ::comphelper::ConfigurationHelper::flush(m_xCfg); |
| } |
| catch ( const css::uno::Exception& ex) |
| { |
| LogHelper::logIt(ex); |
| } |
| } |
| |
| void SvtUserOptions_Impl::SetZip( const ::rtl::OUString& sZip ) |
| { |
| try |
| { |
| m_xData->setPropertyValue(s_spostalcode, css::uno::makeAny(::rtl::OUString(sZip))); |
| ::comphelper::ConfigurationHelper::flush(m_xCfg); |
| } |
| catch ( const css::uno::Exception& ex) |
| { |
| LogHelper::logIt(ex); |
| } |
| } |
| |
| void SvtUserOptions_Impl::SetCountry( const ::rtl::OUString& sCountry ) |
| { |
| try |
| { |
| m_xData->setPropertyValue(s_sc, css::uno::makeAny(::rtl::OUString(sCountry))); |
| ::comphelper::ConfigurationHelper::flush(m_xCfg); |
| } |
| catch ( const css::uno::Exception& ex) |
| { |
| LogHelper::logIt(ex); |
| } |
| } |
| |
| void SvtUserOptions_Impl::SetPosition( const ::rtl::OUString& sPosition ) |
| { |
| try |
| { |
| m_xData->setPropertyValue(s_sposition, css::uno::makeAny(::rtl::OUString(sPosition))); |
| ::comphelper::ConfigurationHelper::flush(m_xCfg); |
| } |
| catch ( const css::uno::Exception& ex) |
| { |
| LogHelper::logIt(ex); |
| } |
| } |
| |
| void SvtUserOptions_Impl::SetTitle( const ::rtl::OUString& sTitle ) |
| { |
| try |
| { |
| m_xData->setPropertyValue(s_stitle, css::uno::makeAny(::rtl::OUString(sTitle))); |
| ::comphelper::ConfigurationHelper::flush(m_xCfg); |
| } |
| catch ( const css::uno::Exception& ex) |
| { |
| LogHelper::logIt(ex); |
| } |
| } |
| |
| void SvtUserOptions_Impl::SetTelephoneHome( const ::rtl::OUString& sTelephoneHome ) |
| { |
| try |
| { |
| m_xData->setPropertyValue(s_shomephone, css::uno::makeAny(::rtl::OUString(sTelephoneHome))); |
| ::comphelper::ConfigurationHelper::flush(m_xCfg); |
| } |
| catch ( const css::uno::Exception& ex) |
| { |
| LogHelper::logIt(ex); |
| } |
| } |
| |
| void SvtUserOptions_Impl::SetTelephoneWork( const ::rtl::OUString& sTelephoneWork ) |
| { |
| try |
| { |
| m_xData->setPropertyValue(s_stelephonenumber, css::uno::makeAny(::rtl::OUString(sTelephoneWork))); |
| ::comphelper::ConfigurationHelper::flush(m_xCfg); |
| } |
| catch ( const css::uno::Exception& ex) |
| { |
| LogHelper::logIt(ex); |
| } |
| } |
| |
| void SvtUserOptions_Impl::SetFax( const ::rtl::OUString& sFax ) |
| { |
| try |
| { |
| m_xData->setPropertyValue(s_sfacsimiletelephonenumber, css::uno::makeAny(::rtl::OUString(sFax))); |
| ::comphelper::ConfigurationHelper::flush(m_xCfg); |
| } |
| catch ( const css::uno::Exception& ex) |
| { |
| LogHelper::logIt(ex); |
| } |
| } |
| |
| void SvtUserOptions_Impl::SetEmail( const ::rtl::OUString& sEmail ) |
| { |
| try |
| { |
| m_xData->setPropertyValue(s_smail, css::uno::makeAny(::rtl::OUString(sEmail))); |
| ::comphelper::ConfigurationHelper::flush(m_xCfg); |
| } |
| catch ( const css::uno::Exception& ex) |
| { |
| LogHelper::logIt(ex); |
| } |
| } |
| |
| void SvtUserOptions_Impl::SetCustomerNumber( const ::rtl::OUString& sCustomerNumber ) |
| { |
| try |
| { |
| m_xData->setPropertyValue(s_scustomernumber, css::uno::makeAny(::rtl::OUString(sCustomerNumber))); |
| ::comphelper::ConfigurationHelper::flush(m_xCfg); |
| } |
| catch ( const css::uno::Exception& ex) |
| { |
| LogHelper::logIt(ex); |
| } |
| } |
| |
| void SvtUserOptions_Impl::SetFathersName( const ::rtl::OUString& sFathersName ) |
| { |
| try |
| { |
| m_xData->setPropertyValue(s_sfathersname, css::uno::makeAny(::rtl::OUString(sFathersName))); |
| ::comphelper::ConfigurationHelper::flush(m_xCfg); |
| } |
| catch ( const css::uno::Exception& ex) |
| { |
| LogHelper::logIt(ex); |
| } |
| } |
| |
| void SvtUserOptions_Impl::SetApartment( const ::rtl::OUString& sApartment ) |
| { |
| try |
| { |
| m_xData->setPropertyValue(s_sapartment, css::uno::makeAny(::rtl::OUString(sApartment))); |
| ::comphelper::ConfigurationHelper::flush(m_xCfg); |
| } |
| catch ( const css::uno::Exception& ex) |
| { |
| LogHelper::logIt(ex); |
| } |
| } |
| |
| // ----------------------------------------------------------------------- |
| |
| ::rtl::OUString SvtUserOptions_Impl::GetFullName() const |
| { |
| ::rtl::OUString sFullName; |
| |
| sFullName = GetFirstName(); |
| sFullName.trim(); |
| if ( sFullName.getLength() ) |
| sFullName += ::rtl::OUString::createFromAscii(" "); |
| sFullName += GetLastName(); |
| sFullName.trim(); |
| |
| return sFullName; |
| } |
| |
| // ----------------------------------------------------------------------- |
| |
| void SvtUserOptions_Impl::Notify() |
| { |
| NotifyListeners(0); |
| } |
| |
| // ----------------------------------------------------------------------- |
| |
| sal_Bool SvtUserOptions_Impl::IsTokenReadonly( sal_uInt16 nToken ) const |
| { |
| css::uno::Reference< css::beans::XPropertySet > xData(m_xCfg, css::uno::UNO_QUERY); |
| css::uno::Reference< css::beans::XPropertySetInfo > xInfo = xData->getPropertySetInfo(); |
| css::beans::Property aProp; |
| sal_Bool bRet = sal_False; |
| |
| switch ( nToken ) |
| { |
| case USER_OPT_COMPANY: |
| { |
| aProp = xInfo->getPropertyByName(s_so); |
| bRet = ((aProp.Attributes & css::beans::PropertyAttribute::READONLY) == css::beans::PropertyAttribute::READONLY); |
| break; |
| } |
| case USER_OPT_FIRSTNAME: |
| { |
| aProp = xInfo->getPropertyByName(s_sgivenname); |
| bRet = ((aProp.Attributes & css::beans::PropertyAttribute::READONLY) == css::beans::PropertyAttribute::READONLY); |
| break; |
| } |
| case USER_OPT_LASTNAME: |
| { |
| aProp = xInfo->getPropertyByName(s_ssn); |
| bRet = ((aProp.Attributes & css::beans::PropertyAttribute::READONLY) == css::beans::PropertyAttribute::READONLY); |
| break; |
| } |
| case USER_OPT_ID: |
| { |
| aProp = xInfo->getPropertyByName(s_sinitials); |
| bRet = ((aProp.Attributes & css::beans::PropertyAttribute::READONLY) == css::beans::PropertyAttribute::READONLY); |
| break; |
| } |
| case USER_OPT_STREET: |
| { |
| aProp = xInfo->getPropertyByName(s_sstreet); |
| bRet = ((aProp.Attributes & css::beans::PropertyAttribute::READONLY) == css::beans::PropertyAttribute::READONLY); |
| break; |
| } |
| case USER_OPT_CITY: |
| { |
| aProp = xInfo->getPropertyByName(s_sl); |
| bRet = ((aProp.Attributes & css::beans::PropertyAttribute::READONLY) == css::beans::PropertyAttribute::READONLY); |
| break; |
| } |
| case USER_OPT_STATE: |
| { |
| aProp = xInfo->getPropertyByName(s_sst); |
| bRet = ((aProp.Attributes & css::beans::PropertyAttribute::READONLY) == css::beans::PropertyAttribute::READONLY); |
| break; |
| } |
| case USER_OPT_ZIP: |
| { |
| aProp = xInfo->getPropertyByName(s_spostalcode); |
| bRet = ((aProp.Attributes & css::beans::PropertyAttribute::READONLY) == css::beans::PropertyAttribute::READONLY); |
| break; |
| } |
| case USER_OPT_COUNTRY: |
| { |
| aProp = xInfo->getPropertyByName(s_sc); |
| bRet = ((aProp.Attributes & css::beans::PropertyAttribute::READONLY) == css::beans::PropertyAttribute::READONLY); |
| break; |
| } |
| case USER_OPT_POSITION: |
| { |
| aProp = xInfo->getPropertyByName(s_sposition); |
| bRet = ((aProp.Attributes & css::beans::PropertyAttribute::READONLY) == css::beans::PropertyAttribute::READONLY); |
| break; |
| } |
| case USER_OPT_TITLE: |
| { |
| aProp = xInfo->getPropertyByName(s_stitle); |
| bRet = ((aProp.Attributes & css::beans::PropertyAttribute::READONLY) == css::beans::PropertyAttribute::READONLY); |
| break; |
| } |
| case USER_OPT_TELEPHONEHOME: |
| { |
| aProp = xInfo->getPropertyByName(s_shomephone); |
| bRet = ((aProp.Attributes & css::beans::PropertyAttribute::READONLY) == css::beans::PropertyAttribute::READONLY); |
| break; |
| } |
| case USER_OPT_TELEPHONEWORK: |
| { |
| aProp = xInfo->getPropertyByName(s_stelephonenumber); |
| bRet = ((aProp.Attributes & css::beans::PropertyAttribute::READONLY) == css::beans::PropertyAttribute::READONLY); |
| break; |
| } |
| case USER_OPT_FAX: |
| { |
| aProp = xInfo->getPropertyByName(s_sfacsimiletelephonenumber); |
| bRet = ((aProp.Attributes & css::beans::PropertyAttribute::READONLY) == css::beans::PropertyAttribute::READONLY); |
| break; |
| } |
| case USER_OPT_EMAIL: |
| { |
| aProp = xInfo->getPropertyByName(s_smail); |
| bRet = ((aProp.Attributes & css::beans::PropertyAttribute::READONLY) == css::beans::PropertyAttribute::READONLY); |
| break; |
| } |
| case USER_OPT_FATHERSNAME: |
| { |
| aProp = xInfo->getPropertyByName(s_sfathersname); |
| bRet = ((aProp.Attributes & css::beans::PropertyAttribute::READONLY) == css::beans::PropertyAttribute::READONLY); |
| break; |
| } |
| case USER_OPT_APARTMENT: |
| { |
| aProp = xInfo->getPropertyByName(s_sapartment); |
| bRet = ((aProp.Attributes & css::beans::PropertyAttribute::READONLY) == css::beans::PropertyAttribute::READONLY); |
| break; |
| } |
| default: |
| DBG_ERRORFILE( "SvtUserOptions_Impl::IsTokenReadonly(): invalid token" ); |
| } |
| |
| return bRet; |
| } |
| |
| //------------------------------------------------------------------------ |
| ::rtl::OUString SvtUserOptions_Impl::GetToken(sal_uInt16 nToken) const |
| { |
| ::rtl::OUString pRet; |
| switch(nToken) |
| { |
| case USER_OPT_COMPANY: pRet = GetCompany(); break; |
| case USER_OPT_FIRSTNAME: pRet = GetFirstName(); break; |
| case USER_OPT_LASTNAME: pRet = GetLastName(); break; |
| case USER_OPT_ID: pRet = GetID(); break; |
| case USER_OPT_STREET: pRet = GetStreet(); break; |
| case USER_OPT_CITY: pRet = GetCity(); break; |
| case USER_OPT_STATE: pRet = GetState(); break; |
| case USER_OPT_ZIP: pRet = GetZip(); break; |
| case USER_OPT_COUNTRY: pRet = GetCountry(); break; |
| case USER_OPT_POSITION: pRet = GetPosition(); break; |
| case USER_OPT_TITLE: pRet = GetTitle(); break; |
| case USER_OPT_TELEPHONEHOME: pRet = GetTelephoneHome(); break; |
| case USER_OPT_TELEPHONEWORK: pRet = GetTelephoneWork(); break; |
| case USER_OPT_FAX: pRet = GetFax(); break; |
| case USER_OPT_EMAIL: pRet = GetEmail(); break; |
| case USER_OPT_FATHERSNAME: pRet = GetFathersName(); break; |
| case USER_OPT_APARTMENT: pRet = GetApartment(); break; |
| default: |
| DBG_ERRORFILE( "SvtUserOptions_Impl::GetToken(): invalid token" ); |
| } |
| return pRet; |
| } |
| |
| // class SvtUserOptions -------------------------------------------------- |
| |
| SvtUserOptions::SvtUserOptions() |
| { |
| // Global access, must be guarded (multithreading) |
| ::osl::MutexGuard aGuard( GetInitMutex() ); |
| |
| if ( !pOptions ) |
| { |
| RTL_LOGFILE_CONTEXT(aLog, "unotools ( ??? ) ::SvtUserOptions_Impl::ctor()"); |
| pOptions = new SvtUserOptions_Impl; |
| |
| ItemHolder1::holdConfigItem(E_USEROPTIONS); |
| } |
| ++nRefCount; |
| pImp = pOptions; |
| pImp->AddListener(this); |
| } |
| |
| // ----------------------------------------------------------------------- |
| |
| SvtUserOptions::~SvtUserOptions() |
| { |
| // Global access, must be guarded (multithreading) |
| ::osl::MutexGuard aGuard( GetInitMutex() ); |
| pImp->RemoveListener(this); |
| if ( !--nRefCount ) |
| { |
| //if ( pOptions->IsModified() ) |
| // pOptions->Commit(); |
| DELETEZ( pOptions ); |
| } |
| } |
| |
| // ----------------------------------------------------------------------- |
| |
| ::osl::Mutex& SvtUserOptions::GetInitMutex() |
| { |
| // Initialize static mutex only for one time! |
| static ::osl::Mutex* pMutex = NULL; |
| // If these method first called (Mutex not already exist!) ... |
| if ( pMutex == NULL ) |
| { |
| // ... we must create a new one. Protect follow code with the global mutex - |
| // It must be - we create a static variable! |
| ::osl::MutexGuard aGuard( ::osl::Mutex::getGlobalMutex() ); |
| // We must check our pointer again - |
| // because another instance of our class will be faster then this instance! |
| if ( pMutex == NULL ) |
| { |
| // Create the new mutex and set it for return on static variable. |
| static ::osl::Mutex aMutex; |
| pMutex = &aMutex; |
| } |
| } |
| // Return new created or already existing mutex object. |
| return *pMutex; |
| } |
| |
| // ----------------------------------------------------------------------- |
| |
| ::rtl::OUString SvtUserOptions::GetCompany() const |
| { |
| ::osl::MutexGuard aGuard( GetInitMutex() ); |
| return pImp->GetCompany(); |
| } |
| |
| // ----------------------------------------------------------------------- |
| |
| ::rtl::OUString SvtUserOptions::GetFirstName() const |
| { |
| ::osl::MutexGuard aGuard( GetInitMutex() ); |
| return pImp->GetFirstName(); |
| } |
| |
| // ----------------------------------------------------------------------- |
| |
| ::rtl::OUString SvtUserOptions::GetLastName() const |
| { |
| ::osl::MutexGuard aGuard( GetInitMutex() ); |
| return pImp->GetLastName(); |
| } |
| |
| // ----------------------------------------------------------------------- |
| |
| ::rtl::OUString SvtUserOptions::GetID() const |
| { |
| ::osl::MutexGuard aGuard( GetInitMutex() ); |
| return pImp->GetID(); |
| } |
| |
| // ----------------------------------------------------------------------- |
| |
| ::rtl::OUString SvtUserOptions::GetStreet() const |
| { |
| ::osl::MutexGuard aGuard( GetInitMutex() ); |
| return pImp->GetStreet(); |
| } |
| |
| // ----------------------------------------------------------------------- |
| |
| ::rtl::OUString SvtUserOptions::GetCity() const |
| { |
| ::osl::MutexGuard aGuard( GetInitMutex() ); |
| return pImp->GetCity(); |
| } |
| |
| // ----------------------------------------------------------------------- |
| |
| ::rtl::OUString SvtUserOptions::GetState() const |
| { |
| ::osl::MutexGuard aGuard( GetInitMutex() ); |
| return pImp->GetState(); |
| } |
| |
| // ----------------------------------------------------------------------- |
| |
| ::rtl::OUString SvtUserOptions::GetZip() const |
| { |
| ::osl::MutexGuard aGuard( GetInitMutex() ); |
| return pImp->GetZip(); |
| } |
| |
| // ----------------------------------------------------------------------- |
| |
| ::rtl::OUString SvtUserOptions::GetCountry() const |
| { |
| ::osl::MutexGuard aGuard( GetInitMutex() ); |
| return pImp->GetCountry(); |
| } |
| |
| // ----------------------------------------------------------------------- |
| |
| ::rtl::OUString SvtUserOptions::GetPosition() const |
| { |
| ::osl::MutexGuard aGuard( GetInitMutex() ); |
| return pImp->GetPosition(); |
| } |
| |
| // ----------------------------------------------------------------------- |
| |
| ::rtl::OUString SvtUserOptions::GetTitle() const |
| { |
| ::osl::MutexGuard aGuard( GetInitMutex() ); |
| return pImp->GetTitle(); |
| } |
| |
| // ----------------------------------------------------------------------- |
| |
| ::rtl::OUString SvtUserOptions::GetTelephoneHome() const |
| { |
| ::osl::MutexGuard aGuard( GetInitMutex() ); |
| return pImp->GetTelephoneHome(); |
| } |
| |
| // ----------------------------------------------------------------------- |
| |
| ::rtl::OUString SvtUserOptions::GetTelephoneWork() const |
| { |
| ::osl::MutexGuard aGuard( GetInitMutex() ); |
| return pImp->GetTelephoneWork(); |
| } |
| |
| // ----------------------------------------------------------------------- |
| |
| ::rtl::OUString SvtUserOptions::GetFax() const |
| { |
| ::osl::MutexGuard aGuard( GetInitMutex() ); |
| return pImp->GetFax(); |
| } |
| |
| // ----------------------------------------------------------------------- |
| |
| ::rtl::OUString SvtUserOptions::GetEmail() const |
| { |
| ::osl::MutexGuard aGuard( GetInitMutex() ); |
| return pImp->GetEmail(); |
| } |
| |
| // ----------------------------------------------------------------------- |
| |
| ::rtl::OUString SvtUserOptions::GetCustomerNumber() const |
| { |
| ::osl::MutexGuard aGuard( GetInitMutex() ); |
| return pImp->GetCustomerNumber(); |
| } |
| // ----------------------------------------------------------------------- |
| |
| ::rtl::OUString SvtUserOptions::GetFathersName() const |
| { |
| ::osl::MutexGuard aGuard( GetInitMutex() ); |
| return pImp->GetFathersName() ; |
| } |
| |
| // ----------------------------------------------------------------------- |
| |
| ::rtl::OUString SvtUserOptions::GetApartment() const |
| { |
| ::osl::MutexGuard aGuard( GetInitMutex() ); |
| return pImp->GetApartment(); |
| } |
| |
| // ----------------------------------------------------------------------- |
| |
| ::rtl::OUString SvtUserOptions::GetFullName() const |
| { |
| ::osl::MutexGuard aGuard( GetInitMutex() ); |
| return pImp->GetFullName(); |
| } |
| |
| // ----------------------------------------------------------------------- |
| |
| ::rtl::OUString SvtUserOptions::GetLocale() const |
| { |
| ::osl::MutexGuard aGuard( GetInitMutex() ); |
| return pImp->GetLocale(); |
| } |
| |
| // ----------------------------------------------------------------------- |
| |
| void SvtUserOptions::SetCompany( const ::rtl::OUString& rNewToken ) |
| { |
| ::osl::MutexGuard aGuard( GetInitMutex() ); |
| pImp->SetCompany( rNewToken ); |
| } |
| |
| // ----------------------------------------------------------------------- |
| |
| void SvtUserOptions::SetFirstName( const ::rtl::OUString& rNewToken ) |
| { |
| ::osl::MutexGuard aGuard( GetInitMutex() ); |
| pImp->SetFirstName( rNewToken ); |
| } |
| |
| // ----------------------------------------------------------------------- |
| |
| void SvtUserOptions::SetLastName( const ::rtl::OUString& rNewToken ) |
| { |
| ::osl::MutexGuard aGuard( GetInitMutex() ); |
| pImp->SetLastName( rNewToken ); |
| } |
| |
| // ----------------------------------------------------------------------- |
| |
| void SvtUserOptions::SetID( const ::rtl::OUString& rNewToken ) |
| { |
| ::osl::MutexGuard aGuard( GetInitMutex() ); |
| pImp->SetID( rNewToken ); |
| } |
| |
| // ----------------------------------------------------------------------- |
| |
| void SvtUserOptions::SetStreet( const ::rtl::OUString& rNewToken ) |
| { |
| ::osl::MutexGuard aGuard( GetInitMutex() ); |
| pImp->SetStreet( rNewToken ); |
| } |
| |
| // ----------------------------------------------------------------------- |
| |
| void SvtUserOptions::SetCity( const ::rtl::OUString& rNewToken ) |
| { |
| ::osl::MutexGuard aGuard( GetInitMutex() ); |
| pImp->SetCity( rNewToken ); |
| } |
| |
| // ----------------------------------------------------------------------- |
| |
| void SvtUserOptions::SetState( const ::rtl::OUString& rNewToken ) |
| { |
| ::osl::MutexGuard aGuard( GetInitMutex() ); |
| pImp->SetState( rNewToken ); |
| } |
| |
| // ----------------------------------------------------------------------- |
| |
| void SvtUserOptions::SetZip( const ::rtl::OUString& rNewToken ) |
| { |
| ::osl::MutexGuard aGuard( GetInitMutex() ); |
| pImp->SetZip( rNewToken ); |
| } |
| |
| // ----------------------------------------------------------------------- |
| |
| void SvtUserOptions::SetCountry( const ::rtl::OUString& rNewToken ) |
| { |
| ::osl::MutexGuard aGuard( GetInitMutex() ); |
| pImp->SetCountry( rNewToken ); |
| } |
| |
| // ----------------------------------------------------------------------- |
| |
| void SvtUserOptions::SetPosition( const ::rtl::OUString& rNewToken ) |
| { |
| ::osl::MutexGuard aGuard( GetInitMutex() ); |
| pImp->SetPosition( rNewToken ); |
| } |
| |
| // ----------------------------------------------------------------------- |
| |
| void SvtUserOptions::SetTitle( const ::rtl::OUString& rNewToken ) |
| { |
| ::osl::MutexGuard aGuard( GetInitMutex() ); |
| pImp->SetTitle( rNewToken ); |
| } |
| |
| // ----------------------------------------------------------------------- |
| |
| void SvtUserOptions::SetTelephoneHome( const ::rtl::OUString& rNewToken ) |
| { |
| ::osl::MutexGuard aGuard( GetInitMutex() ); |
| pImp->SetTelephoneHome( rNewToken ); |
| } |
| |
| // ----------------------------------------------------------------------- |
| |
| void SvtUserOptions::SetTelephoneWork( const ::rtl::OUString& rNewToken ) |
| { |
| ::osl::MutexGuard aGuard( GetInitMutex() ); |
| pImp->SetTelephoneWork( rNewToken ); |
| } |
| |
| // ----------------------------------------------------------------------- |
| |
| void SvtUserOptions::SetFax( const ::rtl::OUString& rNewToken ) |
| { |
| ::osl::MutexGuard aGuard( GetInitMutex() ); |
| pImp->SetFax( rNewToken ); |
| } |
| |
| // ----------------------------------------------------------------------- |
| |
| void SvtUserOptions::SetEmail( const ::rtl::OUString& rNewToken ) |
| { |
| ::osl::MutexGuard aGuard( GetInitMutex() ); |
| pImp->SetEmail( rNewToken ); |
| } |
| |
| // ----------------------------------------------------------------------- |
| |
| void SvtUserOptions::SetCustomerNumber( const ::rtl::OUString& rNewToken ) |
| { |
| ::osl::MutexGuard aGuard( GetInitMutex() ); |
| pImp->SetCustomerNumber( rNewToken ); |
| } |
| // ----------------------------------------------------------------------- |
| |
| void SvtUserOptions::SetFathersName( const ::rtl::OUString& rNewToken ) |
| { |
| ::osl::MutexGuard aGuard( GetInitMutex() ); |
| pImp->SetFathersName( rNewToken ); |
| } |
| |
| // ----------------------------------------------------------------------- |
| |
| void SvtUserOptions::SetApartment( const ::rtl::OUString& rNewToken ) |
| { |
| ::osl::MutexGuard aGuard( GetInitMutex() ); |
| pImp->SetApartment( rNewToken ); |
| } |
| |
| // ----------------------------------------------------------------------- |
| |
| sal_Bool SvtUserOptions::IsTokenReadonly( sal_uInt16 nToken ) const |
| { |
| ::osl::MutexGuard aGuard( GetInitMutex() ); |
| return pImp->IsTokenReadonly( nToken ); |
| } |
| //------------------------------------------------------------------------ |
| ::rtl::OUString SvtUserOptions::GetToken(sal_uInt16 nToken) const |
| { |
| ::osl::MutexGuard aGuard( GetInitMutex() ); |
| return pImp->GetToken( nToken ); |
| } |