creaImageIOWxSimpleDlg.cpp

Go to the documentation of this file.
00001 #include "creaImageIOWxSimpleDlg.h"
00002 #include "creaImageIOWxGimmickReaderDialog.h"
00003 //#include <itkAnalyzeImageIO.h>
00004 //#include <itkImageFileReader.h>
00005 //#include <itkImage.h>
00006 
00007 namespace creaImageIO
00008 {
00009 
00010 
00012    WxSimpleDlg::WxSimpleDlg(wxWindow *parent, 
00013                             wxString i_title,  
00014                             const std::string i_namedescp , 
00015                             const std::string i_namedb)
00016     : wxDialog(parent, -1,_T("SELECT IMAGE(S)"), wxDefaultPosition, wxSize(230,150))
00017    {
00018                 namedescp       = i_namedescp; 
00019                 namedb          = i_namedb;
00020 
00021            if(!i_title.empty())
00022            {
00023                         this->SetTitle(i_title);  
00024            }
00025            // Button to select file(s)
00026            wxButton *fileBut = new wxButton(this, -1,_T("Select a single file"), wxPoint(10,7) );
00027            Connect( fileBut->GetId(), wxEVT_COMMAND_BUTTON_CLICKED , (wxObjectEventFunction) &WxSimpleDlg::OnReadFile ); 
00028 
00029            // Button to select directory
00030            wxButton *directoryBut = new wxButton(this, -1,_T("Select all the files in a directory"), wxPoint(10,40) );
00031            Connect( directoryBut->GetId(), wxEVT_COMMAND_BUTTON_CLICKED , (wxObjectEventFunction) &WxSimpleDlg::OnReadDirectory ); 
00032 
00033            // button to select creaImageIO
00034            wxButton *gimmickBut = new wxButton(this, -1,_T("Select thru Dicom browser"), wxPoint(10,70) );
00035            Connect( gimmickBut->GetId(), wxEVT_COMMAND_BUTTON_CLICKED , (wxObjectEventFunction) &WxSimpleDlg::OnReadGimmick ); 
00036 
00038         
00039         Layout(); 
00040         
00041         }
00043 //                                                                  //
00045           void WxSimpleDlg::OnReadFile(wxCommandEvent& event)
00046           {
00047                   int resultShowModal;
00048                   wxFileDialog* fileDlg = new wxFileDialog( 0,  _T("Select file"), _T(""), _T(""), crea::std2wx("*"), wxOPEN |wxFD_MULTIPLE, wxDefaultPosition);
00049     
00050                     resultShowModal = fileDlg->ShowModal();
00051                         if ( resultShowModal==wxID_OK )
00052                         {
00053                                 wxArrayString wxArray;
00054                                 fileDlg->GetPaths(wxArray);
00055                                 if(wxArray.size() >0)
00056                                 {
00057                                 /*      typedef itk::Image< float, 4 >         ImageType;
00058                                         ReadImage<ImageType>(crea::wx2std(wxArray[0]).c_str());*/
00059 
00060                                         infoimage=_T("FILE(s):")+wxArray[0];
00061                                         std::vector<std::string> files;
00062                                         for( int i = 0; i < wxArray.GetCount(); i++)
00063                                         {
00064                                                 files.push_back( crea::wx2std(wxArray[i]));
00065                                         }
00066                                         if(!m_view.readFile(files,m_results))
00067                                         {
00068                                                 //TO DO WARNING MESSAGE;
00069                                         }
00070                                 } else {
00071                                         // TO DO WARNING MESSAGES
00072                                 }
00073                         }
00074                   SetReturnCode( resultShowModal );
00075 //               Close();
00076                  EndModal( resultShowModal );
00077           }
00078 
00080 //                                                                                                                                      //
00082 
00083           void WxSimpleDlg::OnReadDirectory(wxCommandEvent &event)
00084           {
00085                   int resultShowModal;
00086              long style = wxDD_DEFAULT_STYLE | wxDD_DIR_MUST_EXIST;
00087                  wxDirDialog* dirDlg = new wxDirDialog( 0, _T("Select the directory to display"), _T(""), style);
00088                  
00089                  resultShowModal = dirDlg->ShowModal();
00090                  if ( resultShowModal==wxID_OK )
00091                  {  
00092                         infoimage=_T("DIRECTORY:")+dirDlg->GetPath();
00093                         if(! m_view.readDirectory(crea::wx2std(dirDlg->GetPath()),m_results))
00094                         {
00095                                 //TO DO WARNING MESSAGE;
00096                         }
00097                  }
00098                  SetReturnCode( resultShowModal );
00099 //               Close();
00100                  EndModal( resultShowModal );
00101           }
00102 
00104 //                                                                                                                                      //
00106 
00107           void WxSimpleDlg::OnReadGimmick(wxCommandEvent &event)
00108           {
00109                   // Run Gimmick
00110                    WxGimmickReaderDialog dlg(0,-1, 
00111                                    namedescp,
00112                                    namedb, 
00113                                    _T("Select image(s)        - Gimmick! (c) CREATIS-LRMN 2008"),
00114                    wxDefaultPosition,
00115                    wxSize(810,750),
00116                    GIMMICK_2D_IMAGE_SELECTION,
00117                    GIMMICK_3D_IMAGE_SELECTION,
00118                    _3D,
00119                                    1);
00120                  dlg.ShowModal();
00121                  if (dlg.GetReturnCode() == wxID_OK)
00122              {
00123         //              infoimage=_T("DICOM: ???_EED_???");
00124 //EED 07JUIN2010                        dlg.GetSelectedImages(m_results,3);
00125                         std::vector<creaImageIO::OutStrGimmick> out;
00126                         std::vector<std::string> attr;
00127 //                              attr.push_back("D0028_0010");
00128 //                              attr.push_back("D0008_0023");
00129 //                              attr.push_back("D0008_1070");
00130                                 dlg.stopReading();
00131                                 dlg.getSelected(out, attr,true,"");
00132 //                              crea::VtkBasicSlicer(out.front().img);
00133                         m_results.clear();
00134                         int size=out.size();
00135                         int ii;
00136                         for (ii=0;ii<size;ii++)
00137                         {
00138                                 m_results.push_back(out[ii].img);
00139                         }
00140 
00141                         dlg.OnExit();
00142                  }
00143                  SetReturnCode( dlg.GetReturnCode() );
00144 //               Close();
00145                  EndModal( dlg.GetReturnCode() );
00146            }
00147 
00148         wxString WxSimpleDlg::getInfoImage()
00149         {
00150                 return infoimage;
00151         }
00152 
00154 // Return the results vector                                                                            //
00156           std::vector<vtkImageData*> WxSimpleDlg::getImagesSelected()
00157           {
00158                   return m_results;
00159           }
00160 }
00161