]> Creatis software - creaImageIO.git/blobdiff - src/creaImageIOWxSimpleDlg.cpp
#3323 Bug with ToolBar (in wxFrame an not in wxPanel) in MacOs
[creaImageIO.git] / src / creaImageIOWxSimpleDlg.cpp
index f11574cd070b50e066190ae7ef32f2b8b3bdf989..239b00c0859f30a233524813449b22e02234dae2 100644 (file)
@@ -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<creaImageIO::OutStrGimmick> outStrGimmick;
-                               dlg.getSelected(outStrGimmick, m_attrDicomTags,true,"");
-
+                       dlg.stopReading();
+                       std::vector<creaImageIO::OutStrGimmick> 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;ii<size;ii++)
                                {
-                                       outStrGimmick[ii].img->Modified();
-                                       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 <void> ???");
                        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 ; slice<sizeImageVector ; slice++)
-                                       {
-                                               vtkImageData *img = getImagesSelected()[slice];
-                                               memcpy(out->GetScalarPointer(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<vtkImageData*>::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