From ff116b1d805145619b44879358f1fa8521ef5569 Mon Sep 17 00:00:00 2001 From: monica Date: Mon, 19 Jan 2015 13:41:48 +0100 Subject: [PATCH] #2507 creaMaracasVisu Feature New Normal - creaPanelButtonContainerListPanel --- .../bbcreaMaracasVisuPanelButtonContainer.cxx | 11 +-- .../model/listGroupFactory.cxx | 4 +- .../model/listGroupFactory.h | 4 +- .../view/buttonContainerPanel.cxx | 16 ++-- .../view/buttonContainerPanel.h | 12 +-- .../view/buttonManager.cxx | 8 +- .../creaButtonContainer/view/buttonManager.h | 10 +-- .../creaButtonContainer/view/groupManager.cxx | 4 +- .../creaButtonContainer/view/groupManager.h | 4 +- .../creaButtonContainer/view/listGroup.cxx | 4 +- .../creaButtonContainer/view/listGroup.h | 4 +- .../creaButtonContainer/view/listWx.cxx | 79 ++++--------------- .../widgets/creaButtonContainer/view/listWx.h | 28 +++---- .../buttonContainerSettings.cxx | 40 +++++++++- .../buttonContainerSettings.h | 14 +++- .../creaPanelButtonContainer.cxx | 16 +++- .../creaPanelButtonContainer.h | 6 ++ 17 files changed, 132 insertions(+), 132 deletions(-) diff --git a/bbtk/src/bbcreaMaracasVisuPanelButtonContainer.cxx b/bbtk/src/bbcreaMaracasVisuPanelButtonContainer.cxx index abbdd39..85f630b 100644 --- a/bbtk/src/bbcreaMaracasVisuPanelButtonContainer.cxx +++ b/bbtk/src/bbcreaMaracasVisuPanelButtonContainer.cxx @@ -43,14 +43,9 @@ PanelButtonContainer::Process( ) ButtonContainerSettings* settings = new ButtonContainerSettings( ); printf("EED PanelButtonContainer::Process %d\n", bbGetInputIn( ).size() ); - //if(bbGetInputType()== "1") - //{ - // settings->AddItems(bbGetInputIn()); - - //} - //else { - settings->AddButtons(bbGetInputIn( )); - //} + + settings->AddButtons(bbGetInputIn( ), bbGetInputType()); + PBContainer* panel = new PBContainer( myPanel, settings, bbGetInputType() ); diff --git a/lib/maracasVisuLib/src/interface/wxWindows/widgets/creaButtonContainer/model/listGroupFactory.cxx b/lib/maracasVisuLib/src/interface/wxWindows/widgets/creaButtonContainer/model/listGroupFactory.cxx index 1d1adba..54559d9 100644 --- a/lib/maracasVisuLib/src/interface/wxWindows/widgets/creaButtonContainer/model/listGroupFactory.cxx +++ b/lib/maracasVisuLib/src/interface/wxWindows/widgets/creaButtonContainer/model/listGroupFactory.cxx @@ -24,7 +24,7 @@ # ------------------------------------------------------------------------ */ -#include "listGroupFactory.h" +/*#include "listGroupFactory.h" namespace creaButtonContainer { @@ -89,5 +89,5 @@ namespace creaButtonContainer } // ---------------------------------------------------------------------------------- }//ecapseman -}//ecapseman +}//ecapseman*/ diff --git a/lib/maracasVisuLib/src/interface/wxWindows/widgets/creaButtonContainer/model/listGroupFactory.h b/lib/maracasVisuLib/src/interface/wxWindows/widgets/creaButtonContainer/model/listGroupFactory.h index a90a26a..aece2e4 100644 --- a/lib/maracasVisuLib/src/interface/wxWindows/widgets/creaButtonContainer/model/listGroupFactory.h +++ b/lib/maracasVisuLib/src/interface/wxWindows/widgets/creaButtonContainer/model/listGroupFactory.h @@ -23,7 +23,7 @@ # knowledge of the CeCILL-B license and that you accept its terms. # ------------------------------------------------------------------------ */ -#ifndef LISTGROUPFACTORY_H +/*#ifndef LISTGROUPFACTORY_H #define LISTGROUPFACTORY_H #include @@ -79,4 +79,4 @@ namespace creaButtonContainer }//ecapseman }//ecapseman -#endif // LISTGROUPFACTORY_H +#endif // LISTGROUPFACTORY_H*/ diff --git a/lib/maracasVisuLib/src/interface/wxWindows/widgets/creaButtonContainer/view/buttonContainerPanel.cxx b/lib/maracasVisuLib/src/interface/wxWindows/widgets/creaButtonContainer/view/buttonContainerPanel.cxx index bdd5649..fb27346 100644 --- a/lib/maracasVisuLib/src/interface/wxWindows/widgets/creaButtonContainer/view/buttonContainerPanel.cxx +++ b/lib/maracasVisuLib/src/interface/wxWindows/widgets/creaButtonContainer/view/buttonContainerPanel.cxx @@ -49,7 +49,7 @@ namespace creaButtonContainer std::cout<< std::endl << " MLER buttonContainerPanel.cxx / ButtonContainerPanel() " << std::endl; ButtonGroupFactory factory; - ListGroupFactory listFactory; + //ListGroupFactory listFactory; //MLER this->SetButtonGroupContainer( factory.CreateButtonGroupContainer( this, settings ) ); @@ -59,10 +59,10 @@ namespace creaButtonContainer case 0: this->SetButtonGroupContainer( factory.CreateButtonGroupContainer( this, settings ) ); break; - case 1: - this->SetListGroupContainer(listFactory.CreateButtonGroupContainer( this, settings ) ); + //case 1: + //this->SetListGroupContainer(listFactory.CreateButtonGroupContainer( this, settings ) ); // MLER Verificar ButtonGroupList contra ListGroupList - break; + //break; default: this->SetButtonGroupContainer(factory.CreateButtonGroupContainer( this, settings ) ); } @@ -84,10 +84,10 @@ namespace creaButtonContainer this->m_ButtonGroupList = groupContainer; } // ---------------------------------------------------------------------------------- - void ButtonContainerPanel::SetListGroupContainer(ListGroupList groupContainer ) + /*void ButtonContainerPanel::SetListGroupContainer(ListGroupList groupContainer ) { this->m_ListGroupList = groupContainer; - } + }*/ // ---------------------------------------------------------------------------------- void ButtonContainerPanel::PanelInit( int type ) @@ -108,7 +108,7 @@ namespace creaButtonContainer this->m_Sizer->Add( manager, 1, wxALL | wxALIGN_LEFT | wxALIGN_TOP, 5 ); } } - else + /*else { for(ListGroupList::iterator it1 = this->m_ListGroupList.begin(); it1 != this->m_ListGroupList.end(); ++it1) { @@ -116,7 +116,7 @@ namespace creaButtonContainer this->m_GroupManagerList[ manager->GetButtonID( ) ] = manager; this->m_Sizer->Add( manager, 1, wxALL | wxALIGN_LEFT | wxALIGN_TOP, 5 ); } - }//MLER + }//MLER*/ this->SetSizer( this->m_Sizer ); this->Layout( ); diff --git a/lib/maracasVisuLib/src/interface/wxWindows/widgets/creaButtonContainer/view/buttonContainerPanel.h b/lib/maracasVisuLib/src/interface/wxWindows/widgets/creaButtonContainer/view/buttonContainerPanel.h index 8fdc3b6..7696062 100644 --- a/lib/maracasVisuLib/src/interface/wxWindows/widgets/creaButtonContainer/view/buttonContainerPanel.h +++ b/lib/maracasVisuLib/src/interface/wxWindows/widgets/creaButtonContainer/view/buttonContainerPanel.h @@ -133,11 +133,11 @@ namespace creaButtonContainer typedef creaButtonContainer::controller::ButtonContainerController BCController; - typedef creaButtonContainer::model::ListGroupFactory ListGroupFactory; + //typedef creaButtonContainer::model::ListGroupFactory ListGroupFactory; - typedef creaButtonContainer::view::ListGroup ListGroup; + //typedef creaButtonContainer::view::ListGroup ListGroup; - typedef std::list< ListGroup* > ListGroupList; + //typedef std::list< ListGroup* > ListGroupList; //typedef creaButtonContainer::model::ListGroupFactory ListGroupFactory; @@ -172,8 +172,8 @@ namespace creaButtonContainer PanelInit( int type); // ---------------------------------------------------------------------------------- - void - SetListGroupContainer(ListGroupList groupContainer ); + //void + //SetListGroupContainer(ListGroupList groupContainer ); // ---------------------------------------------------------------------------------- /*! @fn FitSizer( ); * This method fits and organizes the sizer. @@ -189,7 +189,7 @@ namespace creaButtonContainer BCController* m_ButtonCController; //! ButtonContainer; // ---------------------------------------------------------------------------------- //MLER - typedef creaButtonContainer::view::ListGroup ListGroup; - typedef std::map ListContainer; + //typedef creaButtonContainer::view::ListGroup ListGroup; + //typedef std::map ListContainer; //end of typedef definition. public: @@ -102,7 +102,7 @@ namespace creaButtonContainer ButtonManager( ButtonGroup* buttonGroup ); // ---------------------------------------------------------------------------------- //MLER - ButtonManager (ListGroup* buttonGroup); + //ButtonManager (ListGroup* buttonGroup); // ---------------------------------------------------------------------------------- /*! @fn ~ButtonManager( ); @@ -142,8 +142,8 @@ namespace creaButtonContainer SetButtonManager( ButtonContainer buttonContainer ); // ---------------------------------------------------------------------------------- //MLER - void - SetListManager( ListContainer buttonContainer ); + /*void + SetListManager( ListContainer buttonContainer );*/ // ---------------------------------------------------------------------------------- diff --git a/lib/maracasVisuLib/src/interface/wxWindows/widgets/creaButtonContainer/view/groupManager.cxx b/lib/maracasVisuLib/src/interface/wxWindows/widgets/creaButtonContainer/view/groupManager.cxx index 1cec671..9974723 100644 --- a/lib/maracasVisuLib/src/interface/wxWindows/widgets/creaButtonContainer/view/groupManager.cxx +++ b/lib/maracasVisuLib/src/interface/wxWindows/widgets/creaButtonContainer/view/groupManager.cxx @@ -49,7 +49,7 @@ namespace creaButtonContainer this->Add( this->m_ButtonManager, 1, wxALL | wxALIGN_LEFT | wxALIGN_TOP, 5 ); } - GroupManager::GroupManager(wxWindow* parent, ListGroup* buttonGroup ): + /*GroupManager::GroupManager(wxWindow* parent, ListGroup* buttonGroup ): wxFlexGridSizer( 1, 0, 0, 0 ) { std::cout << " MLER groupManager.cxx / GroupManager(ListGroup* buttonGroup) " << std::endl; @@ -58,7 +58,7 @@ namespace creaButtonContainer this->Add( m_ExpansionButton, 1, wxALL | wxALIGN_LEFT | wxALIGN_TOP, 5 ); this->m_ButtonManager = new ButtonManager( buttonGroup ); this->Add( this->m_ButtonManager, 1, wxALL | wxALIGN_LEFT | wxALIGN_TOP, 5 ); - }//MLER + }//MLER*/ // ---------------------------------------------------------------------------------- GroupManager::~GroupManager( ) diff --git a/lib/maracasVisuLib/src/interface/wxWindows/widgets/creaButtonContainer/view/groupManager.h b/lib/maracasVisuLib/src/interface/wxWindows/widgets/creaButtonContainer/view/groupManager.h index 1d84118..ab69ab4 100644 --- a/lib/maracasVisuLib/src/interface/wxWindows/widgets/creaButtonContainer/view/groupManager.h +++ b/lib/maracasVisuLib/src/interface/wxWindows/widgets/creaButtonContainer/view/groupManager.h @@ -77,7 +77,7 @@ namespace creaButtonContainer typedef wxButton ExpansionButton; // ---------------------------------------------------------------------------------- //MLER - typedef creaButtonContainer::view::ListGroup ListGroup; + //typedef creaButtonContainer::view::ListGroup ListGroup; //end of typedef definition. public: @@ -91,7 +91,7 @@ namespace creaButtonContainer // ---------------------------------------------------------------------------------- //MLER - GroupManager( wxWindow* parent, ListGroup* listGroup ); + //GroupManager( wxWindow* parent, ListGroup* listGroup ); /*! @fn ~GroupManager( ); * @brief This is the destructor. */ diff --git a/lib/maracasVisuLib/src/interface/wxWindows/widgets/creaButtonContainer/view/listGroup.cxx b/lib/maracasVisuLib/src/interface/wxWindows/widgets/creaButtonContainer/view/listGroup.cxx index 92295a1..9ba6cee 100644 --- a/lib/maracasVisuLib/src/interface/wxWindows/widgets/creaButtonContainer/view/listGroup.cxx +++ b/lib/maracasVisuLib/src/interface/wxWindows/widgets/creaButtonContainer/view/listGroup.cxx @@ -23,7 +23,7 @@ # knowledge of the CeCILL-B license and that you accept its terms. # ------------------------------------------------------------------------ */ -#include "listGroup.h" +/*#include "listGroup.h" namespace creaButtonContainer { @@ -93,4 +93,4 @@ namespace creaButtonContainer } // ---------------------------------------------------------------------------------- }//ecapseman -}//ecapseman +}//ecapseman*/ diff --git a/lib/maracasVisuLib/src/interface/wxWindows/widgets/creaButtonContainer/view/listGroup.h b/lib/maracasVisuLib/src/interface/wxWindows/widgets/creaButtonContainer/view/listGroup.h index c347010..494fe33 100644 --- a/lib/maracasVisuLib/src/interface/wxWindows/widgets/creaButtonContainer/view/listGroup.h +++ b/lib/maracasVisuLib/src/interface/wxWindows/widgets/creaButtonContainer/view/listGroup.h @@ -26,7 +26,7 @@ #ifndef LISTGROUP_H #define LISTGROUP_H -//Library Definition +/*//Library Definition #include #include @@ -79,6 +79,6 @@ namespace creaButtonContainer ButtonContainer m_Buttons; //!m_ButtonPair = pair; - StringType wXbuttonName = this->m_ButtonPair->first->first; - BitmapType wXicon = this->m_ButtonPair->first->second; - StringType wXdescription = this->m_ButtonPair->second->first; - wxString buttonName( wXbuttonName.c_str( ), wxConvUTF8 ); - wxString description( wXdescription.c_str( ), wxConvUTF8 ); - //creating the button. - //this->Create( parent, id, - // wXicon, - //wxDefaultPosition, wxDefaultSize,wxBU_AUTODRAW, wxDefaultValidator, - //buttonName ); - this->Create( parent, id, - wxDefaultPosition, wxDefaultSize,wxLC_LIST, wxDefaultValidator, - buttonName ); - this->SetToolTip( description ); - - - long index = this->InsertItem(0, _("John Smith")); - this->SetItem(index, 1, _("jsmith")); - - index = this->InsertItem(1, _("Monica")); - this->SetItem(index, 1, _("monica")); - - index = this->InsertItem(2, _("Momo")); - this->SetItem(index, 2, _("momo")); - - - + this->m_itemsMap = iMap; + this->functor = functor; + for (ItemsMap::iterator it=this->m_itemsMap.begin(); it!=this->m_itemsMap.end(); ++it) + { + std::string key = it->first; + long index = this->InsertItem(0, wxString::From8BitData(key.c_str())); + //this->Connect( index, wxEVT_LIST_ITEM_SELECTED, + // (wxObjectEventFunction) &ListWx::ButtonEvent ); + } } // ---------------------------------------------------------------------------------- @@ -68,47 +49,19 @@ namespace creaButtonContainer { } - // ---------------------------------------------------------------------------------- - StringType - ListWx::GetButtonName( ) - { - return ( this->m_ButtonPair->first->first ); - } - - // ---------------------------------------------------------------------------------- - BitmapType - ListWx::GetIcon( ) - { - return ( this->m_ButtonPair->first->second ); - } - - // ---------------------------------------------------------------------------------- - /*StringType - Button::GetIconPath( ) - { - return ( this->m_ButtonPair->first->second ); - }*/ - - // ---------------------------------------------------------------------------------- - StringType - ListWx::GetDescription( ) - { - return ( this->m_ButtonPair->second->first ); - } - - // ---------------------------------------------------------------------------------- void - ListWx::Execute( ) + ListWx::ButtonEvent( wxCommandEvent& event ) { try { - TFunctor* vTable[ ] = - { this->m_ButtonPair->second->second }; - vTable[ 0 ]->Call( this->m_ButtonPair->first->first ); + //MLDR - Aqui necesita el nombre de la funcion para poderla ejecutar + this->functor->Call("PanelButtonContainer::GenericButtonEvent"); }//yrt catch ( const std::exception& e ) { - std::cerr << "Button::Execute( ) exception: " << e.what( ) << std::endl; + std::cerr + << "ButtonContainerController::ButtonEvent( wxCommandEvent& event ) exception: " + << e.what( ) << std::endl; }//hctac } // ---------------------------------------------------------------------------------- diff --git a/lib/maracasVisuLib/src/interface/wxWindows/widgets/creaButtonContainer/view/listWx.h b/lib/maracasVisuLib/src/interface/wxWindows/widgets/creaButtonContainer/view/listWx.h index 905dbec..970799c 100644 --- a/lib/maracasVisuLib/src/interface/wxWindows/widgets/creaButtonContainer/view/listWx.h +++ b/lib/maracasVisuLib/src/interface/wxWindows/widgets/creaButtonContainer/view/listWx.h @@ -28,10 +28,14 @@ #define LISTWX_H //#include +#include #include #include #include #include +#include +#include +#include "functor.h" #include "system.h" @@ -46,10 +50,10 @@ namespace creaButtonContainer public: typedef creaButtonContainer::model::TFunctor TFunctor; - + typedef std::map ItemsMap; public: - ListWx( wxWindow* parent, long id, ButtonPair* pair ); + ListWx( wxWindow* parent, wxWindowID id, ItemsMap iMap , TFunctor* functor ); // ---------------------------------------------------------------------------------- virtual @@ -58,27 +62,13 @@ namespace creaButtonContainer long GetID( ); - // ---------------------------------------------------------------------------------- - - StringType - GetButtonName( ); - - // ---------------------------------------------------------------------------------- - - BitmapType - GetIcon( ); - - // ---------------------------------------------------------------------------------- - - StringType - GetDescription( ); - // ---------------------------------------------------------------------------------- void - Execute( ); + ButtonEvent( wxCommandEvent& event ); // ---------------------------------------------------------------------------------- private: - ButtonPair* m_ButtonPair; //! AddButton( *it ); + if( type == 0 ) + this->AddButton( *it ); + else if( type == 1 ) + this->AddItems(*it); }//rof }//yrt catch ( std::exception& e ) @@ -244,6 +247,39 @@ namespace creaPanelButtonContainer }//hctac } + void + ButtonContainerSettings::AddItems(BCPSettingsStruct* info) + { + try + { + //builds the button information + //I don't know the try catch doesn't work!! + if ( info->panel == NULL ) + { + std::cerr << "ButtonContainerSettings::AddButton" + << "exception: NULL Pointer in panel " << std::endl; + exit( 1 ); + } + info->panel->Show( false ); + std::string mapKey = info->groupName + ":" + info->buttonName; + m_itemsMap[mapKey] = info->panel; + + }//yrt + catch ( const std::exception& e ) + { + std::cerr + << "ButtonContainerSettings::AddButton( BCPSettingsStruct* info )" + << "exception: " << e.what( ) << std::endl; + exit( 1 ); + }//hctac + } + + ButtonContainerSettings::ItemsMap + ButtonContainerSettings::GetItemsMap() + { + return m_itemsMap; + } + // ---------------------------------------------------------------------------------- }//ecapseman diff --git a/lib/maracasVisuLib/src/interface/wxWindows/widgets/creaPanelButtonContainer/buttonContainerSettings.h b/lib/maracasVisuLib/src/interface/wxWindows/widgets/creaPanelButtonContainer/buttonContainerSettings.h index 329ced9..e88f08d 100644 --- a/lib/maracasVisuLib/src/interface/wxWindows/widgets/creaPanelButtonContainer/buttonContainerSettings.h +++ b/lib/maracasVisuLib/src/interface/wxWindows/widgets/creaPanelButtonContainer/buttonContainerSettings.h @@ -126,7 +126,7 @@ namespace creaPanelButtonContainer * @brief This class contains the settings of the button container. */ - + typedef std::map< std::string, wxPanel* > ItemsMap; public: // ---------------------------------------------------------------------------------- /*! @fn ButtonContainerSettings( ); @@ -230,7 +230,13 @@ namespace creaPanelButtonContainer * @exception std::bad_alloc */ void - AddButtons( BCStructVectorType infoList ); + AddButtons( BCStructVectorType infoList, int type ); + + void + AddItems(BCPSettingsStruct* info); + + ItemsMap + GetItemsMap(); // ---------------------------------------------------------------------------------- @@ -238,6 +244,8 @@ namespace creaPanelButtonContainer ButtonGroupMap m_ButtonGroupContainer; //!m_ButtonPanel, &PanelButtonContainer::GenericButtonEvent ); //end of the event definition - this->m_ButtonContainerPanel = new ButtonContainerPanel( this, this->m_ButtonContainerSettings->GetButtonGroupSettings( functor ),type ); + + wxPanel* listPanel = new wxPanel(this); + + if(type == 0) + this->m_ButtonContainerPanel = new ButtonContainerPanel( this, this->m_ButtonContainerSettings->GetButtonGroupSettings( functor ),type ); + else if( type == 1) + this->mylist = new ListWx(listPanel, -1, this->m_ButtonContainerSettings->GetItemsMap(), functor); + //MLER + //Using AuiManager to Manage the Panels this->m_AuiManager = new wxAuiManager( this, wxAUI_MGR_DEFAULT ); this->m_AuiManager->AddPane(this->m_ButtonPanel, wxAuiPaneInfo( ).Name( _T("ButtonPanel") ).Caption( _("Panel") ). CaptionVisible(true ).CloseButton( false ).Bottom( ).Resizable( true ) ); //CartoButtonPanel Management - this->m_AuiManager->AddPane( this->m_ButtonContainerPanel,wxAuiPaneInfo( ).Name( _T("creaButtonContainer") ).Caption(_("creaButtonContainer") ). CaptionVisible( false ).CloseButton(false ).Center( ).Resizable( true ) ); + if(type == 0) + this->m_AuiManager->AddPane( this->m_ButtonContainerPanel,wxAuiPaneInfo( ).Name( _T("creaButtonContainer") ).Caption(_("creaButtonContainer") ). CaptionVisible( false ).CloseButton(false ).Center( ).Resizable( true ) ); + else + this->m_AuiManager->AddPane( listPanel,wxAuiPaneInfo( ).Name( _T("creaButtonContainer") ).Caption(_("creaButtonContainer") ). CaptionVisible( false ).CloseButton(false ).Center( ).Resizable( true ) ); this->m_AuiManager->Update( ); } // ---------------------------------------------------------------------------------- diff --git a/lib/maracasVisuLib/src/interface/wxWindows/widgets/creaPanelButtonContainer/creaPanelButtonContainer.h b/lib/maracasVisuLib/src/interface/wxWindows/widgets/creaPanelButtonContainer/creaPanelButtonContainer.h index f20232b..acbe800 100644 --- a/lib/maracasVisuLib/src/interface/wxWindows/widgets/creaPanelButtonContainer/creaPanelButtonContainer.h +++ b/lib/maracasVisuLib/src/interface/wxWindows/widgets/creaPanelButtonContainer/creaPanelButtonContainer.h @@ -41,6 +41,7 @@ #include "buttonContainerPanel.h" #include "buttonContainerSettings.h" #include "functor.h" +#include "listWx.h" /*! @namespace * @brief Contains the creaPanelButtonContainer library included in creaMaracasVisu. @@ -66,6 +67,7 @@ namespace creaPanelButtonContainer */ typedef creaButtonContainer::view::ButtonContainerPanel ButtonContainerPanel; + typedef creaButtonContainer::view::ListWx ListWx; // ---------------------------------------------------------------------------------- //end of typedef definition. public: @@ -107,6 +109,10 @@ namespace creaPanelButtonContainer ButtonContainerPanel* m_ButtonContainerPanel; //!