xref: /trunk/main/chart2/source/controller/inc/ChartDocumentWrapper.hxx (revision 91144cd0085a7583d2099b982122deb2184ab956)
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 CHART_CHARTDOCUMENTWRAPPER_HXX
24 #define CHART_CHARTDOCUMENTWRAPPER_HXX
25 
26 #include "WrappedPropertySet.hxx"
27 //#include "OPropertySet.hxx"
28 #include "ServiceMacros.hxx"
29 #include <com/sun/star/chart2/XChartDocument.hpp>
30 #include <com/sun/star/chart/XChartDocument.hpp>
31 #include <com/sun/star/uno/XComponentContext.hpp>
32 #include <com/sun/star/drawing/XDrawPageSupplier.hpp>
33 #include <com/sun/star/lang/XMultiServiceFactory.hpp>
34 #include <com/sun/star/uno/XAggregation.hpp>
35 #include <com/sun/star/lang/XServiceInfo.hpp>
36 #include <com/sun/star/util/XRefreshable.hpp>
37 #include <cppuhelper/implbase5.hxx>
38 #include <osl/mutex.hxx>
39 #include <unotools/eventlisteneradapter.hxx>
40 #include <comphelper/uno3.hxx>
41 
42 #include <boost/shared_ptr.hpp>
43 
44 namespace chart
45 {
46 
47 namespace wrapper
48 {
49 
50 class Chart2ModelContact;
51 
52 class ChartDocumentWrapper_Base : public ::cppu::ImplInheritanceHelper5
53                                 < WrappedPropertySet
54                                 , ::com::sun::star::chart::XChartDocument
55                                 , ::com::sun::star::drawing::XDrawPageSupplier
56                                 , ::com::sun::star::lang::XMultiServiceFactory
57                                 , ::com::sun::star::lang::XServiceInfo
58                                 , ::com::sun::star::uno::XAggregation
59                                 >
60 {
61 };
62 
63 class ChartDocumentWrapper : public ChartDocumentWrapper_Base
64                            , public ::utl::OEventListenerAdapter
65 {
66 public:
67     explicit ChartDocumentWrapper(
68         const ::com::sun::star::uno::Reference<
69             ::com::sun::star::uno::XComponentContext > & xContext );
70     virtual ~ChartDocumentWrapper();
71 
72     /// XServiceInfo declarations
73     APPHELPER_XSERVICEINFO_DECL()
74     APPHELPER_SERVICE_FACTORY_HELPER(ChartDocumentWrapper)
75 
76     void setAddIn( const ::com::sun::star::uno::Reference< ::com::sun::star::util::XRefreshable >& xAddIn );
77     ::com::sun::star::uno::Reference< ::com::sun::star::util::XRefreshable > getAddIn() const;
78 
79     void setUpdateAddIn( sal_Bool bUpdateAddIn );
80     sal_Bool getUpdateAddIn() const;
81 
82     void setBaseDiagram( const rtl::OUString& rBaseDiagram );
83     rtl::OUString getBaseDiagram() const;
84 
85     ::com::sun::star::uno::Reference< ::com::sun::star::drawing::XShapes > getAdditionalShapes() const;
86 
87     ::com::sun::star::uno::Reference<
88             ::com::sun::star::drawing::XDrawPage > impl_getDrawPage() const;
89 
90 protected:
91 
92     // ____ chart::XChartDocument ____
93     virtual ::com::sun::star::uno::Reference<
94         ::com::sun::star::drawing::XShape > SAL_CALL getTitle();
95     virtual ::com::sun::star::uno::Reference<
96         ::com::sun::star::drawing::XShape > SAL_CALL getSubTitle();
97     virtual ::com::sun::star::uno::Reference<
98         ::com::sun::star::drawing::XShape > SAL_CALL getLegend();
99     virtual ::com::sun::star::uno::Reference<
100         ::com::sun::star::beans::XPropertySet > SAL_CALL getArea();
101     virtual ::com::sun::star::uno::Reference<
102         ::com::sun::star::chart::XDiagram > SAL_CALL getDiagram();
103     virtual void SAL_CALL setDiagram( const ::com::sun::star::uno::Reference<
104                                       ::com::sun::star::chart::XDiagram >& xDiagram );
105     virtual ::com::sun::star::uno::Reference<
106         ::com::sun::star::chart::XChartData > SAL_CALL getData();
107     virtual void SAL_CALL attachData( const ::com::sun::star::uno::Reference<
108                                       ::com::sun::star::chart::XChartData >& xData );
109 
110     // ____ XModel ____
111     virtual sal_Bool SAL_CALL attachResource( const ::rtl::OUString& URL, const ::com::sun::star::uno::Sequence<
112                                               ::com::sun::star::beans::PropertyValue >& Arguments );
113     virtual ::rtl::OUString SAL_CALL getURL();
114     virtual ::com::sun::star::uno::Sequence<
115         ::com::sun::star::beans::PropertyValue > SAL_CALL getArgs();
116     virtual void SAL_CALL connectController( const ::com::sun::star::uno::Reference<
117                                              ::com::sun::star::frame::XController >& Controller );
118     virtual void SAL_CALL disconnectController( const ::com::sun::star::uno::Reference<
119                                                 ::com::sun::star::frame::XController >& Controller );
120     virtual void SAL_CALL lockControllers();
121     virtual void SAL_CALL unlockControllers();
122     virtual sal_Bool SAL_CALL hasControllersLocked();
123     virtual ::com::sun::star::uno::Reference<
124         ::com::sun::star::frame::XController > SAL_CALL getCurrentController();
125     virtual void SAL_CALL setCurrentController( const ::com::sun::star::uno::Reference<
126                                                 ::com::sun::star::frame::XController >& Controller );
127     virtual ::com::sun::star::uno::Reference<
128         ::com::sun::star::uno::XInterface > SAL_CALL getCurrentSelection();
129 
130     // ____ XComponent ____
131     virtual void SAL_CALL dispose();
132     virtual void SAL_CALL addEventListener( const ::com::sun::star::uno::Reference<
133                                             ::com::sun::star::lang::XEventListener >& xListener );
134     virtual void SAL_CALL removeEventListener( const ::com::sun::star::uno::Reference<
135                                                ::com::sun::star::lang::XEventListener >& aListener );
136 
137     // ____ XInterface (for new interfaces) ____
138     virtual ::com::sun::star::uno::Any SAL_CALL queryInterface( const ::com::sun::star::uno::Type& aType );
139 
140     // ____ ::utl::OEventListenerAdapter ____
141     virtual void _disposing( const ::com::sun::star::lang::EventObject& rSource );
142 
143     // ____ XDrawPageSupplier ____
144     virtual ::com::sun::star::uno::Reference<
145             ::com::sun::star::drawing::XDrawPage > SAL_CALL getDrawPage();
146 
147     // ____ XMultiServiceFactory ____
148     virtual ::com::sun::star::uno::Reference<
149             ::com::sun::star::uno::XInterface > SAL_CALL createInstance( const ::rtl::OUString& aServiceSpecifier );
150     virtual ::com::sun::star::uno::Reference<
151             ::com::sun::star::uno::XInterface > SAL_CALL createInstanceWithArguments(
152                 const ::rtl::OUString& ServiceSpecifier,
153                 const ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Any >& Arguments );
154     virtual ::com::sun::star::uno::Sequence<
155             ::rtl::OUString > SAL_CALL getAvailableServiceNames();
156 
157     // ____ XAggregation ____
158     virtual void SAL_CALL setDelegator(
159         const ::com::sun::star::uno::Reference<
160             ::com::sun::star::uno::XInterface >& rDelegator );
161     virtual ::com::sun::star::uno::Any SAL_CALL queryAggregation( const ::com::sun::star::uno::Type& aType );
162 
163     // ____ WrappedPropertySet ____
164     virtual const ::com::sun::star::uno::Sequence< ::com::sun::star::beans::Property >& getPropertySequence();
165     virtual const std::vector< WrappedProperty* > createWrappedProperties();
166     virtual ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet > getInnerPropertySet();
167 
168 private: //methods
169     void impl_resetAddIn();
170 
171 private: //member
172     ::boost::shared_ptr< Chart2ModelContact >   m_spChart2ModelContact;
173 
174     ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface >   m_xDelegator;
175 
176     ::com::sun::star::uno::Reference< ::com::sun::star::drawing::XShape >   m_xTitle;
177     ::com::sun::star::uno::Reference< ::com::sun::star::drawing::XShape >   m_xSubTitle;
178     ::com::sun::star::uno::Reference< ::com::sun::star::drawing::XShape >   m_xLegend;
179     ::com::sun::star::uno::Reference< ::com::sun::star::chart::XChartData > m_xChartData;
180     ::com::sun::star::uno::Reference< ::com::sun::star::chart::XDiagram >   m_xDiagram;
181     ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet > m_xArea;
182 
183     ::com::sun::star::uno::Reference< ::com::sun::star::util::XRefreshable > m_xAddIn;
184     rtl::OUString   m_aBaseDiagram;
185     sal_Bool        m_bUpdateAddIn;
186 
187     ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface >   m_xChartView;
188     ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory>
189                                                                             m_xShapeFactory;
190 
191     bool                                                                    m_bIsDisposed;
192 };
193 
194 } //  namespace wrapper
195 } //  namespace chart
196 
197 // CHART_CHARTDOCUMENT_HXX
198 #endif
199