/*
* All or portions of this file Copyright (c) Amazon.com, Inc. or its affiliates or
* its licensors.
*
* For complete copyright and license terms please see the LICENSE at the root of this
* distribution (the "License"). All use of this software is governed by the License,
* or, if provided, by the license below or the license accompanying this file. Do not
* remove or modify any license notices. This file is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
*
*/
// Original file Copyright Crytek GMBH or its affiliates, used under license.
using System;
using System.Collections.Generic;
using System.Text;
using System.Collections.ObjectModel;
namespace Aga.Controls.Tree
{
///
/// Provides a simple ready to use implementation of . Warning: this class is not optimized
/// to work with big amount of data. In this case create you own implementation of ITreeModel, and pay attention
/// on GetChildren and IsLeaf methods.
///
public class TreeModel : ITreeModel
{
private Node _root;
public Node Root
{
get { return _root; }
}
public Collection Nodes
{
get { return _root.Nodes; }
}
public TreeModel()
{
_root = new Node();
_root.Model = this;
}
public TreePath GetPath(Node node)
{
if (node == _root)
return TreePath.Empty;
else
{
Stack