]> Creatis software - creaImageIO.git/blobdiff - src2/creaImageIOWxTreeView.h
Validate is now linear
[creaImageIO.git] / src2 / creaImageIOWxTreeView.h
index 6ffc1f52173df045143d4ea55c93130ba355169c..bf13312cd896460e95a2f0e4afbbcb9bffc43ecd 100644 (file)
@@ -12,6 +12,7 @@
 
 namespace creaImageIO
 {
+
   /**
    * \ingroup View
    */
@@ -23,7 +24,8 @@ namespace creaImageIO
     {
     public:
       /// Ctor
-      WxTreeView(TreeHandler*, wxWindow* parent, const wxWindowID id);
+      WxTreeView(TreeHandler*, GimmickView*, 
+                wxWindow* parent, const wxWindowID id);
       /// Virtual destructor
       virtual ~WxTreeView();
 
@@ -35,11 +37,16 @@ namespace creaImageIO
          virtual void RemoveSelected( int );
 
          /// Callback for selection change
-      void OnSelected(wxListEvent& event);
+      void OnSelectedChanged(wxListEvent& event);
 
-         /// Callback for selection change
+         /// Callback for column click
       void OnColClick(wxListEvent& event);
 
+         /// Callback for first item edition
+         void OnBeginLabelEdit(wxListEvent& event);
+
+         /// Callback when first item edition ends
+         void OnEndLabelEdit(wxListEvent& event);
 
     private:
       /// The struct holding the data for one level
@@ -59,47 +66,58 @@ namespace creaImageIO
       wxListCtrl* GetCtrl(int l) { return mLevelList[l].wxCtrl; }
       /// return the wxSplitter of one level
       wxSplitterWindow* GetSplitter(int l) { return mLevelList[l].wxSplitter; }
+         //Returns the maximum number of levels
+         int GetNumberOfLevels(){ return mLevelList.size(); }
          /// 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
+      void ValidateSelectedImages(bool isSelection);   
+         ///Gets selected filenames
+         void GetSelectedAsString(std::vector<std::string>&s);
+           /// Gets the next nodes on the list, be it up(true) or down(false).
+      void GetNodes(std::vector<tree::Node*>& nodes, bool direction);
+      /// Updates the view of a level given the selected items of upper level
+      /// Recursive method
       virtual void RecursiveUpdateLevel( int );
+         ///Sets the color of a selected item
+         void SetColor(int level, int item);
+         ///Creates the color palette for the first level
+         void CreateColorPalette();
+         ///Selects the lowest level (images)
+         void SelectLowerLevel();
+
 
+      /// Currently Selected Column
+         int mColumnSelected;
+         ///Boolean that defines the direction of the organization
+         ///True is ascending order and false is descending
+         bool mDirection;
+         ///The last selected item on the list
+         long mLastSelected;
+         ///The last selection of nodes (for every level, except the last)
+         std::vector<tree::Node*> mSelected;
+         ///The last selection of nodes (for the last level)
+         std::vector<tree::Node*> mLastLevelSelected;
+         ///The color map
+         typedef std::map<tree::Node*,wxColour> ColorMap;
+         typedef std::pair<tree::Node*,wxColour> NodeColorPair;
+      ColorMap mColorMap;
+         ///Initial color palette
+         std::vector<std::string> mColorPalette;
+         ///Boolean declaring if the last level selection has been made
+         bool mSelectionMade;
+         bool mProcess;
 
       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