This commit is contained in:
110
PROMS/DataLoader/FolderTreeNode.cs
Normal file
110
PROMS/DataLoader/FolderTreeNode.cs
Normal file
@@ -0,0 +1,110 @@
|
||||
// ========================================================================
|
||||
// Copyright 2006 - Volian Enterprises, Inc. All rights reserved.
|
||||
// Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE
|
||||
// ------------------------------------------------------------------------
|
||||
// $Workfile: $ $Revision: $
|
||||
// $Author: $ $Date: $
|
||||
//
|
||||
// $History: $
|
||||
// ========================================================================
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
using Volian.CSLA.Library;
|
||||
using Csla;
|
||||
using System.Windows.Forms;
|
||||
|
||||
namespace DataLoader
|
||||
{
|
||||
public class FolderTreeNode : TreeNode
|
||||
{
|
||||
FolderTreeNode(string s) : base(s)
|
||||
{
|
||||
this.Name="ID:" + s;
|
||||
}
|
||||
FolderTreeNode(FolderInfo folderinfo)
|
||||
: base(folderinfo.Name)
|
||||
{
|
||||
_folderinfo = folderinfo;
|
||||
this.Name = "ID:" + folderinfo.FolderID.ToString();
|
||||
}
|
||||
private FolderInfo _folderinfo;
|
||||
public FolderInfo FolderInfo
|
||||
{
|
||||
get { return _folderinfo; }
|
||||
set
|
||||
{
|
||||
_folderinfo = value;
|
||||
}
|
||||
}
|
||||
private Dictionary<int, FolderTreeNode> _findTree = null;
|
||||
private Dictionary<int, FolderTreeNode> FindTree
|
||||
{
|
||||
get { return _findTree; }
|
||||
set { _findTree = value; }
|
||||
}
|
||||
public FolderTreeNode FindTreeNode(int folderID)
|
||||
{
|
||||
if (_findTree != null) return _findTree[folderID];
|
||||
return null;
|
||||
}
|
||||
public static FolderTreeNode BuildTreeList()
|
||||
{
|
||||
FolderTreeNode root = null;
|
||||
FolderInfoList fil = FolderInfoList.Get();
|
||||
Dictionary<int, FolderTreeNode> dicMissing = new Dictionary<int, FolderTreeNode>();
|
||||
Dictionary<int, FolderTreeNode> dicExists = new Dictionary<int, FolderTreeNode>();
|
||||
foreach (FolderInfo fi in fil)
|
||||
{
|
||||
FolderTreeNode ftp = null;
|
||||
if (dicExists.ContainsKey(fi.ParentID))
|
||||
{
|
||||
ftp = dicExists[fi.ParentID];
|
||||
// dicNeedToLoad.Remove(ftp);
|
||||
}
|
||||
else
|
||||
{
|
||||
if (fi.ParentID != 0)
|
||||
{
|
||||
ftp = new FolderTreeNode(fi.ParentID.ToString());
|
||||
dicMissing.Add(fi.ParentID, ftp);
|
||||
dicExists.Add(fi.ParentID, ftp);
|
||||
if (fi.DocVersionCount > 0)
|
||||
{
|
||||
TreeNode tn = new TreeNode("dummy");
|
||||
tn.Tag = "dummy";
|
||||
ftp.Nodes.Add(tn);
|
||||
}
|
||||
}
|
||||
}
|
||||
FolderTreeNode ft = null;
|
||||
if (dicMissing.ContainsKey(fi.FolderID))
|
||||
{
|
||||
ft = dicMissing[fi.FolderID];
|
||||
ft.FolderInfo = fi;
|
||||
dicMissing.Remove(fi.FolderID);
|
||||
}
|
||||
else
|
||||
{
|
||||
ft = new FolderTreeNode(fi);
|
||||
if (fi.DocVersionCount > 0)
|
||||
{
|
||||
TreeNode tn = new TreeNode("dummy");
|
||||
tn.Tag = "dummy";
|
||||
ft.Nodes.Add(tn);
|
||||
}
|
||||
dicExists.Add(fi.FolderID, ft);
|
||||
//dicNeedToLoad.Add(ft);
|
||||
}
|
||||
ft.Tag = fi;
|
||||
if (fi.ParentID == 0)
|
||||
root = ft;
|
||||
else
|
||||
ftp.Nodes.Add(ft);
|
||||
}
|
||||
root.FindTree = dicExists;
|
||||
return root;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user