]> Creatis software - creaMaracasVisu.git/blobdiff - lib/maracasVisuLib/src/interface/wxWindows/widgets/creaButtonContainer/view/listWx.cxx
#2516 creaMaracasVisu Feature New Normal - creaPanelButtonContainer ListPanel with...
[creaMaracasVisu.git] / lib / maracasVisuLib / src / interface / wxWindows / widgets / creaButtonContainer / view / listWx.cxx
index 5de552c2ff816d48b423f769209fda1f4c9b92f2..32d101deac3b937e106529a7aa81183689b8770d 100644 (file)
@@ -31,47 +31,122 @@ namespace creaButtonContainer
 {
        namespace view
        {
-               // ----------------------------------------------------------------------------------
-               ListWx::ListWx( wxWindow* parent, wxWindowID id,ItemsMap iMap , TFunctor* functor ): wxListCtrl(parent,id)
+
+               ListWx::ListWx( wxWindow* parent, wxWindowID id,ItemsMap iMap , TFunctor* functor ):
+                               wxPanel(parent,id)
                {
 
                        std::cout<< "MLER | ListWx::ListWx()" << std::endl;
                        this->m_itemsMap = iMap;
 
                        this->functor = functor;
-                       int i = 0;
-                       for (ItemsMap::iterator it=this->m_itemsMap.begin(); it!=this->m_itemsMap.end(); ++it)
-                       {
 
-                               std::string key = it->first;
-                               long index = this->InsertItem(i, wxString(key.c_str(), wxConvUTF8));
+                       wxFlexGridSizer* sizer = new wxFlexGridSizer(1);
+                       sizer->Add( new  wxStaticText(this,-1, _("Lista")));
+                       sizer->AddGrowableCol(0);
+                       this->SetSizer(sizer);
+
+                       listBox = new wxListBox(this,-1);
+                       m_functorEnabled = true;
+
+                       std::cout << "is ListBox"<< listBox->GetId()<< std::endl;
+               //      this->Connect( -1,wxEVT_COMMAND_CHOICE_SELECTED,
+                       //              (wxObjectEventFunction) (void (wxPanel::*)(wxEvent&))(&ListWx::ListEvent) );
+                       //this->Connect(wxEVT_COMMAND_LISTBOX_DOUBLECLICKED,
+                               //      wxCommandEventHandler(ListWx::ListEvent));
+
+                       this->Connect(wxEVT_COMMAND_LISTBOX_SELECTED,
+                                                wxCommandEventHandler(ListWx::ListEvent));
+
+                       //FillList(0);
+
+
+                       sizer->Add(listBox,1,wxGROW);
+
 
-                               std::cout << "index" << index << std::endl;
-                               this->Connect( -1, wxEVT_COMMAND_LIST_ITEM_SELECTED,
-                                                wxListEventHandler(ListWx::ListEvent) );
-                               i++;
-                       }
                }
 
                // ----------------------------------------------------------------------------------
+
+               ListWx::ListWx( wxWindow* parent, wxWindowID id, ItemsMap iMap,TFunctor* functor,
+                               std::string c) : wxPanel(parent,id)
+               {
+                       std::cout<< "MLER | ListWx::ListWx" << std::endl;
+
+                       this->m_itemsMap = iMap;
+                       this->functor = functor;
+
+                       wxFlexGridSizer* sizer = new wxFlexGridSizer(1);
+
+                       sizer->Add( new  wxStaticText(this,-1, _("Lista Configurable")));
+                       sizer->AddGrowableCol(0);
+                       this->SetSizer(sizer);
+
+                       listBox = new wxListBox(this,-1);
+
+                       std::cout << "is ListBox"<< listBox->GetId()<< std::endl;
+
+                       button = new wxButton(this, 1, _("Configurar"),
+                                       wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator, wxString(c.c_str(), wxConvUTF8));
+
+                       sizer->Add(listBox,1,wxGROW);
+                       sizer->Add(button,2,wxGROW);
+
+               //      m_listConfigPanel = new ListConfigPanel(this,1,_("Configuracion"),m_itemsMap);
+                       m_listConfig = new ListConfig(m_itemsMap);
+
+                       //wxEVT_COMMAND_LISTBOX_SELECTED
+                       this->Connect(wxEVT_COMMAND_LISTBOX_SELECTED,
+                                               wxCommandEventHandler(ListWx::ListEvent));
+
+                       //FillList();
+
+               }
+
+               // ----------------------------------------------------------------------------------
+
                ListWx::~ListWx( )
                {
                }
+               // ----------------------------------------------------------------------------------
+
+               void
+               ListWx::FillList()
+               {
+                       this->listBox->Clear();
+                       std::cout<<"clear"<<std::endl;
+                       for (ItemsMap::iterator it=this->m_itemsMap.begin(); it!=this->m_itemsMap.end(); ++it)
+                       {
+                               std::string key = it->first;
+                               int v = listBox->FindString(wxString(key.c_str(), wxConvUTF8));
+                               if(v == -1)
+                                       listBox->Append( wxString(key.c_str(), wxConvUTF8));
+                       }
+                       listBox->Update();
+                       this->Update();
+               }
+               // ----------------------------------------------------------------------------------
 
                void
-               ListWx::ListEvent( wxListEvent& event )
+               ListWx::ListEvent( wxCommandEvent& event )
                {
+                       if(!this->IsFunctorEnabled())
+                               return;
+                       else{
                        try
                        {
                                std::cout<< "MLER | ListWx::ListEvent( wxListEvent& event )" << std::endl;
 
-                               wxString itemNom = event.GetItem().GetText();
+                               int iSelection;
+                               iSelection = listBox->GetSelection();
 
+                               wxString itemNom = listBox->GetString(iSelection);
                                std::string itemNomC = std::string(itemNom.mb_str());
 
                                this->functor->Call(itemNomC);
                                std::cout<<"mmmmmmmmmmmmmmmmmmmmmmm"<<std::endl;
 
+
                        }//yrt
                        catch ( const std::exception& e )
                        {
@@ -79,8 +154,70 @@ namespace creaButtonContainer
                                    << "ButtonContainerController::ButtonEvent( wxCommandEvent& event ) exception: "
                                    << e.what( ) << std::endl;
                        }//hctac
+                       }
+               }
+               // ----------------------------------------------------------------------------------
+
+
+
+               ListWx::ItemsMap
+               ListWx::GetItemsMap()
+               {
+                       return m_itemsMap;
+               }
+
+               void ListWx::SetFunctorEnabled(const bool& enabled)
+               {
+                       m_functorEnabled = enabled;
+               }
+
+               bool ListWx::IsFunctorEnabled() const
+               {
+                       return m_functorEnabled;
                }
-       // ----------------------------------------------------------------------------------
+
+               ListWx::TFunctor*
+               ListWx::GetWxListFunctor()
+               {
+                       return this->functor;
+               }
+
+               void ListWx::AddItemToMap(std::string key, wxPanel* panel)
+               {
+                       this->m_itemsMap[key] = panel;
+               }
+
+               wxListBox*
+               ListWx::GetListBox() const
+               {
+                       return this->listBox;
+               }
+
+
+               void ListWx::DeleteItemFromMap(std::string key)
+               {
+                       std::cout<< "MLER | ListConfig::DelFinalItems(std::string name)" << std::endl;
+                       ItemsMap::iterator it1;
+
+                       //if(m_finalItems.empty())
+                       std::cout<<"name item -----test A"<< key <<std::endl;
+                       if(!this->m_itemsMap.empty())
+                       {
+                               for(ItemsMap::iterator it= this->m_itemsMap.begin(); it!=this->m_itemsMap.end();++it)
+                               {
+                                       if((it->first).compare(key) == 0  )
+                                       {
+                                               std::cout << "Item a borrar: "<< key << std::endl;
+                                               it1 = m_itemsMap.find(key);
+                                               m_itemsMap.erase(it1);
+
+                                       }
+                               }
+                       }
+                                       std::cout<< "si borre tengo --- test 2 "<< m_itemsMap.size() << std::endl;
+               }
+
+
        }//ecapseman
 }//ecapseman