]> Creatis software - creaImageIO.git/blob - src/creaImageIOWxSimpleDlg.cpp
afe11168d2d7b915a1d0375df93983512a83a75b
[creaImageIO.git] / src / creaImageIOWxSimpleDlg.cpp
1 #include "creaImageIOWxSimpleDlg.h"
2 #include "creaImageIOWxGimmickReaderDialog.h"
3 //#include <itkAnalyzeImageIO.h>
4 //#include <itkImageFileReader.h>
5 //#include <itkImage.h>
6
7 namespace creaImageIO
8 {
9
10
11         ///Ctor
12    WxSimpleDlg::WxSimpleDlg(wxWindow *parent, 
13                                                         wxString i_title,  
14                                                         const std::string i_namedescp , 
15                                                         const std::string i_namedb)
16     : wxDialog(parent, -1,_T("DISPLAY IMAGES"), wxDefaultPosition, wxSize(230,150))
17    {
18                 namedescp       = i_namedescp; 
19                 namedb          = i_namedb;
20
21            if(!i_title.empty())
22            {
23                         this->SetTitle(i_title);  
24            }
25            // Button to select file(s)
26            wxButton *fileBut = new wxButton(this, -1,_T("Select a single file to display"), wxPoint(10,7) );
27            Connect( fileBut->GetId(), wxEVT_COMMAND_BUTTON_CLICKED , (wxObjectEventFunction) &WxSimpleDlg::OnReadFile ); 
28
29            // Button to select directory
30            wxButton *directoryBut = new wxButton(this, -1,_T("Select a directory to display"), wxPoint(10,40) );
31            Connect( directoryBut->GetId(), wxEVT_COMMAND_BUTTON_CLICKED , (wxObjectEventFunction) &WxSimpleDlg::OnReadDirectory ); 
32
33            // button to select creaImageIO
34            wxButton *gimmickBut = new wxButton(this, -1,_T("Select thru Dicom browser"), wxPoint(10,70) );
35            Connect( gimmickBut->GetId(), wxEVT_COMMAND_BUTTON_CLICKED , (wxObjectEventFunction) &WxSimpleDlg::OnReadGimmick ); 
36
37            /// \TODO  Button to select Bruker directory
38         
39         Layout(); 
40         
41         }
42 //////////////////////////////////////////////////////////////////////
43 //                                                                  //
44 //////////////////////////////////////////////////////////////////////
45           void WxSimpleDlg::OnReadFile(wxCommandEvent& event)
46           {
47                   int resultShowModal;
48                   wxFileDialog* fileDlg = new wxFileDialog( 0,  _T("Select file"), _T(""), _T(""), crea::std2wx("*"), wxOPEN |wxFD_MULTIPLE, wxDefaultPosition);
49     
50                     resultShowModal = fileDlg->ShowModal();
51                         if ( resultShowModal==wxID_OK )
52                         {
53                                 wxArrayString wxArray;
54                                 fileDlg->GetPaths(wxArray);
55                                 if(wxArray.size() >0)
56                                 {
57                                 /*      typedef itk::Image< float, 4 >         ImageType;
58                                         ReadImage<ImageType>(crea::wx2std(wxArray[0]).c_str());*/
59
60                                         infoimage=_T("FILE(s):")+wxArray[0];
61                                         std::vector<std::string> files;
62                                         for( int i = 0; i < wxArray.GetCount(); i++)
63                                         {
64                                                 files.push_back( crea::wx2std(wxArray[i]));
65                                         }
66                                         if(!m_view.readFile(files,m_results))
67                                         {
68                                                 //TO DO WARNING MESSAGE;
69                                         }
70                                 } else {
71                                         // TO DO WARNING MESSAGES
72                                 }
73                         }
74                   SetReturnCode( resultShowModal );
75 //               Close();
76                  EndModal( resultShowModal );
77           }
78
79  //////////////////////////////////////////////////////////////////////
80 //                                                                                                                                      //
81 //////////////////////////////////////////////////////////////////////
82
83           void WxSimpleDlg::OnReadDirectory(wxCommandEvent &event)
84           {
85                   int resultShowModal;
86              long style = wxDD_DEFAULT_STYLE | wxDD_DIR_MUST_EXIST;
87                  wxDirDialog* dirDlg = new wxDirDialog( 0, _T("Select the directory to display"), _T(""), style);
88                  
89                  resultShowModal = dirDlg->ShowModal();
90                  if ( resultShowModal==wxID_OK )
91                  {  
92                         infoimage=_T("DIRECTORY:")+dirDlg->GetPath();
93                         if(! m_view.readDirectory(crea::wx2std(dirDlg->GetPath()),m_results))
94                         {
95                                 //TO DO WARNING MESSAGE;
96                         }
97                  }
98                  SetReturnCode( resultShowModal );
99 //               Close();
100                  EndModal( resultShowModal );
101           }
102
103           //////////////////////////////////////////////////////////////////////
104 //                                                                                                                                      //
105 //////////////////////////////////////////////////////////////////////
106
107           void WxSimpleDlg::OnReadGimmick(wxCommandEvent &event)
108           {
109                   // Run Gimmick
110                    WxGimmickReaderDialog dlg(0,-1, 
111                                    namedescp,
112                                    namedb, 
113                                    _T("Select image(s)        - Gimmick! (c) CREATIS-LRMN 2008"),
114                    wxDefaultPosition,
115                    wxSize(810,750),
116                    GIMMICK_2D_IMAGE_SELECTION,
117                    GIMMICK_3D_IMAGE_SELECTION,
118                    _3D,
119                                    1);
120                  dlg.ShowModal();
121                  if (dlg.GetReturnCode() == wxID_OK)
122              {
123         //              infoimage=_T("DICOM: ???_EED_???");
124 //EED 07JUIN2010                        dlg.GetSelectedImages(m_results,3);
125                         std::vector<creaImageIO::OutStrGimmick> out;
126                         std::vector<std::string> attr;
127 //                              attr.push_back("D0028_0010");
128 //                              attr.push_back("D0008_0023");
129 //                              attr.push_back("D0008_1070");
130                                 dlg.stopReading();
131                                 dlg.getSelected(out, attr,true,"");
132 //                              crea::VtkBasicSlicer(out.front().img);
133                         m_results.clear();
134                         int size=out.size();
135                         int ii;
136                         for (ii=0;ii<size;ii++)
137                         {
138                                 m_results.push_back(out[ii].img);
139                         }
140
141                         dlg.OnExit();
142                  }
143                  SetReturnCode( dlg.GetReturnCode() );
144 //               Close();
145                  EndModal( dlg.GetReturnCode() );
146            }
147
148         wxString WxSimpleDlg::getInfoImage()
149         {
150                 return infoimage;
151         }
152
153  //////////////////////////////////////////////////////////////////////
154 // Return the results vector                                                                            //
155 //////////////////////////////////////////////////////////////////////
156           std::vector<vtkImageData*> WxSimpleDlg::getImagesSelected()
157           {
158                   return m_results;
159           }
160 }
161