Prüfungsamt-Projekt
1.0.0
|
00001 // ########################################################################## 00002 // #### #### 00003 // #### Prüfungsamt-Client #### 00004 // #### ============================ #### 00005 // #### #### 00006 // #### Tabellen-Viewer #### 00007 // #### #### 00008 // #### Version 1.00 -- 12. Juli 2000 #### 00009 // #### #### 00010 // #### Copyright (C) 2000 Thomas Dreibholz #### 00011 // #### Universität Bonn #### 00012 // #### EMail: dreibh@iem.uni-due.de #### 00013 // #### WWW: https://www.nntb.no/~dreibh #### 00014 // #### #### 00015 // ########################################################################## 00016 00017 00018 #ifndef TABLEVIEWER_H 00019 #define TABLEVIEWER_H 00020 00021 00022 #include "system.h" 00023 #include "paclient.h" 00024 #include "paviews.h" 00025 #include "sqlconnectioninterface.h" 00026 #include "tupleeditor.h" 00027 00028 00029 #include <qapp.h> 00030 #if QT_VERSION < 210 00031 #error ERROR: QT Version 2.1 or better required!!! 00032 #endif 00033 #include <qlineedit.h> 00034 #include <qlabel.h> 00035 #include <qwhatsthis.h> 00036 #include <qlistview.h> 00037 #include <qstring.h> 00038 #include <qlist.h> 00039 #include <qdict.h> 00040 00041 00042 class TupleEditor; 00043 class AttributeEditor; 00044 00045 00053 class TableViewer : public QWidget 00054 { 00055 Q_OBJECT 00056 00057 // ====== Konstanten ===================================================== 00061 public: 00062 enum TableViewerMode { 00063 TVM_EditMode = (1 << 0), 00064 TVM_SelectMode = (1 << 1), 00065 TVM_ReadOnly = (1 << 10) 00066 }; 00067 00068 00069 // ====== Constructor/Destructor ========================================= 00083 TableViewer(SQLConnectionInterface* connection, 00084 const ViewTable* viewTable, 00085 const cardinal mode = TVM_EditMode, 00086 const QString& joinAttribute = QString::null, 00087 const QString& joinValue = QString::null, 00088 const QString& selectAttribute = QString::null, 00089 const QString& selectValue = QString::null, 00090 QWidget* parent = NULL, 00091 const char* name = NULL); 00092 00096 ~TableViewer(); 00097 00098 00099 // ====== Tabelle laden ================================================== 00106 void TableViewer::loadTable(const char* tableName = NULL, 00107 const char* orderBy = NULL); 00108 00109 00110 // ====== Slots für Qt =================================================== 00111 public slots: 00115 void search(const QString& newText); 00116 00120 void setSortAttribute(int section); 00121 00125 void selectView(int selection); 00126 00130 void selectTuple(QListViewItem* item); 00131 00135 void closeEditor(TupleEditor* editor, const bool commited); 00136 00140 void newClicked(); 00141 00145 void okayClicked(); 00146 00150 void nullClicked(); 00151 00155 void cancelClicked(); 00156 00157 00158 // ====== Signale für Qt ================================================= 00159 signals: 00163 void doneSelection(TableViewer* viewer, const bool selected, const QString& selected); 00164 00165 00166 00167 // ====== Private Daten ================================================== 00168 private: 00169 void closeEvent(QCloseEvent* event); 00170 00171 00172 SQLConnectionInterface* Connection; 00173 QWhatsThis* WhatsThis; 00174 QLabel* StatusBar; 00175 QDict<TupleEditor> TupleEditors; 00176 00177 cardinal Mode; 00178 const ViewTable* Views; 00179 const ViewEntry* View; 00180 QString JoinAttribute; 00181 QString JoinValue; 00182 QString SelectAttribute; 00183 QString SelectValue; 00184 00185 QListView* TableView; 00186 QList<QString> Attributes; 00187 QLabel* FindLabel; 00188 QLineEdit* FindLineEdit; 00189 cardinal FindSection; 00190 bool SkipNextUpdate; 00191 cardinal MinNotFoundIndex; 00192 }; 00193 00194 00195 #endif