X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=src%2FcreaImageIOWxSimpleDlg.cpp;h=239b00c0859f30a233524813449b22e02234dae2;hb=1813f80def50d02057c58a83245739066f37f9f0;hp=f11574cd070b50e066190ae7ef32f2b8b3bdf989;hpb=98798bbf1fbbd9faec1dea425789421ffcc60281;p=creaImageIO.git diff --git a/src/creaImageIOWxSimpleDlg.cpp b/src/creaImageIOWxSimpleDlg.cpp index f11574c..239b00c 100644 --- a/src/creaImageIOWxSimpleDlg.cpp +++ b/src/creaImageIOWxSimpleDlg.cpp @@ -33,13 +33,13 @@ namespace creaImageIO ///Ctor - WxSimpleDlg::WxSimpleDlg(wxWindow *parent, + WxSimpleDlg::WxSimpleDlg(wxWindow *parent, wxString i_title, const std::string i_namedescp , const std::string i_namedb) - : wxDialog(parent, -1,_T("SELECT IMAGE(S)"), wxDefaultPosition, wxSize(230,150)) + : wxDialog(parent, -1,_T("SELECT IMAGE(S)"), wxDefaultPosition, wxSize(500,300)) { - namedescp = i_namedescp; + namedescp = i_namedescp; namedb = i_namedb; if(!i_title.empty()) @@ -47,15 +47,15 @@ namespace creaImageIO this->SetTitle(i_title); } // Button to select file(s) - wxButton *fileBut = new wxButton(this, -1,_T("Select a single file"), wxPoint(10,7) ); + wxButton *fileBut = new wxButton(this, -1,_T("Select a single file"), wxPoint(10,10) ); Connect( fileBut->GetId(), wxEVT_COMMAND_BUTTON_CLICKED , (wxObjectEventFunction) &WxSimpleDlg::OnReadFile ); // Button to select directory - wxButton *directoryBut = new wxButton(this, -1,_T("Select all the files in a directory"), wxPoint(10,40) ); + wxButton *directoryBut = new wxButton(this, -1,_T("Select all the files in a directory"), wxPoint(10,50) ); Connect( directoryBut->GetId(), wxEVT_COMMAND_BUTTON_CLICKED , (wxObjectEventFunction) &WxSimpleDlg::OnReadDirectory ); // button to select creaImageIO - wxButton *gimmickBut = new wxButton(this, -1,_T("Select thru Dicom browser"), wxPoint(10,70) ); + wxButton *gimmickBut = new wxButton(this, -1,_T("Select thru Dicom browser"), wxPoint(10,90) ); Connect( gimmickBut->GetId(), wxEVT_COMMAND_BUTTON_CLICKED , (wxObjectEventFunction) &WxSimpleDlg::OnReadGimmick ); /// \TODO Button to select Bruker directory @@ -69,7 +69,12 @@ namespace creaImageIO void WxSimpleDlg::OnReadFile(wxCommandEvent& event) { int resultShowModal; +//EED 2017-09-16 Migration wxWidgets 2.8 to 3.0 +#if wxMAJOR_VERSION <= 2 wxFileDialog* fileDlg = new wxFileDialog( 0, _T("Select file"), _T(""), _T(""), crea::std2wx("*"), wxOPEN |wxFD_MULTIPLE, wxDefaultPosition); +#else + wxFileDialog* fileDlg = new wxFileDialog( 0, _T("Select file"), _T(""), _T(""), crea::std2wx("*"), wxFD_OPEN |wxFD_MULTIPLE, wxDefaultPosition); +#endif resultShowModal = fileDlg->ShowModal(); if ( resultShowModal==wxID_OK ) @@ -132,7 +137,7 @@ namespace creaImageIO void WxSimpleDlg::OnReadGimmick(wxCommandEvent &event) { // Run Gimmick - WxGimmickReaderDialog dlg(0,-1, + WxGimmickReaderDialog dlg(0,-1, namedescp, namedb, _T("Select image(s) - Gimmick! (c)"), @@ -141,15 +146,13 @@ namespace creaImageIO GIMMICK_2D_IMAGE_SELECTION, GIMMICK_3D_IMAGE_SELECTION, _3D, - 1); + 0); dlg.ShowModal(); if (dlg.GetReturnCode() == wxID_OK) { - dlg.stopReading(); - - std::vector outStrGimmick; - dlg.getSelected(outStrGimmick, m_attrDicomTags,true,""); - + dlg.stopReading(); + std::vector outStrGimmick; + dlg.getSelected(outStrGimmick, m_attrDicomTags,true,""); m_results.clear(); int size=(int)outStrGimmick.size(); int ii; @@ -157,8 +160,6 @@ namespace creaImageIO // { for (ii=0;iiModified(); - outStrGimmick[ii].img->Update(); m_results.push_back(outStrGimmick[ii].img); m_resultsDicomAtr.push_back( outStrGimmick[ii].infos ); } @@ -171,7 +172,6 @@ namespace creaImageIO infoimage = _T("EED Missing info ???"); infoimageSource = _T("GIMMICK"); - dlg.OnExit(); } SetReturnCode( dlg.GetReturnCode() ); @@ -214,94 +214,8 @@ namespace creaImageIO //----------------------------------------------------------------------------- vtkImageData* WxSimpleDlg::getVolumeSelected() { - vtkImageData *result; - -// creaImageIO::WxSimpleDlg dlg(0,crea::std2wx(bbGetInputTitle()),"localdatabase_Descriptor.dscp","Local Database"); -// dlg.SetAttrDicomTags( bbGetInputDicomTags() ); -// dlg.ShowModal(); -// bbSetOutputDicomInfo( dlg.getDicomInfoImagesSelected() ); - - if (getImagesSelected().size()!=0){ -// bbSetOutputFileName( std::string( dlg.getInfoImage().mb_str() ) ); - if(getImagesSelected().size() ==1) - { - result = getImagesSelected()[0] ; - } else { - // FCY: it will be a big problem if we have several kind of data in the same folder. - // creation of a huge vtkImageData!!!! - vtkImageData* first = getImagesSelected()[0]; - int dim[3]; - first->GetDimensions(dim); - if (dim[2]==1) - { - vtkImageData *out; - out = vtkImageData::New(); - out->SetScalarType(first->GetScalarType()); - out->SetNumberOfScalarComponents(first->GetNumberOfScalarComponents()); - int ext[6]; - first->GetWholeExtent(ext); - if(ext[5] == 0) - { - ext[5] = getImagesSelected().size()-1; - } else { - ext[5] = ext[5] * getImagesSelected().size()-1; // to deal with multiframes - } // ext - out->SetExtent(ext); - double spac[3]; - first->GetDimensions(dim); - first->GetSpacing(spac); - if (spac[0]==spac[1]) - { - spac[2]=spac[0]; - } - out->SetSpacing(spac); - out->SetDimensions(dim[0], dim[1], getImagesSelected().size() ); - out->AllocateScalars(); - out->Update(); - unsigned long imsize = dim[0] * dim[1]; - imsize = imsize * dim[2]; // deal with multiframes here - // differents formats char , short, etc... - // differents components 1..3 ex. jpg ->RGB 3 - imsize = imsize * first->GetScalarSize() * first->GetNumberOfScalarComponents(); - int slice,sizeImageVector=getImagesSelected().size(); - for (slice=0 ; sliceGetScalarPointer(0,0,slice), img->GetScalarPointer(0,0,0), imsize); - //img->Delete(); - } // for slice - out->Modified(); - out->Update(); -//EED This is NOT working. The iteration over the pointer vtkImageData -// int slice=0; -// std::vector::iterator it; -// for (it=dlg.getImagesSelected().begin(); it!=dlg.getImagesSelected().end(); ++it) -// { -// memcpy(out->GetScalarPointer(0,0,slice), (*it)->GetScalarPointer(0,0,0), imsize); -// slice++; -// } -// //for (it=dlg.getImagesSelected().begin(); it!=dlg.getImagesSelected().end(); ++it) -// //{ -// // (*it)->Delete(); -// //} - - result =out; - - } else { - result = first; - } // dim - } // if getImagesSelected size - } else { - result = NULL; - } // getImagesSelected().size()!=0 - - result->Modified(); - result->Update(); - return result; - - } - - + return m_view.getVolumeSelected( getImagesSelected() ); + } } // namespace creaImageIO