]> Creatis software - creaImageIO.git/blobdiff - src2/creaImageIOWxTreeView.h
Added attribute selection functionality.
[creaImageIO.git] / src2 / creaImageIOWxTreeView.h
index 4b97590f6cf33284eb6e17fb6a94f0b900defaec..a0f6b658d062b032214c81f313bde350f1a98127 100644 (file)
@@ -35,7 +35,10 @@ namespace creaImageIO
 
       ///Removes selected nodes on given level
       virtual void RemoveSelected();
-      
+
+         ///Returns the last selected level
+         virtual unsigned int GetLastSelectedLevel(){return mLastLevel;}
+
       /// Callback for item selection
       void OnItemSelected(wxListEvent& event);
 
@@ -50,9 +53,30 @@ namespace creaImageIO
       
       ///Callback when the user need the items filtered
       void OnPopupFilter(wxCommandEvent& event);
+
+         ///Callback when the user needs the item copied to the local disk
+      void OnLocalCopy(wxCommandEvent& event);
+
+         ///Callback when the user needs to edit a field
+      void OnEditField(wxCommandEvent& event);
       
       ///Callback on mouse click
       void OnMouseClick(wxMouseEvent& event);
+
+         /// Displays a menu for items
+         void OnItemMenu(wxListEvent &event);
+         
+         /// Gets the attributes that are being shown and the ones that have been blocked on a specific level
+         void GetAttributes(std::vector<std::string>& areShown, std::vector<std::string>& notShown, int level);
+
+         ///Sets the non visible attributes and refreshes the GUI
+         void SetNonVisibleAttributes(const std::vector<std::string>& notShown, int level);
+
+         ///Creates a new listctrl
+         void CreateCtrl(std::vector<std::string>& notShown, int nlevel);
+  
+         ///Returns true if the attribute passed as a parameter is visible or not
+         bool IsAttributeVisible(const std::string& val, int level);
       
       /// Actual processing of item selection/deselection 
       /// Called by OnItemSelected and OnItemDeSelected
@@ -67,6 +91,8 @@ namespace creaImageIO
        wxListCtrl* wxCtrl;
        wxSplitterWindow* wxSplitter;
        std::vector<std::string> key;
+       //The vector of not shown attributes
+       std::vector<std::string> notShownAtts;
        // The vector of currently selected nodes of the level
        std::vector<tree::Node*> Selected;
        // True iff the vector Selected is up to date
@@ -98,6 +124,8 @@ namespace creaImageIO
       void ValidateSelectedImages(bool isSelection);   
       ///Gets selected filenames
       void GetSelectedAsString(std::vector<std::string>&s);
+         ///Gets the filenames of the given nodes and returns them on the given vector. Is recursive.
+         void GetFilenamesAsString(const std::vector<tree::Node*>& nodes, 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
@@ -118,8 +146,14 @@ namespace creaImageIO
       
       /// Currently Selected Column
       int mColumnSelected;
-      ///The last selected item on the list
+      ///The last selected item on the list (left click)
       long mLastSelected;
+
+         ///The last selected item on the list (right click)
+         long mLastRightSelected;
+
+         ///The last selected level (by right click)
+         int mLastRightLevel;
       ///The color map
       typedef std::map<tree::Node*,wxColour> ColorMap;
       typedef std::pair<tree::Node*,wxColour> NodeColorPair;
@@ -128,12 +162,18 @@ namespace creaImageIO
       std::vector<std::string> mColorPalette;
 
       wxMenu* menu;
+         
       wxObject* senderCtrl;
       int mAscendingID;
       int mDescendingID;
       int mFilterID;
       unsigned int mLastLevel;
       
+         wxMenu* menuItem;
+         int mAnonymizingID;
+         int mLocalCopyID;
+         int mEditFieldID;
+         
       // If set to true then OnSelectedChanged returns immediately.
       // Used to do avoid useless process during multiple selections 
       // or sorting