xref: /AOO41X/main/extensions/source/propctrlr/formcontroller.hxx (revision 46dbaceef8c12a09e4905feda473ecab36e10d03)
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 #ifndef EXTENSIONS_SOURCE_PROPCTRLR_FORMCONTROLLER_HXX
24 #define EXTENSIONS_SOURCE_PROPCTRLR_FORMCONTROLLER_HXX
25 
26 #include "propcontroller.hxx"
27 
28 /** === begin UNO includes === **/
29 /** === end UNO includes === **/
30 #include <cppuhelper/propshlp.hxx>
31 #include <comphelper/proparrhlp.hxx>
32 #include <comphelper/uno3.hxx>
33 
34 //........................................................................
35 namespace pcr
36 {
37 //........................................................................
38 
39     //====================================================================
40     //= ServiceDescriptor
41     //====================================================================
42     struct ServiceDescriptor
43     {
44         ::rtl::OUString
45             ( *GetImplementationName )( void );
46         ::com::sun::star::uno::Sequence< ::rtl::OUString >
47             ( *GetSupportedServiceNames )( void );
48     };
49 
50     //====================================================================
51     //= FormController
52     //====================================================================
53     class FormController;
54     typedef ::cppu::OPropertySetHelper                                  FormController_PropertyBase1;
55     typedef ::comphelper::OPropertyArrayUsageHelper< FormController >   FormController_PropertyBase2;
56 
57     /** Legacy implementation of com.sun.star.form.PropertyBrowserController
58 
59         Nowadays only a wrapper around an ObjectInspector using a
60         DefaultFormComponentInspectorModel.
61     */
62     class FormController    :public OPropertyBrowserController
63                             ,public FormController_PropertyBase1
64                             ,public FormController_PropertyBase2
65     {
66     private:
67         ServiceDescriptor           m_aServiceDescriptor;
68         ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet >
69                                     m_xCurrentInspectee;
70         bool                        m_bUseFormComponentHandlers;
71     public:
72         FormController(
73             const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XComponentContext >& _rxContext,
74             ServiceDescriptor _aServiceDescriptor,
75             bool _bUseFormFormComponentHandlers
76         );
77 
78         // XServiceInfo - static versions
79         static ::rtl::OUString getImplementationName_static(  ) throw(::com::sun::star::uno::RuntimeException);
80         static ::com::sun::star::uno::Sequence< ::rtl::OUString > getSupportedServiceNames_static(  ) throw(::com::sun::star::uno::RuntimeException);
81         static ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface > SAL_CALL
82                         Create(const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XComponentContext >&);
83 
84     protected:
85         ~FormController();
86 
87         DECLARE_XINTERFACE()
88         DECLARE_XTYPEPROVIDER()
89 
90         // XServiceInfo
91         virtual ::rtl::OUString SAL_CALL getImplementationName(  ) throw(::com::sun::star::uno::RuntimeException);
92         virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames(  ) throw(::com::sun::star::uno::RuntimeException);
93 
94         // XPropertySet and friends
95         virtual ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySetInfo > SAL_CALL getPropertySetInfo(  ) throw(::com::sun::star::uno::RuntimeException);
96         virtual ::cppu::IPropertyArrayHelper& SAL_CALL getInfoHelper();
97         virtual ::cppu::IPropertyArrayHelper* createArrayHelper( ) const;
98 
99         virtual sal_Bool SAL_CALL convertFastPropertyValue(
100                 ::com::sun::star::uno::Any & rConvertedValue, ::com::sun::star::uno::Any & rOldValue, sal_Int32 nHandle, const ::com::sun::star::uno::Any& rValue
101             )   throw (::com::sun::star::lang::IllegalArgumentException);
102         virtual void SAL_CALL setFastPropertyValue_NoBroadcast(
103                 sal_Int32 nHandle, const ::com::sun::star::uno::Any& rValue
104             ) throw (::com::sun::star::uno::Exception);
105         virtual void SAL_CALL getFastPropertyValue(
106                 ::com::sun::star::uno::Any& rValue, sal_Int32 nHandle
107             ) const;
108     private:
109         using FormController_PropertyBase1::getFastPropertyValue;
110     };
111 
112     //====================================================================
113     //= DialogController
114     //====================================================================
115     /** Legacy implementation of com.sun.star.awt.PropertyBrowserController
116     */
117     class DialogController
118     {
119     public:
120         // XServiceInfo - static versions
121         static ::rtl::OUString getImplementationName_static(  ) throw(::com::sun::star::uno::RuntimeException);
122         static ::com::sun::star::uno::Sequence< ::rtl::OUString > getSupportedServiceNames_static(  ) throw(::com::sun::star::uno::RuntimeException);
123         static ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface > SAL_CALL
124                         Create(const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XComponentContext >&);
125 
126     private:
127         DialogController();                                     // never implemented
128         DialogController( const DialogController& );            // never implemented
129         DialogController& operator=( const DialogController& ); // never implemented
130     };
131 //........................................................................
132 } // namespace pcr
133 //........................................................................
134 
135 #endif // EXTENSIONS_SOURCE_PROPCTRLR_FORMCONTROLLER_HXX
136 
137