]> Creatis software - creaImageIO.git/blobdiff - src/creaImageIOWxISimpleDlg.hpp
#3185 creaImageIO Feature New Normal - Clean code
[creaImageIO.git] / src / creaImageIOWxISimpleDlg.hpp
index 2993b1e27a7c23f0c31bc0ef37115035d703582b..3b70726dab880476230d7ce88bfccb9b1f6c9ee9 100644 (file)
@@ -1,3 +1,35 @@
+/*
+# ---------------------------------------------------------------------
+#
+# Copyright (c) CREATIS (Centre de Recherche en Acquisition et Traitement de l'Image 
+#                        pour la Santé)
+# Authors : Eduardo Davila, Frederic Cervenansky, Claire Mouton
+# Previous Authors : Laurent Guigues, Jean-Pierre Roux
+# CreaTools website : www.creatis.insa-lyon.fr/site/fr/creatools_accueil
+#
+#  This software is governed by the CeCILL-B license under French law and 
+#  abiding by the rules of distribution of free software. You can  use, 
+#  modify and/ or redistribute the software under the terms of the CeCILL-B 
+#  license as circulated by CEA, CNRS and INRIA at the following URL 
+#  http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.html 
+#  or in the file LICENSE.txt.
+#
+#  As a counterpart to the access to the source code and  rights to copy,
+#  modify and redistribute granted by the license, users are provided only
+#  with a limited warranty  and the software's author,  the holder of the
+#  economic rights,  and the successive licensors  have only  limited
+#  liability. 
+#
+#  The fact that you are presently reading this means that you have had
+#  knowledge of the CeCILL-B license and that you accept its terms.
+# ------------------------------------------------------------------------
+*/
+
+
+#ifndef __creaImageIOWxSimpleDlg_hpp_INCLUDED__
+#define __creaImageIOWxSimpleDlg_hpp_INCLUDED__
+
+
 //#include "creaImageIOWxISimpleDlg.h"
 
 #include "creaImageIOWxGimmickReaderDialog.h"
 
 namespace creaImageIO
 {
-               template <typename TImage2> 
+  template <typename TImage2> 
   typename TImage2::Pointer ReadImage( const std::string &fileName) 
   { 
-
-
-
     typename TImage2::Pointer image; 
 
     typedef itk::ImageFileReader<TImage2> ReaderType; 
@@ -53,170 +82,170 @@ namespace creaImageIO
   } 
 
 
-       ///Ctor
+  ///Ctor
   template <typename TImage> 
    WxISimpleDlg<TImage>::WxISimpleDlg(wxWindow *parent, 
-                                                       wxString i_title,  
-                                                       const std::string i_namedescp , 
-                                                       const std::string i_namedb)
-    : wxDialog(parent, -1,_T("DISPLAY IMAGES"), wxDefaultPosition, wxSize(230,150))
+                                      wxString i_title,  
+                                      const std::string i_namedescp , 
+                                      const std::string i_namedb)
+    : wxDialog(parent, -1,_T("SELECT IMAGE(S)"), wxDefaultPosition, wxSize(230,150))
    {
-               namedescp       = i_namedescp; 
-               namedb          = i_namedb;
-
-          if(!i_title.empty())
-          {
-                       this->SetTitle(i_title);  
-          }
-          // Button to select file(s)
-          wxButton *fileBut = new wxButton(this, -1,_T("Select a file to display"), wxPoint(10,7) );
-          Connect( fileBut->GetId(), wxEVT_COMMAND_BUTTON_CLICKED , (wxObjectEventFunction) &WxISimpleDlg::OnReadFile ); 
-
-          // Button to select directory
-          wxButton *directoryBut = new wxButton(this, -1,_T("Select a directory to display"), wxPoint(10,40) );
-          Connect( directoryBut->GetId(), wxEVT_COMMAND_BUTTON_CLICKED , (wxObjectEventFunction) &WxISimpleDlg::OnReadDirectory ); 
-
-          // button to select creaImageIO
-          wxButton *gimmickBut = new wxButton(this, -1,_T("Select Gimmick"), wxPoint(10,70) );
-          Connect( gimmickBut->GetId(), wxEVT_COMMAND_BUTTON_CLICKED , (wxObjectEventFunction) &WxISimpleDlg::OnReadGimmick ); 
-
-          /// \TODO  Button to select Bruker directory
-               m_dicom = true;
-       Layout(); 
-       
-       }
+           namedescp = i_namedescp; 
+           namedb    = i_namedb;
+
+       if(!i_title.empty())
+       {
+           this->SetTitle(i_title);
+       }
+       // Button to select file(s)
+       wxButton *fileBut = new wxButton(this, -1,_T("Select a file to display"), wxPoint(10,7) );
+       Connect( fileBut->GetId(), wxEVT_COMMAND_BUTTON_CLICKED , (wxObjectEventFunction) &WxISimpleDlg::OnReadFile ); 
+
+       // Button to select directory
+       wxButton *directoryBut = new wxButton(this, -1,_T("Select a directory to display"), wxPoint(10,40) );
+       Connect( directoryBut->GetId(), wxEVT_COMMAND_BUTTON_CLICKED , (wxObjectEventFunction) &WxISimpleDlg::OnReadDirectory ); 
+
+       // button to select creaImageIO
+       wxButton *gimmickBut = new wxButton(this, -1,_T("Select Gimmick"), wxPoint(10,70) );
+       Connect( gimmickBut->GetId(), wxEVT_COMMAND_BUTTON_CLICKED , (wxObjectEventFunction) &WxISimpleDlg::OnReadGimmick ); 
+
+       /// \TODO  Button to select Bruker directory
+       m_dicom = true;
+       Layout(); 
+    
+    }
 //////////////////////////////////////////////////////////////////////
 //                                                                  //
 //////////////////////////////////////////////////////////////////////
      template <typename TImage> 
-         void WxISimpleDlg<TImage>::OnReadFile(wxCommandEvent& event)
-         {
-                 int resultShowModal;
-                 wxFileDialog* fileDlg = new wxFileDialog( 0,  _T("Select file"), _T(""), _T(""), crea::std2wx("*"), wxOPEN |wxFD_MULTIPLE, wxDefaultPosition);
+      void WxISimpleDlg<TImage>::OnReadFile(wxCommandEvent& event)
+      {
+          int resultShowModal;
+          wxFileDialog* fileDlg = new wxFileDialog( 0,  _T("Select file"), _T(""), _T(""), crea::std2wx("*"), wxOPEN |wxFD_MULTIPLE, wxDefaultPosition);
     
-                   resultShowModal = fileDlg->ShowModal();
-                       if ( resultShowModal==wxID_OK )
-                       {
-                               wxArrayString wxArray;
-                               fileDlg->GetPaths(wxArray);
-                               if(wxArray.size() >0)
-                               {
-                                       for( int i = 0; i < wxArray.GetCount(); i++)
-                                       {
-                                               readImg( crea::wx2std(wxArray[i]));
-                                       }
-                               } 
-                               else {
-                                       // TO DO WARNING MESSAGES
-                               }
-                       }
-                 SetReturnCode( resultShowModal );
-//              Close();
-                EndModal( resultShowModal );
-         }
-
-
-           template <typename TImage> 
-               void WxISimpleDlg<TImage>::setExts(std::vector<std::string> i_exts)
-               {
-                       m_exts = i_exts;
-               }
- //////////////////////////////////////////////////////////////////////
-//                                                                                                                                     //
+          resultShowModal = fileDlg->ShowModal();
+          if ( resultShowModal==wxID_OK )
+            {
+                wxArrayString wxArray;
+                fileDlg->GetPaths(wxArray);
+                if(wxArray.size() >0)
+                {
+                    for( int i = 0; i < wxArray.GetCount(); i++)
+                    {
+                        readImg( crea::wx2std(wxArray[i]));
+                    }
+                } 
+                else {
+                    /// \TODO WARNING MESSAGES
+                }
+            }
+         SetReturnCode( resultShowModal );
+//       Close();
+         EndModal( resultShowModal );
+      }
+
+
+        template <typename TImage> 
+        void WxISimpleDlg<TImage>::setExts(std::vector<std::string> i_exts)
+        {
+            m_exts = i_exts;
+        }
 //////////////////////////////////////////////////////////////////////
-           template <typename TImage> 
-         void WxISimpleDlg<TImage>::OnReadDirectory(wxCommandEvent &event)
-         {
-                 int resultShowModal;
-                 bool bvalid = false;
-            long style = wxDD_DEFAULT_STYLE | wxDD_DIR_MUST_EXIST;
-                wxDirDialog* dirDlg = new wxDirDialog( 0, _T("Select the directory to display"), _T(""), style);
-                
-                resultShowModal = dirDlg->ShowModal();
-                if ( resultShowModal==wxID_OK )
-                {  
-                       std::string path = crea::wx2std(dirDlg->GetPath());
-                       typedef boost::filesystem::directory_iterator dir_it;
-                       dir_it itr(path);
-                       dir_it end_itr;
-                       /*if (boost::filesystem::exists(path))
-                       {*/
-                               for(;itr != end_itr; ++itr)
-                               {
-                                          bvalid = m_exts.size() == 0? true : false;
-                                          std::vector<std::string>::iterator it = m_exts.begin();
-                                          std::string ext = itr->filename().substr(itr->filename().find_last_of("."));
-                                          for(; it != m_exts.end(); it++)
-                                          {
-                                                  if(ext == (*it) )
-                                                  {
-                                                          bvalid = true;
-                                                          break;
-                                                  }
-                                          }
-                                       if (!boost::filesystem::is_directory(itr->status()) && bvalid)
-                                       {
-                                               readImg(itr->string().c_str());
-                                       }
-                               }
-                }
-                SetReturnCode( resultShowModal );
-//              Close();
-                EndModal( resultShowModal );
-         }
+//                                                                  //
+//////////////////////////////////////////////////////////////////////
+   template <typename TImage> 
+      void WxISimpleDlg<TImage>::OnReadDirectory(wxCommandEvent &event)
+      {
+         int resultShowModal;
+         bool bvalid = false;
+         long style = wxDD_DEFAULT_STYLE | wxDD_DIR_MUST_EXIST;
+         wxDirDialog* dirDlg = new wxDirDialog( 0, _T("Select the directory to display"), _T(""), style);
+         
+         resultShowModal = dirDlg->ShowModal();
+         if ( resultShowModal==wxID_OK )
+         {  
+            std::string path = crea::wx2std(dirDlg->GetPath());
+            typedef boost::filesystem::directory_iterator dir_it;
+            dir_it itr(path);
+            dir_it end_itr;
+            /*if (boost::filesystem::exists(path))
+            {*/
+                for(;itr != end_itr; ++itr)
+                {
+                       bvalid = m_exts.size() == 0? true : false;
+                       std::vector<std::string>::iterator it = m_exts.begin();
+                       std::string ext = itr->filename().substr(itr->filename().find_last_of("."));
+                       for(; it != m_exts.end(); it++)
+                       {
+                           if(ext == (*it) )
+                           {
+                               bvalid = true;
+                               break;
+                           }
+                       }
+                    if (!boost::filesystem::is_directory(itr->status()) && bvalid)
+                    {
+                        readImg(itr->string().c_str());
+                    }
+                }
+         }
+         SetReturnCode( resultShowModal );
+//         Close();
+         EndModal( resultShowModal );
+      }
 
-         //////////////////////////////////////////////////////////////////////
-//                                                                                                                                     //
 //////////////////////////////////////////////////////////////////////
-                   template <typename TImage> 
-         void WxISimpleDlg<TImage>::OnReadGimmick(wxCommandEvent &event)
-         {
-                 // Run Gimmick
-                  WxGimmickReaderDialog dlg(0,-1, 
-                                  namedescp,
-                                  namedb, 
-                                  _T("Select image(s)        - Gimmick! (c) CREATIS-LRMN 2008"),
+//                                                                  //
+//////////////////////////////////////////////////////////////////////
+            template <typename TImage> 
+      void WxISimpleDlg<TImage>::OnReadGimmick(wxCommandEvent &event)
+      {
+          // Run Gimmick
+           WxGimmickReaderDialog dlg(0,-1, 
+                   namedescp,
+                   namedb, 
+                   _T("Select image(s)        - Gimmick! (c) CREATIS-LRMN 2008"),
                    wxDefaultPosition,
                    wxSize(810,750),
                    GIMMICK_2D_IMAGE_SELECTION,
                    GIMMICK_3D_IMAGE_SELECTION,
                    _3D,
-                                  1);
-                dlg.ShowModal();
-                if (dlg.GetReturnCode() == wxID_OK)
-            {
-                       std::vector<std::string> out;
-                       dlg.stopReading();
-                       dlg.GetSelectedFiles(out);
-                       if(m_dicom)
-                       {
-                               readDicomImg( out);
-                       }
-                       else
-                       {
-                               std::vector<std::string>::iterator ii = out.begin();
-                               for (;ii != out.end();ii++)
-                               {
-                                       readImg( (*ii).c_str() );
-                               }
-                       }
-                       dlg.OnExit();
-                }
-                SetReturnCode( dlg.GetReturnCode() );
-//              Close();
-                EndModal( dlg.GetReturnCode() );
-          }
+                   1);
+         dlg.ShowModal();
+         if (dlg.GetReturnCode() == wxID_OK)
+         {
+            std::vector<std::string> out;
+            dlg.stopReading();
+            dlg.GetSelectedFiles(out);
+            if(m_dicom)
+            {
+                readDicomImg( out);
+            }
+            else
+            {
+                std::vector<std::string>::iterator ii = out.begin();
+                for (;ii != out.end();ii++)
+                {
+                    readImg( (*ii).c_str() );
+                }
+            }
+            dlg.OnExit();
+         }
+         SetReturnCode( dlg.GetReturnCode() );
+//         Close();
+         EndModal( dlg.GetReturnCode() );
+       }
 
 
      template <typename TImage> 
-        wxString WxISimpleDlg<TImage>::getInfoImage()
-       {
-               return infoimage;
-       }
+     wxString WxISimpleDlg<TImage>::getInfoImage()
+    {
+        return infoimage;
+    }
 
 
     //////////////////////////////////////////////////////////////////////
-    // Return the results vector                                                                               //
+    // Return the results vector                                        //
     //////////////////////////////////////////////////////////////////////
         template <typename TImage>  
         std::vector<typename TImage::Pointer> WxISimpleDlg<TImage>::getImagesSelected()
@@ -326,6 +355,8 @@ namespace creaImageIO
                        
                                 if(image->GetImageDimension() == 4)
                                 {
+                                                       boost::any a1(image);
+                                                       m_AnyImages.push_back(a1);
                                         // size of fourth dimension 
                                         int dsize = image->GetLargestPossibleRegion().GetSize(3);
                                         // Output Type
@@ -359,6 +390,7 @@ namespace creaImageIO
                                                        vReader->SetFileName((*it).c_str());
                                                        vReader->Update();
                                                        m_Vresults.push_back(vReader->GetOutput());
+                                                       
                                                }
                                        }
                                        catch( itk::ExceptionObject & excp )
@@ -374,3 +406,5 @@ namespace creaImageIO
 
  }// namespace end
 
+#endif //__creaImageIOWxSimpleDlg_hpp_INCLUDED__
+