Wtx ~ Wt Extension Library
WtxLib
TableViewDef.h
1 /**************************************************************************
2 ###########################################################################
3 ##
4 ## $SHOWOFFDB_BEGIN_LICENSE$
5 ## Copyright (C) 2011 Lorimark Solutions, LLC and/or its subsidiary(-ies).
6 ## All rights reserved.
7 ## Contact: Lorimark Solutions, LLC (info@showoff-db.org)
8 ##
9 ## This file is part of the Showoff Database Application Framework.
10 ##
11 ## Commercial Usage
12 ## Licensees holding valid ShowoffDB Commercial licenses may use this file in
13 ## accordance with the ShowoffDB Commercial License Agreement provided with the
14 ## Software or, alternatively, in accordance with the terms contained in
15 ## a written agreement between you and Lorimark Solutions, LLC.
16 ##
17 ## GNU Lesser General Public License Usage
18 ## Alternatively, this file may be used under the terms of the GNU Lesser
19 ## General Public License version 2.1 as published by the Free Software
20 ## Foundation and appearing in the file LICENSE.LGPL included in the
21 ## packaging of this file. Please review the following information to
22 ## ensure the GNU Lesser General Public License version 2.1 requirements
23 ## will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
24 ##
25 ## In addition, as a special exception, Lorimark Solutions, LLC gives
26 ## you certain additional rights. These rights are described in the
27 ## Lorimark Solutions, LLC ShowoffDB LGPL Exception version 1.0, included in
28 ## the file LGPL_EXCEPTION.txt in this package.
29 ##
30 ## GNU General Public License Usage
31 ## Alternatively, this file may be used under the terms of the GNU
32 ## General Public License version 3.0 as published by the Free Software
33 ## Foundation and appearing in the file LICENSE.GPL included in the
34 ## packaging of this file. Please review the following information to
35 ## ensure the GNU General Public License version 3.0 requirements will be
36 ## met: http://www.gnu.org/copyleft/gpl.html.
37 ##
38 ## If you have questions regarding the use of this file, please contact
39 ## Lorimark Solutions, LLC at info@showoff-db.org.
40 ## $SHOWOFFDB_END_LICENSE$
41 ##
42 #############################################################################
43 ****************************************************************************/
44 
45 
46 #ifndef __WTX_TABLEVIEWDEF_H_234e0174_6b7d_11e8_b503_fb1ef3651ec0__
47 #define __WTX_TABLEVIEWDEF_H_234e0174_6b7d_11e8_b503_fb1ef3651ec0__
48 
49 #include <Wt/WObject.h>
50 #include <Wt/WFormModel.h>
51 #include <Wt/WSignal.h>
52 #include <Wt/WLength.h>
53 
54 #include <Wtx/Dbo/TableDef.h>
55 
56 namespace Wtx {
57 
58 extern Wt::WLength g_dialogWidth;
59 extern Wt::WLength g_dialogHeight;
60 
61 namespace Dbo {
62  class Session;
63 }
64 
135 : Wt::WObject
136 {
137 
138  public:
139 
150  class ColumnDef
151  {
152  public:
153 
154  std::string field;
155  std::string label;
156  Wt::WLength width;
157  Wt::AlignmentFlag alignment;
158  std::string toolTip;
159  Wt::WItemDelegate * (*delegate)( Wtx::Dbo::Session * );
160 
161  void editProperties();
162  };
163 
171  class ViewDef
172  {
173  public:
174  std::string title;
175  std::string tip;
176  int rowHeaderCount;
177  Wt::SelectionMode selectionMode;
178  bool columnResizeEnabled;
179  bool alternatingRowColors;
180  std::string sql;
181  std::string filter;
182  std::string subFilter;
183  std::vector<std::string> idin;
184  void (*doubleClick)( Wt::WModelIndex, Wt::WMouseEvent );
185  bool showHeader;
186  bool showFooter;
187  bool showPrevNext;
188  bool hideSearch;
189  bool allowFilter;
190  bool allowAdd;
191  bool allowChange;
192  bool allowDelete;
193  bool allowExport;
194  bool allowSearch;
195  bool allowPrint;
196  bool allowUnlock;
197  std::string additional;
198  Wt::WItemDelegate * (*delegate)();
199 
200  std::vector<std::string> sortFields;
201  std::vector<std::string> searchFields;
202  std::vector<ColumnDef> columnDefs;
203  std::vector<std::string> columnNames;
204 
205  /*
206  ** these flags can do various things. Such as,
207  ** adding "show-sql" causes the table-view
208  ** to show the generated sql output.
209  **
210  */
211  std::vector<std::string> flags;
212 
213  bool checkBoxSelect;
214 
215  Wt::WLength m_dialogWidth = Wtx::g_dialogWidth;
216  Wt::WLength m_dialogHeight = Wtx::g_dialogHeight;
217 
218  std::string deleteMessage;
219  };
220 
221 
222  bool load( const std::string & name, const Wtx::Dbo::TableDef & tableDef, Wtx::Dbo::Session * session );
223  bool load( const Wtx::Dbo::TableDef & tableDef, Wtx::Dbo::Session * session );
224  bool load( const ViewDef & viewDef, Wtx::Dbo::Session * session );
225 
226  bool save( const std::string & name, Wtx::Dbo::Session * session );
227 
228  bool hasFlag( const std::string & value );
229 
230  void editProperties();
231 
232  std::string m_name;
233  ViewDef m_def;
234 
235  Wt::Signal<> & changed() { return m_changed; }
236 
237  private:
238 
239  Wt::Signal<> m_changed;
240 
241 }; // endclass TableViewDef
242 
243 } // endnamespace Wtx
244 
245 #endif // __WTX_TABLEVIEWDEF_H___
246 
Table Definition.
Definition: TableDef.h:72
Wt::WLength g_dialogWidth
Default Dialog Width.
Definition: TableViewDef.h:58
Wt::WLength g_dialogHeight
Default Dialog Height.
Definition: TableViewDef.h:59
Table View Definition.
Definition: TableViewDef.h:171
Table View Definition.
Definition: TableViewDef.h:134
witty extension library
Definition: Activity.h:51
Table View Column Def.
Definition: TableViewDef.h:150