00001 #include "creaImageIOWxSimpleDlg.h"
00002 #include "creaImageIOWxGimmickReaderDialog.h"
00003
00004
00005
00006
00007 namespace creaImageIO
00008 {
00009
00010
00012 WxSimpleDlg::WxSimpleDlg(wxWindow *parent,
00013 wxString i_title,
00014 const std::string i_namedescp ,
00015 const std::string i_namedb)
00016 : wxDialog(parent, -1,_T("SELECT IMAGE(S)"), wxDefaultPosition, wxSize(230,150))
00017 {
00018 namedescp = i_namedescp;
00019 namedb = i_namedb;
00020
00021 if(!i_title.empty())
00022 {
00023 this->SetTitle(i_title);
00024 }
00025
00026 wxButton *fileBut = new wxButton(this, -1,_T("Select a single file"), wxPoint(10,7) );
00027 Connect( fileBut->GetId(), wxEVT_COMMAND_BUTTON_CLICKED , (wxObjectEventFunction) &WxSimpleDlg::OnReadFile );
00028
00029
00030 wxButton *directoryBut = new wxButton(this, -1,_T("Select all the files in a directory"), wxPoint(10,40) );
00031 Connect( directoryBut->GetId(), wxEVT_COMMAND_BUTTON_CLICKED , (wxObjectEventFunction) &WxSimpleDlg::OnReadDirectory );
00032
00033
00034 wxButton *gimmickBut = new wxButton(this, -1,_T("Select thru Dicom browser"), wxPoint(10,70) );
00035 Connect( gimmickBut->GetId(), wxEVT_COMMAND_BUTTON_CLICKED , (wxObjectEventFunction) &WxSimpleDlg::OnReadGimmick );
00036
00038
00039 Layout();
00040
00041 }
00043
00045 void WxSimpleDlg::OnReadFile(wxCommandEvent& event)
00046 {
00047 int resultShowModal;
00048 wxFileDialog* fileDlg = new wxFileDialog( 0, _T("Select file"), _T(""), _T(""), crea::std2wx("*"), wxOPEN |wxFD_MULTIPLE, wxDefaultPosition);
00049
00050 resultShowModal = fileDlg->ShowModal();
00051 if ( resultShowModal==wxID_OK )
00052 {
00053 wxArrayString wxArray;
00054 fileDlg->GetPaths(wxArray);
00055 if(wxArray.size() >0)
00056 {
00057
00058
00059
00060 infoimage=_T("FILE(s):")+wxArray[0];
00061 std::vector<std::string> files;
00062 for( int i = 0; i < wxArray.GetCount(); i++)
00063 {
00064 files.push_back( crea::wx2std(wxArray[i]));
00065 }
00066 if(!m_view.readFile(files,m_results))
00067 {
00068
00069 }
00070 } else {
00071
00072 }
00073 }
00074 SetReturnCode( resultShowModal );
00075
00076 EndModal( resultShowModal );
00077 }
00078
00080
00082
00083 void WxSimpleDlg::OnReadDirectory(wxCommandEvent &event)
00084 {
00085 int resultShowModal;
00086 long style = wxDD_DEFAULT_STYLE | wxDD_DIR_MUST_EXIST;
00087 wxDirDialog* dirDlg = new wxDirDialog( 0, _T("Select the directory to display"), _T(""), style);
00088
00089 resultShowModal = dirDlg->ShowModal();
00090 if ( resultShowModal==wxID_OK )
00091 {
00092 infoimage=_T("DIRECTORY:")+dirDlg->GetPath();
00093 if(! m_view.readDirectory(crea::wx2std(dirDlg->GetPath()),m_results))
00094 {
00095
00096 }
00097 }
00098 SetReturnCode( resultShowModal );
00099
00100 EndModal( resultShowModal );
00101 }
00102
00104
00106
00107 void WxSimpleDlg::OnReadGimmick(wxCommandEvent &event)
00108 {
00109
00110 WxGimmickReaderDialog dlg(0,-1,
00111 namedescp,
00112 namedb,
00113 _T("Select image(s) - Gimmick! (c) CREATIS-LRMN 2008"),
00114 wxDefaultPosition,
00115 wxSize(810,750),
00116 GIMMICK_2D_IMAGE_SELECTION,
00117 GIMMICK_3D_IMAGE_SELECTION,
00118 _3D,
00119 1);
00120 dlg.ShowModal();
00121 if (dlg.GetReturnCode() == wxID_OK)
00122 {
00123
00124
00125 std::vector<creaImageIO::OutStrGimmick> out;
00126 std::vector<std::string> attr;
00127
00128
00129
00130 dlg.stopReading();
00131 dlg.getSelected(out, attr,true,"");
00132
00133 m_results.clear();
00134 int size=out.size();
00135 int ii;
00136 for (ii=0;ii<size;ii++)
00137 {
00138 m_results.push_back(out[ii].img);
00139 }
00140
00141 dlg.OnExit();
00142 }
00143 SetReturnCode( dlg.GetReturnCode() );
00144
00145 EndModal( dlg.GetReturnCode() );
00146 }
00147
00148 wxString WxSimpleDlg::getInfoImage()
00149 {
00150 return infoimage;
00151 }
00152
00154
00156 std::vector<vtkImageData*> WxSimpleDlg::getImagesSelected()
00157 {
00158 return m_results;
00159 }
00160 }
00161