]> Creatis software - creaImageIO.git/blobdiff - src/creaImageIOWxSimpleDlg.cpp
#3320 ReadImages box
[creaImageIO.git] / src / creaImageIOWxSimpleDlg.cpp
index e750b912c185811e58608c261985f64daf97fee4..5ee7649e489a5758ada7efb056ca598e55318b11 100644 (file)
@@ -37,7 +37,7 @@ namespace creaImageIO
                             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; 
                namedb          = i_namedb;
@@ -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 )
@@ -79,7 +84,8 @@ namespace creaImageIO
                                if(wxArray.size() >0)
                                {
                                        m_results.clear();
-                                       infoimage=_T("FILE(s):")+wxArray[0];
+                                       infoimage               =       wxArray[0];
+                                       infoimageSource =       _T("FILE(s)");
                                        std::vector<std::string> files;
                                        for( int i = 0; i < wxArray.GetCount(); i++)
                                        {
@@ -112,7 +118,8 @@ namespace creaImageIO
                 if ( resultShowModal==wxID_OK )
                 {  
                         m_results.clear();
-                       infoimage=_T("DIRECTORY:")+dirDlg->GetPath();
+                       infoimage               =       dirDlg->GetPath();
+                       infoimageSource =       _T("DIRECTORY");
                        if(! m_view.readDirectory(crea::wx2std(dirDlg->GetPath()) , m_attrDicomTags , m_resultsDicomAtr , m_results))
                        {
                                //TO DO WARNING MESSAGE;
@@ -133,21 +140,19 @@ namespace creaImageIO
                   WxGimmickReaderDialog dlg(0,-1, 
                                   namedescp,
                                   namedb, 
-                                  _T("Select image(s)        - Gimmick! (c) CREATIS-LRMN 2008"),
+                                  _T("Select image(s)        - Gimmick! (c)"),
                    wxDefaultPosition,
                    wxSize(810,750),
                    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;
@@ -165,6 +170,8 @@ namespace creaImageIO
 //                             }
 //                     }
 
+                       infoimage               =       _T("EED Missing info <void> ???");
+                       infoimageSource =       _T("GIMMICK");
                        dlg.OnExit();
                 }
                 SetReturnCode( dlg.GetReturnCode() );
@@ -177,6 +184,12 @@ namespace creaImageIO
                return infoimage;
        }
 
+//-----------------------------------------------------------------------------   
+       wxString WxSimpleDlg::getInfoImageSource()
+       {
+               return infoimageSource;
+       }
+
  //////////////////////////////////////////////////////////////////////
 // Return the results vector                                                                           //
 //////////////////////////////////////////////////////////////////////
@@ -201,92 +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  
-
-//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
-
-
-               return result;
-
-               }
-
-
+               return m_view.getVolumeSelected( getImagesSelected() );
+       }
 
 } // namespace creaImageIO