]> Creatis software - creaImageIO.git/blobdiff - src2/creaImageIOWxTreeView.cpp
*** empty log message ***
[creaImageIO.git] / src2 / creaImageIOWxTreeView.cpp
index 2050e53eb036adee2b39bde5d3141be49ba56757..73ff7c48d4478e39e0d3074b16a9e4a353635d97 100644 (file)
@@ -403,7 +403,7 @@ namespace creaImageIO
   }
   //=====================================================================
   
- //=====================================================================
 //=====================================================================
   /// Recursive method called upon by UpdateLevel to refresh all windows
   void WxTreeView::RecursiveUpdateLevel( int level )
   {
@@ -413,11 +413,11 @@ namespace creaImageIO
                        <<level
                        <<")"<<std::endl);
     
-
+    
     const std::vector<tree::Node*>& sel(GetSelected(level));
-
+    
     int l = level - 1;
+    
     // to speed up inserting we hide the control temporarily
     GetCtrl(l)->Hide();
     GetCtrl(l)->DeleteAllItems();
@@ -434,76 +434,89 @@ namespace creaImageIO
        int _id=0;
        
        //Adds items and sets their attributes 
-
+       
        GetTreeHandler()->LoadChildren(*i,1);
        tree::Node::ChildrenListType::reverse_iterator j;
        for (j = (*i)->GetChildrenList().rbegin(); 
             j!= (*i)->GetChildrenList().rend(); 
             ++j)
          {
-                       GimmickDebugMessage(1,
-                                               "adding children "
-                                               <<(*j)->GetLabel()
-                                               <<"'"
-                                               <<std::endl);
-
-                               wxListItem item;
-                               item.SetMask(wxLIST_MASK_STATE | 
-                                       wxLIST_MASK_TEXT |
-                                       //                       wxLIST_MASK_IMAGE |
-                                       wxLIST_MASK_DATA |
-                                       //                       wxLIST_MASK_WIDTH |
-                                       wxLIST_MASK_FORMAT
-                                       );
-                           
-                               ItemData* data = new ItemData;
-                               data->node = *j;
-                               data->id = _id;
-
-                               item.SetId(_id);
-                               item.SetData(data);
-                           
-                               _id++;
-                               GetCtrl(l)->InsertItem(item);
-                           
-                               //Setting attributes
-                               for (int k=0; k<GetCtrl(l)->GetColumnCount(); ++k)                              
-                               {
-                                       std::string val;
-                                       //  Temporary correction : it works but no explanation about the problem FCY
-                                       if(k==0 && level <3)
-                                               val = (*j)->GetAttribute("NumberOfChildren");
-                                       else
-                                               val = (*j)->GetAttribute(mLevelList[l].key[k]);
-                                       if(((*j)->GetAttributeDescriptor(mLevelList[l].key[k])).isDateEntry()) // Date
-                                       {
-                                               boost::gregorian::date d1(boost::gregorian::from_undelimited_string(val));
-                                               val = to_iso_extended_string(d1);
-                                       }
-                                       else if(((*j)->GetAttributeDescriptor(mLevelList[l].key[k])).isTimeEntry()) // Time
-                                       {
-                                               if (val != "" || val != " ")
-                                                       val = val.substr(0,2) + " : " + val.substr(2,2) + " : " + val.substr(4,2);
-                                       }
-                                       else
-                                       {
-
-                                       }
-                                       if (val.size()==0) val = "?";
-                                       item.SetText( crea::std2wx(val));
-                                       item.SetColumn(k);
-                                       GetCtrl(l)->SetItem(item);
-                               }       
-                           
-                       }
+           GimmickDebugMessage(1,
+                               "adding children "
+                               <<(*j)->GetLabel()
+                               <<"'"
+                               <<std::endl);
+           
+           wxListItem item;
+           item.SetMask(wxLIST_MASK_STATE | 
+                        wxLIST_MASK_TEXT |
+                        //                      wxLIST_MASK_IMAGE |
+                        wxLIST_MASK_DATA |
+                        //                      wxLIST_MASK_WIDTH |
+                        wxLIST_MASK_FORMAT
+                        );
+           
+           ItemData* data = new ItemData;
+           data->node = *j;
+           data->id = _id;
+           
+           item.SetId(_id);
+           item.SetData(data);
+           
+           _id++;
+           GetCtrl(l)->InsertItem(item);
+           
+           //Setting attributes
+           for (int k=0; k<GetCtrl(l)->GetColumnCount(); ++k)                          
+             {
+               std::string val;
+               //  Temporary correction : it works but no explanation about the problem FCY
+               if(k==0 && level <3)
+                 val = (*j)->GetAttribute("NumberOfChildren");
+               else
+                 val = (*j)->GetAttribute(mLevelList[l].key[k]);
+               if(((*j)->GetAttributeDescriptor(mLevelList[l].key[k])).isDateEntry()) // Date
+                 {
+                   //                                    std::cout << "["<<val<< "]" << std::endl;
+                   std::string valtmp(val);
+                   try
+                     {
+                       boost::gregorian::date d1(boost::gregorian::from_undelimited_string(val));                                 
+                       val = to_iso_extended_string(d1);
+                     }
+                   catch (...)
+                     {
+                       val =  valtmp;
+                     }
+                   //                                    std::cout << "["<<val<< "]" << std::endl;     
+                 }
+               else if(((*j)->GetAttributeDescriptor(mLevelList[l].key[k])).isTimeEntry()) // Time
+                 {
+                   if ((val.size()>6) && 
+                       (val != "" || val != " "))
+                     val = val.substr(0,2) + " : " 
+                       + val.substr(2,2) + " : " 
+                       + val.substr(4,2);
+                 }
+               else
+                 {
+                   
+                 }
+               if (val.size()==0) val = "?";
+               item.SetText( crea::std2wx(val));
+               item.SetColumn(k);
+               GetCtrl(l)->SetItem(item);
+             } 
+           
+         }
       }
-
+    
     SortLevel(l);
     GetCtrl(l)->Show();
- }
 }
   //=====================================================================
-
-
+  
+  
   //================================================================
   void WxTreeView::OnItemDeSelected(wxListEvent& event)
   { 
@@ -518,12 +531,12 @@ namespace creaImageIO
        if ( GetCtrl(level) == obj ) break;
       } 
     SetSelectedUpToDate(level,false);
-       // to allow a first selection in images TreeView
-       if (level==mLevelList.size()-1) 
-                OnItemSelected(event);
+    // to allow a first selection in images TreeView
+    if (level==mLevelList.size()-1) 
+      OnItemSelected(event);
   }
   //================================================================
-
+  
   //================================================================
   void WxTreeView::OnItemSelected(wxListEvent& event)
   {