]> Creatis software - creaImageIO.git/commitdiff
Fixed a bug that didn't let it load on opening. Still exists a bug on adding.
authorcaballero <caballero>
Fri, 3 Apr 2009 16:18:38 +0000 (16:18 +0000)
committercaballero <caballero>
Fri, 3 Apr 2009 16:18:38 +0000 (16:18 +0000)
src2/creaImageIOSQLiteTreeHandler.cpp
src2/creaImageIOSQLiteTreeHandler.h
src2/creaImageIOTreeHandlerImageAdder.h
src2/creaImageIOTreeNode.cpp
src2/creaImageIOWxTreeView.cpp

index 4363e7c0a99de19d39fc44b4e0570f0598a9496d..b91308f12b85442a5f1397b208b8494920083e8c 100644 (file)
@@ -36,6 +36,7 @@ namespace creaImageIO
     : mFileName(filename)
   {
     mDB = new CppSQLite3DB;
+       mIsAdding=false;
     GimmickMessage(1,"SQLite version : "
                   <<std::string(mDB->SQLiteVersion())<< std::endl);
   }
@@ -129,8 +130,10 @@ namespace creaImageIO
   //===================================================================== 
   int SQLiteTreeHandler::AddBranch( const AttributeMapType& attr )
   {
+       mIsAdding=true;
     tree::Node* parent = DBGetParent(attr);
     DBGraftToParent(parent,attr);
+       mIsAdding=false;
     return (parent->GetLevel()+1);
          
   }
@@ -657,7 +660,7 @@ namespace creaImageIO
     int nbloaded = 0;
     // If children loaded we do not have to do it but we need to recurse
     // in order to load the children's children if necessary, and so on...
-    if (node->GetChildrenLoaded()) 
+    if (node->GetChildrenLoaded()||mIsAdding
       {
        // Iterate the children 
 
@@ -668,11 +671,15 @@ namespace creaImageIO
          {
            nbloaded += DBLoadChildren(*i,numberoflevels-1);
          }*/
+
        return nbloaded;
 
       }
-    
+       else
+       {
     /// If children not loaded : do it and recurse
+ std::cout<<"Children are not loaded for node:"<<node->GetLabel()<<std::endl;
+ std::cout<<"Children are not loaded for node (pointer):"<<node<<std::endl;
 
     // Query DB
     int level = node->GetLevel();
@@ -687,9 +694,9 @@ namespace creaImageIO
     CppSQLite3Query q;
     QUERYDB(query,q);
 
+       int p=0;
     while (!q.eof())
       {
-       //        std::cout<<"Name in q: "<<q.fieldName(3)<<" Value: "<<q.getStringField(3)<<std::endl;
        nbloaded++;
        Node* n = new Node(node);
        for (int fld = 0; fld < q.numFields(); fld++)
@@ -707,7 +714,7 @@ namespace creaImageIO
        if ( numberoflevels != 1 ) 
          {
            //  msw[2].Pause();
-       //    nbloaded += DBLoadChildren(n, numberoflevels-1);
+           nbloaded += DBLoadChildren(n, numberoflevels-1);
            //      msw[2].Resume();
          }
        // next entry in db
@@ -715,9 +722,11 @@ namespace creaImageIO
       }
 
     node->SetChildrenLoaded(true);
+       
     
     //    msw[2].Pause();
     return nbloaded;
+       }
   }
   //=====================================================================
 
@@ -756,7 +765,7 @@ namespace creaImageIO
       {
        // Create Node
        tree::Node* child = new tree::Node(parent,attr);
-       
+       std::cout<<"Number of children "<<parent->GetNumberOfChildren()<<std::endl;
        // Set PARENT_ID if necessary 
        if ( parent->GetLevel()>0 )
          child->SetAttribute("PARENT_ID",parent->GetAttribute("ID"));
index 611872c5aa7148d6dd6772e86d7b10c7631f85e3..cb100c0f208c7df075db30a25a85784a33531806 100644 (file)
@@ -212,6 +212,7 @@ namespace creaImageIO
     bool mWritable;
     void SetWritable(bool w) { mWritable; }
     bool GetWritable() const { return mWritable; }
+       bool mIsAdding;
 
     /*
     struct TypeId
index fc22d18a1b8ffe6fa202dcb7692b4ce82a21683f..6fdaf99a55375260ec431ad3ba156b7aaa32cdf1 100644 (file)
@@ -104,7 +104,7 @@ namespace creaImageIO
   private:
 
     /// Adds a single file to the TreeHandler 
-    /// **WITHOUT** testing werther it is handled or not 
+    /// **WITHOUT** testing wether it is handled or not 
     /// hence you have to call IsHandledFile before using AddFile!
     void AddFile( const std::string& filename );
 
index 954a7144da7216080efd4eae54551f26a8155714..77ba50f5ade7ee2ee045662e4ea220b7ef9a09d3 100644 (file)
@@ -9,7 +9,7 @@ namespace creaImageIO
   {
 
     //=============================================================
-    /// Ctor with parent
+    /// Ctor with parent Why does it enter once while charging?
     Node::Node(Node* parent)
       : mParent(parent),
        mData(0),
@@ -20,8 +20,8 @@ namespace creaImageIO
          GimmickDebugMessage(6,"Default Node constructor (level "<<GetLevel()<<")"
                         << std::endl);
          // Insert into parent's children list
-         //parent->GetChildrenList().push_back(this);
-         //InitializeAttributeMap();
+         InitializeAttributeMap();
+        parent->GetChildrenList().push_back(this);
        }
       else
        {
index 47123b8e96e06b50193a4ad9689b11dedbb4f4fd..c121c96a04a2d745a97c0c802dbc3b28835176e5 100644 (file)
@@ -615,9 +615,6 @@ namespace creaImageIO
                }
 
                //Resets original data
-               
-               std::vector<tree::Node*>::iterator selection;
-               std::vector<long> change;
                long it = -1;
                for ( ;; )
                {
@@ -629,7 +626,7 @@ namespace creaImageIO
                        //Gets current item data, extracts the node and resets it
                        long item = GetCtrl(level)->GetItemData(it);
                        GetCtrl(level)->SetItemData(it,((long*)item)[0]);
-                       tree::Node* n= ((ItemData*)((long*)item)[0])->node;                     
+                       //tree::Node* n= ((ItemData*)((long*)item)[0])->node;                   
                        
                }