From 8d73d5f58d80abb928a7f60037837c2933b16bbd Mon Sep 17 00:00:00 2001 From: caballero Date: Fri, 3 Apr 2009 13:00:05 +0000 Subject: [PATCH] Fixed number of children algorithm and repetition of nodes on add directory. --- src2/creaImageIOSQLiteTreeHandler.cpp | 18 +++++-------- src2/creaImageIOTreeHandlerImageAdder.cpp | 33 +++++++++++++++++++++-- src2/creaImageIOTreeHandlerImageAdder.h | 8 ++++++ src2/creaImageIOTreeNode.cpp | 4 +-- src2/creaImageIOWxTreeView.cpp | 4 +++ 5 files changed, 52 insertions(+), 15 deletions(-) diff --git a/src2/creaImageIOSQLiteTreeHandler.cpp b/src2/creaImageIOSQLiteTreeHandler.cpp index a7185fd..4363e7c 100644 --- a/src2/creaImageIOSQLiteTreeHandler.cpp +++ b/src2/creaImageIOSQLiteTreeHandler.cpp @@ -126,20 +126,13 @@ namespace creaImageIO } //===================================================================== - //===================================================================== int SQLiteTreeHandler::AddBranch( const AttributeMapType& attr ) { tree::Node* parent = DBGetParent(attr); DBGraftToParent(parent,attr); - int nChildren = GetNumberOfChildren(parent); - std::stringstream out; - out << nChildren; - if(parent->GetLevel()>0&&parent->GetLevel()GetLevel()+1); + } //===================================================================== @@ -667,14 +660,16 @@ namespace creaImageIO if (node->GetChildrenLoaded()) { // Iterate the children - tree::Node::ChildrenListType::iterator i; + + /*tree::Node::ChildrenListType::iterator i; for (i = node->GetChildrenList().begin(); i!= node->GetChildrenList().end(); ++i) { nbloaded += DBLoadChildren(*i,numberoflevels-1); - } + }*/ return nbloaded; + } /// If children not loaded : do it and recurse @@ -694,6 +689,7 @@ namespace creaImageIO while (!q.eof()) { + // std::cout<<"Name in q: "<::const_iterator i; for (i=filenames.begin();i!=filenames.end();++i) { + mProgress.IncNumberScannedFiles(); if (IsHandledFile(*i)) { @@ -55,6 +56,7 @@ namespace creaImageIO mProgressSignal(mProgress); if (mProgress.GetStop()) break; } + SetNumberOfChildren(); } //===================================================================== @@ -64,12 +66,38 @@ namespace creaImageIO { mProgress.Reset(); AddDirectoryRecursor( directory, recurse ); + SetNumberOfChildren(); GimmickDebugMessage(3,mProgress< children = mTreeHandler->GetTree().GetChildrenList(); + std::vector::iterator it; + for(it=children.begin();it!=children.end();++it) + { + SetNumberOfChildrenRecursor(*it); + } + } + //===================================================================== + void TreeHandlerImageAdder::SetNumberOfChildrenRecursor(tree::Node* node) + { + std::stringstream out; + out << node->GetChildrenList().size(); + mTreeHandler->SetAttribute(node,"D1111_0011",out.str()); + if(node->GetLevel()GetTree().GetNumberOfLevels()-2) + { + std::vector children = node->GetChildrenList(); + std::vector::iterator it; + for(it=children.begin();it!=children.end();++it) + { + SetNumberOfChildrenRecursor(*it); + } + } + } //===================================================================== void TreeHandlerImageAdder::AddFile( const std::string& filename ) @@ -110,7 +138,7 @@ namespace creaImageIO else { mProgress.IncNumberScannedFiles(); - if (IsHandledFile(itr->string())) + if (IsHandledFile(itr->string())) { mProgress.IncNumberHandledFiles(); AddFile( itr->string() ); @@ -119,6 +147,7 @@ namespace creaImageIO if (mProgress.GetStop()) break; } } + } /* diff --git a/src2/creaImageIOTreeHandlerImageAdder.h b/src2/creaImageIOTreeHandlerImageAdder.h index 72ae350..fc22d18 100644 --- a/src2/creaImageIOTreeHandlerImageAdder.h +++ b/src2/creaImageIOTreeHandlerImageAdder.h @@ -111,6 +111,12 @@ namespace creaImageIO /// Recursive method which does the main job for AddDirectory void AddDirectoryRecursor( const std::string& directory, bool recurse ); + + ///Sets the number of children for the tree + void SetNumberOfChildren(); + + ///Sets the number of children recursively for the given node + void SetNumberOfChildrenRecursor(tree::Node* node); TreeHandler* mTreeHandler; @@ -118,6 +124,8 @@ namespace creaImageIO Progress mProgress; ProgressSignalType mProgressSignal; + + }; // EO class TreeHandlerImageAdder //======================================================================= diff --git a/src2/creaImageIOTreeNode.cpp b/src2/creaImageIOTreeNode.cpp index e34b31f..954a714 100644 --- a/src2/creaImageIOTreeNode.cpp +++ b/src2/creaImageIOTreeNode.cpp @@ -20,8 +20,8 @@ namespace creaImageIO GimmickDebugMessage(6,"Default Node constructor (level "<GetChildrenList().push_back(this); - InitializeAttributeMap(); + //parent->GetChildrenList().push_back(this); + //InitializeAttributeMap(); } else { diff --git a/src2/creaImageIOWxTreeView.cpp b/src2/creaImageIOWxTreeView.cpp index c5eab8f..47123b8 100644 --- a/src2/creaImageIOWxTreeView.cpp +++ b/src2/creaImageIOWxTreeView.cpp @@ -101,6 +101,10 @@ namespace creaImageIO if (i>1) sparent = mLevelList[i-2].wxSplitter; level.wxSplitter = new wxSplitterWindow( sparent , -1); + if(i!=1) + { + level.wxSplitter->Show(false); + } // level.wxSplitter->SetMinimumPaneSize(100); wxListCtrl* ctrl = new wxListCtrl(level.wxSplitter, -- 2.45.1