+ /// 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; }
+ //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(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();
+