LibreOffice Module forms (master) 1
Columns.hxx
Go to the documentation of this file.
1/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2/*
3 * This file is part of the LibreOffice project.
4 *
5 * This Source Code Form is subject to the terms of the Mozilla Public
6 * License, v. 2.0. If a copy of the MPL was not distributed with this
7 * file, You can obtain one at http://mozilla.org/MPL/2.0/.
8 *
9 * This file incorporates work covered by the following license notice:
10 *
11 * Licensed to the Apache Software Foundation (ASF) under one or more
12 * contributor license agreements. See the NOTICE file distributed
13 * with this work for additional information regarding copyright
14 * ownership. The ASF licenses this file to you under the Apache
15 * License, Version 2.0 (the "License"); you may not use this file
16 * except in compliance with the License. You may obtain a copy of
17 * the License at http://www.apache.org/licenses/LICENSE-2.0 .
18 */
19
20#pragma once
21
22#include <cloneable.hxx>
23
24#include <com/sun/star/io/XObjectInputStream.hpp>
25#include <com/sun/star/io/XObjectOutputStream.hpp>
26#include <com/sun/star/lang/XUnoTunnel.hpp>
27#include <com/sun/star/uno/XComponentContext.hpp>
28#include <com/sun/star/util/XCloneable.hpp>
29
32#include <comphelper/uno3.hxx>
34#include <cppuhelper/compbase2.hxx>
35#include <rtl/ref.hxx>
36
37using namespace comphelper;
38
39
40namespace frm
41{
42
43typedef ::cppu::WeakAggComponentImplHelper2 < css::lang::XUnoTunnel
44 , css::util::XCloneable > OGridColumn_BASE;
46 ,public OGridColumn_BASE
47 ,public OPropertySetAggregationHelper
49{
50// [properties]
51 css::uno::Any m_aWidth; // column width
52 css::uno::Any m_aAlign; // column alignment
53 css::uno::Any m_aHidden; // column hidden?
54// [properties]
55
56 OUString m_aModelName;
57
58// [properties]
59 OUString m_aLabel; // Column name
60// [properties]
61
62public:
63 OGridColumn(const css::uno::Reference<css::uno::XComponentContext>& _rContext, OUString _sModelName);
64 explicit OGridColumn(const OGridColumn* _pOriginal );
65 virtual ~OGridColumn() override;
66
67 // UNO binding
69 virtual css::uno::Any SAL_CALL queryAggregation( const css::uno::Type& _rType ) override;
70
71 static const css::uno::Sequence<sal_Int8>& getUnoTunnelId();
72 // XUnoTunnel
73 virtual sal_Int64 SAL_CALL getSomething( const css::uno::Sequence<sal_Int8>& _rIdentifier) override;
74
75 // XTypeProvider
76 virtual css::uno::Sequence<sal_Int8> SAL_CALL getImplementationId() override;
77 virtual css::uno::Sequence< css::uno::Type> SAL_CALL getTypes() override;
78
79 // OComponentHelper
80 virtual void SAL_CALL disposing() override;
81
82 // XEventListener
83 virtual void SAL_CALL disposing(const css::lang::EventObject& _rSource) override;
84
85 // XPersistObject
86 void write(const css::uno::Reference< css::io::XObjectOutputStream>& _rxOutStream);
87 void read(const css::uno::Reference< css::io::XObjectInputStream>& _rxInStream);
88
89 // XPropertySet
90 virtual ::cppu::IPropertyArrayHelper& SAL_CALL getInfoHelper() override = 0;
91 virtual void SAL_CALL getFastPropertyValue(css::uno::Any& rValue, sal_Int32 nHandle ) const override;
92 virtual sal_Bool SAL_CALL convertFastPropertyValue(css::uno::Any& rConvertedValue, css::uno::Any& rOldValue,
93 sal_Int32 nHandle, const css::uno::Any& rValue ) override;
94 virtual void SAL_CALL setFastPropertyValue_NoBroadcast(sal_Int32 nHandle, const css::uno::Any& rValue) override;
95
96 using OPropertySetAggregationHelper::getFastPropertyValue;
97
98 // css::beans::XPropertyState
99 virtual css::uno::Any getPropertyDefaultByHandle( sal_Int32 nHandle ) const override;
100
101 // XCloneable
102 virtual css::uno::Reference< css::util::XCloneable > SAL_CALL createClone( ) override;
103
104 const OUString& getModelName() const { return m_aModelName; }
105
106protected:
107 static void clearAggregateProperties(css::uno::Sequence< css::beans::Property>& seqProps, bool bAllowDropDown);
108 static void setOwnProperties(css::uno::Sequence< css::beans::Property>& seqProps);
109
111};
112
113// column type ids
114#define TYPE_CHECKBOX 0
115#define TYPE_COMBOBOX 1
116#define TYPE_CURRENCYFIELD 2
117#define TYPE_DATEFIELD 3
118#define TYPE_FORMATTEDFIELD 4
119#define TYPE_LISTBOX 5
120#define TYPE_NUMERICFIELD 6
121#define TYPE_PATTERNFIELD 7
122#define TYPE_TEXTFIELD 8
123#define TYPE_TIMEFIELD 9
124
125// List of all known columns
126const css::uno::Sequence<OUString>& getColumnTypes();
127sal_Int32 getColumnTypeByModelName(const OUString& aModelName);
128
129// Columns
131 :public OGridColumn
132 ,public OAggregationArrayUsageHelper< TextFieldColumn >
133{
134public:
135 explicit TextFieldColumn(const css::uno::Reference<css::uno::XComponentContext>& _rContext );
136 explicit TextFieldColumn(const TextFieldColumn* _pCloneFrom);
137
138 virtual css::uno::Reference< css::beans::XPropertySetInfo> SAL_CALL getPropertySetInfo() override;
139 virtual ::cppu::IPropertyArrayHelper& SAL_CALL getInfoHelper() override;
140
141 virtual void fillProperties(
142 css::uno::Sequence< css::beans::Property >& /* [out] */ _rProps,
143 css::uno::Sequence< css::beans::Property >& /* [out] */ _rAggregateProps
144 ) const override;
145
146 virtual rtl::Reference<OGridColumn> createCloneColumn() const override;
147};
148
150 :public OGridColumn
151 ,public OAggregationArrayUsageHelper< PatternFieldColumn >
152{
153public:
154 explicit PatternFieldColumn(const css::uno::Reference<css::uno::XComponentContext>& _rContext );
155 explicit PatternFieldColumn(const PatternFieldColumn* _pCloneFrom);
156
157 virtual css::uno::Reference< css::beans::XPropertySetInfo> SAL_CALL getPropertySetInfo() override;
158 virtual ::cppu::IPropertyArrayHelper& SAL_CALL getInfoHelper() override;
159
160 virtual void fillProperties(
161 css::uno::Sequence< css::beans::Property >& /* [out] */ _rProps,
162 css::uno::Sequence< css::beans::Property >& /* [out] */ _rAggregateProps
163 ) const override;
164
165 virtual rtl::Reference<OGridColumn> createCloneColumn() const override;
166};
167
169 :public OGridColumn
170 ,public OAggregationArrayUsageHelper< DateFieldColumn >
171{
172public:
173 explicit DateFieldColumn(const css::uno::Reference<css::uno::XComponentContext>& _rContext );
174 explicit DateFieldColumn(const DateFieldColumn* _pCloneFrom);
175
176 virtual css::uno::Reference< css::beans::XPropertySetInfo> SAL_CALL getPropertySetInfo() override;
177 virtual ::cppu::IPropertyArrayHelper& SAL_CALL getInfoHelper() override;
178
179 virtual void fillProperties(
180 css::uno::Sequence< css::beans::Property >& /* [out] */ _rProps,
181 css::uno::Sequence< css::beans::Property >& /* [out] */ _rAggregateProps
182 ) const override;
183
184 virtual rtl::Reference<OGridColumn> createCloneColumn() const override;
185};
186
188 :public OGridColumn
189 ,public OAggregationArrayUsageHelper< TimeFieldColumn >
190{
191public:
192 explicit TimeFieldColumn(const css::uno::Reference<css::uno::XComponentContext>& _rContext );
193 explicit TimeFieldColumn(const TimeFieldColumn* _pCloneFrom);
194
195 virtual css::uno::Reference< css::beans::XPropertySetInfo> SAL_CALL getPropertySetInfo() override;
196 virtual ::cppu::IPropertyArrayHelper& SAL_CALL getInfoHelper() override;
197
198 virtual void fillProperties(
199 css::uno::Sequence< css::beans::Property >& /* [out] */ _rProps,
200 css::uno::Sequence< css::beans::Property >& /* [out] */ _rAggregateProps
201 ) const override;
202
203 virtual rtl::Reference<OGridColumn> createCloneColumn() const override;
204};
205
207 :public OGridColumn
208 ,public OAggregationArrayUsageHelper< NumericFieldColumn >
209{
210public:
211 explicit NumericFieldColumn(const css::uno::Reference<css::uno::XComponentContext>& _rContext );
212 explicit NumericFieldColumn(const NumericFieldColumn* _pCloneFrom);
213
214 virtual css::uno::Reference< css::beans::XPropertySetInfo> SAL_CALL getPropertySetInfo() override;
215 virtual ::cppu::IPropertyArrayHelper& SAL_CALL getInfoHelper() override;
216
217 virtual void fillProperties(
218 css::uno::Sequence< css::beans::Property >& /* [out] */ _rProps,
219 css::uno::Sequence< css::beans::Property >& /* [out] */ _rAggregateProps
220 ) const override;
221
222 virtual rtl::Reference<OGridColumn> createCloneColumn() const override;
223};
224
226 :public OGridColumn
227 ,public OAggregationArrayUsageHelper< CurrencyFieldColumn >
228{
229public:
230 explicit CurrencyFieldColumn(const css::uno::Reference<css::uno::XComponentContext>& _rContext );
231 explicit CurrencyFieldColumn(const CurrencyFieldColumn* _pCloneFrom);
232
233 virtual css::uno::Reference< css::beans::XPropertySetInfo> SAL_CALL getPropertySetInfo() override;
234 virtual ::cppu::IPropertyArrayHelper& SAL_CALL getInfoHelper() override;
235
236 virtual void fillProperties(
237 css::uno::Sequence< css::beans::Property >& /* [out] */ _rProps,
238 css::uno::Sequence< css::beans::Property >& /* [out] */ _rAggregateProps
239 ) const override;
240
241 virtual rtl::Reference<OGridColumn> createCloneColumn() const override;
242};
243
245 :public OGridColumn
246 ,public OAggregationArrayUsageHelper< CheckBoxColumn >
247{
248public:
249 explicit CheckBoxColumn(const css::uno::Reference<css::uno::XComponentContext>& _rContext );
250 explicit CheckBoxColumn(const CheckBoxColumn* _pCloneFrom);
251
252 virtual css::uno::Reference< css::beans::XPropertySetInfo> SAL_CALL getPropertySetInfo() override;
253 virtual ::cppu::IPropertyArrayHelper& SAL_CALL getInfoHelper() override;
254
255 virtual void fillProperties(
256 css::uno::Sequence< css::beans::Property >& /* [out] */ _rProps,
257 css::uno::Sequence< css::beans::Property >& /* [out] */ _rAggregateProps
258 ) const override;
259
260 virtual rtl::Reference<OGridColumn> createCloneColumn() const override;
261};
262
264 :public OGridColumn
265 ,public OAggregationArrayUsageHelper< ComboBoxColumn >
266{
267public:
268 explicit ComboBoxColumn(const css::uno::Reference<css::uno::XComponentContext>& _rContext );
269 explicit ComboBoxColumn(const ComboBoxColumn* _pCloneFrom);
270
271 virtual css::uno::Reference< css::beans::XPropertySetInfo> SAL_CALL getPropertySetInfo() override;
272 virtual ::cppu::IPropertyArrayHelper& SAL_CALL getInfoHelper() override;
273
274 virtual void fillProperties(
275 css::uno::Sequence< css::beans::Property >& /* [out] */ _rProps,
276 css::uno::Sequence< css::beans::Property >& /* [out] */ _rAggregateProps
277 ) const override;
278
279 virtual rtl::Reference<OGridColumn> createCloneColumn() const override;
280};
281
283 :public OGridColumn
284 ,public OAggregationArrayUsageHelper< ListBoxColumn >
285{
286public:
287 explicit ListBoxColumn(const css::uno::Reference<css::uno::XComponentContext>& _rContext );
288 explicit ListBoxColumn(const ListBoxColumn* _pCloneFrom);
289
290 virtual css::uno::Reference< css::beans::XPropertySetInfo> SAL_CALL getPropertySetInfo() override;
291 virtual ::cppu::IPropertyArrayHelper& SAL_CALL getInfoHelper() override;
292
293 virtual void fillProperties(
294 css::uno::Sequence< css::beans::Property >& /* [out] */ _rProps,
295 css::uno::Sequence< css::beans::Property >& /* [out] */ _rAggregateProps
296 ) const override;
297
298 virtual rtl::Reference<OGridColumn> createCloneColumn() const override;
299};
300
302 :public OGridColumn
303 ,public OAggregationArrayUsageHelper< FormattedFieldColumn >
304{
305public:
306 explicit FormattedFieldColumn(const css::uno::Reference<css::uno::XComponentContext>& _rContext );
307 explicit FormattedFieldColumn(const FormattedFieldColumn* _pCloneFrom);
308
309 virtual css::uno::Reference< css::beans::XPropertySetInfo> SAL_CALL getPropertySetInfo() override;
310 virtual ::cppu::IPropertyArrayHelper& SAL_CALL getInfoHelper() override;
311
312 virtual void fillProperties(
313 css::uno::Sequence< css::beans::Property >& /* [out] */ _rProps,
314 css::uno::Sequence< css::beans::Property >& /* [out] */ _rAggregateProps
315 ) const override;
316
317 virtual rtl::Reference<OGridColumn> createCloneColumn() const override;
318};
319
320} // namespace frm
321
322/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
virtual void fillProperties(css::uno::Sequence< css::beans::Property > &_rProps, css::uno::Sequence< css::beans::Property > &_rAggregateProps) const override
Definition: Columns.cxx:779
virtual css::uno::Reference< css::beans::XPropertySetInfo > SAL_CALL getPropertySetInfo() override
Definition: Columns.cxx:770
virtual rtl::Reference< OGridColumn > createCloneColumn() const override
Definition: Columns.cxx:791
CheckBoxColumn(const css::uno::Reference< css::uno::XComponentContext > &_rContext)
Definition: Columns.cxx:762
virtual ::cppu::IPropertyArrayHelper &SAL_CALL getInfoHelper() override
Definition: Columns.cxx:775
virtual ::cppu::IPropertyArrayHelper &SAL_CALL getInfoHelper() override
Definition: Columns.cxx:809
ComboBoxColumn(const css::uno::Reference< css::uno::XComponentContext > &_rContext)
Definition: Columns.cxx:796
virtual rtl::Reference< OGridColumn > createCloneColumn() const override
Definition: Columns.cxx:825
virtual css::uno::Reference< css::beans::XPropertySetInfo > SAL_CALL getPropertySetInfo() override
Definition: Columns.cxx:804
virtual void fillProperties(css::uno::Sequence< css::beans::Property > &_rProps, css::uno::Sequence< css::beans::Property > &_rAggregateProps) const override
Definition: Columns.cxx:813
virtual rtl::Reference< OGridColumn > createCloneColumn() const override
Definition: Columns.cxx:757
CurrencyFieldColumn(const css::uno::Reference< css::uno::XComponentContext > &_rContext)
Definition: Columns.cxx:728
virtual ::cppu::IPropertyArrayHelper &SAL_CALL getInfoHelper() override
Definition: Columns.cxx:741
virtual css::uno::Reference< css::beans::XPropertySetInfo > SAL_CALL getPropertySetInfo() override
Definition: Columns.cxx:736
virtual void fillProperties(css::uno::Sequence< css::beans::Property > &_rProps, css::uno::Sequence< css::beans::Property > &_rAggregateProps) const override
Definition: Columns.cxx:745
virtual void fillProperties(css::uno::Sequence< css::beans::Property > &_rProps, css::uno::Sequence< css::beans::Property > &_rAggregateProps) const override
Definition: Columns.cxx:643
virtual ::cppu::IPropertyArrayHelper &SAL_CALL getInfoHelper() override
Definition: Columns.cxx:639
DateFieldColumn(const css::uno::Reference< css::uno::XComponentContext > &_rContext)
Definition: Columns.cxx:626
virtual css::uno::Reference< css::beans::XPropertySetInfo > SAL_CALL getPropertySetInfo() override
Definition: Columns.cxx:634
virtual rtl::Reference< OGridColumn > createCloneColumn() const override
Definition: Columns.cxx:655
FormattedFieldColumn(const css::uno::Reference< css::uno::XComponentContext > &_rContext)
Definition: Columns.cxx:864
virtual css::uno::Reference< css::beans::XPropertySetInfo > SAL_CALL getPropertySetInfo() override
Definition: Columns.cxx:872
virtual void fillProperties(css::uno::Sequence< css::beans::Property > &_rProps, css::uno::Sequence< css::beans::Property > &_rAggregateProps) const override
Definition: Columns.cxx:881
virtual rtl::Reference< OGridColumn > createCloneColumn() const override
Definition: Columns.cxx:893
virtual ::cppu::IPropertyArrayHelper &SAL_CALL getInfoHelper() override
Definition: Columns.cxx:877
virtual void fillProperties(css::uno::Sequence< css::beans::Property > &_rProps, css::uno::Sequence< css::beans::Property > &_rAggregateProps) const override
Definition: Columns.cxx:847
virtual css::uno::Reference< css::beans::XPropertySetInfo > SAL_CALL getPropertySetInfo() override
Definition: Columns.cxx:838
ListBoxColumn(const css::uno::Reference< css::uno::XComponentContext > &_rContext)
Definition: Columns.cxx:830
virtual ::cppu::IPropertyArrayHelper &SAL_CALL getInfoHelper() override
Definition: Columns.cxx:843
virtual rtl::Reference< OGridColumn > createCloneColumn() const override
Definition: Columns.cxx:859
virtual rtl::Reference< OGridColumn > createCloneColumn() const override
Definition: Columns.cxx:723
virtual void fillProperties(css::uno::Sequence< css::beans::Property > &_rProps, css::uno::Sequence< css::beans::Property > &_rAggregateProps) const override
Definition: Columns.cxx:711
virtual css::uno::Reference< css::beans::XPropertySetInfo > SAL_CALL getPropertySetInfo() override
Definition: Columns.cxx:702
NumericFieldColumn(const css::uno::Reference< css::uno::XComponentContext > &_rContext)
Definition: Columns.cxx:694
virtual ::cppu::IPropertyArrayHelper &SAL_CALL getInfoHelper() override
Definition: Columns.cxx:707
virtual void SAL_CALL setFastPropertyValue_NoBroadcast(sal_Int32 nHandle, const css::uno::Any &rValue) override
Definition: Columns.cxx:416
virtual rtl::Reference< OGridColumn > createCloneColumn() const =0
virtual void SAL_CALL disposing(const css::lang::EventObject &_rSource) override
virtual css::uno::Sequence< css::uno::Type > SAL_CALL getTypes() override
Definition: Columns.cxx:142
virtual css::uno::Any getPropertyDefaultByHandle(sal_Int32 nHandle) const override
Definition: Columns.cxx:439
virtual ::cppu::IPropertyArrayHelper &SAL_CALL getInfoHelper() override=0
virtual ~OGridColumn() override
Definition: Columns.cxx:245
virtual css::uno::Reference< css::util::XCloneable > SAL_CALL createClone() override
Definition: Columns.cxx:455
virtual void SAL_CALL getFastPropertyValue(css::uno::Any &rValue, sal_Int32 nHandle) const override
Definition: Columns.cxx:360
static void clearAggregateProperties(css::uno::Sequence< css::beans::Property > &seqProps, bool bAllowDropDown)
Definition: Columns.cxx:286
OUString m_aModelName
Definition: Columns.hxx:56
css::uno::Any m_aHidden
Definition: Columns.hxx:53
css::uno::Any m_aWidth
Definition: Columns.hxx:51
void write(const css::uno::Reference< css::io::XObjectOutputStream > &_rxOutStream)
Definition: Columns.cxx:462
const OUString & getModelName() const
Definition: Columns.hxx:104
virtual css::uno::Any SAL_CALL queryAggregation(const css::uno::Type &_rType) override
Definition: Columns.cxx:166
OUString m_aLabel
Definition: Columns.hxx:59
virtual void SAL_CALL disposing() override
Definition: Columns.cxx:275
virtual sal_Int64 SAL_CALL getSomething(const css::uno::Sequence< sal_Int8 > &_rIdentifier) override
Definition: Columns.cxx:118
css::uno::Any m_aAlign
Definition: Columns.hxx:52
void read(const css::uno::Reference< css::io::XObjectInputStream > &_rxInStream)
Definition: Columns.cxx:510
virtual css::uno::Sequence< sal_Int8 > SAL_CALL getImplementationId() override
Definition: Columns.cxx:136
virtual sal_Bool SAL_CALL convertFastPropertyValue(css::uno::Any &rConvertedValue, css::uno::Any &rOldValue, sal_Int32 nHandle, const css::uno::Any &rValue) override
Definition: Columns.cxx:385
OGridColumn(const css::uno::Reference< css::uno::XComponentContext > &_rContext, OUString _sModelName)
static const css::uno::Sequence< sal_Int8 > & getUnoTunnelId()
Definition: Columns.cxx:111
static void setOwnProperties(css::uno::Sequence< css::beans::Property > &seqProps)
Definition: Columns.cxx:346
virtual rtl::Reference< OGridColumn > createCloneColumn() const override
Definition: Columns.cxx:621
virtual css::uno::Reference< css::beans::XPropertySetInfo > SAL_CALL getPropertySetInfo() override
Definition: Columns.cxx:600
virtual ::cppu::IPropertyArrayHelper &SAL_CALL getInfoHelper() override
Definition: Columns.cxx:605
PatternFieldColumn(const css::uno::Reference< css::uno::XComponentContext > &_rContext)
Definition: Columns.cxx:592
virtual void fillProperties(css::uno::Sequence< css::beans::Property > &_rProps, css::uno::Sequence< css::beans::Property > &_rAggregateProps) const override
Definition: Columns.cxx:609
TextFieldColumn(const css::uno::Reference< css::uno::XComponentContext > &_rContext)
Definition: Columns.cxx:558
virtual ::cppu::IPropertyArrayHelper &SAL_CALL getInfoHelper() override
Definition: Columns.cxx:571
virtual css::uno::Reference< css::beans::XPropertySetInfo > SAL_CALL getPropertySetInfo() override
Definition: Columns.cxx:566
virtual rtl::Reference< OGridColumn > createCloneColumn() const override
Definition: Columns.cxx:587
virtual void fillProperties(css::uno::Sequence< css::beans::Property > &_rProps, css::uno::Sequence< css::beans::Property > &_rAggregateProps) const override
Definition: Columns.cxx:575
virtual void fillProperties(css::uno::Sequence< css::beans::Property > &_rProps, css::uno::Sequence< css::beans::Property > &_rAggregateProps) const override
Definition: Columns.cxx:677
virtual css::uno::Reference< css::beans::XPropertySetInfo > SAL_CALL getPropertySetInfo() override
Definition: Columns.cxx:668
virtual rtl::Reference< OGridColumn > createCloneColumn() const override
Definition: Columns.cxx:689
TimeFieldColumn(const css::uno::Reference< css::uno::XComponentContext > &_rContext)
Definition: Columns.cxx:660
virtual ::cppu::IPropertyArrayHelper &SAL_CALL getInfoHelper() override
Definition: Columns.cxx:673
ListBox is a bit confusing / different from other form components, so here are a few notes:
Definition: BaseListBox.hxx:25
::cppu::WeakAggComponentImplHelper2< css::lang::XUnoTunnel, css::util::XCloneable > OGridColumn_BASE
Definition: Columns.hxx:44
const css::uno::Sequence< OUString > & getColumnTypes()
Definition: Columns.cxx:62
sal_Int32 getColumnTypeByModelName(const OUString &aModelName)
Definition: Columns.cxx:84
unsigned char sal_Bool
#define DECLARE_UNO3_AGG_DEFAULTS(classname, baseclass)