#include <creaWx.h>
#include <wx/listctrl.h>
+#include <wx/splitter.h>
//#include <vector>
namespace creaImageIO
{
+
/**
* \ingroup View
*/
{
public:
/// Ctor
- WxTreeView(TreeHandler*, wxWindow* parent, const wxWindowID id);
+ WxTreeView(TreeHandler*, GimmickView*,
+ wxWindow* parent, const wxWindowID id);
/// Virtual destructor
virtual ~WxTreeView();
/// Updates the view of a level given the selected items of upper level
virtual void UpdateLevel( int );
-
- /// Callback for selection change
- void OnSelected(wxListEvent& event);
+ ///Removes selected nodes on given level
+ virtual void RemoveSelected( int );
+
+ /// Callback for selection change
+ void OnSelectedChanged(wxListEvent& event);
+
+ /// Callback for column click
+ void OnColClick(wxListEvent& event);
private:
/// The struct holding the data for one level
/// such as the vector of attribute keys corresponding to the columns
struct LevelType
{
- // The
+ // The List Control
wxListCtrl* wxCtrl;
+ wxSplitterWindow* wxSplitter;
std::vector<std::string> key;
};
/// The vector of levels : one for each level of the tree
/// 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; }
+ //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();
+ ///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 );
+
+
+ /// 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
+ std::vector<tree::Node*> mSelected;
+ ///The color map
+ typedef std::map<tree::Node*,wxColour> ColorMap;
+ typedef std::pair<tree::Node*,wxColour> NodeColorPair;
+ ColorMap mColorMap;
+
+
DECLARE_EVENT_TABLE()
};
// EO class WxTreeView
//=====================================================================
-
+
+
+
} // EO namespace creaImageIO