#include "creaPanelButtonContainer.h"
+
namespace creaPanelButtonContainer
{
BEGIN_EVENT_TABLE(PanelButtonContainer,wxPanel)
+ //EVT_LIST_ITEM_SELECTED(-1, ListWx::ListEvent)
+
//(*EventTable(ButtonContainerPanel)
//*)
END_EVENT_TABLE()
// ----------------------------------------------------------------------------------
typedef creaButtonContainer::model::TConcreteFunctor< PanelButtonContainer > TConcreteFunctor;
// ----------------------------------------------------------------------------------
- PanelButtonContainer::PanelButtonContainer( wxWindow* parent, ButtonContainerSettings* bcSettings )
+ PanelButtonContainer::PanelButtonContainer( wxWindow* parent, ButtonContainerSettings* bcSettings, int type )
: wxPanel( parent, -1, wxDefaultPosition, wxDefaultSize, wxDEFAULT_FRAME_STYLE, _T("creaPanelButtonContainer") )
{
+ std::cout<< "MLER | creaPanelButtonContainer:: PanelButtonContainer() " << std::endl;
+
this->m_ButtonContainerSettings = bcSettings;
- this->m_ButtonPanel = new wxPanel( this );
+
//Class that manages the event!!!
//EED 20/01/2012
// TConcreteFunctor* functor = new TConcreteFunctor( this->m_ButtonPanel, &PanelButtonContainer::GenericButtonEvent );
//end of the event definition
- this->m_ButtonContainerPanel = new ButtonContainerPanel( this, this->m_ButtonContainerSettings->GetButtonGroupSettings( functor ) );
+ TConcreteFunctor* lFunctor = new TConcreteFunctor( this, &PanelButtonContainer::GenericListEvent );
+ //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_ButtonPanel = new wxPanel( this );
+ std::cout << "tipo 0; new ButtonContainerPanel"<<std::endl;
+ this->m_ButtonContainerPanel = new ButtonContainerPanel( this, this->m_ButtonContainerSettings->GetButtonGroupSettings( functor ) );
+
+ this->m_AuiManager->AddPane( this->m_ButtonContainerPanel,wxAuiPaneInfo( ).Name( _T("ButtonContainerPanel") ).Caption(_("ButtonContainerPanel") ). CaptionVisible( true ).CloseButton(false ).Center( ).Resizable( true ) );
+ this->m_AuiManager->AddPane(this->m_ButtonPanel, wxAuiPaneInfo( ).Name( _T("ButtonPanel") ).Caption( _("ButtonPanel") ). CaptionVisible(true ).CloseButton( false ).Bottom( ).Resizable( true ) );
+ }
+ else if( type == 1)
+ {
+ this->m_ListPanel = new wxPanel(this);
+ std::cout << "tipo 1; new LIstWx"<<std::endl;
+ this->mylist = new ListWx(this, -1,this->m_ButtonContainerSettings->GetItemsMap(), lFunctor);
+ mylist->FillList();
+ this->m_AuiManager->AddPane( this->mylist,wxAuiPaneInfo( ).Name( _T("ListContainerPanel") ).Caption(_("ListContainerPanel") ). CaptionVisible( true ).CloseButton(false ).Center( ).Resizable( true ) );
+ this->m_AuiManager->AddPane(this->m_ListPanel, wxAuiPaneInfo( ).Name( _T("ListPanel") ).Caption( _("ListPanel") ). CaptionVisible(true ).CloseButton( false ).Bottom( ).Resizable( true ) );
+ }
+ else if( type == 2)
+ {
+
+ this->m_ListPanel = new wxPanel(this);
+
+ panelUp = new wxPanel(this, -1, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL, _T("ListConfigContainerPanel"));
+ wxBoxSizer* mainSizer = new wxBoxSizer(wxHORIZONTAL);
+
+ //=======
+ wxBoxSizer* listSizer = new wxBoxSizer(wxVERTICAL);
+
+ this->mylist = new ListWx(panelUp,-1,this->m_ButtonContainerSettings->GetItemsMap(),lFunctor);
+ this->mylist->Show(false);
+ ItemsMap empty;
+ this->myConfiglist = new ListWx(panelUp,-1, empty,lFunctor);
+ listSizer->Add(this->myConfiglist,0,wxEXPAND);
+ listSizer->Add(this->mylist,0,wxEXPAND);
+ mainSizer->Add(listSizer,0,wxEXPAND|wxALL,7);
+
+ //=======
+ wxBoxSizer* buttonSizer = new wxBoxSizer(wxVERTICAL);
+
+ button = new wxButton(panelUp, -1, _("Configurar"),
+ wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator, _("Configurar"));
+
+ buttonSizer->Add(button,0,wxEXPAND);
+ mainSizer->Add(buttonSizer,0,wxEXPAND|wxALL,14);
+ //=======
+
+ panelUp->SetSizer(mainSizer);
+
+ this->m_AuiManager->AddPane( panelUp,wxAuiPaneInfo( ).Name( _T("ListConfigContainerPanel") ).Caption(_("ListConfigContainerPanel") ). CaptionVisible( true ).CloseButton(false ).Center( ).Resizable( true ) );
+ this->m_AuiManager->AddPane(this->m_ListPanel, wxAuiPaneInfo( ).Name( _T("ListPanel") ).Caption( _("ListPanel") ). CaptionVisible(true ).CloseButton( false ).Bottom( ).Resizable( true ) );
+ }
+
+
+ //MLER
+
this->m_AuiManager->Update( );
+ //m_listConfigPanel = new ListConfigPanel(this,1,_("Configuracion"),mylist);
+
+ this->Connect(wxEVT_COMMAND_BUTTON_CLICKED,
+ wxCommandEventHandler(PanelButtonContainer::ButtonEvent));
+
}
// ----------------------------------------------------------------------------------
PanelButtonContainer::~PanelButtonContainer( )
{
try
{
+ std::cout<< "MLER | creaPanelButtonContainer:: UpdatePanel() " << std::endl;
+
//Hiding the last CartoSettingsPanel
this->m_ButtonPanel->Show( false );
//Finding the CartoSettingsPanel of the ButtonClicket
this->m_ButtonPanel = this->m_ButtonContainerSettings->GetPanelButton(buttonName );
+ std::cout<< buttonName << "---testEvento 2 "<<std::endl;
//changing the parent of the panel!
if ( this->m_ButtonPanel->GetParent( ) != this )
{
this->m_ButtonPanel->Reparent( this );
}//fi
- //CartoSettingsPanel Management
+ //Panel Management
this->m_AuiManager->GetPane( _T("ButtonPanel") ).window = this->m_ButtonPanel;
//Updating the manager
this->m_AuiManager->Update( );
void
PanelButtonContainer::GenericButtonEvent( const std::string &buttonName )
{
+ std::cout<< "MLER | creaPanelButtonContainer:: GenericButtonEvent() " << std::endl;
+ std::cout<< buttonName << "---testEvento 1 "<<std::endl;
this->UpdatePanel( buttonName );
}
// ----------------------------------------------------------------------------------
+
+ void
+ PanelButtonContainer::UpdateListPanel( const std::string &buttonName )
+ {
+ try{
+
+ std::cout<< "MLER | creaPanelButtonContainer:: UpdateListPanel() " << std::endl;
+ std::cout<< buttonName << " --- test 2 "<<std::endl;
+
+ this->m_ListPanel->Show( false );
+
+ this->m_ListPanel = this->m_ButtonContainerSettings->GetPanelList(buttonName );
+
+ if ( this->m_ListPanel->GetParent( ) != this )
+ {
+ this->m_ListPanel->Reparent( this );
+ }//fi
+ //Panel Management
+ this->m_AuiManager->GetPane( _T("ListPanel") ).window = this->m_ListPanel;
+ //Updating the manager
+ this->m_AuiManager->Update( );
+
+ }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 list is NULL" << std::endl;
+ exit( 1 );
+ }//hctac
+ }
+
+ void
+ PanelButtonContainer::GenericListEvent( const std::string &buttonName )
+ {
+ std::cout<< "MLER | creaPanelButtonContainer:: GenericListEvent() " << std::endl;
+ std::cout<< buttonName << " --- test 3 "<<std::endl;
+ this->UpdateListPanel( buttonName );
+ }
+
+ void
+ PanelButtonContainer::ButtonEvent ( wxCommandEvent& event )
+ {
+
+ m_listConfigPanel = new ListConfigPanel(this,-1,_("Configuracion"), mylist, myConfiglist);
+
+ std::cout<< "BUtton Event"<<std::endl;
+
+ m_listConfigPanel->ShowModal();
+ this->myConfiglist->Reparent(panelUp);
+ this->myConfiglist->Show(true);
+ this->myConfiglist->SetFunctorEnabled(true);
+ this->myConfiglist->Update();
+ this->m_AuiManager->Update( );
+ this->m_ListPanel->Show(false);
+ }
+
+
+
+
}//ecapseman