00001 
00002 
00003 
00004 
00005 
00006 
00007 
00008 
00009 
00010 
00011 
00012 
00013 
00014 
00015 
00016 
00017 
00018 
00019 
00031 #ifndef __vtkQtListView_h
00032 #define __vtkQtListView_h
00033 
00034 #include "QVTKWin32Header.h"
00035 #include "vtkQtView.h"
00036 
00037 #include <QPointer>
00038 #include <QImage>
00039 #include <QSortFilterProxyModel>
00040 #include "vtkQtAbstractModelAdapter.h"
00041 #include "vtkSmartPointer.h"
00042 
00043 class vtkApplyColors;
00044 class vtkDataObjectToTable;
00045 class QItemSelection;
00046 class QListView;
00047 class vtkQtTableModelAdapter;
00048 
00049 class QVTK_EXPORT vtkQtListView : public vtkQtView
00050 {
00051 Q_OBJECT
00052 
00053 public:
00054   static vtkQtListView *New();
00055   vtkTypeMacro(vtkQtListView, vtkQtView);
00056   void PrintSelf(ostream& os, vtkIndent indent);
00057   
00061   virtual QWidget* GetWidget();
00062 
00063   enum
00064     {
00065     FIELD_DATA = 0,
00066     POINT_DATA = 1,
00067     CELL_DATA = 2,
00068     VERTEX_DATA = 3,
00069     EDGE_DATA = 4,
00070     ROW_DATA = 5,
00071     };
00072   
00074 
00076   vtkGetMacro(FieldType, int);
00077   void SetFieldType(int);
00079 
00081   void SetEnableDragDrop(bool);
00082 
00084   void SetAlternatingRowColors(bool);
00085 
00089   void SetDecorationStrategy(int);
00090 
00092 
00093   void SetColorArrayName(const char* name);
00094   const char* GetColorArrayName();
00096   
00098 
00099   void SetColorByArray(bool vis);
00100   bool GetColorByArray();
00101   vtkBooleanMacro(ColorByArray, bool);
00103 
00105   void SetVisibleColumn(int col);
00106 
00108   void SetFilterRegExp(const QRegExp& pattern);
00109 
00111 
00113   void SetIconSheet(QImage sheet);
00114   void SetIconSize(int w, int h);
00115   void SetIconSheetSize(int w, int h);
00116   void SetIconArrayName(const char* name);
00118 
00119   virtual void ApplyViewTheme(vtkViewTheme* theme);
00120 
00122   virtual void Update();
00123 
00124 protected:
00125   vtkQtListView();
00126   ~vtkQtListView();
00127 
00128   virtual void AddRepresentationInternal(vtkDataRepresentation* rep);
00129   virtual void RemoveRepresentationInternal(vtkDataRepresentation* rep);
00130 
00131 private slots:
00132   void slotQtSelectionChanged(const QItemSelection&,const QItemSelection&);
00133 
00134 private:
00135   void SetVTKSelection();
00136 
00137   unsigned long LastSelectionMTime;
00138   unsigned long LastInputMTime;
00139   unsigned long LastMTime;
00140 
00141   vtkSetStringMacro(ColorArrayNameInternal);
00142   vtkGetStringMacro(ColorArrayNameInternal);
00143   vtkSetStringMacro(IconIndexArrayNameInternal);
00144   vtkGetStringMacro(IconIndexArrayNameInternal);
00145 
00146   QPointer<QListView> ListView;
00147   vtkQtTableModelAdapter* TableAdapter;
00148   QSortFilterProxyModel* TableSorter;
00149   char* ColorArrayNameInternal;
00150   char* IconIndexArrayNameInternal;
00151   char* VisibleColumnName;
00152   bool SortSelectionToTop;
00153   bool ApplyRowColors;
00154   int FieldType;
00155   int VisibleColumn;
00156   
00157   vtkSmartPointer<vtkDataObjectToTable> DataObjectToTable;
00158   vtkSmartPointer<vtkApplyColors> ApplyColors;
00159 
00160   vtkQtListView(const vtkQtListView&);  
00161   void operator=(const vtkQtListView&);  
00162   
00163 };
00164 
00165 #endif