]> Creatis software - creaImageIO.git/blobdiff - src2/creaImageIOWxTreeView.h
*** empty log message ***
[creaImageIO.git] / src2 / creaImageIOWxTreeView.h
index 65e783d6435c9b571c0d092388222737b60d27aa..6ffc1f52173df045143d4ea55c93130ba355169c 100644 (file)
@@ -7,6 +7,8 @@
 #include <creaWx.h>
 
 #include <wx/listctrl.h>
+#include <wx/splitter.h>
+//#include <vector>
 
 namespace creaImageIO
 {
@@ -26,21 +28,78 @@ namespace creaImageIO
       virtual ~WxTreeView();
 
       
-      /// Something like that ...
-      virtual void UpdateView();
-      
+      /// Updates the view of a level given the selected items of upper level
+      virtual void UpdateLevel( int );
+
+         ///Removes selected nodes on given level
+         virtual void RemoveSelected( int );
+
+         /// Callback for selection change
+      void OnSelected(wxListEvent& event);
+
+         /// Callback for selection change
+      void OnColClick(wxListEvent& event);
+
 
     private:
-      /// The vector of wxListCtrl : one for each level of the tree
-      std::vector<wxListCtrl*> mListCtrl;
+      /// The struct holding the data for one level
+      /// Holds the wx control and other data
+      /// such as the vector of attribute keys corresponding to the columns
+      struct LevelType
+      {
+       // The List Control
+       wxListCtrl* wxCtrl;
+       wxSplitterWindow* wxSplitter;
+       std::vector<std::string> key;
+      };
+      /// The vector of levels : one for each level of the tree      
+      std::vector<LevelType> mLevelList;
       
+      /// return the wxListCtrl of one level
+      wxListCtrl* GetCtrl(int l) { return mLevelList[l].wxCtrl; }
+      /// return the wxSplitter of one level
+      wxSplitterWindow* GetSplitter(int l) { return mLevelList[l].wxSplitter; }
+         /// Gets the user selected data from the level passed as a parameter
+      std::vector<tree::Node*> GetSelected(int level);
+         ///Validates the selected images
+      void ValidateSelectedImages();
+         ///Returns the selected data as vtkImageData
+         vtkImageData* GetSelectedImage(int dim);  
+         ///Returns the selected data as vtkImageData
+         void GetSelectedImages(std::vector<vtkImageData*>& s, int dim);  
+       
+      // Updates the view of a level given the selected items of upper level
+      // Recursive method
+      virtual void RecursiveUpdateLevel( int );
+
+
+      DECLARE_EVENT_TABLE()
     };
     // EO class WxTreeView
     //=====================================================================
   
 } // EO namespace creaImageIO
-
-
+/*
+class MyEvent: public wxCommandEvent
+{
+public:
+       MyEvent( wxEventType commandType = MyCommandEvent, int id = 0 )
+       :  wxCommandEvent(commandType, id) { }
+       // You *must* copy here the data to be transported
+       MyEvent( const MyEvent &event )
+       :  wxCommandEvent(event) { this->SetText( event.GetText() ); }
+       // Required for sending with wxPostEvent()
+       wxEvent* Clone() const { return new MyEvent(*this); }
+       wxString GetText() const { return m_Text; }
+       void SetText( const wxString& text ) { m_Text = text; }
+private:
+       wxString m_Text;
+};
+*/
 #endif // USE_WIDGETS
 // EOF
 #endif