wxMaracasRendererView.cxx
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009 #include "wxMaracasRendererView.h"
00010
00011 #include <wx/colordlg.h>
00012 #include <wx/bmpbuttn.h>
00013
00014 #include <OpenImage.xpm>
00015 #include <Color.xpm>
00016
00017 wxMaracasRendererView* wxMaracasRendererView::instance=NULL;
00018
00022 wxMaracasRendererView::wxMaracasRendererView(wxWindow* parent,std::string path)
00023 : wxPanel(parent, -1, wxDefaultPosition, wxDefaultSize){
00024
00025 wxauimanager = new wxAuiManager(this);
00026
00027 _idCount = 0;
00028 _path = path;
00029
00030 std::string iconsdir = path;
00031 iconsdir+="/data/Icons";
00032 this->_toolb = new ToolBarRenderer(this,iconsdir);
00033 wxStaticText* txt = new wxStaticText(this, -1, wxString(_T(" Open File ")));
00034 wxAuiPaneInfo paneinfo;
00035 wxauimanager->AddPane(txt,paneinfo.ToolbarPane().Top());
00036 wxauimanager->AddPane(_toolb,paneinfo.ToolbarPane().Top());
00037
00038 wxauimanager->Update();
00039 }
00040
00044 wxMaracasRendererView::~wxMaracasRendererView( )
00045 {
00046 delete _toolb;
00047 }
00048
00052 wxMaracasRendererView* wxMaracasRendererView::getInstance(wxWindow* parent,std::string path)
00053 {
00054 if(instance==NULL)
00055 {
00056 instance = new wxMaracasRendererView(parent,path);
00057 }
00058 return instance;
00059 }
00060
00064 wxMaracasRendererView* wxMaracasRendererView::getInstance()
00065 {
00066 return instance;
00067 }
00068
00072 std::string wxMaracasRendererView::getPath()
00073 {
00074 return _path;
00075 }
00076
00080 wxMaracasRenderTabbedPanel* wxMaracasRendererView::getTabbedPanel(int id) throw(char*)
00081 {
00082 int i;
00083 for(i = 0; i < (tabsVector.size()); i++)
00084 {
00085 if(tabsVector[i]->getPropIdV() == id)
00086 return tabsVector[i];
00087 }
00088 throw "id not found";
00089
00090 return NULL;
00091 }
00092
00096 void wxMaracasRendererView::setRenderer(vtkRenderer* renderer)
00097 {
00098 _renderer = renderer;
00099 }
00100
00101 void wxMaracasRendererView::setVtkBaseView(wxVtk3DBaseView* vbv)
00102 {
00103 baseView = vbv;
00104 }
00105
00109 void wxMaracasRendererView::onLoadImageFile()
00110 {
00111 wxString mhd(_T("mhd"));
00112
00113 wxFileDialog* fildial = new wxFileDialog(this, wxString(_T("Select a MHD file")), wxString(_T("")),
00114 wxString(_T("")), wxString(_T("MHD files (*.mhd)|*.mhd")) );
00115
00116 if(fildial->ShowModal()==wxID_OK)
00117 {
00118 wxString filename = fildial->GetFilename();
00119 files.push_back( std::string(filename.mb_str()) );
00120 wxString pathfile(fildial->GetDirectory() + _T("/") + filename);
00121
00122 if(filename.EndsWith(mhd))
00123 {
00124 std::string sPath = std::string(pathfile.mb_str());
00125 std::string sFileName = std::string(filename.mb_str());
00126 printf("wxMaracasRendererView::onLoadImageFile->Opening file... \n");
00127 addVolumes(NULL, sPath, sFileName);
00128 }
00129 }
00130 delete fildial;
00131 }
00135 void wxMaracasRendererView::addPanels(wxMaracasRenderTabbedPanel* wxtabs, vtkImageData* img, std::string pathfile, std::string filename)
00136 {
00137 wxString s(filename.c_str(),wxConvUTF8);
00138
00139 wxtabs->createControls(img, pathfile, filename);
00140
00141 wxAuiPaneInfo paneinfo;
00142 wxauimanager->AddPane(wxtabs, paneinfo.DefaultPane().Centre().DestroyOnClose().Caption(s));
00143 wxauimanager->Update();
00144 }
00145
00149 void wxMaracasRendererView::addVolumes(vtkImageData* img, std::string pathfile, std::string filename)
00150 {
00151 wxMaracasRenderTabbedPanel* wxtabs = new wxMaracasRenderTabbedPanel(this, _idCount, baseView);
00152 wxtabs->setRenderer(_renderer);
00153
00154 tabsVector.push_back(wxtabs);
00155 addPanels(wxtabs, img, pathfile, filename);
00156
00157 _idCount++;
00158 }
00162 void wxMaracasRendererView::deleteVolume(int volid)
00163 {
00164
00165 getTabbedPanel(volid)->deleteVolume(volid);
00166 }
00167
00171 std::vector<std::string> wxMaracasRendererView::getFiles()
00172 {
00173 return files;
00174 }
00175
00179 ToolBarRenderer::ToolBarRenderer(wxWindow * parent,std::string iconsdir)
00180 : wxToolBar(parent, -1, wxDefaultPosition, wxDefaultSize)
00181 {
00182 std::string iconfil = iconsdir;
00183
00184
00185
00186 wxBitmap bitmap0(OpenImage_xpm);
00187 this->AddTool(1, wxString(_T("test")),bitmap0, NULL, wxITEM_NORMAL, wxString(_T("Open File")));
00188
00189 this->Realize();
00190
00191 _evthand = new ToolBarEventHandlerRenderer();
00192 this->SetEventHandler(_evthand);
00193
00194 }
00195
00196 ToolBarRenderer::~ToolBarRenderer(void){
00197 }
00198
00199 ToolBarEventHandlerRenderer::ToolBarEventHandlerRenderer()
00200 : wxEvtHandler(){
00201 }
00202 ToolBarEventHandlerRenderer::~ToolBarEventHandlerRenderer(){
00203 }
00204
00205 void ToolBarEventHandlerRenderer::onLoadImageFile(wxCommandEvent& event){
00206 wxMaracasRendererView::getInstance()->onLoadImageFile();
00207 }
00208
00209
00210 BEGIN_EVENT_TABLE(ToolBarEventHandlerRenderer, wxEvtHandler)
00211 EVT_MENU(1, ToolBarEventHandlerRenderer::onLoadImageFile)
00212 END_EVENT_TABLE()
00213
00214