1 /*# ---------------------------------------------------------------------
3 # Copyright (c) CREATIS (Centre de Recherche en Acquisition et Traitement de l'Image
5 # Authors : Eduardo Davila, Frederic Cervenansky, Claire Mouton
6 # Previous Authors : Laurent Guigues, Jean-Pierre Roux
7 # CreaTools website : www.creatis.insa-lyon.fr/site/fr/creatools_accueil
9 # This software is governed by the CeCILL-B license under French law and
10 # abiding by the rules of distribution of free software. You can use,
11 # modify and/ or redistribute the software under the terms of the CeCILL-B
12 # license as circulated by CEA, CNRS and INRIA at the following URL
13 # http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.html
14 # or in the file LICENSE.txt.
16 # As a counterpart to the access to the source code and rights to copy,
17 # modify and redistribute granted by the license, users are provided only
18 # with a limited warranty and the software's author, the holder of the
19 # economic rights, and the successive licensors have only limited
22 # The fact that you are presently reading this means that you have had
23 # knowledge of the CeCILL-B license and that you accept its terms.
24 # ------------------------------------------------------------------------ */
26 #include "listConfigPanel.h"
28 namespace creaPanelButtonContainer
31 ListConfigPanel::ListConfigPanel(wxWindow* parent, wxWindowID id,const wxString& title, ListWx* modelList, ListWx* currentList) :
32 wxDialog(parent,id,title)
34 std::cout<< "MLER | ListConfigPanel::ListConfigPanel()" << std::endl;
37 m_listWx->Reparent(this);
39 m_listWx->SetFunctorEnabled(false);
42 m_finalListWx = currentList;
43 m_finalListWx->Reparent(this);
44 m_finalListWx->SetFunctorEnabled(false);
45 m_finalListWx->Show(true);
46 m_finalListWx->FillList();
48 wxFlexGridSizer* sizer = new wxFlexGridSizer(2,1,0,0);
49 //sizer->Add( new wxStaticText(this,-1, _("Lista Configurable")));
50 this->SetSizer(sizer);
53 wxBoxSizer* sizerUp = new wxBoxSizer(wxHORIZONTAL);
55 //wxPanel* panel1 = new wxPanel(this, -1, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL,
58 //wxBoxSizer* sizerList1 = new wxBoxSizer(wxVERTICAL);
60 //panel1->Add(m_listWx,0,wxEXPAND);
61 //listBox = new wxListBox(panel1,-1,wxDefaultPosition,wxDefaultSize, 0, 0, 0,
62 // wxDefaultValidator, _("ListBox"));
64 //sizerList1->Add(panel1,0,wxEXPAND);
66 //panel1->SetSizer(sizerList1);
67 //sizerList1->Fit(panel1);
68 //sizerList1->SetSizeHints(panel1);
70 sizerUp->Add(m_listWx, 0, wxEXPAND);
73 wxPanel* panel2 = new wxPanel(this, -1, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL, _T("Panel 2"));
74 wxBoxSizer* sizerList2 = new wxBoxSizer(wxVERTICAL);
76 buttonAdd = new wxButton(panel2, 1, _(">"), wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator, _T("Add"));
77 sizerList2->Add(buttonAdd, 0, wxEXPAND);
79 buttonDel = new wxButton(panel2, 2, _("<"), wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator, _T("Delete"));
80 sizerList2->Add(buttonDel, 0, wxEXPAND);
82 panel2->SetSizer(sizerList2);
83 sizerList2->Fit(panel2);
84 sizerList2->SetSizeHints(panel2);
86 sizerUp->Add(panel2, 0, wxEXPAND|wxALL,7);
90 wxPanel* panel3 = new wxPanel(this, -1, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL, _T("Panel 3"));
91 wxBoxSizer* sizerList3 = new wxBoxSizer(wxHORIZONTAL);
93 //finalListBox = new wxListBox(panel3, -1, wxDefaultPosition, wxDefaultSize, 0, 0, 0,
94 // wxDefaultValidator, _T("finalListBox"));
95 sizerList3->Add(m_finalListWx, 0, wxEXPAND);
97 //panel3->SetSizer(sizerList3);
98 //sizerList3->Fit(panel3);
99 //sizerList3->SetSizeHints(panel3);
101 sizerUp->Add(m_finalListWx, 0, wxEXPAND|wxALL);
102 //sizer->Add(sizerUp, 1, wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5);
107 wxPanel* panel5 = new wxPanel(this, -1, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL, _T("Panel 5"));
108 wxBoxSizer* sizerList4 = new wxBoxSizer(wxVERTICAL);
110 upButton = new wxButton(panel5, 3, _("/\\"), wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator, _T("upButton"));
111 sizerList4->Add(upButton, 0, wxEXPAND);
113 downButton = new wxButton(panel5, 4, _("V"), wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator, _T("downButton"));
114 sizerList4->Add(downButton, 0, wxEXPAND);
116 panel5->SetSizer(sizerList4);
117 sizerList4->Fit(panel5);
118 sizerList4->SetSizeHints(panel5);
119 sizerUp->Add(panel5, 0, wxEXPAND|wxALL,7);
122 wxBoxSizer* sizerBotones = new wxBoxSizer(wxHORIZONTAL);
123 wxPanel* panel4 = new wxPanel(this, -1, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL, _T("Panel 4"));
125 okButton = new wxButton(panel4, 5, _("Ok"), wxPoint(0,8), wxDefaultSize, 0, wxDefaultValidator, _T("Ok"));
126 cancelButton = new wxButton(panel4, 6, _("Cancel"), wxPoint(88,8), wxDefaultSize, 0, wxDefaultValidator, _T("Cancel"));
128 sizerBotones->Add(panel4, 0, wxEXPAND);
130 sizer->Add(sizerUp,0,wxEXPAND);
131 sizer->Add(sizerBotones, 1, wxALL|wxALIGN_CENTER_HORIZONTAL);
138 //---------------------------------------------------------------------------------------------
142 Connect(6,wxEVT_COMMAND_BUTTON_CLICKED,(wxObjectEventFunction)&ListConfigPanel::OnQuit);
144 //EventoSeleccionarLista
145 //Connect(wxEVT_COMMAND_LISTBOX_SELECTED,wxCommandEventHandler(ListConfigPanel::ListItemEvent));
148 Connect(1,wxEVT_COMMAND_BUTTON_CLICKED,(wxObjectEventFunction)&ListConfigPanel::OnAdd);
151 Connect(5,wxEVT_COMMAND_BUTTON_CLICKED,(wxObjectEventFunction)&ListConfigPanel::OkEvent);
154 Connect(2,wxEVT_COMMAND_BUTTON_CLICKED,(wxObjectEventFunction)&ListConfigPanel::OnDelete);
158 ListConfigPanel::~ListConfigPanel()
163 ListConfigPanel::ItemsMap
164 ListConfigPanel::GetFinalItemsMap()
170 ListConfigPanel::SetFinalItems(ItemsMap finalItems)
172 m_finalItems = finalItems;
176 ListConfigPanel::FillList(int i)
180 m_itemsMap = m_listWx->GetItemsMap();
182 for (ItemsMap::iterator it=this->m_itemsMap.begin(); it!=this->m_itemsMap.end(); ++it)
184 std::string key = it->first;
185 listBox->Append( wxString(key.c_str(), wxConvUTF8));
190 std::cout << "ListConfigPanel::FillList items : "<< m_finalItems.size()<<std::endl;
191 finalListBox->Clear();
193 if(!m_finalItems.empty())
195 for (ItemsMap::iterator it=this->m_finalItems.begin(); it!=this->m_finalItems.end(); ++it)
197 std::string key = it->first;
198 int v = finalListBox->FindString(wxString(key.c_str(), wxConvUTF8));
201 finalListBox->Append( wxString(key.c_str(), wxConvUTF8));
210 ListConfigPanel::OnQuit(wxCommandEvent& event)
212 std::cout<<"Onquit"<<std::endl;
217 ListConfigPanel::ListItemEvent(wxCommandEvent& event)
219 /*std::cout<<"MLER |ListConfigPanel::ListItemEvent"<<std::endl;
222 iSelection = listBox->GetSelection();
224 wxString itemNom = listBox->GetString(iSelection);
225 std::string itemNomC = std::string(itemNom.mb_str());*/
231 ListConfigPanel::OnAdd(wxCommandEvent& event)
233 std::cout<<"MLER |ListConfigPanel::OnAdd"<<std::endl;
235 wxString itSel = m_listWx->GetListBox()->GetStringSelection();
236 std::string item = std::string(itSel.mb_str());
241 wxPanel* mPanel = m_listWx->GetItemsMap()[item];
242 m_finalListWx->AddItemToMap(item, mPanel);
243 m_finalListWx->FillList();
246 //wxMessageBox( _("Seleccione un elemento"), wxOK | wxICON_INFORMATION );
248 std::cout << "FinalItemsAdd" << m_finalItems.size() << std::endl;
252 ListConfigPanel::OnDelete(wxCommandEvent& event)
254 std::cout<<"MLER |ListConfigPanel::OnDelete"<<std::endl;
256 wxString itSel = m_finalListWx->GetListBox()->GetStringSelection();
257 std::string item = std::string(itSel.mb_str());
260 m_finalListWx->DeleteItemFromMap(item);
261 m_finalListWx->FillList();
264 std::cout << "FinalItems Delete" << m_finalItems.size() << std::endl;
268 ListConfigPanel::OkEvent(wxCommandEvent& event)
270 std::cout<<"MLER |ListConfigPanel::OkEvent"<<std::endl;
276 ListConfigPanel::UpEvent(wxCommandEvent& event)
278 std::cout<<"Up Event"<<std::endl;
282 ListConfigPanel::DownEvent(wxCommandEvent& event)
284 std::cout<<"Down Event"<<std::endl;
288 ListConfigPanel::RefreshViewEvent(wxCommandEvent& event)
290 std::cout<<"RefreshView Event"<<std::endl;
294 ListConfigPanel::ListWx*
295 ListConfigPanel::GetFinalListWx()
297 return this->m_finalListWx;