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