X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=lib%2FcreaDevManagerLib%2FmodelCDMIProjectTreeNode.cpp;h=8b076580636b29a0a9a715c5e7b0e9ae0b2639c5;hb=a26a54f4555934ed0f3720bea6bb95913d7f02d6;hp=1c9db624a2e58e1d387ccaf804e9933effca0517;hpb=f57f98a24c774785361ae5053f1510106da19052;p=crea.git diff --git a/lib/creaDevManagerLib/modelCDMIProjectTreeNode.cpp b/lib/creaDevManagerLib/modelCDMIProjectTreeNode.cpp index 1c9db62..8b07658 100644 --- a/lib/creaDevManagerLib/modelCDMIProjectTreeNode.cpp +++ b/lib/creaDevManagerLib/modelCDMIProjectTreeNode.cpp @@ -23,7 +23,7 @@ # The fact that you are presently reading this means that you have had # knowledge of the CeCILL-B license and that you accept its terms. # ------------------------------------------------------------------------ -*/ + */ /* * modelCDMIProjectTreeNode.cpp @@ -34,6 +34,8 @@ #include "modelCDMIProjectTreeNode.h" #include +#include "CDMUtilities.h" + #include "wx/dir.h" bool modelCDMIProjectTreeNode::CompareNodeItem(const modelCDMIProjectTreeNode* x, const modelCDMIProjectTreeNode* y) @@ -47,42 +49,42 @@ bool modelCDMIProjectTreeNode::CompareNodeItem(const modelCDMIProjectTreeNode* x unsigned char yType = y->GetType(); while ((i < xName.length()) && (i < yName.length())) - { - if (tolower (xName[i]) < tolower (yName[i])) - { - noWinner = false; - returnValue = true; - break; - } - else if (tolower (xName[i]) > tolower (yName[i])) { - noWinner = false; - returnValue = false; - break; + if (tolower (xName[i]) < tolower (yName[i])) + { + noWinner = false; + returnValue = true; + break; + } + else if (tolower (xName[i]) > tolower (yName[i])) + { + noWinner = false; + returnValue = false; + break; + } + i++; } - i++; - } if(noWinner) - { - if (xName.length() < yName.length()) - returnValue = true; - else - returnValue = false; - } + { + if (xName.length() < yName.length()) + returnValue = true; + else + returnValue = false; + } if(xType != yType) - { - if(xType == wxDIR_DIRS) - returnValue = true; - else - returnValue = false; - } + { + if(xType == wxDIR_DIRS) + returnValue = true; + else + returnValue = false; + } return returnValue; } -const wxTreeItemId& modelCDMIProjectTreeNode::GetId() const +const wxCDMTreeItemId& modelCDMIProjectTreeNode::GetId() const { return this->id; } @@ -107,12 +109,30 @@ const int& modelCDMIProjectTreeNode::GetLevel() const return this->level; } +modelCDMIProjectTreeNode* modelCDMIProjectTreeNode::GetParent() const +{ + return this->parent; +} + +std::vector modelCDMIProjectTreeNode::GetParents() const +{ + std::vector family; + modelCDMIProjectTreeNode* someFamily = this->parent; + while(someFamily != NULL) + { + family.push_back(someFamily); + someFamily = someFamily->GetParent(); + } + return family; + +} + const std::vector& modelCDMIProjectTreeNode::GetChildren() const { return this->children; } -void modelCDMIProjectTreeNode::SetId(const wxTreeItemId& id) +void modelCDMIProjectTreeNode::SetId(const wxCDMTreeItemId& id) { this->id = id; } @@ -142,6 +162,11 @@ const int& modelCDMIProjectTreeNode::GetLength() const bool modelCDMIProjectTreeNode::OpenInFileExplorer(std::string*& result) const { - //TODO: implement method - return false; + if (!CDMUtilities::openFileExplorer(this->GetPath())) + return true; + else + { + result = new std::string("Couldn't open file."); + return false; + } }