xref: /AOO41X/main/forms/source/component/Hidden.cxx (revision 24acc54625a85f778a4f966495e8f4cd9d7b247c)
1 /**************************************************************
2  *
3  * Licensed to the Apache Software Foundation (ASF) under one
4  * or more contributor license agreements.  See the NOTICE file
5  * distributed with this work for additional information
6  * regarding copyright ownership.  The ASF licenses this file
7  * to you under the Apache License, Version 2.0 (the
8  * "License"); you may not use this file except in compliance
9  * with the License.  You may obtain a copy of the License at
10  *
11  *   http://www.apache.org/licenses/LICENSE-2.0
12  *
13  * Unless required by applicable law or agreed to in writing,
14  * software distributed under the License is distributed on an
15  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16  * KIND, either express or implied.  See the License for the
17  * specific language governing permissions and limitations
18  * under the License.
19  *
20  *************************************************************/
21 
22 
23 
24 // MARKER(update_precomp.py): autogen include statement, do not remove
25 #include "precompiled_forms.hxx"
26 #include "Hidden.hxx"
27 #include "property.hxx"
28 #ifndef _FRM_PROPERTY_HRC_
29 #include "property.hrc"
30 #endif
31 #include "services.hxx"
32 #include <tools/debug.hxx>
33 #include <comphelper/basicio.hxx>
34 
35 //.........................................................................
36 namespace frm
37 {
38 using namespace ::com::sun::star::uno;
39 using namespace ::com::sun::star::sdb;
40 using namespace ::com::sun::star::sdbc;
41 using namespace ::com::sun::star::sdbcx;
42 using namespace ::com::sun::star::beans;
43 using namespace ::com::sun::star::container;
44 using namespace ::com::sun::star::form;
45 using namespace ::com::sun::star::awt;
46 using namespace ::com::sun::star::io;
47 using namespace ::com::sun::star::lang;
48 using namespace ::com::sun::star::util;
49 
50 //------------------------------------------------------------------
OHiddenModel_CreateInstance(const Reference<XMultiServiceFactory> & _rxFactory)51 InterfaceRef SAL_CALL OHiddenModel_CreateInstance(const Reference<XMultiServiceFactory>& _rxFactory) throw (RuntimeException)
52 {
53     return *(new OHiddenModel(_rxFactory));
54 }
55 
56 //------------------------------------------------------------------
DBG_NAME(OHiddenModel)57 DBG_NAME( OHiddenModel )
58 //------------------------------------------------------------------
59 OHiddenModel::OHiddenModel(const Reference<XMultiServiceFactory>& _rxFactory)
60     :OControlModel(_rxFactory, ::rtl::OUString())
61 {
62     DBG_CTOR( OHiddenModel, NULL );
63     m_nClassId = FormComponentType::HIDDENCONTROL;
64 }
65 
66 //------------------------------------------------------------------
OHiddenModel(const OHiddenModel * _pOriginal,const Reference<XMultiServiceFactory> & _rxFactory)67 OHiddenModel::OHiddenModel( const OHiddenModel* _pOriginal, const Reference<XMultiServiceFactory>& _rxFactory )
68     :OControlModel( _pOriginal, _rxFactory )
69 {
70     DBG_CTOR( OHiddenModel, NULL );
71     m_sHiddenValue = _pOriginal->m_sHiddenValue;
72 }
73 
74 //------------------------------------------------------------------------------
~OHiddenModel()75 OHiddenModel::~OHiddenModel( )
76 {
77     DBG_CTOR( OHiddenModel, NULL );
78 }
79 
80 //------------------------------------------------------------------------------
IMPLEMENT_DEFAULT_CLONING(OHiddenModel)81 IMPLEMENT_DEFAULT_CLONING( OHiddenModel )
82 
83 //------------------------------------------------------------------------------
84 void OHiddenModel::getFastPropertyValue(Any& _rValue, sal_Int32 _nHandle) const
85 {
86     switch (_nHandle)
87     {
88         case PROPERTY_ID_HIDDEN_VALUE : _rValue <<= m_sHiddenValue; break;
89         default:
90             OControlModel::getFastPropertyValue(_rValue, _nHandle);
91     }
92 }
93 
94 //------------------------------------------------------------------------------
setFastPropertyValue_NoBroadcast(sal_Int32 _nHandle,const Any & _rValue)95 void OHiddenModel::setFastPropertyValue_NoBroadcast(sal_Int32 _nHandle, const Any& _rValue) throw (com::sun::star::uno::Exception)
96 {
97     switch (_nHandle)
98     {
99         case PROPERTY_ID_HIDDEN_VALUE :
100             DBG_ASSERT(_rValue.getValueType().getTypeClass() == TypeClass_STRING, "OHiddenModel::setFastPropertyValue_NoBroadcast : invalid type !" );
101             _rValue >>= m_sHiddenValue;
102             break;
103         default:
104             OControlModel::setFastPropertyValue_NoBroadcast(_nHandle, _rValue);
105     }
106 }
107 
108 //------------------------------------------------------------------------------
convertFastPropertyValue(Any & _rConvertedValue,Any & _rOldValue,sal_Int32 _nHandle,const Any & _rValue)109 sal_Bool OHiddenModel::convertFastPropertyValue(
110             Any& _rConvertedValue, Any& _rOldValue, sal_Int32 _nHandle, const Any& _rValue)
111             throw (IllegalArgumentException)
112 {
113     sal_Bool bModified(sal_False);
114     switch (_nHandle)
115     {
116         case PROPERTY_ID_HIDDEN_VALUE :
117             bModified = tryPropertyValue(_rConvertedValue, _rOldValue, _rValue, m_sHiddenValue);
118             break;
119         default:
120             bModified = OControlModel::convertFastPropertyValue(_rConvertedValue, _rOldValue, _nHandle, _rValue);
121             break;
122     }
123     return bModified;
124 }
125 
126 //------------------------------------------------------------------------------
describeFixedProperties(Sequence<Property> & _rProps) const127 void OHiddenModel::describeFixedProperties( Sequence< Property >& _rProps ) const
128 {
129     BEGIN_DESCRIBE_BASE_PROPERTIES(4)
130         DECL_PROP2(CLASSID,         sal_Int16,          READONLY, TRANSIENT);
131         DECL_PROP1(HIDDEN_VALUE,    ::rtl::OUString,    BOUND);
132         DECL_PROP1(NAME,            ::rtl::OUString,    BOUND);
133         DECL_PROP1(TAG,             ::rtl::OUString,    BOUND);
134     END_DESCRIBE_PROPERTIES();
135 }
136 
137 // XServiceInfo
138 //------------------------------------------------------------------------------
getSupportedServiceNames()139 StringSequence SAL_CALL OHiddenModel::getSupportedServiceNames() throw(::com::sun::star::uno::RuntimeException)
140 {
141     StringSequence aSupported( 2 );
142     aSupported[ 0 ] = FRM_SUN_COMPONENT_HIDDENCONTROL;
143     aSupported[ 1 ] = FRM_SUN_FORMCOMPONENT;
144     return aSupported;
145 }
146 
147 //------------------------------------------------------------------------------
getServiceName()148 ::rtl::OUString SAL_CALL OHiddenModel::getServiceName() throw(RuntimeException)
149 {
150     return FRM_COMPONENT_HIDDEN;    // old (non-sun) name for compatibility !
151 }
152 
153 //------------------------------------------------------------------------------
write(const Reference<XObjectOutputStream> & _rxOutStream)154 void SAL_CALL OHiddenModel::write(const Reference<XObjectOutputStream>& _rxOutStream)
155     throw(IOException, RuntimeException)
156 {
157     // Version
158     _rxOutStream->writeShort(0x0002);
159 
160     // Wert
161     _rxOutStream << m_sHiddenValue;
162 
163     OControlModel::write(_rxOutStream);
164 }
165 
166 //------------------------------------------------------------------------------
read(const Reference<XObjectInputStream> & _rxInStream)167 void SAL_CALL OHiddenModel::read(const Reference<XObjectInputStream>& _rxInStream) throw(IOException, RuntimeException)
168 {
169     // Version
170     sal_uInt16 nVersion = _rxInStream->readShort();
171 
172     // Name
173     DBG_ASSERT(nVersion != 1, "OHiddenModel::read : this version is obsolete !");
174     switch (nVersion)
175     {
176         case 1 : { ::rtl::OUString sDummy; _rxInStream >> sDummy; _rxInStream >> m_sHiddenValue; } break;
177         case 2 : _rxInStream >> m_sHiddenValue; break;
178         default : DBG_ERROR("OHiddenModel::read : unknown version !"); m_sHiddenValue = ::rtl::OUString();
179     }
180     OControlModel::read(_rxInStream);
181 }
182 
183 //.........................................................................
184 }
185 //.........................................................................
186 
187