]> Creatis software - creaImageIO.git/blobdiff - src2/creaImageIOWxTreeView.cpp
Added Timestamp database to avoid repetition of files on addition.
[creaImageIO.git] / src2 / creaImageIOWxTreeView.cpp
index 505bf80b21c02e22ac17d35c3315fa97b7856f8c..2050e53eb036adee2b39bde5d3141be49ba56757 100644 (file)
@@ -5,10 +5,6 @@
 #include <wx/gdicmn.h>
 #include <boost/date_time/gregorian/gregorian.hpp>
 
-
-
-
-
 const std::string empty_string("");
 
 //=====================================================================
@@ -110,11 +106,12 @@ namespace creaImageIO
   //=====================================================================
   // CTor
   WxTreeView::WxTreeView(TreeHandler* handler,
+                        TimestampDatabaseHandler* tdh,
                         GimmickView* gimmick,
                         wxWindow* parent,
                         const wxWindowID id)
     : wxPanel(parent,id),
-      TreeView(handler,gimmick)
+      TreeView(handler, tdh, gimmick)
   {
     GimmickDebugMessage(1,"WxTreeView::WxTreeView"
                        <<std::endl);
@@ -163,12 +160,12 @@ namespace creaImageIO
                                          ctrl_style);
        level.wxCtrl = ctrl;
        level.wxSplitter->Initialize(ctrl);
-
-
+   
        // Create the columns : one for each attribute of the level
        int col = 0;
        std::string title;
-       tree::LevelDescriptor::AttributeDescriptorListType::const_iterator a;
+
+       tree::LevelDescriptor::AttributeDescriptorListType::const_iterator a;
        for (a  = handler->GetTree().GetAttributeDescriptorList(i+1).begin();
             a != handler->GetTree().GetAttributeDescriptorList(i+1).end();
             ++a)
@@ -197,16 +194,13 @@ namespace creaImageIO
                  std::string temp = a->GetKey();
                  if (temp.compare("ID") != 0)
                  {
+               
                ctrl->InsertColumn(col, 
                                   crea::std2wx(title),
                                   col_style);
                col++;
                  }
                level.key.push_back(a->GetKey());
-
-               //          ctrl->SetColumnWidth(col, wxLIST_AUTOSIZE );
-
-               
              }
                
          }
@@ -343,6 +337,7 @@ namespace creaImageIO
              }
            if(erase)
                  {
+            GetGimmickView()->modifyValidationSignal(false);
                    bool needRefresh=false;
                    std::vector<tree::Node*>::const_iterator i;
                    for (i=sel.begin(); i!=sel.end(); ++i)
@@ -356,6 +351,7 @@ namespace creaImageIO
                          {
                            needRefresh=true;
                          }
+                        GetTimestampDatabaseHandler()->RemoveNode("PATH",(*i));
                        GetTreeHandler()->Remove(*i);
                      }
                    
@@ -382,9 +378,6 @@ namespace creaImageIO
   }
   
   
-  //=====================================================================
-
   //=====================================================================
   /// Updates a level of the view (adds or removes children, etc.)
   void WxTreeView::UpdateLevel( int level )
@@ -525,6 +518,9 @@ 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);
   }
   //================================================================
 
@@ -711,7 +707,7 @@ namespace creaImageIO
       {
        mLevelList[level].SortAscending = false;
       }
-    
+         
     SortLevel(level);
   }
   //================================================================
@@ -897,8 +893,10 @@ namespace creaImageIO
   {
          if(event.GetKeyCode() == WXK_DELETE)
          {
-                   RemoveSelected();
-               //      ClearSelection();
+                  wxBusyCursor busy;
+                 
+                  RemoveSelected();
+                  GetGimmickView()->ClearSelection();
          }
                  
   }