X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=lib%2FInterface_Icons_NDimensions%2FinterfToolsPanels.cxx;h=145d5110f8dc1dfe4dd1474f41cb6870b5b300d2;hb=b128ce9887ab3b60445acb9cccdad0eb5f5658d9;hp=ea46142b8f9c0ccd0c8873c192a9a0bf0b42852c;hpb=c44a460ed5caecaf9ba53099158ff0d80fae0353;p=creaContours.git diff --git a/lib/Interface_Icons_NDimensions/interfToolsPanels.cxx b/lib/Interface_Icons_NDimensions/interfToolsPanels.cxx index ea46142..145d511 100644 --- a/lib/Interface_Icons_NDimensions/interfToolsPanels.cxx +++ b/lib/Interface_Icons_NDimensions/interfToolsPanels.cxx @@ -8,7 +8,7 @@ interfConfigurationPanel::interfConfigurationPanel(wxWindow * parent) _withOfContourLine = new wxSlider(this, -1, 1 , 1, 10, wxDefaultPosition, wxDefaultSize, wxSL_HORIZONTAL|wxSL_LABELS, wxDefaultValidator); double range[2]; - interfMainPanel::getInstance()->GetImageDataRange(range); + interfMainPanel::getInstance()->getImageRange(range); //this->_theViewPanel->getSceneManager()->GetImageDataRange(range); //wxVtk2DBaseView *wxvtk2dbaseview = (wxVtk2DBaseView*)this->_theViewPanel->getWxVtkBaseView(); @@ -19,9 +19,12 @@ interfConfigurationPanel::interfConfigurationPanel(wxWindow * parent) int colorwindow = interfMainPanel::getInstance()->getColorWindow(); int windowlevel = interfMainPanel::getInstance()->getWindowLevel(); + int min = (int)floor (range[0]); + int max = (int)ceil (range[1]); + - _brithtnessWindowLevel = new wxSlider(this, -1, windowlevel , 1, (int)range[1], wxDefaultPosition, wxDefaultSize, wxSL_HORIZONTAL|wxSL_LABELS, wxDefaultValidator); - _brithtnessColorLevel = new wxSlider(this, -1, colorwindow , 1, (int)range[1], wxDefaultPosition, wxDefaultSize, wxSL_HORIZONTAL|wxSL_LABELS, wxDefaultValidator); + _brithtnessWindowLevel = new wxSlider(this, -1, windowlevel , min, max, wxDefaultPosition, wxDefaultSize, wxSL_HORIZONTAL|wxSL_LABELS, wxDefaultValidator); + _brithtnessColorLevel = new wxSlider(this, -1, colorwindow , min, max, wxDefaultPosition, wxDefaultSize, wxSL_HORIZONTAL|wxSL_LABELS, wxDefaultValidator); _interpolationCheckBox = new wxCheckBox(this, -1, _T("Image interpolation") ); _interpolationCheckBox->SetValue(true); @@ -179,8 +182,8 @@ void interfSpreadPanel::setStringSpread(std::string stringtemp){ ** Begin of information panel **/ interfInformationPanel::interfInformationPanel(wxWindow * parent) -: wxPanel(parent, -1, wxDefaultPosition, wxDefaultSize, wxBORDER_SUNKEN){ - +: wxPanel(parent, -1, wxDefaultPosition, wxDefaultSize, wxBORDER_SUNKEN) +{ //wxPanel *panel = new wxPanel(parent,-1,wxDefaultPosition, wxDefaultSize,wxTAB_TRAVERSAL); wxString lstOptions[4]; lstOptions[0]=_T("Current Slice"); @@ -195,6 +198,15 @@ interfInformationPanel::interfInformationPanel(wxWindow * parent) lstOptContOperation[3]=_T("ALL"); _radiolstboxContourGroup = new wxRadioBox(this, -1, _T("Contour group"), wxDefaultPosition, wxSize(270,45), 4 , lstOptContOperation, 4, wxRA_SPECIFY_COLS); + _XYZValues = new wxCheckBox(this, -1, _T("Save Contour Values") ); + _XYZValues->SetValue(true); + + _contourImage = new wxCheckBox(this, -1, _T("Extract Contours as Images") ); + _contourImage->SetValue(true); + + _statistics = new wxCheckBox(this, -1, _T("Save Statistics") ); + _statistics->SetValue(true); + wxButton *informationContourLabelsBtn = new wxButton(this,-1,_T("Contour labels"),wxDefaultPosition, wxSize(140,35) ); informationContourLabelsBtn->SetEventHandler( this ); Connect( informationContourLabelsBtn->GetId(), wxEVT_COMMAND_BUTTON_CLICKED , (wxObjectEventFunction) &interfInformationPanel::onInformationContourLabels ); @@ -203,11 +215,16 @@ interfInformationPanel::interfInformationPanel(wxWindow * parent) statisticsContourBtn->SetEventHandler( this ); Connect( statisticsContourBtn->GetId(), wxEVT_COMMAND_BUTTON_CLICKED , (wxObjectEventFunction) &interfInformationPanel::onExtractInformation ); - wxButton *saveResultsBtn = new wxButton(this,-1,_T("Save statistics results"),wxDefaultPosition, wxSize(140,35) ); + wxButton *showResultImagesBtn = new wxButton(this,-1,_T("Show result images"),wxDefaultPosition, wxSize(140,35) ); + showResultImagesBtn->SetEventHandler( this ); + Connect( showResultImagesBtn->GetId(), wxEVT_COMMAND_BUTTON_CLICKED , (wxObjectEventFunction) &interfInformationPanel::onShowResultImages ); + + + wxButton *saveResultsBtn = new wxButton(this,-1,_T("Save Results"),wxDefaultPosition, wxSize(140,35) ); saveResultsBtn->SetEventHandler( this ); Connect( saveResultsBtn->GetId(), wxEVT_COMMAND_BUTTON_CLICKED , (wxObjectEventFunction) &interfInformationPanel::onSaveResults ); - - + + int sizeZ = interfMainPanel::getInstance()->GetImageDataSizeZ(); //_theViewPanel->getSceneManager()->GetImageDataSizeZ(); _mbarrangeSliceInformation = new mBarRange(this,65,65); @@ -223,36 +240,31 @@ interfInformationPanel::interfInformationPanel(wxWindow * parent) _mbarrangeSliceInformation-> SetStart( 0 ); _mbarrangeSliceInformation-> SetEnd( sizeZ-1 ); - double range[2]; - interfMainPanel::getInstance()->GetImageDataRange(range); - //this->_theViewPanel->getSceneManager()->GetImageDataRange(range); - _mbarrangeRangeInformation = new mBarRange(this,65,65); + interfMainPanel::getInstance()->getImageRange(range); + + int min = (int)floor (range[0]); + int max = (int)ceil (range[1]); + + _mbarrangeRangeInformation = new mBarRange(this,65,65); _mbarrangeRangeInformation->SetMin(0); _mbarrangeRangeInformation->SetStart(0); _mbarrangeRangeInformation-> SetOrientation( true ); _mbarrangeRangeInformation-> setActiveStateTo(true); _mbarrangeRangeInformation-> setVisibleLabels( true ); _mbarrangeRangeInformation-> setDeviceEndMargin(10); - _mbarrangeRangeInformation-> setRepresentedValues( range[0] , range[1] ); + _mbarrangeRangeInformation-> setRepresentedValues( min , max ); _mbarrangeRangeInformation-> setDeviceBlitStart(10,10); _mbarrangeRangeInformation-> setIfWithActualDrawed( false ); - _mbarrangeRangeInformation-> SetStart( (int)range[0] ); - _mbarrangeRangeInformation-> SetEnd( (int)range[1] ); - - - _staticTextInformation = new wxStaticText(this,-1,_T(" ")); - - -// wxButton *XXXXXXXBtn = new wxButton(this,-1,_T("Statistics"),wxDefaultPosition, wxSize(180,35) ); -// XXXXXXXBtn->SetEventHandler( this ); -// Connect( XXXXXXXBtn->GetId(), wxEVT_COMMAND_BUTTON_CLICKED , (wxObjectEventFunction) &wxContourEventHandler::onXXXXX ); + _mbarrangeRangeInformation-> SetStart( min ); + _mbarrangeRangeInformation-> SetEnd( max ); + _staticTextInformation = new wxStaticText(this,-1,_T(" ")); _grid = new wxGrid( this, wxID_ANY, wxPoint( 0, 0 ), - wxSize( 100, 100 ) ); + wxSize( 200, 500 ) ); int i,gridCol=10,gridRow=sizeZ; _grid->CreateGrid( 0, 0 ); @@ -268,29 +280,34 @@ interfInformationPanel::interfInformationPanel(wxWindow * parent) FillGridWithContoursInformation(); + wxFlexGridSizer * sizerSave = new wxFlexGridSizer(2,2); + sizerSave -> Add( new wxStaticText(this,-1,_T("Save Options: ")) , 1, wxGROW ); + sizerSave->Add( _XYZValues, 1, wxALL ,2 ); + sizerSave->Add( _statistics, 1, wxALL ,2 ); + sizerSave->Add( _contourImage, 1, wxALL ,2 ); + wxFlexGridSizer * sizerA = new wxFlexGridSizer(10); sizerA->Add( _informationRadiobox , 1, wxALL ,2 ); sizerA->Add( _radiolstboxContourGroup , 1, wxALL ,2 ); + sizerA->Add( sizerSave , 1, wxALL ,2 ); + wxFlexGridSizer * sizerB = new wxFlexGridSizer(10); - sizerB->Add( informationContourLabelsBtn , 1, wxALL ,2 ); - sizerB->Add( statisticsContourBtn , 1, wxALL ,2 ); - sizerB->Add( saveResultsBtn , 1, wxALL ,2 ); + sizerB->Add( informationContourLabelsBtn, 1, wxALL ,2 ); + sizerB->Add( statisticsContourBtn, 1, wxALL ,2 ); + sizerB->Add( showResultImagesBtn, 1, wxALL ,2 ); + sizerB->Add( saveResultsBtn, 1, wxALL ,2 ); - wxFlexGridSizer * sizer = new wxFlexGridSizer(1); - sizer->AddGrowableCol(0); - sizer->AddGrowableRow(7); + wxFlexGridSizer * sizer = new wxFlexGridSizer(1,8); sizer->Add( sizerA , 1, wxALL , 0 ); sizer->Add( new wxStaticText(this ,-1,_T("Slice Range")) , 1, wxALL , 0 ); sizer->Add( _mbarrangeSliceInformation , 1, wxALL|wxGROW , 2 ); sizer->Add( new wxStaticText(this ,-1,_T("Gray Range")) , 1, wxALL , 0 ); sizer->Add( _mbarrangeRangeInformation , 1, wxALL|wxGROW , 2 ); - sizer->Add( sizerB , 1, wxALL , 0 ); - sizer->Add( _staticTextInformation , 1, wxALL , 0 ); + sizer->Add( sizerB , 1, wxEXPAND , 0 ); + sizer->Add( _staticTextInformation , 1, wxEXPAND , 0 ); sizer->Add( _grid , 1, wxEXPAND , 0 ); - - this->SetSizer( sizer ); this->SetSize( wxSize(1500,1500) ); //this->SetBackgroundColour( wxColour(100,100,100) ); @@ -305,6 +322,16 @@ void interfInformationPanel::onInformationContourLabels(wxCommandEvent& event){ wxBusyCursor wait; FillGridWithContoursInformation(); } + + +void interfInformationPanel::onShowResultImages(wxCommandEvent& event) +{ +// onExtractInformation( event ); + int typeContourGroup = _radiolstboxContourGroup->GetSelection(); + interfMainPanel::getInstance()->ShowResultImages( typeContourGroup ); +} + + void interfInformationPanel::onExtractInformation(wxCommandEvent& event){ wxBusyCursor wait; _grid->ClearGrid(); @@ -314,12 +341,12 @@ void interfInformationPanel::onExtractInformation(wxCommandEvent& event){ int minZ = _mbarrangeSliceInformation->GetStart(); int maxZ = _mbarrangeSliceInformation->GetEnd(); - interfMainPanel::getInstance()->onInformationContourLabels(typeContourGroup, selection, minZ, maxZ); - - + interfMainPanel::getInstance()->onInformationContourLabels(typeContourGroup, selection, minZ, maxZ); } -void interfInformationPanel::onSaveResults(wxCommandEvent& event){ - wxFileDialog dialog(this, _T("Choose a file"), _T(""), _T(""), _T("*.txt"), wxSAVE ); + +void interfInformationPanel::onSaveResults(wxCommandEvent& event) +{ + wxFileDialog dialog(this, _T("Choose a filename"), _T(""), _T(""), wxFileSelectorDefaultWildcardStr, wxSAVE ); if (dialog.ShowModal() == wxID_OK) { onExtractInformation( event ); @@ -327,7 +354,8 @@ void interfInformationPanel::onSaveResults(wxCommandEvent& event){ std::string namefile=(const char *)(dialog.GetFilename().mb_str()); std::string filename = (const char *)(dialog.GetPath().mb_str() ); int typeContourGroup = _radiolstboxContourGroup->GetSelection(); - interfMainPanel::getInstance()->onSaveResults(directory, namefile, filename, typeContourGroup); + interfMainPanel::getInstance()->onSaveResults(directory, namefile, filename, + typeContourGroup, _XYZValues->GetValue(), _contourImage->GetValue(), _statistics->GetValue()); } }