00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00034 #ifndef __vtkQtAbstractModelAdapter_h
00035 #define __vtkQtAbstractModelAdapter_h
00036
00037 #include "QVTKWin32Header.h"
00038 #include <QAbstractItemModel>
00039 #include <QItemSelection>
00040
00041 class vtkDataObject;
00042 class vtkSelection;
00043 class QItemSelection;
00044 class QVTK_EXPORT vtkQtAbstractModelAdapter : public QAbstractItemModel
00045 {
00046 Q_OBJECT
00047
00048 public:
00049
00050
00051 enum {
00052 FULL_VIEW,
00053 DATA_VIEW
00054 };
00055
00056 vtkQtAbstractModelAdapter(QObject* p) :
00057 QAbstractItemModel(p),
00058 ViewType(FULL_VIEW),
00059 KeyColumn(-1),
00060 ColorColumn(-1),
00061 DataStartColumn(-1),
00062 DataEndColumn(-1)
00063 { }
00064
00066
00067 virtual void SetVTKDataObject(vtkDataObject *data) = 0;
00068 virtual vtkDataObject* GetVTKDataObject() const = 0;
00070
00072
00073 virtual vtkSelection* QModelIndexListToVTKIndexSelection(
00074 const QModelIndexList qmil) const = 0;
00075 virtual QItemSelection VTKIndexSelectionToQItemSelection(
00076 vtkSelection *vtksel) const = 0;
00078
00080
00083 virtual void SetViewType(int type) { this->ViewType = type; }
00084 virtual int GetViewType() { return this->ViewType; }
00086
00088
00091 virtual void SetKeyColumn(int col) { this->KeyColumn = col; }
00092 virtual int GetKeyColumn() { return this->KeyColumn; }
00093 virtual void SetKeyColumnName(const char* name) = 0;
00095
00097
00101 virtual void SetColorColumn(int col) { this->ColorColumn = col; }
00102 virtual int GetColorColumn() { return this->ColorColumn; }
00103 virtual void SetColorColumnName(const char* name) = 0;
00105
00107
00110 virtual void SetDataColumnRange(int c1, int c2)
00111 { this->DataStartColumn = c1; this->DataEndColumn = c2; }
00113
00114
00115
00116
00117 void reset() { QAbstractItemModel::reset(); }
00118
00119
00120 signals:
00121 void modelChanged();
00122
00123 protected:
00124
00128 virtual int ModelColumnToFieldDataColumn(int col) const;
00129
00130 int ViewType;
00131 int KeyColumn;
00132 int ColorColumn;
00133 int DataStartColumn;
00134 int DataEndColumn;
00135 };
00136
00137 #endif