xref: /trunk/main/extensions/source/dbpilots/groupboxwiz.hxx (revision 1ecadb572e7010ff3b3382ad9bf179dbc6efadbb)
1 /*************************************************************************
2  *
3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4  *
5  * Copyright 2000, 2010 Oracle and/or its affiliates.
6  *
7  * OpenOffice.org - a multi-platform office productivity suite
8  *
9  * This file is part of OpenOffice.org.
10  *
11  * OpenOffice.org is free software: you can redistribute it and/or modify
12  * it under the terms of the GNU Lesser General Public License version 3
13  * only, as published by the Free Software Foundation.
14  *
15  * OpenOffice.org is distributed in the hope that it will be useful,
16  * but WITHOUT ANY WARRANTY; without even the implied warranty of
17  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
18  * GNU Lesser General Public License version 3 for more details
19  * (a copy is included in the LICENSE file that accompanied this code).
20  *
21  * You should have received a copy of the GNU Lesser General Public License
22  * version 3 along with OpenOffice.org.  If not, see
23  * <http://www.openoffice.org/license.html>
24  * for a copy of the LGPLv3 License.
25  *
26  ************************************************************************/
27 
28 #ifndef _EXTENSIONS_DBP_GROUPBOXWIZ_HXX_
29 #define _EXTENSIONS_DBP_GROUPBOXWIZ_HXX_
30 
31 #include "controlwizard.hxx"
32 #include "commonpagesdbp.hxx"
33 
34 //.........................................................................
35 namespace dbp
36 {
37 //.........................................................................
38 
39     //=====================================================================
40     //= OOptionGroupSettings
41     //=====================================================================
42     struct OOptionGroupSettings : public OControlWizardSettings
43     {
44         StringArray     aLabels;
45         StringArray     aValues;
46         String          sDefaultField;
47         String          sDBField;
48         String          sName;
49     };
50 
51     //=====================================================================
52     //= OGroupBoxWizard
53     //=====================================================================
54     class OGroupBoxWizard : public OControlWizard
55     {
56     protected:
57         OOptionGroupSettings        m_aSettings;
58 
59         sal_Bool        m_bVisitedDefault   : 1;
60         sal_Bool        m_bVisitedDB        : 1;
61 
62     public:
63         OGroupBoxWizard(
64             Window* _pParent,
65             const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet >& _rxObjectModel,
66             const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& _rxORB
67         );
68 
69         OOptionGroupSettings& getSettings() { return m_aSettings; }
70 
71     protected:
72         // OWizardMachine overridables
73         virtual ::svt::OWizardPage* createPage( WizardState _nState );
74         virtual WizardState         determineNextState( WizardState _nCurrentState ) const;
75         virtual void                enterState( WizardState _nState );
76         virtual sal_Bool            onFinish();
77 
78         virtual sal_Bool approveControl(sal_Int16 _nClassId);
79 
80     protected:
81         void createRadios();
82     };
83 
84     //=====================================================================
85     //= OGBWPage
86     //=====================================================================
87     class OGBWPage : public OControlWizardPage
88     {
89     public:
90         OGBWPage( OControlWizard* _pParent, const ResId& _rId ) : OControlWizardPage(_pParent, _rId) { }
91 
92     protected:
93         OOptionGroupSettings& getSettings() { return static_cast<OGroupBoxWizard*>(getDialog())->getSettings(); }
94     };
95 
96     //=====================================================================
97     //= ORadioSelectionPage
98     //=====================================================================
99     class ORadioSelectionPage : public OGBWPage
100     {
101     protected:
102         FixedLine       m_aFrame;
103         FixedText       m_aRadioNameLabel;
104         Edit            m_aRadioName;
105         PushButton      m_aMoveRight;
106         PushButton      m_aMoveLeft;
107         FixedText       m_aExistingRadiosLabel;
108         ListBox         m_aExistingRadios;
109 
110     public:
111         ORadioSelectionPage( OControlWizard* _pParent );
112 
113     protected:
114         // TabPage overridables
115         void ActivatePage();
116 
117         // OWizardPage overridables
118         virtual void        initializePage();
119         virtual sal_Bool    commitPage( ::svt::WizardTypes::CommitPageReason _eReason );
120         virtual bool        canAdvance() const;
121 
122         DECL_LINK( OnMoveEntry, PushButton* );
123         DECL_LINK( OnEntrySelected, ListBox* );
124         DECL_LINK( OnNameModified, Edit* );
125 
126         void implCheckMoveButtons();
127     };
128 
129     //=====================================================================
130     //= ODefaultFieldSelectionPage
131     //=====================================================================
132     class ODefaultFieldSelectionPage : public OMaybeListSelectionPage
133     {
134     protected:
135         FixedLine       m_aFrame;
136         FixedText       m_aDefaultSelectionLabel;
137         RadioButton     m_aDefSelYes;
138         RadioButton     m_aDefSelNo;
139         ListBox         m_aDefSelection;
140 
141     public:
142         ODefaultFieldSelectionPage( OControlWizard* _pParent );
143 
144     protected:
145         // OWizardPage overridables
146         virtual void        initializePage();
147         virtual sal_Bool    commitPage( ::svt::WizardTypes::CommitPageReason _eReason );
148 
149         OOptionGroupSettings& getSettings() { return static_cast<OGroupBoxWizard*>(getDialog())->getSettings(); }
150     };
151 
152     //=====================================================================
153     //= OOptionValuesPage
154     //=====================================================================
155     class OOptionValuesPage : public OGBWPage
156     {
157     protected:
158         FixedLine       m_aFrame;
159         FixedText       m_aDescription;
160         FixedText       m_aValueLabel;
161         Edit            m_aValue;
162         FixedText       m_aOptionsLabel;
163         ListBox         m_aOptions;
164 
165         StringArray     m_aUncommittedValues;
166         ::svt::WizardTypes::WizardState
167                         m_nLastSelection;
168 
169     public:
170         OOptionValuesPage( OControlWizard* _pParent );
171 
172     protected:
173         // TabPage overridables
174         void ActivatePage();
175 
176         // OWizardPage overridables
177         virtual void        initializePage();
178         virtual sal_Bool    commitPage( ::svt::WizardTypes::CommitPageReason _eReason );
179 
180         void implTraveledOptions();
181 
182         DECL_LINK( OnOptionSelected, ListBox* );
183     };
184 
185     //=====================================================================
186     //= OOptionDBFieldPage
187     //=====================================================================
188     class OOptionDBFieldPage : public ODBFieldPage
189     {
190     public:
191         OOptionDBFieldPage( OControlWizard* _pParent );
192 
193     protected:
194         OOptionGroupSettings& getSettings() { return static_cast<OGroupBoxWizard*>(getDialog())->getSettings(); }
195 
196         // ODBFieldPage overridables
197         virtual String& getDBFieldSetting();
198     };
199 
200     //=====================================================================
201     //= OFinalizeGBWPage
202     //=====================================================================
203     class OFinalizeGBWPage : public OGBWPage
204     {
205     protected:
206         FixedLine       m_aFrame;
207         FixedText       m_aNameLabel;
208         Edit            m_aName;
209         FixedText       m_aThatsAll;
210 
211     public:
212         OFinalizeGBWPage( OControlWizard* _pParent );
213 
214     protected:
215         // TabPage overridables
216         void ActivatePage();
217 
218         // OWizardPage overridables
219         virtual void        initializePage();
220         virtual sal_Bool    commitPage( ::svt::WizardTypes::CommitPageReason _eReason );
221         virtual bool        canAdvance() const;
222     };
223 
224 //.........................................................................
225 }   // namespace dbp
226 //.........................................................................
227 
228 #endif // _EXTENSIONS_DBP_GROUPBOXWIZ_HXX_
229 
230