Files
BeWoPlaner/BeWo/View/Document/DokumentViewHelper.cs
Christian a6f090334a Vorlagen weiter bearbeitet
Div. Bugfixes
Spitalstiftung Konstanz Feiertage
BfpDus neuer CSV Export
2024-12-13 00:27:31 +01:00

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");
}
}
}