00001 #include "interfToolsPanels.h"
00002 #include "interfMainPanel.h"
00003
00004 interfConfigurationPanel::interfConfigurationPanel(wxWindow * parent)
00005 : wxPanel(parent, -1, wxDefaultPosition, wxDefaultSize, wxBORDER_SUNKEN)
00006 {
00007
00008 _withOfContourLine = new wxSlider(this, -1, 1 , 1, 10, wxDefaultPosition, wxDefaultSize, wxSL_HORIZONTAL|wxSL_LABELS, wxDefaultValidator);
00009
00010 double range[2];
00011 interfMainPanel::getInstance()->getImageRange(range);
00012
00013
00014
00015
00016
00017
00018
00019 int colorwindow = interfMainPanel::getInstance()->getColorWindow();
00020 int windowlevel = interfMainPanel::getInstance()->getWindowLevel();
00021
00022 int min = (int)floor (range[0]);
00023 int max = (int)ceil (range[1]);
00024
00025
00026 _brithtnessWindowLevel = new wxSlider(this, -1, windowlevel , min, max, wxDefaultPosition, wxDefaultSize, wxSL_HORIZONTAL|wxSL_LABELS, wxDefaultValidator);
00027 _brithtnessColorLevel = new wxSlider(this, -1, colorwindow , min, max, wxDefaultPosition, wxDefaultSize, wxSL_HORIZONTAL|wxSL_LABELS, wxDefaultValidator);
00028
00029 _interpolationCheckBox = new wxCheckBox(this, -1, _T("Image interpolation") );
00030 _interpolationCheckBox->SetValue(true);
00031
00032 Connect( _withOfContourLine->GetId(), wxEVT_SCROLL_CHANGED, (wxObjectEventFunction) &interfConfigurationPanel::onWidthOfContour);
00033 Connect( _withOfContourLine->GetId(), wxEVT_SCROLL_THUMBTRACK, (wxObjectEventFunction) &interfConfigurationPanel::onWidthOfContour);
00034
00035 Connect( _brithtnessWindowLevel->GetId(), wxEVT_SCROLL_CHANGED, (wxObjectEventFunction) &interfConfigurationPanel::onBrigthnessColorWindowLevel);
00036 Connect( _brithtnessWindowLevel->GetId(), wxEVT_SCROLL_THUMBTRACK, (wxObjectEventFunction) &interfConfigurationPanel::onBrigthnessColorWindowLevel);
00037 Connect( _brithtnessColorLevel->GetId() , wxEVT_SCROLL_CHANGED, (wxObjectEventFunction) &interfConfigurationPanel::onBrigthnessColorWindowLevel);
00038 Connect( _brithtnessColorLevel->GetId() , wxEVT_SCROLL_THUMBTRACK, (wxObjectEventFunction) &interfConfigurationPanel::onBrigthnessColorWindowLevel);
00039 Connect( _interpolationCheckBox->GetId(), wxEVT_COMMAND_CHECKBOX_CLICKED, (wxObjectEventFunction) &interfConfigurationPanel::OnInterpolation);
00040
00041 wxFlexGridSizer * sizer = new wxFlexGridSizer(1);
00042 sizer -> Add( new wxStaticText(this,-1, _T("Contour width")) , 1, wxGROW );
00043 sizer -> Add( _withOfContourLine , 1, wxGROW );
00044 sizer -> Add( new wxStaticText(this,-1, _T(" ")) , 1, wxGROW );
00045 sizer -> Add( new wxStaticText(this,-1, _T(" ")) , 1, wxGROW );
00046 sizer -> Add( new wxStaticText(this,-1, _T("Brightness of the image")) , 1, wxGROW );
00047 sizer -> Add( new wxStaticText(this,-1, _T("--Window level--")) , 1, wxGROW );
00048 sizer -> Add( _brithtnessWindowLevel , 1, wxGROW );
00049 sizer -> Add( new wxStaticText(this,-1, _T("--Color level--")) , 1, wxGROW );
00050 sizer -> Add( _brithtnessColorLevel, 1, wxGROW );
00051 sizer -> Add( new wxStaticText(this,-1, _T(" ")) , 1, wxGROW );
00052 sizer -> Add( new wxStaticText(this,-1, _T(" ")) , 1, wxGROW );
00053 sizer -> Add( _interpolationCheckBox , 1, wxGROW );
00054
00055 this->SetSizer( sizer );
00056
00057
00058
00059 this->SetAutoLayout( true );
00060 this->Layout();
00061
00062 }
00063
00064
00065 interfConfigurationPanel::~interfConfigurationPanel()
00066 {
00067 }
00068
00069 void interfConfigurationPanel::onWidthOfContour(wxScrollEvent& event){
00070
00071 double width = (double)_withOfContourLine->GetValue() / 2.0;
00072 interfMainPanel::getInstance()->onWidthOfContour(width);
00073 }
00074
00075 void interfConfigurationPanel::onBrigthnessColorWindowLevel(wxScrollEvent& event){
00076 int colorwindow = _brithtnessColorLevel->GetValue();
00077 int windowlevel = _brithtnessWindowLevel->GetValue();
00078
00079 interfMainPanel::getInstance()->onBrigthnessColorWindowLevel(colorwindow, windowlevel);
00080
00081 }
00082
00083 void interfConfigurationPanel::OnInterpolation(wxCommandEvent& event)
00084 {
00085
00086 interfMainPanel::getInstance()->onInterpolation(_interpolationCheckBox->GetValue());
00087
00088
00089 }
00090
00095 interfSpreadPanel::interfSpreadPanel(wxWindow* parent)
00096 : wxPanel(parent, -1, wxDefaultPosition, wxDefaultSize, wxBORDER_SUNKEN)
00097 {
00098
00099
00100
00101
00102
00103
00104
00105 wxButton *spreadResetBtn = new wxButton(this,-1,_T("Reset"),wxDefaultPosition, wxDefaultSize );
00106 wxButton *spreadAddBtn = new wxButton(this,-1,_T("Add key contour "),wxDefaultPosition, wxDefaultSize);
00107 wxButton *spreadAddAllBtn = new wxButton(this,-1,_T("Add All to key contour"),wxDefaultPosition, wxDefaultSize);
00108
00109 wxString lstOptions[3];
00110 lstOptions[0]=_T("A");
00111 lstOptions[1]=_T("B");
00112 lstOptions[2]=_T("C");
00113 _spreadMethodRadiobox = new wxRadioBox(this, -1, _T("Method (find ctrl. Points)"), wxDefaultPosition, wxDefaultSize, 3 , lstOptions, 3, wxRA_SPECIFY_COLS);
00114 _spreadMethodRadiobox->SetSelection(2);
00115
00116 wxButton *spreadGoBtn = new wxButton(this,-1,_T("Go"),wxDefaultPosition, wxDefaultSize);
00117 _staticTextSpread = new wxStaticText(this,-1,_T(" "));
00118
00119 _wxtextctrlSpread = new wxTextCtrl(this,-1, _T(""),wxDefaultPosition, wxDefaultSize, wxTE_MULTILINE );
00120 _wxtextctrlSpread->SetEditable(false);
00121
00122 Connect( spreadResetBtn->GetId(), wxEVT_COMMAND_BUTTON_CLICKED , (wxObjectEventFunction) &interfSpreadPanel::onSpreadReset );
00123 Connect( spreadAddBtn->GetId(), wxEVT_COMMAND_BUTTON_CLICKED , (wxObjectEventFunction) &interfSpreadPanel::onSpreadAdd );
00124 Connect( spreadAddAllBtn->GetId(), wxEVT_COMMAND_BUTTON_CLICKED , (wxObjectEventFunction) &interfSpreadPanel::onSpreadAddAll );
00125 Connect( spreadGoBtn->GetId(), wxEVT_COMMAND_BUTTON_CLICKED , (wxObjectEventFunction) &interfSpreadPanel::onSpreadGo );
00126
00127 wxFlexGridSizer * sizer = new wxFlexGridSizer(1);
00128 sizer -> Add( spreadResetBtn , 1, wxGROW );
00129 sizer -> Add( spreadAddBtn , 1, wxGROW );
00130 sizer -> Add( spreadAddAllBtn , 1, wxGROW );
00131 sizer -> Add( _spreadMethodRadiobox , 1, wxGROW );
00132 sizer -> Add( spreadGoBtn , 1, wxGROW );
00133 sizer -> Add( _staticTextSpread , 1, wxGROW );
00134 sizer -> Add( _wxtextctrlSpread , 1, wxGROW );
00135
00136
00137 this->SetSizer( sizer );
00138
00139 this->SetAutoLayout( true );
00140 this->Layout();
00141
00142 }
00143
00144 interfSpreadPanel::~interfSpreadPanel(){
00145 }
00146
00147 void interfSpreadPanel::onSpreadReset(wxCommandEvent& event){
00148 setStringSpread(" ");
00149 _wxtextctrlSpread->SetValue(wxString("",wxConvUTF8));
00150 interfMainPanel::getInstance()->resetAppend();
00151 }
00152
00153 void interfSpreadPanel::onSpreadAdd(wxCommandEvent& event){
00154 interfMainPanel::getInstance()->onSpreadAdd();
00155 }
00156
00157 void interfSpreadPanel::onSpreadAddAll(wxCommandEvent& event){
00158 interfMainPanel::getInstance()->onSpreadAddAll();
00159 }
00160
00161 void interfSpreadPanel::onSpreadGo(wxCommandEvent& event){
00162 setStringSpread(" ");
00163 int typeMethodFindCtrlPoints=_spreadMethodRadiobox->GetSelection();
00164 printf("EED interfSpreadPanel::onSpreadGo %d\n",typeMethodFindCtrlPoints);
00165 interfMainPanel::getInstance()->onSpreadGo(typeMethodFindCtrlPoints);
00166
00167 }
00168
00169 void interfSpreadPanel::appendStringSpread(std::string val){
00170
00171 wxString newstring;
00172
00173 newstring.append(wxString(_wxtextctrlSpread->GetValue(),wxConvUTF8));
00174 newstring.append(wxString(" ",wxConvUTF8));
00175 newstring.append(wxString(val.c_str(),wxConvUTF8));
00176 _wxtextctrlSpread->SetValue(newstring);
00177 }
00178
00179 void interfSpreadPanel::setStringSpread(std::string stringtemp){
00180
00181 wxString newstring(stringtemp.c_str(),wxConvUTF8);
00182
00183 _staticTextSpread->SetLabel(newstring);
00184
00185 }
00186
00190 interfInformationPanel::interfInformationPanel(wxWindow * parent)
00191 : wxPanel(parent, -1, wxDefaultPosition, wxDefaultSize, wxBORDER_SUNKEN)
00192 {
00193
00194 wxString lstOptions[4];
00195 lstOptions[0]=_T("Current Slice");
00196 lstOptions[1]=_T("Range Slices");
00197
00198 _informationRadiobox = new wxRadioBox(this, -1, _T("Slice analysis"), wxDefaultPosition, wxSize(270,45), 2 , lstOptions, 2, wxRA_SPECIFY_COLS);
00199
00200
00201 wxString lstOptContOperation[5];
00202 lstOptContOperation[0]=_T("AND");
00203 lstOptContOperation[1]=_T("OR");
00204 lstOptContOperation[2]=_T("XOR");
00205 lstOptContOperation[3]=_T("ALL");
00206 _radiolstboxContourGroup = new wxRadioBox(this, -1, _T("Contour group"), wxDefaultPosition, wxSize(270,45), 4 , lstOptContOperation, 4, wxRA_SPECIFY_COLS);
00207 _radiolstboxContourGroup->SetSelection(1);
00208 Connect( _radiolstboxContourGroup->GetId(), wxEVT_COMMAND_RADIOBOX_SELECTED , (wxObjectEventFunction) &interfInformationPanel::onContourGroup );
00209
00210
00211 _XYZValues = new wxCheckBox(this, -1, _T("Save Contour Values") );
00212 _XYZValues->SetValue(true);
00213
00214 _contourImage = new wxCheckBox(this, -1, _T("Extract Contours as Images") );
00215 _contourImage->SetValue(true);
00216
00217 _statistics = new wxCheckBox(this, -1, _T("Save Statistics") );
00218 _statistics->SetValue(true);
00219
00220 wxButton *informationContourLabelsBtn = new wxButton(this,-1,_T("Contour labels"),wxDefaultPosition, wxSize(140,35) );
00221 informationContourLabelsBtn->SetEventHandler( this );
00222 Connect( informationContourLabelsBtn->GetId(), wxEVT_COMMAND_BUTTON_CLICKED , (wxObjectEventFunction) &interfInformationPanel::onInformationContourLabels );
00223
00224 wxButton *statisticsContourBtn = new wxButton(this,-1,_T("Contour statistics"),wxDefaultPosition, wxSize(140,35) );
00225 statisticsContourBtn->SetEventHandler( this );
00226 Connect( statisticsContourBtn->GetId(), wxEVT_COMMAND_BUTTON_CLICKED , (wxObjectEventFunction) &interfInformationPanel::onExtractInformation );
00227
00228 wxButton *showResultImagesBtn = new wxButton(this,-1,_T("Show result images"),wxDefaultPosition, wxSize(140,35) );
00229 showResultImagesBtn->SetEventHandler( this );
00230 Connect( showResultImagesBtn->GetId(), wxEVT_COMMAND_BUTTON_CLICKED , (wxObjectEventFunction) &interfInformationPanel::onShowResultImages );
00231
00232
00233 wxButton *saveResultsBtn = new wxButton(this,-1,_T("Save Results"),wxDefaultPosition, wxSize(140,35) );
00234 saveResultsBtn->SetEventHandler( this );
00235 Connect( saveResultsBtn->GetId(), wxEVT_COMMAND_BUTTON_CLICKED , (wxObjectEventFunction) &interfInformationPanel::onSaveResults );
00236
00237
00238 int sizeZ = interfMainPanel::getInstance()->GetImageDataSizeZ();
00239
00240 _mbarrangeSliceInformation = new mBarRange(this,65,65);
00241 _mbarrangeSliceInformation->SetMin(0);
00242 _mbarrangeSliceInformation->SetStart(0);
00243 _mbarrangeSliceInformation-> SetOrientation( true );
00244 _mbarrangeSliceInformation-> setActiveStateTo(true);
00245 _mbarrangeSliceInformation-> setVisibleLabels( true );
00246 _mbarrangeSliceInformation-> setDeviceEndMargin(10);
00247 _mbarrangeSliceInformation-> setRepresentedValues( 0 , sizeZ-1 );
00248 _mbarrangeSliceInformation-> setDeviceBlitStart(10,10);
00249 _mbarrangeSliceInformation-> setIfWithActualDrawed( false );
00250 _mbarrangeSliceInformation-> SetStart( 0 );
00251 _mbarrangeSliceInformation-> SetEnd( sizeZ-1 );
00252
00253
00254
00255 double range[2];
00256 interfMainPanel::getInstance()->getImageRange(range);
00257
00258 int min = (int)floor (range[0]);
00259 int max = (int)ceil (range[1]);
00260
00261 _mbarrangeRangeInformation = new mBarRange(this,65,65);
00262 _mbarrangeRangeInformation->SetMin(0);
00263 _mbarrangeRangeInformation->SetStart(0);
00264 _mbarrangeRangeInformation->SetOrientation( true );
00265 _mbarrangeRangeInformation->setActiveStateTo(true);
00266 _mbarrangeRangeInformation->setVisibleLabels( true );
00267 _mbarrangeRangeInformation->setDeviceEndMargin(10);
00268 _mbarrangeRangeInformation->setRepresentedValues( min , max );
00269 _mbarrangeRangeInformation->setDeviceBlitStart(10,10);
00270 _mbarrangeRangeInformation->setIfWithActualDrawed( false );
00271 _mbarrangeRangeInformation->SetStart( min );
00272 _mbarrangeRangeInformation->SetEnd( max );
00273
00274
00275
00276
00277 Connect(_mbarrangeRangeInformation->GetId(),wxEVT_TSBAR_START,(wxObjectEventFunction) (wxCommandEventFunction) &interfInformationPanel::onRangeSliceInformation );
00278 Connect(_mbarrangeRangeInformation->GetId(),wxEVT_TSBAR_END,(wxObjectEventFunction) (wxCommandEventFunction) &interfInformationPanel::onRangeSliceInformation );
00279
00280 Connect(_mbarrangeRangeInformation->GetId(),wxEVT_TSBAR_MOVED,(wxObjectEventFunction) (wxCommandEventFunction) &interfInformationPanel::onRangeSliceInformation );
00281
00282
00283 _staticTextInformation = new wxStaticText(this,-1,_T(" "));
00284
00285 _grid = new wxGrid( this,
00286 wxID_ANY,
00287 wxPoint( 0, 0 ),
00288 wxSize( 200, 500 ) );
00289
00290 int i,gridCol=10,gridRow=sizeZ+2;
00291 _grid->CreateGrid( 0, 0 );
00292 _grid->AppendRows(gridRow);
00293 _grid->AppendCols(gridCol);
00294
00295 for (i=0;i<gridRow;i++)
00296 {
00297 _grid->SetRowLabelValue(i, _T(" ") );
00298 }
00299
00300
00301
00302 FillGridWithContoursInformation();
00303
00304 wxFlexGridSizer * sizerSave = new wxFlexGridSizer(2,2);
00305 sizerSave -> Add( new wxStaticText(this,-1,_T("Save Options: ")) , 1, wxGROW );
00306 sizerSave->Add( _XYZValues, 1, wxALL, 2 );
00307 sizerSave->Add( _statistics, 1, wxALL, 2 );
00308 sizerSave->Add( _contourImage, 1, wxALL, 2 );
00309
00310 wxFlexGridSizer * sizerA = new wxFlexGridSizer(10);
00311 sizerA->Add( _informationRadiobox, 1, wxALL, 2 );
00312 sizerA->Add( _radiolstboxContourGroup, 1, wxALL, 2 );
00313 sizerA->Add( sizerSave, 1, wxALL, 2 );
00314
00315
00316 wxFlexGridSizer * sizerB = new wxFlexGridSizer(10);
00317 sizerB->Add( informationContourLabelsBtn, 1, wxALL, 2 );
00318 sizerB->Add( statisticsContourBtn, 1, wxALL, 2 );
00319 sizerB->Add( showResultImagesBtn, 1, wxALL, 2 );
00320 sizerB->Add( saveResultsBtn, 1, wxALL, 2 );
00321
00322 wxFlexGridSizer * sizer = new wxFlexGridSizer(1,8);
00323 sizer->Add( sizerA , 1, wxALL , 0 );
00324 sizer->Add( new wxStaticText(this ,-1,_T("Slice Range")) , 1, wxALL , 0 );
00325 sizer->Add( _mbarrangeSliceInformation , 1, wxALL|wxGROW , 2 );
00326 sizer->Add( new wxStaticText(this ,-1,_T("Gray Range")) , 1, wxALL , 0 );
00327 sizer->Add( _mbarrangeRangeInformation , 1, wxALL|wxGROW , 2 );
00328 sizer->Add( sizerB , 1, wxEXPAND , 0 );
00329 sizer->Add( _staticTextInformation , 1, wxEXPAND , 0 );
00330 sizer->Add( _grid , 1, wxEXPAND , 0 );
00331
00332 this->SetSizer( sizer );
00333 this->SetSize( wxSize(1500,1500) );
00334
00335 this->SetAutoLayout( true );
00336 this->Layout();
00337
00338 }
00339
00340 interfInformationPanel::~interfInformationPanel()
00341 {
00342 }
00343
00344
00345 void interfInformationPanel::onRangeSliceInformation(wxCommandEvent& event)
00346 {
00347 int grayRangeMin = _mbarrangeRangeInformation->GetStart();
00348 int grayRangeMax = _mbarrangeRangeInformation->GetEnd();
00349 interfMainPanel::getInstance()->SetScalarRange(grayRangeMin,grayRangeMax);
00350 interfMainPanel::getInstance()->RefreshInterface();
00351 }
00352
00353
00354 void interfInformationPanel::onInformationContourLabels(wxCommandEvent& event){
00355 wxBusyCursor wait;
00356 FillGridWithContoursInformation();
00357 }
00358
00359
00360 void interfInformationPanel::onShowResultImages(wxCommandEvent& event)
00361 {
00362
00363 int selection = _informationRadiobox->GetSelection();
00364 int minZ = _mbarrangeSliceInformation->GetStart();
00365 int maxZ = _mbarrangeSliceInformation->GetEnd();
00366 int typeContourGroup = _radiolstboxContourGroup->GetSelection();
00367 interfMainPanel::getInstance()->ShowResultImages(typeContourGroup, selection, minZ, maxZ);
00368 }
00369
00370
00371 void interfInformationPanel::onExtractInformation(wxCommandEvent& event){
00372 wxBusyCursor wait;
00373 _grid->ClearGrid();
00374
00375 int typeContourGroup = this->_radiolstboxContourGroup->GetSelection();
00376 int selection = _informationRadiobox->GetSelection();
00377 int minZ = _mbarrangeSliceInformation->GetStart();
00378 int maxZ = _mbarrangeSliceInformation->GetEnd();
00379 int grayRangeMin = _mbarrangeRangeInformation->GetStart();
00380 int grayRangeMax = _mbarrangeRangeInformation->GetEnd();
00381
00382 interfMainPanel::getInstance()->onInformationContourLabels(typeContourGroup, selection, minZ, maxZ, grayRangeMin, grayRangeMax);
00383 }
00384
00385 void interfInformationPanel::onSaveResults(wxCommandEvent& event)
00386 {
00387 wxFileDialog dialog(this, _T("Choose a filename"), _T(""), _T(""), wxFileSelectorDefaultWildcardStr, wxSAVE );
00388 if (dialog.ShowModal() == wxID_OK)
00389 {
00390 onExtractInformation( event );
00391 int selection = _informationRadiobox->GetSelection();
00392 int minZ = _mbarrangeSliceInformation->GetStart();
00393 int maxZ = _mbarrangeSliceInformation->GetEnd();
00394 std::string directory = (const char *)(dialog.GetDirectory().mb_str());
00395 std::string namefile = (const char *)(dialog.GetFilename().mb_str());
00396 std::string filename = (const char *)(dialog.GetPath().mb_str() );
00397 int typeContourGroup = _radiolstboxContourGroup->GetSelection();
00398 interfMainPanel::getInstance()->onSaveResults(directory, namefile, filename,
00399 typeContourGroup,
00400 selection,minZ,maxZ,
00401 _XYZValues->GetValue(), _contourImage->GetValue(), _statistics->GetValue());
00402 }
00403 }
00404
00405 void interfInformationPanel::FillGridWithContoursInformation(){
00406
00407 wxString tempString;
00408 _grid->ClearGrid();
00409 _grid->SetColLabelValue(0, _T("A") );
00410 _grid->SetColLabelValue(1, _T("B") );
00411 _grid->SetColLabelValue(2, _T("C") );
00412 _grid->SetColLabelValue(3, _T("D") );
00413 _grid->SetColLabelValue(4, _T("E") );
00414 _grid->SetColLabelValue(5, _T("F") );
00415
00416
00417 int z,sizeZ = interfMainPanel::getInstance()->GetImageDataSizeZ();
00418 int ii,sizeLstContourThings;
00419 for ( z=0 ; z<sizeZ ; z++)
00420 {
00421
00422 std::vector<std::string> lstContourThings = interfMainPanel::getInstance()->getOutlinesName(z);
00423
00424
00425
00426 sizeLstContourThings = lstContourThings.size();
00427 tempString.Printf(_T("%d - %d"),z, sizeLstContourThings);
00428 _grid->SetRowLabelValue(z, tempString );
00429
00430 for (ii=0 ; ii<sizeLstContourThings ; ii++)
00431 {
00432
00433
00434 tempString = wxString(lstContourThings[ii].c_str(),wxConvUTF8) ;
00435 _grid->SetCellValue( z, ii, tempString );
00436 }
00437 }
00438
00439
00440 _grid->SetRowLabelValue(sizeZ, _T(" ") );
00441 for (ii=0 ; ii<sizeLstContourThings ; ii++)
00442 {
00443 _grid->SetCellValue( sizeZ, ii, _T(" ") );
00444 }
00445
00446 }
00447
00448 void interfInformationPanel::setStringInfoPanel(wxString tmpString){
00449 _staticTextInformation->SetLabel(tmpString);
00450 }
00451
00452 void interfInformationPanel::setRowLabelInfoPanel(int z,wxString tempString){
00453 _grid->SetRowLabelValue(z, tempString );
00454 }
00455
00456 int interfInformationPanel::getNumberCols(){
00457 return _grid->GetNumberCols();
00458 }
00459
00460 void interfInformationPanel::appendCols(int numcols){
00461 _grid->AppendCols(numcols);
00462 }
00463
00464 void interfInformationPanel::setCellValue(int z,int tmpIntA,wxString tempString){
00465 _grid->SetCellValue( z, tmpIntA , tempString );
00466 }
00467
00468 void interfInformationPanel::setColLabel(int tmpIntB,wxString tmpTitleString){
00469 _grid->SetColLabelValue(tmpIntB, tmpTitleString);
00470 }
00471
00472 wxString interfInformationPanel::getCellValue(int j,int i){
00473 return _grid->GetCellValue( j , i );
00474 }
00475
00476 void interfInformationPanel::onContourGroup(wxCommandEvent& event)
00477 {
00478 printf("EED interfInformationPanel::onContourGroup \n");
00479 int contourGroup=_radiolstboxContourGroup->GetSelection();
00480 if (contourGroup==3)
00481 {
00482 contourGroup=0;
00483 }
00484 interfMainPanel::getInstance()->SetContourGroup( _radiolstboxContourGroup->GetSelection() );
00485 }
00486
00487
00488 interfCalibrationPanel:: interfCalibrationPanel(wxWindow * parent)
00489 : wxPanel(parent, -1, wxDefaultPosition, wxDefaultSize, wxBORDER_SUNKEN)
00490 {
00491 double range[2];
00492 interfMainPanel::getInstance()->getImageRange(range);
00493
00494
00495 wxString options[3];
00496 options[0]=_T("mm");
00497 options[1]=_T("cm");
00498 options[2]=_T("inch");
00499
00500 _unitsRadiobox = new wxRadioBox(this, -1, _T("Unit of measurement"), wxPoint(2, 25), wxSize(145,45), 3 , options, 3, wxRA_SPECIFY_COLS);
00501 _unitsRadiobox->SetSelection(0);
00502
00503
00504 new wxStaticText(this, wxID_ANY, wxT("Real Size: "), wxPoint(2, 5));
00505
00506
00507 _size = new wxTextCtrl(this, wxID_ANY, wxT(""), wxPoint(78,3), wxSize(70, 20), 0, wxDefaultValidator, wxTextCtrlNameStr);
00508
00509
00510 new wxButton(this, 1, wxT("Calibrate"), wxPoint(78, 70), wxSize(70, 25), 0, wxDefaultValidator, wxT("button"));
00511
00512
00513 Connect(1, wxEVT_COMMAND_BUTTON_CLICKED,(wxObjectEventFunction) &interfCalibrationPanel::onCalibrate);
00514
00515 }
00516
00517 interfCalibrationPanel:: ~interfCalibrationPanel()
00518 {
00519 }
00520
00521 void interfCalibrationPanel::onCalibrate(wxCommandEvent& event)
00522 {
00523 wxString size =_size->GetValue();
00524 int unit = _unitsRadiobox->GetSelection();
00525 interfMainPanel::getInstance()->onCalibration(size, unit);
00526 }
00527
00528