00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00037 #ifndef __vtkQtTableView_h
00038 #define __vtkQtTableView_h
00039
00040 #include "QVTKWin32Header.h"
00041 #include "vtkQtView.h"
00042
00043 #include <QPointer>
00044 #include <QSortFilterProxyModel>
00045 #include "vtkQtAbstractModelAdapter.h"
00046 #include "vtkSmartPointer.h"
00047
00048 class vtkAddMembershipArray;
00049 class vtkApplyColors;
00050 class vtkDataObjectToTable;
00051 class vtkIdTypeArray;
00052 class QItemSelection;
00053 class QTableView;
00054 class vtkQtTableModelAdapter;
00055
00056 class QVTK_EXPORT vtkQtTableView : public vtkQtView
00057 {
00058 Q_OBJECT
00059
00060 public:
00061 static vtkQtTableView *New();
00062 vtkTypeMacro(vtkQtTableView, vtkQtView);
00063 void PrintSelf(ostream& os, vtkIndent indent);
00064
00068 virtual QWidget* GetWidget();
00069
00071 void SetShowVerticalHeaders(bool);
00072
00074 void SetShowHorizontalHeaders(bool);
00075
00076
00077 enum
00078 {
00079 FIELD_DATA = 0,
00080 POINT_DATA = 1,
00081 CELL_DATA = 2,
00082 VERTEX_DATA = 3,
00083 EDGE_DATA = 4,
00084 ROW_DATA = 5,
00085 };
00086
00087
00089
00091 vtkGetMacro(FieldType, int);
00092 void SetFieldType(int);
00094
00096 void SetEnableDragDrop(bool);
00097
00100 void SetSortingEnabled(bool);
00101
00103
00106 void SetShowAll(bool);
00107 vtkGetMacro(ShowAll, bool);
00109
00111
00113 vtkSetStringMacro(ColumnName);
00114 vtkGetStringMacro(ColumnName);
00116
00117 void SetColumnVisibility(const QString &name, bool status);
00118
00121 void SetSplitMultiComponentColumns(bool value);
00122
00125 bool GetSplitMultiComponentColumns();
00126
00128
00129 void SetSortSelectionToTop(bool value);
00130 vtkGetMacro(SortSelectionToTop, bool);
00132
00134
00136 void SetApplyRowColors(bool value);
00137 vtkGetMacro(ApplyRowColors, bool);
00139
00141 virtual void Update();
00142
00144
00145 void SetColorArrayName(const char* name);
00146 const char* GetColorArrayName();
00148
00150
00151 void SetColorByArray(bool vis);
00152 bool GetColorByArray();
00153 vtkBooleanMacro(ColorByArray, bool);
00155
00157 virtual void ApplyViewTheme(vtkViewTheme* theme);
00158
00159
00160 enum
00161 {
00162 SELECT_ITEMS = 0,
00163 SELECT_ROWS,
00164 SELECT_COLUMNS
00165 };
00166
00167
00169
00174 virtual void SetSelectionBehavior(int type);
00175 virtual int GetSelectionBehavior();
00177
00183 virtual void GetSelectedItems(vtkIdTypeArray* arr);
00184
00185 protected:
00186 vtkQtTableView();
00187 ~vtkQtTableView();
00188
00189 virtual void AddRepresentationInternal(vtkDataRepresentation* rep);
00190 virtual void RemoveRepresentationInternal(vtkDataRepresentation* rep);
00191
00192 private slots:
00193 void slotQtSelectionChanged(const QItemSelection&,const QItemSelection&);
00194
00195 private:
00196 void SetVTKSelection();
00197 unsigned long LastSelectionMTime;
00198 unsigned long LastInputMTime;
00199 unsigned long LastMTime;
00200
00201 vtkSetStringMacro(ColorArrayNameInternal);
00202 vtkGetStringMacro(ColorArrayNameInternal);
00203
00204 QPointer<QTableView> TableView;
00205 vtkQtTableModelAdapter* TableAdapter;
00206 QSortFilterProxyModel* TableSorter;
00207 int FieldType;
00208 bool ShowAll;
00209 char* ColumnName;
00210 bool InSelectionChanged;
00211 bool SortSelectionToTop;
00212 bool ApplyRowColors;
00213 char* ColorArrayNameInternal;
00214
00215
00216 vtkSmartPointer<vtkAddMembershipArray> AddSelectedColumn;
00217 vtkSmartPointer<vtkDataObjectToTable> DataObjectToTable;
00218 vtkSmartPointer<vtkApplyColors> ApplyColors;
00219
00220
00221 vtkQtTableView(const vtkQtTableView&);
00222 void operator=(const vtkQtTableView&);
00223
00224 };
00225
00226 #endif