172 lines
6.4 KiB
C#
172 lines
6.4 KiB
C#
using BeWo.ViewModel;
|
|
using BS.Shared.DataContracts;
|
|
using DevExpress.Utils;
|
|
using DevExpress.Xpf.Grid;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using System.Threading.Tasks;
|
|
using System.Windows.Media.Imaging;
|
|
|
|
namespace BeWo.View.Document
|
|
{
|
|
public class DokumentViewHelper
|
|
{
|
|
public static void CreateTemplateTreeViewItems(TreeListControl treeControl, IList<VorlagentabelleDC> vorlagentabellen)
|
|
{
|
|
treeControl.BeginDataUpdate();
|
|
|
|
foreach (var table in vorlagentabellen)
|
|
{
|
|
TreeListNode node = new TreeListNode();
|
|
DocumentTreeItemDC dc = new DocumentTreeItemDC()
|
|
{
|
|
DocTreeItemOid = table.VorlagentabelleOid,
|
|
ParentOid = null,
|
|
Name = table.Tabellenname,
|
|
Table = BS.Shared.TableID.Vorlagentabelle,
|
|
ObjectOid = table.VorlagentabelleOid,
|
|
Node = node,
|
|
BeWoFolderDC = new BeWoFolderDC { Name = "RootFolder", SubFolders = new List<BeWoFolderDC>() }
|
|
};
|
|
DocumentTreeItemVM vm = new DocumentTreeItemVM(dc);
|
|
node.Content = vm;
|
|
treeControl.View.Nodes.Add(node);
|
|
node.IsExpandButtonVisible = DefaultBoolean.True;
|
|
node.Image = LoadImage(table.ImageName);
|
|
|
|
}
|
|
treeControl.EndDataUpdate();
|
|
}
|
|
|
|
public static void AddFolderToTemplateTreeView(TreeListControl treeControl, List<BeWoFolderDC> folders)
|
|
{
|
|
treeControl.BeginDataUpdate();
|
|
|
|
foreach (var folder in folders)
|
|
{
|
|
TreeListNode parentNode = null;
|
|
DocumentTreeItemVM parentVm = null;
|
|
foreach (var node in treeControl.View.Nodes)
|
|
{
|
|
var item = node.Content as DocumentTreeItemVM;
|
|
if (item != null && item.DocTreeItemOid == folder.BeWoFolderOid)
|
|
{
|
|
parentNode = node;
|
|
parentVm = item;
|
|
}
|
|
}
|
|
|
|
if (parentVm != null)
|
|
{
|
|
|
|
DocumentTreeItemDC dc = new DocumentTreeItemDC()
|
|
{
|
|
DocTreeItemOid = folder.BeWoFolderOid,
|
|
ParentOid = parentVm.DocTreeItemOid,
|
|
Name = folder.Name,
|
|
FilesInFolder = new List<FileAttachmentDC>(),
|
|
BeWoFolderDC = folder,
|
|
Table = parentVm.DataContract.Table,
|
|
ObjectOid = parentVm.DataContract.ObjectOid
|
|
};
|
|
if (folder.Files.Count != 0)
|
|
{
|
|
foreach (var file in folder.Files)
|
|
{
|
|
dc.FilesInFolder.Add(file);
|
|
}
|
|
}
|
|
DocumentTreeItemVM folder_vm = new DocumentTreeItemVM(dc);
|
|
var newFolderNode = new TreeListNode()
|
|
{
|
|
Content = folder_vm,
|
|
IsExpandButtonVisible = DefaultBoolean.True,
|
|
Tag = false,
|
|
Image = LoadFolderImage()
|
|
};
|
|
dc.Node = newFolderNode;
|
|
parentNode.Nodes.Add(newFolderNode);
|
|
}
|
|
|
|
|
|
}
|
|
treeControl.EndDataUpdate();
|
|
}
|
|
|
|
private static void GenerateFolderStructureForSelectedNode(TreeListNode node, List<BeWoFolderDC> folderDCs, bool hideAlleOrdner)
|
|
{
|
|
if (node.Nodes.Count == 0)
|
|
{
|
|
var content = node.Content as DocumentTreeItemVM;
|
|
|
|
foreach (var folder in folderDCs)
|
|
{
|
|
TreeListNode newNode_folder = null;
|
|
if (folder.BeWoFolderOid.HasValue || !hideAlleOrdner)
|
|
{
|
|
DocumentTreeItemDC folder_dc = new DocumentTreeItemDC()
|
|
{
|
|
DocTreeItemOid = folder.BeWoFolderOid,
|
|
ParentOid = content.DocTreeItemOid,
|
|
Name = folder.Name,
|
|
FilesInFolder = new List<FileAttachmentDC>(),
|
|
BeWoFolderDC = folder,
|
|
Table = content.DataContract.Table,
|
|
ObjectOid = content.DataContract.ObjectOid
|
|
};
|
|
if (folder.Files.Count != 0)
|
|
{
|
|
foreach (var file in folder.Files)
|
|
{
|
|
folder_dc.FilesInFolder.Add(file);
|
|
}
|
|
}
|
|
DocumentTreeItemVM folder_vm = new DocumentTreeItemVM(folder_dc);
|
|
newNode_folder = new TreeListNode()
|
|
{
|
|
Content = folder_vm,
|
|
IsExpandButtonVisible = DefaultBoolean.True,
|
|
Tag = false,
|
|
Image = LoadFolderImage()
|
|
};
|
|
folder_dc.Node = newNode_folder;
|
|
node.Nodes.Add(newNode_folder);
|
|
}
|
|
else
|
|
{
|
|
newNode_folder = node;
|
|
if (content.DataContract.BeWoFolderDC == null)
|
|
{
|
|
content.DataContract.BeWoFolderDC = folder;
|
|
}
|
|
|
|
}
|
|
|
|
if (folder.SubFolders.Count != 0)
|
|
{
|
|
GenerateFolderStructureForSelectedNode(newNode_folder, folder.SubFolders, hideAlleOrdner);
|
|
}
|
|
}
|
|
}
|
|
|
|
}
|
|
|
|
private static BitmapImage LoadImage(string imageName)
|
|
{
|
|
if (String.IsNullOrEmpty(imageName))
|
|
{
|
|
return null;
|
|
}
|
|
return new BitmapImage(new Uri("/Ressources/Icons/" + imageName + ".png", UriKind.Relative));
|
|
}
|
|
|
|
private static BitmapImage LoadFolderImage()
|
|
{
|
|
return LoadImage("Folder.png");
|
|
}
|
|
|
|
}
|
|
}
|