]> Creatis software - creaMaracasVisu.git/blob - lib/maracasVisuLib/src/interface/wxWindows/widgets/creaPanelButtonContainer/listConfigPanel.cxx
ccaec94be6a41cdfc0a944ac3d65e2dfa261016d
[creaMaracasVisu.git] / lib / maracasVisuLib / src / interface / wxWindows / widgets / creaPanelButtonContainer / listConfigPanel.cxx
1 /*# ---------------------------------------------------------------------
2 #
3 # Copyright (c) CREATIS (Centre de Recherche en Acquisition et Traitement de l'Image
4 #                        pour la Sant�)
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
8 #
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.
15 #
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
20 #  liability.
21 #
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 # ------------------------------------------------------------------------ */
25
26 #include "listConfigPanel.h"
27
28 namespace creaPanelButtonContainer
29 {
30
31                 ListConfigPanel::ListConfigPanel(wxWindow* parent, wxWindowID id,const wxString& title, ListWx* modelList, ListWx* currentList) :
32                                 wxDialog(parent,id,title)
33                 {
34                         std::cout<< "MLER | ListConfigPanel::ListConfigPanel()" << std::endl;
35
36                         m_listWx = modelList;
37                         m_listWx->Reparent(this);
38                         m_listWx->Show(true);
39                         m_listWx->SetFunctorEnabled(false);
40                         m_listWx->FillList();
41
42                         m_finalListWx = currentList;
43                         m_finalListWx->Reparent(this);
44                         m_finalListWx->SetFunctorEnabled(false);
45                         m_finalListWx->Show(true);
46                         m_finalListWx->FillList();
47
48                         wxFlexGridSizer* sizer = new wxFlexGridSizer(2,1,0,0);
49                         //sizer->Add( new  wxStaticText(this,-1, _("Lista Configurable")));
50                         this->SetSizer(sizer);
51
52
53                         wxBoxSizer* sizerUp = new wxBoxSizer(wxHORIZONTAL);
54
55                         //wxPanel* panel1 = new wxPanel(this, -1, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL,
56                                 //      _T("Panel 1"));
57
58                         //wxBoxSizer* sizerList1 = new wxBoxSizer(wxVERTICAL);
59
60                         //panel1->Add(m_listWx,0,wxEXPAND);
61                         //listBox = new wxListBox(panel1,-1,wxDefaultPosition,wxDefaultSize, 0, 0, 0,
62                                 //      wxDefaultValidator, _("ListBox"));
63
64                         //sizerList1->Add(panel1,0,wxEXPAND);
65
66                         //panel1->SetSizer(sizerList1);
67                         //sizerList1->Fit(panel1);
68                         //sizerList1->SetSizeHints(panel1);
69
70                         sizerUp->Add(m_listWx, 0, wxEXPAND);
71                 //========
72
73                         wxPanel* panel2 = new wxPanel(this, -1, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL, _T("Panel 2"));
74                         wxBoxSizer* sizerList2 = new wxBoxSizer(wxVERTICAL);
75
76                         buttonAdd = new wxButton(panel2, 1, _(">"), wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator, _T("Add"));
77                         sizerList2->Add(buttonAdd, 0, wxEXPAND);
78
79                         buttonDel = new wxButton(panel2, 2, _("<"), wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator, _T("Delete"));
80                         sizerList2->Add(buttonDel,  0, wxEXPAND);
81
82                         panel2->SetSizer(sizerList2);
83                         sizerList2->Fit(panel2);
84                         sizerList2->SetSizeHints(panel2);
85
86                         sizerUp->Add(panel2, 0, wxEXPAND|wxALL,7);
87
88                 //========
89
90                         wxPanel* panel3 = new wxPanel(this, -1, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL, _T("Panel 3"));
91                         wxBoxSizer* sizerList3 = new wxBoxSizer(wxHORIZONTAL);
92
93                         //finalListBox = new wxListBox(panel3, -1, wxDefaultPosition, wxDefaultSize, 0, 0, 0,
94                                 //      wxDefaultValidator, _T("finalListBox"));
95                         sizerList3->Add(m_finalListWx, 0, wxEXPAND);
96
97                         //panel3->SetSizer(sizerList3);
98                         //sizerList3->Fit(panel3);
99                         //sizerList3->SetSizeHints(panel3);
100
101                         sizerUp->Add(m_finalListWx, 0, wxEXPAND|wxALL);
102                         //sizer->Add(sizerUp, 1, wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5);
103
104                         //FillList();
105
106                 //=======
107                         wxPanel* panel5 = new wxPanel(this, -1, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL, _T("Panel 5"));
108                         wxBoxSizer* sizerList4 = new wxBoxSizer(wxVERTICAL);
109
110                         upButton = new wxButton(panel5, 3, _("/\\"), wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator, _T("upButton"));
111                         sizerList4->Add(upButton, 0, wxEXPAND);
112
113                         downButton = new wxButton(panel5, 4, _("V"), wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator, _T("downButton"));
114                         sizerList4->Add(downButton, 0, wxEXPAND);
115
116                         panel5->SetSizer(sizerList4);
117                         sizerList4->Fit(panel5);
118                         sizerList4->SetSizeHints(panel5);
119                         sizerUp->Add(panel5,  0, wxEXPAND|wxALL,7);
120
121                         //========
122                         wxBoxSizer* sizerBotones = new wxBoxSizer(wxHORIZONTAL);
123                         wxPanel* panel4 = new wxPanel(this, -1, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL, _T("Panel 4"));
124
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"));
127
128                         sizerBotones->Add(panel4,  0, wxEXPAND);
129
130                         sizer->Add(sizerUp,0,wxEXPAND);
131                         sizer->Add(sizerBotones,  1, wxALL|wxALIGN_CENTER_HORIZONTAL);
132
133
134                 //      SetSizer(sizer);
135                         //SetSizer(sizer);
136                         //Layout();
137
138                 //---------------------------------------------------------------------------------------------
139                 // Manejo de Eventos
140
141                         //Evento Cancel
142                         Connect(6,wxEVT_COMMAND_BUTTON_CLICKED,(wxObjectEventFunction)&ListConfigPanel::OnQuit);
143
144                         //EventoSeleccionarLista
145                         //Connect(wxEVT_COMMAND_LISTBOX_SELECTED,wxCommandEventHandler(ListConfigPanel::ListItemEvent));
146
147                         //EventoAdd
148                         Connect(1,wxEVT_COMMAND_BUTTON_CLICKED,(wxObjectEventFunction)&ListConfigPanel::OnAdd);
149
150                         //EventoOk
151                         Connect(5,wxEVT_COMMAND_BUTTON_CLICKED,(wxObjectEventFunction)&ListConfigPanel::OkEvent);
152
153                         //EventoDelete
154                         Connect(2,wxEVT_COMMAND_BUTTON_CLICKED,(wxObjectEventFunction)&ListConfigPanel::OnDelete);
155
156                 }
157
158                 ListConfigPanel::~ListConfigPanel()
159                 {
160
161                 }
162
163                 ListConfigPanel::ItemsMap
164                 ListConfigPanel::GetFinalItemsMap()
165                 {
166                         return m_finalItems;
167                 }
168
169                 void
170                 ListConfigPanel::SetFinalItems(ItemsMap finalItems)
171                 {
172                         m_finalItems = finalItems;
173                 }
174
175                 void
176                 ListConfigPanel::FillList(int i)
177                 {
178                         /*if(i == 0)
179                         {
180                                 m_itemsMap = m_listWx->GetItemsMap();
181
182                                 for (ItemsMap::iterator it=this->m_itemsMap.begin(); it!=this->m_itemsMap.end(); ++it)
183                                 {
184                                         std::string key = it->first;
185                                         listBox->Append( wxString(key.c_str(), wxConvUTF8));
186                                 }
187                         }
188                         if(i == 1)
189                         {
190                                 std::cout << "ListConfigPanel::FillList items : "<< m_finalItems.size()<<std::endl;
191                                 finalListBox->Clear();
192
193                                 if(!m_finalItems.empty())
194                                 {
195                                         for (ItemsMap::iterator it=this->m_finalItems.begin(); it!=this->m_finalItems.end(); ++it)
196                                         {
197                                                 std::string key = it->first;
198                                                 int v = finalListBox->FindString(wxString(key.c_str(), wxConvUTF8));
199
200                                                 if(v == -1)
201                                                         finalListBox->Append( wxString(key.c_str(), wxConvUTF8));
202                                         }
203                                 }
204
205
206                         }*/
207                 }
208
209                 void
210                 ListConfigPanel::OnQuit(wxCommandEvent& event)
211                 {
212                         std::cout<<"Onquit"<<std::endl;
213                     Close();
214                 }
215
216                 void
217                 ListConfigPanel::ListItemEvent(wxCommandEvent& event)
218                 {
219                         /*std::cout<<"MLER |ListConfigPanel::ListItemEvent"<<std::endl;
220
221                         int iSelection;
222                         iSelection = listBox->GetSelection();
223
224                         wxString itemNom = listBox->GetString(iSelection);
225                         std::string itemNomC = std::string(itemNom.mb_str());*/
226
227                 }
228
229
230                 void
231                 ListConfigPanel::OnAdd(wxCommandEvent& event)
232                 {
233                         std::cout<<"MLER |ListConfigPanel::OnAdd"<<std::endl;
234
235                         wxString itSel = m_listWx->GetListBox()->GetStringSelection();
236                         std::string item = std::string(itSel.mb_str());
237
238
239                         if(!itSel.empty())
240                         {
241                                 wxPanel* mPanel = m_listWx->GetItemsMap()[item];
242                                 m_finalListWx->AddItemToMap(item, mPanel);
243                                 m_finalListWx->FillList();
244                         }
245
246                                  //wxMessageBox( _("Seleccione un elemento"), wxOK | wxICON_INFORMATION );
247
248                         std::cout << "FinalItemsAdd" << m_finalItems.size() << std::endl;
249                 }
250
251                 void
252                 ListConfigPanel::OnDelete(wxCommandEvent& event)
253                 {
254                         std::cout<<"MLER |ListConfigPanel::OnDelete"<<std::endl;
255
256                         wxString itSel = m_finalListWx->GetListBox()->GetStringSelection();
257                         std::string item = std::string(itSel.mb_str());
258                         if(!itSel.empty())
259                         {
260                                 m_finalListWx->DeleteItemFromMap(item);
261                                 m_finalListWx->FillList();
262                         }
263
264                         std::cout << "FinalItems Delete" << m_finalItems.size() << std::endl;
265                 }
266
267                 void
268                 ListConfigPanel::OkEvent(wxCommandEvent& event)
269                 {
270                         std::cout<<"MLER |ListConfigPanel::OkEvent"<<std::endl;
271
272                         this->EndModal(1);
273                 }
274
275                 void
276                 ListConfigPanel::UpEvent(wxCommandEvent& event)
277                 {
278                         std::cout<<"Up Event"<<std::endl;
279                 }
280
281                 void
282                 ListConfigPanel::DownEvent(wxCommandEvent& event)
283                 {
284                         std::cout<<"Down Event"<<std::endl;
285                 }
286
287                 void
288                 ListConfigPanel::RefreshViewEvent(wxCommandEvent& event)
289                 {
290                         std::cout<<"RefreshView Event"<<std::endl;
291                 }
292
293
294                 ListConfigPanel::ListWx*
295                 ListConfigPanel::GetFinalListWx()
296                 {
297                         return this->m_finalListWx;
298                 }
299
300 }