#include <creaWx.h>
#include <wx/listctrl.h>
+#include <wx/splitter.h>
+//#include <vector>
namespace creaImageIO
{
virtual ~WxTreeView();
- /// Something like that ...
- virtual void UpdateView();
-
+ /// Updates the view of a level given the selected items of upper level
+ virtual void UpdateLevel( int );
+
+ ///Removes selected nodes on given level
+ virtual void RemoveSelected( int );
+
+ /// Callback for selection change
+ void OnSelected(wxListEvent& event);
+
+ /// Callback for selection change
+ void OnColClick(wxListEvent& event);
+
private:
- /// The vector of wxListCtrl : one for each level of the tree
- std::vector<wxListCtrl*> mListCtrl;
+ /// 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; }
+ /// 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
+ virtual void RecursiveUpdateLevel( int );
+
+
+ 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