#include "wxVtkDICOMImporter.h" #include #include wxVtkDICOMImporter::wxVtkDICOMImporter (wxWindow* parent) : wxWizard (parent,wxID_ANY,wxT("DICOM Importer Wizard"), wxNullBitmap, wxDefaultPosition, wxDEFAULT_DIALOG_STYLE | wxRESIZE_BORDER) { m_Page1 = new wxVtkDICOMImporterPage1 (this); m_Page2 = new wxVtkDICOMImporterPage2 (this); wxWizardPageSimple::Chain(m_Page1, m_Page2); wxSize size = m_Page2->GetBestSize(); size.SetHeight ( (int)(size.GetWidth()*0.75) ); this->SetPageSize ( size ); m_Page1->m_Text->Wrap ( size.GetWidth()-10 ); if( this->RunWizard (m_Page1) ) {} } BEGIN_EVENT_TABLE (wxVtkDICOMImporter, wxWizard) EVT_WIZARD_PAGE_CHANGED (wxID_ANY, wxVtkDICOMImporter::OnPageChanged) EVT_WIZARD_FINISHED (wxID_ANY, wxVtkDICOMImporter::OnFinished) EVT_WIZARD_PAGE_CHANGING (wxID_ANY, wxVtkDICOMImporter::OnPageChanging) END_EVENT_TABLE() void wxVtkDICOMImporter::OnPageChanged(wxWizardEvent &event) { } void wxVtkDICOMImporter::OnFinished(wxWizardEvent &event) { //m_Page2->DeleteCurrentNavigationThread(); wxItkProgressDialog* progressDialog = new wxItkProgressDialog(wxT ("Please wait"), wxT("Building volumes..."),100, this,wxPD_AUTO_HIDE); m_Page2->GetImporter()->AddObserver (itk::ProgressEvent(), progressDialog->GetCallback()); try { m_Page2->GetImporter()->BuildAllVolumes(); } catch (itk::ExceptionObject & e) { std::cerr << e; } m_Page2->GetImporter()->RemoveAllObservers(); progressDialog->Destroy(); std::vector dcmvolumelist = m_Page2->GetImporter()->GetDICOMVolumeList(); for (unsigned int i=0; iGetImage().IsNull() ) { m_Outputs.push_back( dcmvolumelist[i]->GetImage() ); m_Descriptions.push_back( dcmvolumelist[i]->GetDescription() ); } } } void wxVtkDICOMImporter::OnPageChanging(wxWizardEvent &event) { }