diff options
Diffstat (limited to 'forms/source/component/Hidden.cxx')
-rw-r--r-- | forms/source/component/Hidden.cxx | 190 |
1 files changed, 190 insertions, 0 deletions
diff --git a/forms/source/component/Hidden.cxx b/forms/source/component/Hidden.cxx new file mode 100644 index 000000000000..9c20de263d80 --- /dev/null +++ b/forms/source/component/Hidden.cxx @@ -0,0 +1,190 @@ +/************************************************************************* + * + * 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_forms.hxx" +#include "Hidden.hxx" +#include "property.hxx" +#ifndef _FRM_PROPERTY_HRC_ +#include "property.hrc" +#endif +#include "services.hxx" +#include <tools/debug.hxx> +#include <comphelper/basicio.hxx> + +//......................................................................... +namespace frm +{ +using namespace ::com::sun::star::uno; +using namespace ::com::sun::star::sdb; +using namespace ::com::sun::star::sdbc; +using namespace ::com::sun::star::sdbcx; +using namespace ::com::sun::star::beans; +using namespace ::com::sun::star::container; +using namespace ::com::sun::star::form; +using namespace ::com::sun::star::awt; +using namespace ::com::sun::star::io; +using namespace ::com::sun::star::lang; +using namespace ::com::sun::star::util; + +//------------------------------------------------------------------ +InterfaceRef SAL_CALL OHiddenModel_CreateInstance(const Reference<XMultiServiceFactory>& _rxFactory) throw (RuntimeException) +{ + return *(new OHiddenModel(_rxFactory)); +} + +//------------------------------------------------------------------ +DBG_NAME( OHiddenModel ) +//------------------------------------------------------------------ +OHiddenModel::OHiddenModel(const Reference<XMultiServiceFactory>& _rxFactory) + :OControlModel(_rxFactory, ::rtl::OUString()) +{ + DBG_CTOR( OHiddenModel, NULL ); + m_nClassId = FormComponentType::HIDDENCONTROL; +} + +//------------------------------------------------------------------ +OHiddenModel::OHiddenModel( const OHiddenModel* _pOriginal, const Reference<XMultiServiceFactory>& _rxFactory ) + :OControlModel( _pOriginal, _rxFactory ) +{ + DBG_CTOR( OHiddenModel, NULL ); + m_sHiddenValue = _pOriginal->m_sHiddenValue; +} + +//------------------------------------------------------------------------------ +OHiddenModel::~OHiddenModel( ) +{ + DBG_CTOR( OHiddenModel, NULL ); +} + +//------------------------------------------------------------------------------ +IMPLEMENT_DEFAULT_CLONING( OHiddenModel ) + +//------------------------------------------------------------------------------ +void OHiddenModel::getFastPropertyValue(Any& _rValue, sal_Int32 _nHandle) const +{ + switch (_nHandle) + { + case PROPERTY_ID_HIDDEN_VALUE : _rValue <<= m_sHiddenValue; break; + default: + OControlModel::getFastPropertyValue(_rValue, _nHandle); + } +} + +//------------------------------------------------------------------------------ +void OHiddenModel::setFastPropertyValue_NoBroadcast(sal_Int32 _nHandle, const Any& _rValue) throw (com::sun::star::uno::Exception) +{ + switch (_nHandle) + { + case PROPERTY_ID_HIDDEN_VALUE : + DBG_ASSERT(_rValue.getValueType().getTypeClass() == TypeClass_STRING, "OHiddenModel::setFastPropertyValue_NoBroadcast : invalid type !" ); + _rValue >>= m_sHiddenValue; + break; + default: + OControlModel::setFastPropertyValue_NoBroadcast(_nHandle, _rValue); + } +} + +//------------------------------------------------------------------------------ +sal_Bool OHiddenModel::convertFastPropertyValue( + Any& _rConvertedValue, Any& _rOldValue, sal_Int32 _nHandle, const Any& _rValue) + throw (IllegalArgumentException) +{ + sal_Bool bModified(sal_False); + switch (_nHandle) + { + case PROPERTY_ID_HIDDEN_VALUE : + bModified = tryPropertyValue(_rConvertedValue, _rOldValue, _rValue, m_sHiddenValue); + break; + default: + bModified = OControlModel::convertFastPropertyValue(_rConvertedValue, _rOldValue, _nHandle, _rValue); + break; + } + return bModified; +} + +//------------------------------------------------------------------------------ +void OHiddenModel::describeFixedProperties( Sequence< Property >& _rProps ) const +{ + BEGIN_DESCRIBE_BASE_PROPERTIES(4) + DECL_PROP2(CLASSID, sal_Int16, READONLY, TRANSIENT); + DECL_PROP1(HIDDEN_VALUE, ::rtl::OUString, BOUND); + DECL_PROP1(NAME, ::rtl::OUString, BOUND); + DECL_PROP1(TAG, ::rtl::OUString, BOUND); + END_DESCRIBE_PROPERTIES(); +} + +// XServiceInfo +//------------------------------------------------------------------------------ +StringSequence SAL_CALL OHiddenModel::getSupportedServiceNames() throw(::com::sun::star::uno::RuntimeException) +{ + StringSequence aSupported( 2 ); + aSupported[ 0 ] = FRM_SUN_COMPONENT_HIDDENCONTROL; + aSupported[ 1 ] = FRM_SUN_FORMCOMPONENT; + return aSupported; +} + +//------------------------------------------------------------------------------ +::rtl::OUString SAL_CALL OHiddenModel::getServiceName() throw(RuntimeException) +{ + return FRM_COMPONENT_HIDDEN; // old (non-sun) name for compatibility ! +} + +//------------------------------------------------------------------------------ +void SAL_CALL OHiddenModel::write(const Reference<XObjectOutputStream>& _rxOutStream) + throw(IOException, RuntimeException) +{ + // Version + _rxOutStream->writeShort(0x0002); + + // Wert + _rxOutStream << m_sHiddenValue; + + OControlModel::write(_rxOutStream); +} + +//------------------------------------------------------------------------------ +void SAL_CALL OHiddenModel::read(const Reference<XObjectInputStream>& _rxInStream) throw(IOException, RuntimeException) +{ + // Version + UINT16 nVersion = _rxInStream->readShort(); + + // Name + DBG_ASSERT(nVersion != 1, "OHiddenModel::read : this version is obsolete !"); + switch (nVersion) + { + case 1 : { ::rtl::OUString sDummy; _rxInStream >> sDummy; _rxInStream >> m_sHiddenValue; } break; + case 2 : _rxInStream >> m_sHiddenValue; break; + default : DBG_ERROR("OHiddenModel::read : unknown version !"); m_sHiddenValue = ::rtl::OUString(); + } + OControlModel::read(_rxInStream); +} + +//......................................................................... +} +//......................................................................... + |