]> Creatis software - creaImageIO.git/blob - src/creaImageIOWxSimpleDlg.cpp
4b98476c3d93103fdc6b81f392784c8cf4db2ad9
[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                                         m_results.clear();
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                          m_results.clear();
88                         infoimage=_T("DIRECTORY:")+dirDlg->GetPath();
89                         if(! m_view.readDirectory(crea::wx2std(dirDlg->GetPath()),m_results))
90                         {
91                                 //TO DO WARNING MESSAGE;
92                         }
93                  }
94                  SetReturnCode( resultShowModal );
95 //               Close();
96                  EndModal( resultShowModal );
97           }
98
99           //////////////////////////////////////////////////////////////////////
100 //                                                                                                                                      //
101 //////////////////////////////////////////////////////////////////////
102
103           void WxSimpleDlg::OnReadGimmick(wxCommandEvent &event)
104           {
105                   // Run Gimmick
106                    WxGimmickReaderDialog dlg(0,-1, 
107                                    namedescp,
108                                    namedb, 
109                                    _T("Select image(s)        - Gimmick! (c) CREATIS-LRMN 2008"),
110                    wxDefaultPosition,
111                    wxSize(810,750),
112                    GIMMICK_2D_IMAGE_SELECTION,
113                    GIMMICK_3D_IMAGE_SELECTION,
114                    _3D,
115                                    1);
116                  dlg.ShowModal();
117                  if (dlg.GetReturnCode() == wxID_OK)
118              {
119                         std::vector<creaImageIO::OutStrGimmick> out;
120                         std::vector<std::string> attr;
121                                 dlg.stopReading();
122                                 dlg.getSelected(out, attr,true,"");
123                         m_results.clear();
124                         int size=out.size();
125                         int ii;
126                         if(!bInfo)
127                         {
128                                 for (ii=0;ii<size;ii++)
129                                 {
130                                         m_results.push_back(out[ii].img);
131                                 }
132                         }
133                         else
134                         {
135                                 for (ii=0;ii<size;ii++)
136                                 {
137                                         m_resultsInfo.push_back(out[ii]);
138                                 }
139                         }
140                         dlg.OnExit();
141                  }
142                  SetReturnCode( dlg.GetReturnCode() );
143                  EndModal( dlg.GetReturnCode() );
144            }
145
146         wxString WxSimpleDlg::getInfoImage()
147         {
148                 return infoimage;
149         }
150
151  //////////////////////////////////////////////////////////////////////
152 // Return the results vector                                                                            //
153 //////////////////////////////////////////////////////////////////////
154           std::vector<vtkImageData*> WxSimpleDlg::getImagesSelected()
155           {
156                   return m_results;
157           }
158
159           
160 }
161