]> Creatis software - creaImageIO.git/blob - src/creaImageIOWxEditFieldsPanel.cpp
6db827b7eb9cf608ebc5481d36756cf03f304879
[creaImageIO.git] / src / creaImageIOWxEditFieldsPanel.cpp
1 #include <creaImageIOWxEditFieldsPanel.h>
2 #include <creaImageIOSystem.h>
3 #include <wx/arrstr.h>
4
5 //using namespace tree;
6 namespace creaImageIO
7 {
8    const int  ID_COMBO             = 140;
9   // CTor
10    WxEditFieldsPanel::WxEditFieldsPanel(wxWindow *parent, wxDialog* dial, WxGimmickView* view, tree::Node* nod, 
11       const std::vector<std::string> name,
12       const std::vector<std::string> key)
13  :   wxPanel( parent, 
14         -1, wxDefaultPosition, 
15         wxDefaultSize,
16         wxRESIZE_BORDER | 
17         wxSYSTEM_MENU  |
18         wxCLOSE_BOX |
19         wxMAXIMIZE_BOX | 
20         wxMINIMIZE_BOX | 
21         wxCAPTION  
22           ), 
23         dialog(dial),
24         node (nod), 
25         names(name), 
26         keys(key),
27         mView(view)
28   {
29     GimmickDebugMessage(1,"WxCustomizeConfigPanel::WxCustomizeConfigPanel"
30                        <<std::endl);
31         wxStaticText * cp=new wxStaticText(this,-1,_T(" Attribute to change: "), wxPoint(5,10));
32         wxArrayString as;
33         std::vector<std::string>::const_iterator it;
34         for(it=names.begin();it!=names.end();++it)
35         {
36            as.Add(crea::std2wx(*it));
37         }
38         attributes=new wxComboBox(this, ID_COMBO, crea::std2wx(names.front()), wxPoint(110, 10), wxDefaultSize,as);
39         std::string val=node->GetAttribute(keys[0]);
40         if(val.compare("")==0){val="?";}
41
42         wxStaticText * av=new wxStaticText(this,-1,_T(" Current Value: "), wxPoint(5,40));
43         actualVal=new wxStaticText(this,-1,crea::std2wx(val), wxPoint(110,40));
44
45         wxStaticText * nv=new wxStaticText(this,-1,_T(" New Value: "), wxPoint(5,70));
46         newVal=new wxTextCtrl(this, wxID_ANY, crea::std2wx(val), wxPoint(110,70), wxSize(220,20));
47
48         wxButton *save = new wxButton(this,wxID_ANY,_T("Save Changes"), wxPoint(5,100) );
49         Connect( save->GetId(), wxEVT_COMMAND_BUTTON_CLICKED , (wxObjectEventFunction) &WxEditFieldsPanel::OnEdit ); 
50       
51     Layout(); 
52   }
53
54   /// Destructor
55   WxEditFieldsPanel::~WxEditFieldsPanel()
56   {
57     GimmickDebugMessage(1,"WxEditFieldsPanel::~WxEditFieldsPanel"
58                  <<std::endl);
59   }
60
61   void WxEditFieldsPanel::OnEdit(wxCommandEvent& event)
62   {
63           std::string val=crea::wx2std(newVal->GetValue());
64           int sel=attributes->GetSelection();
65           if(sel==-1)
66           {
67              sel=0;
68           }
69           mView->OnFieldsEdited(node,names[sel],keys[sel],val);
70           dialog->Destroy();
71   }
72
73   void WxEditFieldsPanel::OnComboChange(wxCommandEvent& event)
74   {
75           std::string val=node->GetAttribute(keys[attributes->GetSelection()]);
76           if(val.compare("")==0){val="?";}
77           actualVal->SetLabel(crea::std2wx(val));
78           newVal->SetValue(crea::std2wx(val));
79   }
80   
81 //======================================================================
82 BEGIN_EVENT_TABLE(WxEditFieldsPanel, wxPanel)
83 EVT_COMBOBOX  (ID_COMBO,WxEditFieldsPanel::OnComboChange)
84 END_EVENT_TABLE()
85 //====================================================================== 
86
87 } // EO namespace creaImageIO
88