Program: wxMaracas
Module: $RCSfile: CutModelMainPanel.cxx,v $
Language: C++
- Date: $Date: 2009/08/31 08:46:09 $
- Version: $Revision: 1.1 $
+ Date: $Date: 2009/09/08 08:14:25 $
+ Version: $Revision: 1.3 $
Copyright: (c) 2002, 2003
License:
// EOF - wxMaracasMPR.cxx
#include "CutModelMainPanel.h"
-
+#include "HistogramDialog.h"
+#include "creaSystem.h"
#include <wx/colordlg.h>
#include <wx/bmpbuttn.h>
#include <Redo.xpm>
#include <OkAll.xpm>
+
+
CutModelMainPanel* CutModelMainPanel::instance=NULL;
-CutModelMainPanel::CutModelMainPanel( wxWindow* parent)
+CutModelMainPanel::CutModelMainPanel( wxWindow* parent, std::string path)
: wxPanel(parent, -1, wxDefaultPosition, wxDefaultSize){
cutmanager=NULL;
- initialize();
+ initialize(path);
}
CutModelMainPanel::~CutModelMainPanel( ){
-
+ delete cutmanager;
}
-void CutModelMainPanel::initialize(){
- cutmanager = new CutModelManager();
+void CutModelMainPanel::initialize(std::string path){
+
+ cutmanager = new CutModelManager(path);
_panelid = 0;
_wxauimanager = new wxAuiManager(this);
_wxauimanager->Update();
}
-CutModelMainPanel* CutModelMainPanel::getInstance(wxWindow* parent){
+CutModelMainPanel* CutModelMainPanel::getInstance(wxWindow* parent, std::string path){
if(instance==NULL){
- instance = new CutModelMainPanel(parent);
+ if(parent == NULL){
+ parent = new wxFrame();
+ }
+ instance = new CutModelMainPanel(parent, path);
}
return instance;
}
-CutModelMainPanel* CutModelMainPanel::getInstance(){
+/*CutModelMainPanel* CutModelMainPanel::getInstance(){
return instance;
-}
+}*/
void CutModelMainPanel::setImageData(vtkImageData* img){
try{
for(int i = 0; i < viewpanels.size();i++){
if(viewpanels[i]->getId()==id){
_wxauimanager->GetPane(viewpanels[i]).Show(true);
+ cutmanager->RefreshActor(id);
}else{
_wxauimanager->GetPane(viewpanels[i]).Show(false);
}
return current;
}
void CutModelMainPanel::onUndo(){
+ try{
+ checkInvariant();
+ int result = cutmanager->Undo();
+ }catch(CutModelException e){
+ showErrorDialog(e.getCause());
+ }
+
}
void CutModelMainPanel::onRedo(){
+ try{
+ checkInvariant();
+ int result = cutmanager->Redo();
+
+ }catch(CutModelException e){
+ showErrorDialog(e.getCause());
+ }
+
}
void CutModelMainPanel::changeOpacity(int id,int opacity){
void CutModelMainPanel::ExecuteCut(int id, double* range, bool isinside){
try{
- checkInvariant();
+ checkInvariant();
+
cutmanager->ExecuteCut(id, range, isinside);
}catch(CutModelException e){
showErrorDialog(e.getCause());
}
return NULL;
}
+
+void CutModelMainPanel::ShowStatistics(int id){
+
+ checkInvariant();
+ HistogramDialog *histo = new HistogramDialog(this, _T("Statistics"));
+
+ histo->initializeHistogram(cutmanager->GetResultImage());
+
+ histo->ShowModal();
+
+ delete histo;
+}
+
+void CutModelMainPanel::SaveCutModelData(std::string filename){
+ cutmanager->SaveCutModelData(filename);
+}
+
+void CutModelMainPanel::LoadCutModelData(std::string filename){
+ cutmanager->LoadCutModelData(filename);
+}
/**
**
**/