wxMaracasRendererView.cxx

Go to the documentation of this file.
00001 /*=========================================================================
00002 
00003   Program:   wxMaracas
00004   Module:    $RCSfile: wxMaracasRendererView.cxx,v $
00005   Language:  C++
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         //iconfil+= "/OpenImage.png";
00185         //wxBitmap* bitmap0 = new wxBitmap(wxString(iconfil.c_str(),wxConvUTF8), wxBITMAP_TYPE_PNG);
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 

Generated on 18 Mar 2010 for creaMaracasVisu_lib by  doxygen 1.6.1