]> Creatis software - creaContours.git/blobdiff - lib/Interface_ManagerContour_NDimensions/wxInstantChooserPanel.cxx
*** empty log message ***
[creaContours.git] / lib / Interface_ManagerContour_NDimensions / wxInstantChooserPanel.cxx
index 96e77abc2e5096ed547fa829149059fdbd8b8fa1..4e14484d72f53506ff2cc54958fa80fd9b588946 100644 (file)
@@ -4,6 +4,10 @@
 #include "wxInstantChooserPanel.h"
 #include "wxContourMainFrame.h"
 
+//Test JCP 13-10-08
+//#include "wxContourEventHandler.h"
+//Test JCP 13-10-08
+
 //----------------------------------------------------------------------------------------------------------------
 // Class implementation
 //----------------------------------------------------------------------------------------------------------------
@@ -52,7 +56,7 @@ DEFINE_EVENT_TYPE( wxINSTANT_CHOOSER_CHANGE )
                sizer->Add( _outSizer, 1, wxEXPAND| wxGROW );
                sizer->Add( resolutionSizer, 1, wxEXPAND | wxGROW );
                SetSizer( sizer );
-               Connect( wxID_ANY,  wxEVT_COMMAND_CHECKBOX_CLICKED, (wxObjectEventFunction) &wxInstantChooserPanel:: onChechBoxClicked );               
+               Connect( wxID_ANY,  wxEVT_COMMAND_CHECKBOX_CLICKED, (wxObjectEventFunction) &wxInstantChooserPanel:: onCheckBoxClicked );               
 
        }
 
@@ -75,7 +79,7 @@ DEFINE_EVENT_TYPE( wxINSTANT_CHOOSER_CHANGE )
                sizer->Add( _outSizer, 1, wxEXPAND| wxGROW );
                sizer->Add( _resolutionSlider, 1, wxEXPAND | wxGROW );
                SetSizer( sizer );
-               Connect( wxID_ANY,  wxEVT_COMMAND_CHECKBOX_CLICKED, (wxObjectEventFunction) &wxInstantChooserPanel:: onChechBoxClicked );               
+               Connect( wxID_ANY,  wxEVT_COMMAND_CHECKBOX_CLICKED, (wxObjectEventFunction) &wxInstantChooserPanel:: onCheckBoxClicked );               
        }
 
        wxInstantChooserPanel :: ~wxInstantChooserPanel()
@@ -130,7 +134,8 @@ DEFINE_EVENT_TYPE( wxINSTANT_CHOOSER_CHANGE )
                int value = _lastConceptUpdated->getActualValue();
                int min = _lastConceptUpdated->getMinValue();
                int max = _lastConceptUpdated->getMaxValue();
-               int delta = (int) (pow( 2, _resolutionSlider->GetValue() ));
+               int delta = (int) (pow((double) 2,(double) _resolutionSlider->GetValue() ));
+
                int minTmp   = value - delta/2;
                int maxTmp   = value + delta/2;
                if (minTmp<min)
@@ -149,7 +154,7 @@ DEFINE_EVENT_TYPE( wxINSTANT_CHOOSER_CHANGE )
                }
                else
                {
-                       for(int i=0; i<_concepts->size(); i++)
+                       for(int i=0; i< (int)(_concepts->size()); i++)
                        {
                                changeResolutionAtConceptControl( (*_concepts)[i] );
                        }
@@ -157,9 +162,9 @@ DEFINE_EVENT_TYPE( wxINSTANT_CHOOSER_CHANGE )
 
        }
        //------------------------------------------------------------------------------------------------------------
-       void wxInstantChooserPanel :: onChechBoxClicked( wxCommandEvent& event )
+       void wxInstantChooserPanel :: onCheckBoxClicked( wxCommandEvent& event )
        {
-               int groupID = (int)event.GetClientData();
+               /*int groupID = (int)event.GetClientData();
                wxConceptControl * eventConcept = (wxConceptControl *)event.GetEventObject();
                if ( eventConcept->getIfChecked( groupID ) )
                {
@@ -182,6 +187,32 @@ DEFINE_EVENT_TYPE( wxINSTANT_CHOOSER_CHANGE )
                                        }                                       
                                }
                        }                                       
+               }*/
+
+               int groupID = (int)event.GetClientData();
+               wxConceptControl * eventConcept = (wxConceptControl *)event.GetEventObject();
+               if ( eventConcept->getIfChecked( groupID ) )
+               {
+                       int size = _concepts->size();
+                       wxConceptControl * aConcept = NULL;
+//                     int accum = 0;
+
+                       for(int i = 0; i < eventConcept->getNumCheckBox();i++){
+                               if(i!=groupID){
+                                       eventConcept->clearCheckAt(i);
+                               }
+                       }
+                       for(int i=0; i<size; i++)
+                       {
+                               aConcept = (*_concepts)[i]; 
+                               if( aConcept!= eventConcept )
+                               {
+                                       if( aConcept->getIfChecked( groupID ) )
+                                       {       
+                                               aConcept->clearCheckAt( groupID );
+                                       }                                       
+                               }
+                       }                       
                }
        }
 
@@ -196,8 +227,19 @@ DEFINE_EVENT_TYPE( wxINSTANT_CHOOSER_CHANGE )
                //  Sending the event of wxINSTANT_CHOOSER_CHANGE
                //-------------------------------------------------
                wxCommandEvent newevent(wxINSTANT_CHOOSER_CHANGE,GetId());  
-               _eventHandler->ProcessEvent(newevent);
+               //this->onChangeInstant(newevent);
+               ConceptDataWrap * dataConcept = getLastConceptData(); 
+               if(getIfConceptCheckedAt( dataConcept->getName(), 0 )){
+                       wxContourMainFrame::getInstance()->onChangeInstantInstantPanel(dataConcept->getName(), dataConcept->getActualValue(), dataConcept->getMinShowedValue(), dataConcept->getMaxShowedValue());
+               }
+               //((wxContourEventHandler*)_eventHandler)->onChangeInstant(newevent);
+               //_eventHandler->ProcessEvent(newevent);
+       }
+
+       void wxInstantChooserPanel :: onChangeInstant( wxCommandEvent& event ){
+               
        }
+
        //------------------------------------------------------------------------------------------------------------
        //  Methods for sending events
        //------------------------------------------------------------------------------------------------------------
@@ -223,7 +265,7 @@ DEFINE_EVENT_TYPE( wxINSTANT_CHOOSER_CHANGE )
        void wxInstantChooserPanel :: setInstant(std::vector<int> choiceInstant)
        {               
                int max = _concepts->size();
-               if( choiceInstant.size() == max )
+               if( (int)(choiceInstant.size()) == max )
                {
                        int i = 0;
                        while(i< max)
@@ -347,7 +389,7 @@ DEFINE_EVENT_TYPE( wxINSTANT_CHOOSER_CHANGE )
                int value = theConceptToUpdate->getActualValue();
                int min = theConceptToUpdate->getMinValue();
                int max = theConceptToUpdate->getMaxValue();
-               int delta = (int) (pow( 2, _resolutionSlider->GetValue() ));
+               int delta = (int) (pow( (double)2, (double)_resolutionSlider->GetValue() ));
                int minTmp   = value - delta/2;
                int maxTmp   = value + delta/2;
                if (minTmp<min)
@@ -432,7 +474,7 @@ DEFINE_EVENT_TYPE( wxINSTANT_CHOOSER_CHANGE )
                bool isChecked = false;
 
                int i,size = _concepts->size();
-               wxConceptControl * aConcept = NULL;                     
+//             wxConceptControl * aConcept = NULL;                     
                for ( i=0; i<size && !isChecked; i++ )
                {       
                        if( (*_concepts)[i]->getName().compare( theConceptName ) == 0 )
@@ -442,4 +484,20 @@ DEFINE_EVENT_TYPE( wxINSTANT_CHOOSER_CHANGE )
                }
 
                return isChecked;
-       }
\ No newline at end of file
+       }
+        
+        
+       void wxInstantChooserPanel::addConcepts(std::vector<std::string> conceptNameVect,std::vector<int> conceptSizeVect){
+               int i=0;
+               int max = conceptNameVect.size();                       
+               for( ; i<max; i++)
+               {
+                       if( conceptNameVect[i].compare("Axe Depth") == 0 )
+                       {
+                               addConcept( conceptNameVect[i], 0, conceptSizeVect[i], 1);                                      
+                       } else {
+                               addConcept( conceptNameVect[i], 1, conceptSizeVect[i], 1);
+                       } // if
+               }
+       }
+