1*b1cdbd2cSJim Jagielski /**************************************************************
2*b1cdbd2cSJim Jagielski  *
3*b1cdbd2cSJim Jagielski  * Licensed to the Apache Software Foundation (ASF) under one
4*b1cdbd2cSJim Jagielski  * or more contributor license agreements.  See the NOTICE file
5*b1cdbd2cSJim Jagielski  * distributed with this work for additional information
6*b1cdbd2cSJim Jagielski  * regarding copyright ownership.  The ASF licenses this file
7*b1cdbd2cSJim Jagielski  * to you under the Apache License, Version 2.0 (the
8*b1cdbd2cSJim Jagielski  * "License"); you may not use this file except in compliance
9*b1cdbd2cSJim Jagielski  * with the License.  You may obtain a copy of the License at
10*b1cdbd2cSJim Jagielski  *
11*b1cdbd2cSJim Jagielski  *   http://www.apache.org/licenses/LICENSE-2.0
12*b1cdbd2cSJim Jagielski  *
13*b1cdbd2cSJim Jagielski  * Unless required by applicable law or agreed to in writing,
14*b1cdbd2cSJim Jagielski  * software distributed under the License is distributed on an
15*b1cdbd2cSJim Jagielski  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16*b1cdbd2cSJim Jagielski  * KIND, either express or implied.  See the License for the
17*b1cdbd2cSJim Jagielski  * specific language governing permissions and limitations
18*b1cdbd2cSJim Jagielski  * under the License.
19*b1cdbd2cSJim Jagielski  *
20*b1cdbd2cSJim Jagielski  *************************************************************/
21*b1cdbd2cSJim Jagielski 
22*b1cdbd2cSJim Jagielski 
23*b1cdbd2cSJim Jagielski 
24*b1cdbd2cSJim Jagielski #ifndef _EXTENSIONS_DBP_GRIDWIZARD_HXX_
25*b1cdbd2cSJim Jagielski #define _EXTENSIONS_DBP_GRIDWIZARD_HXX_
26*b1cdbd2cSJim Jagielski 
27*b1cdbd2cSJim Jagielski #include "controlwizard.hxx"
28*b1cdbd2cSJim Jagielski #include "commonpagesdbp.hxx"
29*b1cdbd2cSJim Jagielski 
30*b1cdbd2cSJim Jagielski //.........................................................................
31*b1cdbd2cSJim Jagielski namespace dbp
32*b1cdbd2cSJim Jagielski {
33*b1cdbd2cSJim Jagielski //.........................................................................
34*b1cdbd2cSJim Jagielski 
35*b1cdbd2cSJim Jagielski 	//=====================================================================
36*b1cdbd2cSJim Jagielski 	//= OGridSettings
37*b1cdbd2cSJim Jagielski 	//=====================================================================
38*b1cdbd2cSJim Jagielski 	struct OGridSettings : public OControlWizardSettings
39*b1cdbd2cSJim Jagielski 	{
40*b1cdbd2cSJim Jagielski 		::com::sun::star::uno::Sequence< ::rtl::OUString >		aSelectedFields;
41*b1cdbd2cSJim Jagielski 	};
42*b1cdbd2cSJim Jagielski 
43*b1cdbd2cSJim Jagielski 	//=====================================================================
44*b1cdbd2cSJim Jagielski 	//= OGridWizard
45*b1cdbd2cSJim Jagielski 	//=====================================================================
46*b1cdbd2cSJim Jagielski 	class OGridWizard : public OControlWizard
47*b1cdbd2cSJim Jagielski 	{
48*b1cdbd2cSJim Jagielski 	protected:
49*b1cdbd2cSJim Jagielski 		OGridSettings	m_aSettings;
50*b1cdbd2cSJim Jagielski 		sal_Bool		m_bHadDataSelection : 1;
51*b1cdbd2cSJim Jagielski 
52*b1cdbd2cSJim Jagielski 	public:
53*b1cdbd2cSJim Jagielski 		OGridWizard(
54*b1cdbd2cSJim Jagielski 			Window* _pParent,
55*b1cdbd2cSJim Jagielski 			const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet >& _rxObjectModel,
56*b1cdbd2cSJim Jagielski 			const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& _rxORB
57*b1cdbd2cSJim Jagielski 		);
58*b1cdbd2cSJim Jagielski 
getSettings()59*b1cdbd2cSJim Jagielski 		OGridSettings& getSettings() { return m_aSettings; }
60*b1cdbd2cSJim Jagielski 
61*b1cdbd2cSJim Jagielski 	protected:
62*b1cdbd2cSJim Jagielski 		// OWizardMachine overridables
63*b1cdbd2cSJim Jagielski         virtual ::svt::OWizardPage*	createPage( WizardState _nState );
64*b1cdbd2cSJim Jagielski 		virtual WizardState		    determineNextState( WizardState _nCurrentState ) const;
65*b1cdbd2cSJim Jagielski 		virtual	void				enterState( WizardState _nState );
66*b1cdbd2cSJim Jagielski 		virtual	sal_Bool			leaveState( WizardState _nState );
67*b1cdbd2cSJim Jagielski 		virtual sal_Bool            onFinish();
68*b1cdbd2cSJim Jagielski 
69*b1cdbd2cSJim Jagielski 		virtual sal_Bool approveControl(sal_Int16 _nClassId);
70*b1cdbd2cSJim Jagielski 
71*b1cdbd2cSJim Jagielski 	protected:
72*b1cdbd2cSJim Jagielski 		void implApplySettings();
73*b1cdbd2cSJim Jagielski 	};
74*b1cdbd2cSJim Jagielski 
75*b1cdbd2cSJim Jagielski 	//=====================================================================
76*b1cdbd2cSJim Jagielski 	//= OGridPage
77*b1cdbd2cSJim Jagielski 	//=====================================================================
78*b1cdbd2cSJim Jagielski 	class OGridPage : public OControlWizardPage
79*b1cdbd2cSJim Jagielski 	{
80*b1cdbd2cSJim Jagielski 	public:
OGridPage(OGridWizard * _pParent,const ResId & _rId)81*b1cdbd2cSJim Jagielski 		OGridPage( OGridWizard* _pParent, const ResId& _rId ) : OControlWizardPage(_pParent, _rId) { }
82*b1cdbd2cSJim Jagielski 
83*b1cdbd2cSJim Jagielski 	protected:
getSettings()84*b1cdbd2cSJim Jagielski 		OGridSettings& getSettings() { return static_cast<OGridWizard*>(getDialog())->getSettings(); }
85*b1cdbd2cSJim Jagielski 	};
86*b1cdbd2cSJim Jagielski 
87*b1cdbd2cSJim Jagielski 	//=====================================================================
88*b1cdbd2cSJim Jagielski 	//= OGridFieldsSelection
89*b1cdbd2cSJim Jagielski 	//=====================================================================
90*b1cdbd2cSJim Jagielski 	class OGridFieldsSelection : public OGridPage
91*b1cdbd2cSJim Jagielski 	{
92*b1cdbd2cSJim Jagielski 	protected:
93*b1cdbd2cSJim Jagielski 		FixedLine		m_aFrame;
94*b1cdbd2cSJim Jagielski 		FixedText		m_aExistFieldsLabel;
95*b1cdbd2cSJim Jagielski 		ListBox			m_aExistFields;
96*b1cdbd2cSJim Jagielski 		PushButton		m_aSelectOne;
97*b1cdbd2cSJim Jagielski 		PushButton		m_aSelectAll;
98*b1cdbd2cSJim Jagielski 		PushButton		m_aDeselectOne;
99*b1cdbd2cSJim Jagielski 		PushButton		m_aDeselectAll;
100*b1cdbd2cSJim Jagielski 		FixedText		m_aSelFieldsLabel;
101*b1cdbd2cSJim Jagielski 		ListBox			m_aSelFields;
102*b1cdbd2cSJim Jagielski 
103*b1cdbd2cSJim Jagielski 	public:
104*b1cdbd2cSJim Jagielski 		OGridFieldsSelection( OGridWizard* _pParent );
105*b1cdbd2cSJim Jagielski 
106*b1cdbd2cSJim Jagielski 	protected:
107*b1cdbd2cSJim Jagielski 		// TabPage overridables
108*b1cdbd2cSJim Jagielski 		virtual void ActivatePage();
109*b1cdbd2cSJim Jagielski 
110*b1cdbd2cSJim Jagielski 		// OWizardPage overridables
111*b1cdbd2cSJim Jagielski 		virtual void		initializePage();
112*b1cdbd2cSJim Jagielski 		virtual sal_Bool	commitPage( ::svt::WizardTypes::CommitPageReason _eReason );
113*b1cdbd2cSJim Jagielski 		virtual bool        canAdvance() const;
114*b1cdbd2cSJim Jagielski 
115*b1cdbd2cSJim Jagielski 	protected:
116*b1cdbd2cSJim Jagielski 		DECL_LINK(OnMoveOneEntry, PushButton*);
117*b1cdbd2cSJim Jagielski 		DECL_LINK(OnMoveAllEntries, PushButton*);
118*b1cdbd2cSJim Jagielski 		DECL_LINK(OnEntrySelected, ListBox*);
119*b1cdbd2cSJim Jagielski 		DECL_LINK(OnEntryDoubleClicked, ListBox*);
120*b1cdbd2cSJim Jagielski 
121*b1cdbd2cSJim Jagielski 		void implCheckButtons();
122*b1cdbd2cSJim Jagielski 		void implApplySettings();
123*b1cdbd2cSJim Jagielski 
124*b1cdbd2cSJim Jagielski 		::com::sun::star::uno::Reference< ::com::sun::star::container::XNameAccess > implGetColumns(sal_Bool _bShowError = sal_True);
125*b1cdbd2cSJim Jagielski 	};
126*b1cdbd2cSJim Jagielski 
127*b1cdbd2cSJim Jagielski //.........................................................................
128*b1cdbd2cSJim Jagielski }	// namespace dbp
129*b1cdbd2cSJim Jagielski //.........................................................................
130*b1cdbd2cSJim Jagielski 
131*b1cdbd2cSJim Jagielski #endif // _EXTENSIONS_DBP_GRIDWIZARD_HXX_
132*b1cdbd2cSJim Jagielski 
133