xref: /AOO41X/main/extensions/source/dbpilots/groupboxwiz.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 
24 #ifndef _EXTENSIONS_DBP_GROUPBOXWIZ_HXX_
25 #define _EXTENSIONS_DBP_GROUPBOXWIZ_HXX_
26 
27 #include "controlwizard.hxx"
28 #include "commonpagesdbp.hxx"
29 
30 //.........................................................................
31 namespace dbp
32 {
33 //.........................................................................
34 
35     //=====================================================================
36     //= OOptionGroupSettings
37     //=====================================================================
38     struct OOptionGroupSettings : public OControlWizardSettings
39     {
40         StringArray     aLabels;
41         StringArray     aValues;
42         String          sDefaultField;
43         String          sDBField;
44         String          sName;
45     };
46 
47     //=====================================================================
48     //= OGroupBoxWizard
49     //=====================================================================
50     class OGroupBoxWizard : public OControlWizard
51     {
52     protected:
53         OOptionGroupSettings        m_aSettings;
54 
55         sal_Bool        m_bVisitedDefault   : 1;
56         sal_Bool        m_bVisitedDB        : 1;
57 
58     public:
59         OGroupBoxWizard(
60             Window* _pParent,
61             const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet >& _rxObjectModel,
62             const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& _rxORB
63         );
64 
getSettings()65         OOptionGroupSettings& getSettings() { return m_aSettings; }
66 
67     protected:
68         // OWizardMachine overridables
69         virtual ::svt::OWizardPage* createPage( WizardState _nState );
70         virtual WizardState         determineNextState( WizardState _nCurrentState ) const;
71         virtual void                enterState( WizardState _nState );
72         virtual sal_Bool            onFinish();
73 
74         virtual sal_Bool approveControl(sal_Int16 _nClassId);
75 
76     protected:
77         void createRadios();
78     };
79 
80     //=====================================================================
81     //= OGBWPage
82     //=====================================================================
83     class OGBWPage : public OControlWizardPage
84     {
85     public:
OGBWPage(OControlWizard * _pParent,const ResId & _rId)86         OGBWPage( OControlWizard* _pParent, const ResId& _rId ) : OControlWizardPage(_pParent, _rId) { }
87 
88     protected:
getSettings()89         OOptionGroupSettings& getSettings() { return static_cast<OGroupBoxWizard*>(getDialog())->getSettings(); }
90     };
91 
92     //=====================================================================
93     //= ORadioSelectionPage
94     //=====================================================================
95     class ORadioSelectionPage : public OGBWPage
96     {
97     protected:
98         FixedLine       m_aFrame;
99         FixedText       m_aRadioNameLabel;
100         Edit            m_aRadioName;
101         PushButton      m_aMoveRight;
102         PushButton      m_aMoveLeft;
103         FixedText       m_aExistingRadiosLabel;
104         ListBox         m_aExistingRadios;
105 
106     public:
107         ORadioSelectionPage( OControlWizard* _pParent );
108 
109     protected:
110         // TabPage overridables
111         void ActivatePage();
112 
113         // OWizardPage overridables
114         virtual void        initializePage();
115         virtual sal_Bool    commitPage( ::svt::WizardTypes::CommitPageReason _eReason );
116         virtual bool        canAdvance() const;
117 
118         DECL_LINK( OnMoveEntry, PushButton* );
119         DECL_LINK( OnEntrySelected, ListBox* );
120         DECL_LINK( OnNameModified, Edit* );
121 
122         void implCheckMoveButtons();
123     };
124 
125     //=====================================================================
126     //= ODefaultFieldSelectionPage
127     //=====================================================================
128     class ODefaultFieldSelectionPage : public OMaybeListSelectionPage
129     {
130     protected:
131         FixedLine       m_aFrame;
132         FixedText       m_aDefaultSelectionLabel;
133         RadioButton     m_aDefSelYes;
134         RadioButton     m_aDefSelNo;
135         ListBox         m_aDefSelection;
136 
137     public:
138         ODefaultFieldSelectionPage( OControlWizard* _pParent );
139 
140     protected:
141         // OWizardPage overridables
142         virtual void        initializePage();
143         virtual sal_Bool    commitPage( ::svt::WizardTypes::CommitPageReason _eReason );
144 
getSettings()145         OOptionGroupSettings& getSettings() { return static_cast<OGroupBoxWizard*>(getDialog())->getSettings(); }
146     };
147 
148     //=====================================================================
149     //= OOptionValuesPage
150     //=====================================================================
151     class OOptionValuesPage : public OGBWPage
152     {
153     protected:
154         FixedLine       m_aFrame;
155         FixedText       m_aDescription;
156         FixedText       m_aValueLabel;
157         Edit            m_aValue;
158         FixedText       m_aOptionsLabel;
159         ListBox         m_aOptions;
160 
161         StringArray     m_aUncommittedValues;
162         ::svt::WizardTypes::WizardState
163                         m_nLastSelection;
164 
165     public:
166         OOptionValuesPage( OControlWizard* _pParent );
167 
168     protected:
169         // TabPage overridables
170         void ActivatePage();
171 
172         // OWizardPage overridables
173         virtual void        initializePage();
174         virtual sal_Bool    commitPage( ::svt::WizardTypes::CommitPageReason _eReason );
175 
176         void implTraveledOptions();
177 
178         DECL_LINK( OnOptionSelected, ListBox* );
179     };
180 
181     //=====================================================================
182     //= OOptionDBFieldPage
183     //=====================================================================
184     class OOptionDBFieldPage : public ODBFieldPage
185     {
186     public:
187         OOptionDBFieldPage( OControlWizard* _pParent );
188 
189     protected:
getSettings()190         OOptionGroupSettings& getSettings() { return static_cast<OGroupBoxWizard*>(getDialog())->getSettings(); }
191 
192         // ODBFieldPage overridables
193         virtual String& getDBFieldSetting();
194     };
195 
196     //=====================================================================
197     //= OFinalizeGBWPage
198     //=====================================================================
199     class OFinalizeGBWPage : public OGBWPage
200     {
201     protected:
202         FixedLine       m_aFrame;
203         FixedText       m_aNameLabel;
204         Edit            m_aName;
205         FixedText       m_aThatsAll;
206 
207     public:
208         OFinalizeGBWPage( OControlWizard* _pParent );
209 
210     protected:
211         // TabPage overridables
212         void ActivatePage();
213 
214         // OWizardPage overridables
215         virtual void        initializePage();
216         virtual sal_Bool    commitPage( ::svt::WizardTypes::CommitPageReason _eReason );
217         virtual bool        canAdvance() const;
218     };
219 
220 //.........................................................................
221 }   // namespace dbp
222 //.........................................................................
223 
224 #endif // _EXTENSIONS_DBP_GROUPBOXWIZ_HXX_
225 
226