]> Creatis software - creaMaracasVisu.git/blob - lib/maracasVisuLib/src/interface/wxWindows/widgets/creaButtonContainer/controller/buttonContainerController.cxx
creaButtonContainer: Updates in documentation, adding try catch clauses and cleaning...
[creaMaracasVisu.git] / lib / maracasVisuLib / src / interface / wxWindows / widgets / creaButtonContainer / controller / buttonContainerController.cxx
1 /************************************************************************************//*!
2  * Name:      @file buttonContainerController.cxx
3  * Purpose:   @brief This contains the ButtonContainerController class implementation
4  * Author:    @author Diego CACERES (diego.caceres[AT]creatis.insa-lyon.fr)
5  * Modified:  2011-05-17
6  * Copyright:
7  * License:
8  ***************************************************************************************/
9
10 //! @include "buttonContainerController.h"
11 #include "buttonContainerController.h"
12
13 //!     @namespace<creaButtonContainer>
14 namespace creaButtonContainer
15 {
16         //!     @namespace<controller>
17         namespace controller
18         {
19                 // ----------------------------------------------------------------------------------
20                 ButtonContainerController::ButtonContainerController( BCPanel* panel )
21                 {
22                         this->m_BCPanel = panel;
23                 }
24                 // ----------------------------------------------------------------------------------
25                 ButtonContainerController::~ButtonContainerController( )
26                 {
27                 }
28                 // ----------------------------------------------------------------------------------
29                 void
30                 ButtonContainerController::AddEvents( )
31                 {
32                         try
33                         {
34                                 //Adding ButtonManagerEvents
35                                 for( GroupManagerList::iterator it =
36                                     this->m_BCPanel->m_GroupManagerList.begin( ); it
37                                     != this->m_BCPanel->m_GroupManagerList.end( ); ++it )
38                                 {
39                                         this->Connect(
40                                             ( *it ).first,
41                                             wxEVT_COMMAND_BUTTON_CLICKED,
42                                             ( wxObjectEventFunction )
43                                                 & ButtonContainerController::ButtonExpEvent );
44                                 }//rof
45
46                                 //Adding ButtonEvents
47                                 for( ButtonGroupList::iterator it =
48                                     this->m_BCPanel->m_ButtonGroupList.begin( ); it
49                                     != this->m_BCPanel->m_ButtonGroupList.end( ); ++it )
50                                 {
51                                         KeyList keylist = ( *it )->GetButtonIdContainer( );
52                                         for( KeyList::iterator it2 = keylist.begin( ); it2 != keylist.end( ); ++it2 )
53                                         {
54                                                 this->Connect(
55                                                     ( *it2 ),
56                                                     wxEVT_COMMAND_BUTTON_CLICKED,
57                                                     ( wxObjectEventFunction )
58                                                         & ButtonContainerController::ButtonEvent );
59                                         }//rof
60                                 }//rof
61                         }//yrt
62                         catch ( std::exception& e )
63                         {
64                                 std::cerr
65                                     << "ButtonContainerController::ButtonExpEvent( wxCommandEvent& event ) exception: "
66                                     << e.what( ) << std::endl;
67                         }//hctac
68                 }
69                 // ----------------------------------------------------------------------------------
70                 void
71                 ButtonContainerController::ButtonExpEvent( wxCommandEvent& event )
72                 {
73                         long id = event.GetId( );
74                         try
75                         {
76                                 if ( this->m_BCPanel->m_GroupManagerList[ id ]->GetButton( )->GetLabel( ).Cmp(
77                                     _( "+" ) ) == 0 )
78                                 {
79                                         this->m_BCPanel->m_GroupManagerList[ id ]->GetButton( )->SetLabel(
80                                             _( "-" ) );
81                                         this->m_BCPanel->m_GroupManagerList[ id ]->HideSubPanel( false );
82                                 }//fi
83                                 else if ( this->m_BCPanel->m_GroupManagerList[ id ]->GetButton( )->GetLabel( ).Cmp(
84                                     _( "-" ) ) == 0 )
85                                 {
86                                         this->m_BCPanel->m_GroupManagerList[ id ]->GetButton( )->SetLabel(
87                                             _( "+" ) );
88                                         this->m_BCPanel->m_GroupManagerList[ id ]->HideSubPanel( true );
89                                 }//fi esle
90                                 this->m_BCPanel->FitSizer( );
91                         }//yrt
92                         catch ( std::exception& e )
93                         {
94                                 std::cerr << "ButtonContainerController::AddEvents( ) exception: "
95                                     << e.what( ) << std::endl;
96                         }//hctac
97                 }
98                 // ----------------------------------------------------------------------------------
99                 void
100                 ButtonContainerController::ButtonEvent( wxCommandEvent& event )
101                 {
102                         try
103                         {
104                                 for( ButtonGroupList::iterator it =
105                                     this->m_BCPanel->m_ButtonGroupList.begin( ); it
106                                     != this->m_BCPanel->m_ButtonGroupList.end( ); ++it )
107                                 {
108
109                                         ( *it )->GetButton( event.GetId( ) )->Execute( );
110
111                                 }//rof
112                         }//yrt
113                         catch ( std::exception& e )
114                         {
115                                 std::cerr
116                                     << "ButtonContainerController::ButtonExpEvent( wxCommandEvent& event ) exception: "
117                                     << e.what( ) << std::endl;
118                         }//hctac
119                 }
120         // ----------------------------------------------------------------------------------
121         }//ecapsename
122 }//ecapsename
123