xref: /trunk/main/sw/source/ui/inc/dbinsdlg.hxx (revision cdf0e10c4e3984b49a9502b011690b615761d4a3)
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 _DBINSDLG_HXX
29 #define _DBINSDLG_HXX
30 
31 
32 #ifndef _BUTTON_HXX //autogen
33 #include <vcl/button.hxx>
34 #endif
35 #ifndef _GROUP_HXX //autogen
36 #include <vcl/group.hxx>
37 #endif
38 #ifndef _FIXED_HXX //autogen
39 #include <vcl/fixed.hxx>
40 #endif
41 #ifndef _EDIT_HXX //autogen
42 #include <vcl/edit.hxx>
43 #endif
44 #include <vcl/lstbox.hxx>
45 #include <svtools/svmedit.hxx>
46 #include <sfx2/basedlgs.hxx>
47 #include <svl/svarray.hxx>
48 #include <unotools/configitem.hxx>
49 #include <numfmtlb.hxx>
50 #include <swdbdata.hxx>
51 #include <com/sun/star/uno/Reference.h>
52 #include <com/sun/star/uno/Sequence.h>
53 namespace com{namespace sun{namespace star{
54     namespace sdbcx{
55     class XColumnsSupplier;
56     }
57     namespace sdbc{
58     class XDataSource;
59     class XConnection;
60     class XResultSet;
61     }
62 }}}
63 
64 class SwTableAutoFmt;
65 class SwView;
66 class SfxItemSet;
67 class SwTableRep;
68 class _DB_Columns;
69 
70 struct SwInsDBColumn
71 {
72     rtl::OUString sColumn, sUsrNumFmt;
73     sal_Int32 nDBNumFmt;
74     sal_uInt32 nUsrNumFmt;
75     LanguageType eUsrNumFmtLng;
76     sal_uInt16 nCol;
77     sal_Bool bHasFmt : 1;
78     sal_Bool bIsDBFmt : 1;
79 
80     SwInsDBColumn( const String& rStr, sal_uInt16 nColumn )
81         : sColumn( rStr ),
82         nDBNumFmt( 0 ),
83         nUsrNumFmt( 0 ),
84         eUsrNumFmtLng( LANGUAGE_SYSTEM ),
85         nCol( nColumn ),
86         bHasFmt(sal_False),
87         bIsDBFmt(sal_True)
88     {}
89 
90     int operator==( const SwInsDBColumn& rCmp ) const
91         { return sColumn == rCmp.sColumn; }
92     int operator<( const SwInsDBColumn& rCmp ) const;
93 };
94 
95 typedef SwInsDBColumn* SwInsDBColumnPtr;
96 SV_DECL_PTRARR_SORT_DEL( SwInsDBColumns, SwInsDBColumnPtr, 32, 32 )
97 
98 
99 class SwInsertDBColAutoPilot : public SfxModalDialog, public utl::ConfigItem
100 {
101     FixedText       aFtInsertData;
102     RadioButton     aRbAsTable;
103     RadioButton     aRbAsField;
104     RadioButton     aRbAsText;
105 
106     FixedLine       aFlHead;
107     FixedText       aFtDbColumn;
108 
109     ListBox         aLbTblDbColumn;
110     ListBox         aLbTxtDbColumn;
111 
112     FixedLine       aFlFormat;
113     RadioButton     aRbDbFmtFromDb;
114     RadioButton     aRbDbFmtFromUsr;
115     NumFormatListBox aLbDbFmtFromUsr;
116 
117     /* ----- Page Text/Field ------- */
118     ImageButton     aIbDbcolToEdit;
119     MultiLineEdit   aEdDbText;
120     FixedText       aFtDbParaColl;
121     ListBox         aLbDbParaColl;
122 
123     /* ----- Page Table ------------ */
124     ImageButton     aIbDbcolAllTo;
125     ImageButton     aIbDbcolOneTo;
126     ImageButton     aIbDbcolOneFrom;
127     ImageButton     aIbDbcolAllFrom;
128     FixedText       aFtTableCol;
129     ListBox         aLbTableCol;
130     CheckBox        aCbTableHeadon;
131     RadioButton     aRbHeadlColnms;
132     RadioButton     aRbHeadlEmpty;
133     PushButton      aPbTblFormat;
134     PushButton      aPbTblAutofmt;
135 
136     OKButton        aBtOk;
137     CancelButton    aBtCancel;
138     HelpButton      aBtHelp;
139 
140     FixedLine       aFlBottom;
141 
142     SwInsDBColumns  aDBColumns;
143     const SwDBData  aDBData;
144 
145     Link            aOldNumFmtLnk;
146     String          sNoTmpl;
147 
148     SwView*         pView;
149     SwTableAutoFmt* pTAutoFmt;
150 
151     SfxItemSet*     pTblSet;
152     SwTableRep*     pRep;
153     sal_uInt16          nGBFmtLen;
154 
155     DECL_LINK( PageHdl, Button* );
156     DECL_LINK( AutoFmtHdl, PushButton* );
157     DECL_LINK( TblFmtHdl, PushButton* );
158     DECL_LINK( DBFormatHdl, Button* );
159     DECL_LINK( TblToFromHdl, Button* );
160     DECL_LINK( SelectHdl, ListBox* );
161     DECL_LINK( DblClickHdl, ListBox* );
162     DECL_LINK( HeaderHdl, Button* );
163 
164     sal_Bool SplitTextToColArr( const String& rTxt, _DB_Columns& rColArr, sal_Bool bInsField );
165         using SfxModalDialog::Notify;
166     virtual void Notify( const ::com::sun::star::uno::Sequence< rtl::OUString >& aPropertyNames );
167     virtual void            Commit();
168     void                    Load();
169 
170     // setze die Tabellen - Eigenschaften
171     void SetTabSet();
172 
173 public:
174     SwInsertDBColAutoPilot( SwView& rView,
175         ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XDataSource> rxSource,
176         com::sun::star::uno::Reference<com::sun::star::sdbcx::XColumnsSupplier>,
177         const SwDBData& rData  );
178 
179     virtual ~SwInsertDBColAutoPilot();
180 
181     void DataToDoc( const ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Any >& rSelection,
182         ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XDataSource> rxSource,
183         ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XConnection> xConnection,
184         ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XResultSet > xResultSet);
185 
186 };
187 
188 #endif
189