1*46dbaceeSAndrew Rist /**************************************************************
2cdf0e10cSrcweir  *
3*46dbaceeSAndrew Rist  * Licensed to the Apache Software Foundation (ASF) under one
4*46dbaceeSAndrew Rist  * or more contributor license agreements.  See the NOTICE file
5*46dbaceeSAndrew Rist  * distributed with this work for additional information
6*46dbaceeSAndrew Rist  * regarding copyright ownership.  The ASF licenses this file
7*46dbaceeSAndrew Rist  * to you under the Apache License, Version 2.0 (the
8*46dbaceeSAndrew Rist  * "License"); you may not use this file except in compliance
9*46dbaceeSAndrew Rist  * with the License.  You may obtain a copy of the License at
10*46dbaceeSAndrew Rist  *
11*46dbaceeSAndrew Rist  *   http://www.apache.org/licenses/LICENSE-2.0
12*46dbaceeSAndrew Rist  *
13*46dbaceeSAndrew Rist  * Unless required by applicable law or agreed to in writing,
14*46dbaceeSAndrew Rist  * software distributed under the License is distributed on an
15*46dbaceeSAndrew Rist  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16*46dbaceeSAndrew Rist  * KIND, either express or implied.  See the License for the
17*46dbaceeSAndrew Rist  * specific language governing permissions and limitations
18*46dbaceeSAndrew Rist  * under the License.
19*46dbaceeSAndrew Rist  *
20*46dbaceeSAndrew Rist  *************************************************************/
21*46dbaceeSAndrew Rist 
22*46dbaceeSAndrew Rist 
23cdf0e10cSrcweir 
24cdf0e10cSrcweir #ifndef _EXTENSIONS_DBP_GROUPBOXWIZ_HXX_
25cdf0e10cSrcweir #define _EXTENSIONS_DBP_GROUPBOXWIZ_HXX_
26cdf0e10cSrcweir 
27cdf0e10cSrcweir #include "controlwizard.hxx"
28cdf0e10cSrcweir #include "commonpagesdbp.hxx"
29cdf0e10cSrcweir 
30cdf0e10cSrcweir //.........................................................................
31cdf0e10cSrcweir namespace dbp
32cdf0e10cSrcweir {
33cdf0e10cSrcweir //.........................................................................
34cdf0e10cSrcweir 
35cdf0e10cSrcweir 	//=====================================================================
36cdf0e10cSrcweir 	//= OOptionGroupSettings
37cdf0e10cSrcweir 	//=====================================================================
38cdf0e10cSrcweir 	struct OOptionGroupSettings : public OControlWizardSettings
39cdf0e10cSrcweir 	{
40cdf0e10cSrcweir 		StringArray		aLabels;
41cdf0e10cSrcweir 		StringArray		aValues;
42cdf0e10cSrcweir 		String			sDefaultField;
43cdf0e10cSrcweir 		String			sDBField;
44cdf0e10cSrcweir 		String			sName;
45cdf0e10cSrcweir 	};
46cdf0e10cSrcweir 
47cdf0e10cSrcweir 	//=====================================================================
48cdf0e10cSrcweir 	//= OGroupBoxWizard
49cdf0e10cSrcweir 	//=====================================================================
50cdf0e10cSrcweir 	class OGroupBoxWizard : public OControlWizard
51cdf0e10cSrcweir 	{
52cdf0e10cSrcweir 	protected:
53cdf0e10cSrcweir 		OOptionGroupSettings		m_aSettings;
54cdf0e10cSrcweir 
55cdf0e10cSrcweir 		sal_Bool		m_bVisitedDefault	: 1;
56cdf0e10cSrcweir 		sal_Bool		m_bVisitedDB		: 1;
57cdf0e10cSrcweir 
58cdf0e10cSrcweir 	public:
59cdf0e10cSrcweir 		OGroupBoxWizard(
60cdf0e10cSrcweir 			Window* _pParent,
61cdf0e10cSrcweir 			const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet >& _rxObjectModel,
62cdf0e10cSrcweir 			const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& _rxORB
63cdf0e10cSrcweir 		);
64cdf0e10cSrcweir 
getSettings()65cdf0e10cSrcweir 		OOptionGroupSettings& getSettings() { return m_aSettings; }
66cdf0e10cSrcweir 
67cdf0e10cSrcweir 	protected:
68cdf0e10cSrcweir 		// OWizardMachine overridables
69cdf0e10cSrcweir 		virtual ::svt::OWizardPage*	createPage( WizardState _nState );
70cdf0e10cSrcweir 		virtual WizardState	        determineNextState( WizardState _nCurrentState ) const;
71cdf0e10cSrcweir 		virtual	void			    enterState( WizardState _nState );
72cdf0e10cSrcweir 		virtual sal_Bool            onFinish();
73cdf0e10cSrcweir 
74cdf0e10cSrcweir 		virtual sal_Bool approveControl(sal_Int16 _nClassId);
75cdf0e10cSrcweir 
76cdf0e10cSrcweir 	protected:
77cdf0e10cSrcweir 		void createRadios();
78cdf0e10cSrcweir 	};
79cdf0e10cSrcweir 
80cdf0e10cSrcweir 	//=====================================================================
81cdf0e10cSrcweir 	//= OGBWPage
82cdf0e10cSrcweir 	//=====================================================================
83cdf0e10cSrcweir 	class OGBWPage : public OControlWizardPage
84cdf0e10cSrcweir 	{
85cdf0e10cSrcweir 	public:
OGBWPage(OControlWizard * _pParent,const ResId & _rId)86cdf0e10cSrcweir 		OGBWPage( OControlWizard* _pParent, const ResId& _rId ) : OControlWizardPage(_pParent, _rId) { }
87cdf0e10cSrcweir 
88cdf0e10cSrcweir 	protected:
getSettings()89cdf0e10cSrcweir 		OOptionGroupSettings& getSettings() { return static_cast<OGroupBoxWizard*>(getDialog())->getSettings(); }
90cdf0e10cSrcweir 	};
91cdf0e10cSrcweir 
92cdf0e10cSrcweir 	//=====================================================================
93cdf0e10cSrcweir 	//= ORadioSelectionPage
94cdf0e10cSrcweir 	//=====================================================================
95cdf0e10cSrcweir 	class ORadioSelectionPage : public OGBWPage
96cdf0e10cSrcweir 	{
97cdf0e10cSrcweir 	protected:
98cdf0e10cSrcweir 		FixedLine		m_aFrame;
99cdf0e10cSrcweir 		FixedText		m_aRadioNameLabel;
100cdf0e10cSrcweir 		Edit			m_aRadioName;
101cdf0e10cSrcweir 		PushButton		m_aMoveRight;
102cdf0e10cSrcweir 		PushButton		m_aMoveLeft;
103cdf0e10cSrcweir 		FixedText		m_aExistingRadiosLabel;
104cdf0e10cSrcweir 		ListBox			m_aExistingRadios;
105cdf0e10cSrcweir 
106cdf0e10cSrcweir 	public:
107cdf0e10cSrcweir 		ORadioSelectionPage( OControlWizard* _pParent );
108cdf0e10cSrcweir 
109cdf0e10cSrcweir 	protected:
110cdf0e10cSrcweir 		// TabPage overridables
111cdf0e10cSrcweir 		void ActivatePage();
112cdf0e10cSrcweir 
113cdf0e10cSrcweir 		// OWizardPage overridables
114cdf0e10cSrcweir 		virtual void		initializePage();
115cdf0e10cSrcweir 		virtual sal_Bool	commitPage( ::svt::WizardTypes::CommitPageReason _eReason );
116cdf0e10cSrcweir 		virtual bool        canAdvance() const;
117cdf0e10cSrcweir 
118cdf0e10cSrcweir 		DECL_LINK( OnMoveEntry, PushButton* );
119cdf0e10cSrcweir 		DECL_LINK( OnEntrySelected, ListBox* );
120cdf0e10cSrcweir 		DECL_LINK( OnNameModified, Edit* );
121cdf0e10cSrcweir 
122cdf0e10cSrcweir 		void implCheckMoveButtons();
123cdf0e10cSrcweir 	};
124cdf0e10cSrcweir 
125cdf0e10cSrcweir 	//=====================================================================
126cdf0e10cSrcweir 	//= ODefaultFieldSelectionPage
127cdf0e10cSrcweir 	//=====================================================================
128cdf0e10cSrcweir 	class ODefaultFieldSelectionPage : public OMaybeListSelectionPage
129cdf0e10cSrcweir 	{
130cdf0e10cSrcweir 	protected:
131cdf0e10cSrcweir 		FixedLine		m_aFrame;
132cdf0e10cSrcweir 		FixedText		m_aDefaultSelectionLabel;
133cdf0e10cSrcweir 		RadioButton		m_aDefSelYes;
134cdf0e10cSrcweir 		RadioButton		m_aDefSelNo;
135cdf0e10cSrcweir 		ListBox			m_aDefSelection;
136cdf0e10cSrcweir 
137cdf0e10cSrcweir 	public:
138cdf0e10cSrcweir 		ODefaultFieldSelectionPage( OControlWizard* _pParent );
139cdf0e10cSrcweir 
140cdf0e10cSrcweir 	protected:
141cdf0e10cSrcweir 		// OWizardPage overridables
142cdf0e10cSrcweir 		virtual void		initializePage();
143cdf0e10cSrcweir 		virtual sal_Bool	commitPage( ::svt::WizardTypes::CommitPageReason _eReason );
144cdf0e10cSrcweir 
getSettings()145cdf0e10cSrcweir 		OOptionGroupSettings& getSettings() { return static_cast<OGroupBoxWizard*>(getDialog())->getSettings(); }
146cdf0e10cSrcweir 	};
147cdf0e10cSrcweir 
148cdf0e10cSrcweir 	//=====================================================================
149cdf0e10cSrcweir 	//= OOptionValuesPage
150cdf0e10cSrcweir 	//=====================================================================
151cdf0e10cSrcweir 	class OOptionValuesPage : public OGBWPage
152cdf0e10cSrcweir 	{
153cdf0e10cSrcweir 	protected:
154cdf0e10cSrcweir 		FixedLine		m_aFrame;
155cdf0e10cSrcweir 		FixedText		m_aDescription;
156cdf0e10cSrcweir 		FixedText		m_aValueLabel;
157cdf0e10cSrcweir 		Edit			m_aValue;
158cdf0e10cSrcweir 		FixedText		m_aOptionsLabel;
159cdf0e10cSrcweir 		ListBox			m_aOptions;
160cdf0e10cSrcweir 
161cdf0e10cSrcweir 		StringArray		m_aUncommittedValues;
162cdf0e10cSrcweir 		::svt::WizardTypes::WizardState
163cdf0e10cSrcweir                         m_nLastSelection;
164cdf0e10cSrcweir 
165cdf0e10cSrcweir 	public:
166cdf0e10cSrcweir 		OOptionValuesPage( OControlWizard* _pParent );
167cdf0e10cSrcweir 
168cdf0e10cSrcweir 	protected:
169cdf0e10cSrcweir 		// TabPage overridables
170cdf0e10cSrcweir 		void ActivatePage();
171cdf0e10cSrcweir 
172cdf0e10cSrcweir 		// OWizardPage overridables
173cdf0e10cSrcweir 		virtual void		initializePage();
174cdf0e10cSrcweir 		virtual sal_Bool	commitPage( ::svt::WizardTypes::CommitPageReason _eReason );
175cdf0e10cSrcweir 
176cdf0e10cSrcweir 		void implTraveledOptions();
177cdf0e10cSrcweir 
178cdf0e10cSrcweir 		DECL_LINK( OnOptionSelected, ListBox* );
179cdf0e10cSrcweir 	};
180cdf0e10cSrcweir 
181cdf0e10cSrcweir 	//=====================================================================
182cdf0e10cSrcweir 	//= OOptionDBFieldPage
183cdf0e10cSrcweir 	//=====================================================================
184cdf0e10cSrcweir 	class OOptionDBFieldPage : public ODBFieldPage
185cdf0e10cSrcweir 	{
186cdf0e10cSrcweir 	public:
187cdf0e10cSrcweir 		OOptionDBFieldPage( OControlWizard* _pParent );
188cdf0e10cSrcweir 
189cdf0e10cSrcweir 	protected:
getSettings()190cdf0e10cSrcweir 		OOptionGroupSettings& getSettings() { return static_cast<OGroupBoxWizard*>(getDialog())->getSettings(); }
191cdf0e10cSrcweir 
192cdf0e10cSrcweir 		// ODBFieldPage overridables
193cdf0e10cSrcweir 		virtual String& getDBFieldSetting();
194cdf0e10cSrcweir 	};
195cdf0e10cSrcweir 
196cdf0e10cSrcweir 	//=====================================================================
197cdf0e10cSrcweir 	//= OFinalizeGBWPage
198cdf0e10cSrcweir 	//=====================================================================
199cdf0e10cSrcweir 	class OFinalizeGBWPage : public OGBWPage
200cdf0e10cSrcweir 	{
201cdf0e10cSrcweir 	protected:
202cdf0e10cSrcweir 		FixedLine		m_aFrame;
203cdf0e10cSrcweir 		FixedText		m_aNameLabel;
204cdf0e10cSrcweir 		Edit			m_aName;
205cdf0e10cSrcweir 		FixedText		m_aThatsAll;
206cdf0e10cSrcweir 
207cdf0e10cSrcweir 	public:
208cdf0e10cSrcweir 		OFinalizeGBWPage( OControlWizard* _pParent );
209cdf0e10cSrcweir 
210cdf0e10cSrcweir 	protected:
211cdf0e10cSrcweir 		// TabPage overridables
212cdf0e10cSrcweir 		void ActivatePage();
213cdf0e10cSrcweir 
214cdf0e10cSrcweir 		// OWizardPage overridables
215cdf0e10cSrcweir 		virtual void		initializePage();
216cdf0e10cSrcweir 		virtual sal_Bool	commitPage( ::svt::WizardTypes::CommitPageReason _eReason );
217cdf0e10cSrcweir 		virtual bool        canAdvance() const;
218cdf0e10cSrcweir 	};
219cdf0e10cSrcweir 
220cdf0e10cSrcweir //.........................................................................
221cdf0e10cSrcweir }	// namespace dbp
222cdf0e10cSrcweir //.........................................................................
223cdf0e10cSrcweir 
224cdf0e10cSrcweir #endif // _EXTENSIONS_DBP_GROUPBOXWIZ_HXX_
225cdf0e10cSrcweir 
226