X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=src2%2FcreaImageIOWxTreeView.h;h=001bf26214a53c261fc6b442bfdaac288c9ce9e5;hb=00dbbc177a9b5db334393734151e820a65f65efc;hp=c941606768f05410e18eda9417c9ef6b36595402;hpb=67ba001e49dd897529b15024108831bdd4621edf;p=creaImageIO.git diff --git a/src2/creaImageIOWxTreeView.h b/src2/creaImageIOWxTreeView.h index c941606..001bf26 100644 --- a/src2/creaImageIOWxTreeView.h +++ b/src2/creaImageIOWxTreeView.h @@ -9,10 +9,25 @@ #include #include //#include - +const std::string empty_string(""); namespace creaImageIO { + //===================================================================== + /// Data stored by the list items + struct ItemData + { + ItemData() : node(0), id(-1), attr(&empty_string) {} + // The corresponding Node + tree::Node* node; + // The id ? + int id; + // The pointer on the current attribute string to sort on + const std::string* attr; + // Was the item previously selected ? + // Useful for reselecting the item after sort + bool selected; + }; /** * \ingroup View */ @@ -34,7 +49,7 @@ namespace creaImageIO virtual void UpdateLevel( int ); ///Removes selected nodes on given level - virtual void RemoveSelected(); + virtual void RemoveSelected(std::string &i_save); ///Returns the last selected level virtual unsigned int GetLastSelectedLevel(){return mLastLevel;} @@ -53,12 +68,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); - // Display a menu for items + /// 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& areShown, std::vector& notShown, int level); + + ///Sets the non visible attributes and refreshes the GUI + void SetNonVisibleAttributes(const std::vector& notShown, int level); + + ///Creates a new listctrl + void CreateCtrl(std::vector& 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 @@ -82,7 +115,8 @@ namespace creaImageIO ///Boolean that defines the direction of the sort ///True is ascending order and false is descending bool SortAscending; - // + //The vector of not shown attributes + std::vector notShownAtts; }; /// The vector of levels : one for each level of the tree std::vector mLevelList; @@ -104,15 +138,13 @@ namespace creaImageIO void ValidateSelectedImages(bool isSelection); ///Gets selected filenames void GetSelectedAsString(std::vector&s); + ///Gets the filenames of the given nodes and returns them on the given vector. Is recursive. + void GetFilenamesAsString(const std::vector& nodes, std::vector&s); /// Gets the next nodes on the list, be it up(true) or down(false). void GetNodes(std::vector& 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 all the elements of a level void SelectAll(int level); ///UnSelects all the elements of a level @@ -124,8 +156,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 ColorMap; typedef std::pair NodeColorPair; @@ -144,17 +182,34 @@ namespace creaImageIO 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 bool mIgnoreSelectedChanged; - DECLARE_EVENT_TABLE() }; // EO class WxTreeView //===================================================================== + class RemoveAlertDlg : public wxDialog + { + public: + RemoveAlertDlg(wxWindow *parent, + wxString title, + const wxSize& size); + ~RemoveAlertDlg(); + + bool isChecked(); + + private : + void onCheck(wxCommandEvent &Event); + bool mSave; + wxCheckBox *mcheck; + + }; } // EO namespace creaImageIO