From 978a6b69b838cd857d997d53e1392573853ae702 Mon Sep 17 00:00:00 2001 From: Diego Caceres Date: Tue, 24 May 2011 19:17:35 +0000 Subject: [PATCH] creaButtonContainer & creaPanelButtonContainer: Deep errors have been solved!! ready to work in the cartos (late but entusiast :) ) --- .../controller/buttonContainerController.cxx | 10 ++--- .../model/buttonGroupFactory.cxx | 16 ++++---- .../model/containerSettings.cxx | 6 +-- .../model/containerSettings.h | 1 + .../creaButtonContainer/model/functor.h | 1 + .../creaButtonContainer/model/functor.txx | 4 +- .../creaButtonContainer/model/system.h | 1 + .../creaButtonContainer/view/button.cxx | 2 +- .../widgets/creaButtonContainer/view/button.h | 2 + .../view/buttonContainerPanel.cxx | 2 +- .../view/buttonContainerPanel.h | 2 + .../creaButtonContainer/view/buttonGroup.h | 1 + .../view/buttonManager.cxx | 4 +- .../creaButtonContainer/view/buttonManager.h | 1 + .../creaButtonContainer/view/groupManager.h | 1 + .../buttonContainerSettings.cxx | 29 +++++++++++---- .../buttonContainerSettings.h | 1 + .../creaPanelButtonContainer.cxx | 37 +++++++++++++------ 18 files changed, 79 insertions(+), 42 deletions(-) diff --git a/lib/maracasVisuLib/src/interface/wxWindows/widgets/creaButtonContainer/controller/buttonContainerController.cxx b/lib/maracasVisuLib/src/interface/wxWindows/widgets/creaButtonContainer/controller/buttonContainerController.cxx index bb28d53..3af5eaf 100644 --- a/lib/maracasVisuLib/src/interface/wxWindows/widgets/creaButtonContainer/controller/buttonContainerController.cxx +++ b/lib/maracasVisuLib/src/interface/wxWindows/widgets/creaButtonContainer/controller/buttonContainerController.cxx @@ -19,7 +19,6 @@ namespace creaButtonContainer // ---------------------------------------------------------------------------------- ButtonContainerController::~ButtonContainerController( ) { - delete this->m_BCPanel; } // ---------------------------------------------------------------------------------- void @@ -51,7 +50,7 @@ namespace creaButtonContainer }//rof }//rof }//yrt - catch ( std::exception& e ) + catch ( const std::exception& e ) { std::cerr << "ButtonContainerController::AddEvents( ) exception: " << e.what( ) << std::endl; @@ -81,7 +80,7 @@ namespace creaButtonContainer }//fi esle this->m_BCPanel->FitSizer( ); }//yrt - catch ( std::exception& e ) + catch ( const std::exception& e ) { std::cerr << "ButtonContainerController::ButtonExpEvent( wxCommandEvent& event ) exception: " @@ -98,10 +97,11 @@ namespace creaButtonContainer this->m_BCPanel->m_ButtonGroupList.begin( ); it != this->m_BCPanel->m_ButtonGroupList.end( ); ++it ) { - ( *it )->GetButton( event.GetId( ) )->Execute( ); + if ( ( *it )->GetButton( event.GetId( ) ) != NULL ) + ( *it )->GetButton( event.GetId( ) )->Execute( ); }//rof }//yrt - catch ( std::exception& e ) + catch ( const std::exception& e ) { std::cerr << "ButtonContainerController::ButtonEvent( wxCommandEvent& event ) exception: " diff --git a/lib/maracasVisuLib/src/interface/wxWindows/widgets/creaButtonContainer/model/buttonGroupFactory.cxx b/lib/maracasVisuLib/src/interface/wxWindows/widgets/creaButtonContainer/model/buttonGroupFactory.cxx index 167bade..395f12d 100644 --- a/lib/maracasVisuLib/src/interface/wxWindows/widgets/creaButtonContainer/model/buttonGroupFactory.cxx +++ b/lib/maracasVisuLib/src/interface/wxWindows/widgets/creaButtonContainer/model/buttonGroupFactory.cxx @@ -24,31 +24,28 @@ namespace creaButtonContainer ButtonGroupFactory::CreateButtonGroupContainer( wxWindow* parent, ButtonGroupModel* settings ) { - ButtonGroupContainer groupView; try { + ButtonGroupContainer groupView; ButtonGroupMap map = settings->GetButtonGroupContainer( ); for( ButtonGroupMap::iterator it = map.begin( ); it != map.end( ); ++it ) { - //using wxWidgets. wxString groupNameAux( ( *it ).first.c_str( ), wxConvUTF8 ); wxStaticText* wxGroupName = new wxStaticText( parent, -1, groupNameAux, wxDefaultPosition, wxDefaultSize, 0, - _T( "GroupText" ) ); - //creating a wxButtonGroup. + _T("GroupText") ); ButtonGroup* group = new ButtonGroup( wxGroupName, this->GetButtons( parent, ( *it ).second ) ); - //adding the group to the container. groupView.push_back( group ); - }//rof + } + return ( groupView ); }//yrt - catch ( std::exception& e ) + catch ( const std::exception& e ) { std::cerr << "ButtonGroupFactory::CreateButtonGroupContainer( wxWindow* parent, ButtonGroupModel* settings )" << " exception: " << e.what( ) << std::endl; }//chtac - return ( groupView ); } // ---------------------------------------------------------------------------------- ButtonGroupFactory::ButtonContainer @@ -57,6 +54,7 @@ namespace creaButtonContainer ButtonContainer buttonList; try { + ButtonContainer buttonList; for( ButtonList::iterator it = buttonModel.begin( ); it != buttonModel.end( ); ++it ) { @@ -65,7 +63,7 @@ namespace creaButtonContainer } return ( buttonList ); }//yrt - catch ( std::exception& e ) + catch ( const std::exception& e ) { std::cerr << "ButtonGroupFactory::GetButtons( wxWindow* parent, ButtonList buttonModel )" diff --git a/lib/maracasVisuLib/src/interface/wxWindows/widgets/creaButtonContainer/model/containerSettings.cxx b/lib/maracasVisuLib/src/interface/wxWindows/widgets/creaButtonContainer/model/containerSettings.cxx index 10e387a..a4e18f9 100644 --- a/lib/maracasVisuLib/src/interface/wxWindows/widgets/creaButtonContainer/model/containerSettings.cxx +++ b/lib/maracasVisuLib/src/interface/wxWindows/widgets/creaButtonContainer/model/containerSettings.cxx @@ -66,7 +66,7 @@ namespace creaButtonContainer this->m_GroupNameList.push_back( groupName ); this->m_ButtonGroupContainer[ groupName ].push_back( pair ); }//yrt - catch ( std::exception& e ) + catch ( const std::exception& e ) { std::cerr << "ContainerSettings::AddButton( const std::string & groupName," @@ -96,7 +96,7 @@ namespace creaButtonContainer this->m_GroupNameList.push_back( info->groupName ); this->m_ButtonGroupContainer[ info->groupName ].push_back( pair ); }//yrt - catch ( std::exception& e ) + catch ( const std::exception& e ) { std::cerr << "void ContainerSettings::AddButton( BCSettingsStruct* info ) " @@ -115,7 +115,7 @@ namespace creaButtonContainer this->AddButton( *it ); }//rof }//yrt - catch ( std::exception& e ) + catch ( const std::exception& e ) { std::cerr << "ContainerSettings::AddButtons( BCStructVectorType infoList ) " diff --git a/lib/maracasVisuLib/src/interface/wxWindows/widgets/creaButtonContainer/model/containerSettings.h b/lib/maracasVisuLib/src/interface/wxWindows/widgets/creaButtonContainer/model/containerSettings.h index 7a84073..e180dc1 100644 --- a/lib/maracasVisuLib/src/interface/wxWindows/widgets/creaButtonContainer/model/containerSettings.h +++ b/lib/maracasVisuLib/src/interface/wxWindows/widgets/creaButtonContainer/model/containerSettings.h @@ -12,6 +12,7 @@ #include #include #include +#include #include "structBCSettings.h" #include "system.h" #include "functor.h" diff --git a/lib/maracasVisuLib/src/interface/wxWindows/widgets/creaButtonContainer/model/functor.h b/lib/maracasVisuLib/src/interface/wxWindows/widgets/creaButtonContainer/model/functor.h index f895a82..9cee15d 100644 --- a/lib/maracasVisuLib/src/interface/wxWindows/widgets/creaButtonContainer/model/functor.h +++ b/lib/maracasVisuLib/src/interface/wxWindows/widgets/creaButtonContainer/model/functor.h @@ -9,6 +9,7 @@ #define TFUNCTOR_H_ #include +#include /*! @namespace * @brief Contains the creaButtonContainer library included in creaMaracasVisu. diff --git a/lib/maracasVisuLib/src/interface/wxWindows/widgets/creaButtonContainer/model/functor.txx b/lib/maracasVisuLib/src/interface/wxWindows/widgets/creaButtonContainer/model/functor.txx index 2c76135..e37abe5 100644 --- a/lib/maracasVisuLib/src/interface/wxWindows/widgets/creaButtonContainer/model/functor.txx +++ b/lib/maracasVisuLib/src/interface/wxWindows/widgets/creaButtonContainer/model/functor.txx @@ -29,7 +29,7 @@ namespace creaButtonContainer { ( *pt2Object.*fpt )( buttonName ); }//yrt - catch ( std::exception& e ) + catch ( const std::exception& e ) { std::cerr<< "TConcreteFunctor< TClass >::operator()( const ButtonIDType &buttonName )" <<" exception: " << e.what( ) << std::endl; @@ -45,7 +45,7 @@ namespace creaButtonContainer { ( *pt2Object.*fpt )( buttonName ); }//yrt - catch ( std::exception& e ) + catch ( const std::exception& e ) { std::cerr<< "TConcreteFunctor< TClass >::Call( const ButtonIDType &buttonName )" <<" exception: " << e.what( ) << std::endl; diff --git a/lib/maracasVisuLib/src/interface/wxWindows/widgets/creaButtonContainer/model/system.h b/lib/maracasVisuLib/src/interface/wxWindows/widgets/creaButtonContainer/model/system.h index e0601fc..51db3bd 100644 --- a/lib/maracasVisuLib/src/interface/wxWindows/widgets/creaButtonContainer/model/system.h +++ b/lib/maracasVisuLib/src/interface/wxWindows/widgets/creaButtonContainer/model/system.h @@ -11,6 +11,7 @@ #include #include #include +#include #include "functor.h" /*! @namespace diff --git a/lib/maracasVisuLib/src/interface/wxWindows/widgets/creaButtonContainer/view/button.cxx b/lib/maracasVisuLib/src/interface/wxWindows/widgets/creaButtonContainer/view/button.cxx index d45f9c2..40b1697 100644 --- a/lib/maracasVisuLib/src/interface/wxWindows/widgets/creaButtonContainer/view/button.cxx +++ b/lib/maracasVisuLib/src/interface/wxWindows/widgets/creaButtonContainer/view/button.cxx @@ -62,7 +62,7 @@ namespace creaButtonContainer { this->m_ButtonPair->second->second }; vTable[ 0 ]->Call( this->m_ButtonPair->first->first ); }//yrt - catch ( std::exception& e ) + catch ( const std::exception& e ) { std::cerr << "Button::Execute( ) exception: " << e.what( ) << std::endl; }//hctac diff --git a/lib/maracasVisuLib/src/interface/wxWindows/widgets/creaButtonContainer/view/button.h b/lib/maracasVisuLib/src/interface/wxWindows/widgets/creaButtonContainer/view/button.h index 71662a2..45aeb4f 100644 --- a/lib/maracasVisuLib/src/interface/wxWindows/widgets/creaButtonContainer/view/button.h +++ b/lib/maracasVisuLib/src/interface/wxWindows/widgets/creaButtonContainer/view/button.h @@ -13,9 +13,11 @@ #include #include #include +#include #include "functor.h" #include "system.h" + /*! @namespace * @brief Contains the creaButtonContainer library included in creaMaracasVisu. */ 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 7aad096..3265447 100644 --- a/lib/maracasVisuLib/src/interface/wxWindows/widgets/creaButtonContainer/view/buttonContainerPanel.cxx +++ b/lib/maracasVisuLib/src/interface/wxWindows/widgets/creaButtonContainer/view/buttonContainerPanel.cxx @@ -59,7 +59,7 @@ namespace creaButtonContainer this->SetSizer( this->m_Sizer ); this->FitSizer( ); }//yrt - catch ( std::exception& e ) + catch ( const std::exception& e ) { std::cerr << "ButtonContainerPanel::PanelInit( ) " << "exception: " << e.what( ) << std::endl; 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 063b9d5..579ac83 100644 --- a/lib/maracasVisuLib/src/interface/wxWindows/widgets/creaButtonContainer/view/buttonContainerPanel.h +++ b/lib/maracasVisuLib/src/interface/wxWindows/widgets/creaButtonContainer/view/buttonContainerPanel.h @@ -13,6 +13,7 @@ #include #include #include +#include #include "buttonGroup.h" #include "groupManager.h" @@ -49,6 +50,7 @@ namespace creaButtonContainer /*! @class ButtonContainerPanel buttonContainerPanel.h "buttonContainerPanel.h" * @brief This class is the container of the creaButtonContainer. * @details This class derives from wxScrolledWindow and manages the view of the buttonContainer. + * @bug The scrolled it doesn't work! (to be changed soon) * @see wxScrolledWindow */ class ButtonContainerPanel : public wxScrolledWindow diff --git a/lib/maracasVisuLib/src/interface/wxWindows/widgets/creaButtonContainer/view/buttonGroup.h b/lib/maracasVisuLib/src/interface/wxWindows/widgets/creaButtonContainer/view/buttonGroup.h index ce06428..b328569 100644 --- a/lib/maracasVisuLib/src/interface/wxWindows/widgets/creaButtonContainer/view/buttonGroup.h +++ b/lib/maracasVisuLib/src/interface/wxWindows/widgets/creaButtonContainer/view/buttonGroup.h @@ -12,6 +12,7 @@ #include #include #include +#include #include "button.h" diff --git a/lib/maracasVisuLib/src/interface/wxWindows/widgets/creaButtonContainer/view/buttonManager.cxx b/lib/maracasVisuLib/src/interface/wxWindows/widgets/creaButtonContainer/view/buttonManager.cxx index d855969..38a4c6b 100644 --- a/lib/maracasVisuLib/src/interface/wxWindows/widgets/creaButtonContainer/view/buttonManager.cxx +++ b/lib/maracasVisuLib/src/interface/wxWindows/widgets/creaButtonContainer/view/buttonManager.cxx @@ -25,7 +25,7 @@ namespace creaButtonContainer this->SetGroupName( buttonGroup->GetGroupName( ) ); this->SetButtonManager( buttonGroup->GetButtonContainer( ) ); }//yrt - catch ( std::exception& e ) + catch ( const std::exception& e ) { std::cerr << "Button::Execute( ) exception: " << e.what( ) << std::endl; }//hctac @@ -57,7 +57,7 @@ namespace creaButtonContainer this->Add( m_GridSizer, -1, wxALL | wxALIGN_LEFT | wxALIGN_TOP, 5 ); } }//yrt - catch ( std::exception& e ) + catch ( const std::exception& e ) { std::cerr << "ButtonManager::SetButtonManager( ButtonContainer buttonContainer )" diff --git a/lib/maracasVisuLib/src/interface/wxWindows/widgets/creaButtonContainer/view/buttonManager.h b/lib/maracasVisuLib/src/interface/wxWindows/widgets/creaButtonContainer/view/buttonManager.h index d08cbdc..15127e9 100644 --- a/lib/maracasVisuLib/src/interface/wxWindows/widgets/creaButtonContainer/view/buttonManager.h +++ b/lib/maracasVisuLib/src/interface/wxWindows/widgets/creaButtonContainer/view/buttonManager.h @@ -13,6 +13,7 @@ #include #include #include +#include #include "button.h" #include "buttonGroup.h" 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 c7d2ca5..969b7a4 100644 --- a/lib/maracasVisuLib/src/interface/wxWindows/widgets/creaButtonContainer/view/groupManager.h +++ b/lib/maracasVisuLib/src/interface/wxWindows/widgets/creaButtonContainer/view/groupManager.h @@ -14,6 +14,7 @@ #include #include #include +#include #include "buttonManager.h" #include "buttonGroup.h" #include diff --git a/lib/maracasVisuLib/src/interface/wxWindows/widgets/creaPanelButtonContainer/buttonContainerSettings.cxx b/lib/maracasVisuLib/src/interface/wxWindows/widgets/creaPanelButtonContainer/buttonContainerSettings.cxx index 7dcd9a4..8ca88d0 100644 --- a/lib/maracasVisuLib/src/interface/wxWindows/widgets/creaPanelButtonContainer/buttonContainerSettings.cxx +++ b/lib/maracasVisuLib/src/interface/wxWindows/widgets/creaPanelButtonContainer/buttonContainerSettings.cxx @@ -6,7 +6,6 @@ */ #include "buttonContainerSettings.h" -#include namespace creaPanelButtonContainer { @@ -55,16 +54,16 @@ namespace creaPanelButtonContainer std::cerr << "ButtonContainerSettings::GetPanelButton( const std::string &buttonName ) " << "exception: " << e.what( ) << std::endl; - return ( NULL ); }//hctac + return ( NULL ); } // ---------------------------------------------------------------------------------- ButtonContainerSettings::ButtonGroupSettings* ButtonContainerSettings::GetButtonGroupSettings( TFunctor* functor ) { - ButtonGroupSettings* settings = new ButtonGroupSettings( ); try { + ButtonGroupSettings* settings = new ButtonGroupSettings( ); for( KeyMapList::iterator it = this->m_GroupNameList.begin( ); it != this->m_GroupNameList.end( ); ++it ) { @@ -82,7 +81,6 @@ namespace creaPanelButtonContainer std::cerr << "ButtonContainerSettings::GetPanelButton( const std::string &buttonName ) " << "exception: " << e.what( ) << std::endl; - return ( NULL ); }//hctac } // ---------------------------------------------------------------------------------- @@ -107,6 +105,13 @@ namespace creaPanelButtonContainer try { //builds the button information + //I don't know the try catch doesn't work!! + if ( panel == NULL ) + { + std::cerr << "ButtonContainerSettings::AddButton" + << "exception: NULL Pointer in panel " << std::endl; + exit( 1 ); + } panel->Show( false ); ButtonPair* pair = new ButtonPair( new ButtonInfo( buttonName, iconpath ), @@ -123,7 +128,7 @@ namespace creaPanelButtonContainer this->m_GroupNameList.push_back( groupName ); this->m_ButtonGroupContainer[ groupName ].push_back( pair ); }//yrt - catch ( std::exception& e ) + catch ( const std::exception& e ) { std::cerr << "ButtonContainerSettings::AddButton( const std::string & groupName," @@ -139,6 +144,13 @@ namespace creaPanelButtonContainer 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 ); ButtonPair* pair = new ButtonPair( new ButtonInfo( info->buttonName, info->iconpath ), @@ -154,12 +166,13 @@ namespace creaPanelButtonContainer }//rof this->m_GroupNameList.push_back( info->groupName ); this->m_ButtonGroupContainer[ info->groupName ].push_back( pair ); - } - catch ( std::exception& e ) + }//yrt + catch ( const std::exception& e ) { std::cerr << "ButtonContainerSettings::AddButton( BCPSettingsStruct* info )" << "exception: " << e.what( ) << std::endl; + exit( 1 ); }//hctac } // ---------------------------------------------------------------------------------- @@ -173,7 +186,7 @@ namespace creaPanelButtonContainer { this->AddButton( *it ); }//rof - } + }//yrt catch ( std::exception& e ) { std::cerr diff --git a/lib/maracasVisuLib/src/interface/wxWindows/widgets/creaPanelButtonContainer/buttonContainerSettings.h b/lib/maracasVisuLib/src/interface/wxWindows/widgets/creaPanelButtonContainer/buttonContainerSettings.h index ff61b63..fa94fd1 100644 --- a/lib/maracasVisuLib/src/interface/wxWindows/widgets/creaPanelButtonContainer/buttonContainerSettings.h +++ b/lib/maracasVisuLib/src/interface/wxWindows/widgets/creaPanelButtonContainer/buttonContainerSettings.h @@ -12,6 +12,7 @@ #include #include #include +#include #include "structBCPSettings.h" #include "containerSettings.h" diff --git a/lib/maracasVisuLib/src/interface/wxWindows/widgets/creaPanelButtonContainer/creaPanelButtonContainer.cxx b/lib/maracasVisuLib/src/interface/wxWindows/widgets/creaPanelButtonContainer/creaPanelButtonContainer.cxx index 133a214..a9318da 100644 --- a/lib/maracasVisuLib/src/interface/wxWindows/widgets/creaPanelButtonContainer/creaPanelButtonContainer.cxx +++ b/lib/maracasVisuLib/src/interface/wxWindows/widgets/creaPanelButtonContainer/creaPanelButtonContainer.cxx @@ -20,19 +20,24 @@ namespace creaPanelButtonContainer { this->m_ButtonContainerSettings = bcSettings; this->m_ButtonPanel = new wxPanel( this ); + //Class that manages the cartobutton event!!! TConcreteFunctor* functor = new TConcreteFunctor( this, &PanelButtonContainer::GenericButtonEvent ); //end of the event definition + this->m_ButtonContainerPanel = new ButtonContainerPanel( this, this->m_ButtonContainerSettings->GetButtonGroupSettings( functor ) ); + //Using AuiManager to Manage the Panels this->m_AuiManager = new wxAuiManager( this, wxAUI_MGR_DEFAULT ); + // CartoSettingsPanel Management this->m_AuiManager->AddPane( this->m_ButtonPanel, wxAuiPaneInfo( ).Name( _T("ButtonPanel") ).Caption( _("Panel") ). CaptionVisible( ).CloseButton( false ).Left( ).MinSize( wxSize( 300, 300 ) ) ); + //CartoButtonPanel Management this->m_AuiManager->AddPane( this->m_ButtonContainerPanel, @@ -40,7 +45,6 @@ namespace creaPanelButtonContainer _("creaButtonContainer") ). CaptionVisible( ).CloseButton( false ).Left( ) .MinSize( wxSize( 300, 300 ) ) ); this->m_AuiManager->Update( ); - //this->createGimmick(); } // ---------------------------------------------------------------------------------- PanelButtonContainer::~PanelButtonContainer( ) @@ -50,16 +54,27 @@ namespace creaPanelButtonContainer void PanelButtonContainer::UpdatePanel( const std::string &buttonName ) { - //Hiding the last CartoSettingsPanel - this->m_ButtonPanel->Show( false ); - //Finding the CartoSettingsPanel of the ButtonClicket - this->m_ButtonPanel = this->m_ButtonContainerSettings->GetPanelButton( - buttonName ); - //CartoSettingsPanel Management - this->m_AuiManager->GetPane( _T("ButtonPanel") ).window - = this->m_ButtonPanel; - //Updating the manager - this->m_AuiManager->Update( ); + try + { + //Hiding the last CartoSettingsPanel + this->m_ButtonPanel->Show( false ); + //Finding the CartoSettingsPanel of the ButtonClicket + this->m_ButtonPanel = this->m_ButtonContainerSettings->GetPanelButton( + buttonName ); + //CartoSettingsPanel Management + this->m_AuiManager->GetPane( _T("ButtonPanel") ).window + = this->m_ButtonPanel; + //Updating the manager + this->m_AuiManager->Update( ); + }//yrt + catch ( const std::exception& e ) + { + std::cerr + << "PanelButtonContainer::UpdatePanel( const std::string &buttonName )" + << "exception: " << e.what( ) << std::endl; + std::cout<<"Maybe the panel of the button is NULL"<