Prüfungsamt-Projekt  1.0.0
tableviewer.h
gehe zur Dokumentation dieser Datei
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
 Alle Klassen Dateien Funktionen Variablen Typdefinitionen Aufzählungen Aufzählungswerte Freundbeziehungen Makrodefinitionen