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