public void ProcessNodeInfoAndAdd(ITreeNodeViewModel parent) { if (parent?.InnerStorage == null) { return; } var storage = parent.InnerStorage; var storageIterator = new IIteratorCLI(); storage?.EnumStorages(ref storageIterator); var newHandle = new SubHandleCLI(); while (true) { bool isDone = storageIterator.ProcessNext(ref newHandle); var type = newHandle?.GetType(); if (isDone || type != StorageType.IStorage || newHandle.IsEmpty()) { break; } GenerateNodeAndAdd(newHandle, parent); } }
public ITreeNodeViewModel AddElementInside(ITreeNodeViewModel node, CollectionType parent) { ITreeNodeViewModel returnTreeView = null; if (node != null && parent != null) { returnTreeView = AddNode(node, parent); } return(returnTreeView); }
public void TreeElement_Checked(ITreeNodeViewModel currentNode) { if (currentNode == null) { return; } foreach (var node in currentNode.Items) { node.IsChecked = currentNode.IsChecked; } }
public void TreeElement_Selected(ITreeNodeViewModel currentNode) { if (currentNode == null) { return; } var args = new ParserEventArgs() { ArgsType = (currentNode.IsFinalGuiNode ? MessageType.ProcessAll : MessageType.ProcessProperties), TreeNode = currentNode, }; Messenger.RaiseEvent(this, args); }
//TODO MVVM ANTIPATTERNS, but it's kind of tricky to do this via commands, postpone for a while public void TreeElement_Expanded(ITreeNodeViewModel currentNode) { if (currentNode == null) { return; } currentNode.Items.Clear(); // remove empty node ProcessNodeInfoAndAdd(currentNode); foreach (var node in currentNode.Items) { node.IsChecked = currentNode.IsChecked; } }
public void ProcessNodeData(ITreeNodeViewModel node) { var storage = node?.InnerStorage ?? throw new NullReferenceException("Invalid Node was passed"); var iterator = new IIteratorCLI(); var subHandle = new SubHandleCLI(); storage.EnumStorages(ref iterator); while (true) { bool isDone = iterator?.ProcessNext(ref subHandle) ?? false; var type = subHandle?.GetType(); if (type != StorageType.IStorage || isDone) { break; } var childStorage = subHandle.GetStorage(); ProcessDataInternal(childStorage); } }
/// <summary> /// add the task and missing ancestors back into the tree /// </summary> /// <param name="selectedTaskVM"></param> void AddTaskToTree(TaskViewModel selectedTaskVM) { ITreeNodeViewModel child = _removedNodes[selectedTaskVM]; ITreeNodeContainerViewModel parent = child.Parent; bool inParentCollection = parent.ChildNodes.Contains(child); while (parent != null && !inParentCollection) { parent.ChildNodes.Add(child); parent.ChildNodes.OrderBy(n => n.Title); SelectedNode = child; child = parent; parent = child.Parent; if (parent != null) { inParentCollection = parent.ChildNodes.Contains(child); } } }
public ITreeNodeViewModel AddElementBack(ITreeNodeViewModel node, ITreeNodeViewModel parent = null) { ITreeNodeViewModel treeViewItem = null; if (node.IsGuiNode) { treeViewItem = AddElementInside(node, parent?.Items ?? treeItemsCollection); if (!node.IsFinalGuiNode) // no empty elements for final gui node { var emptyNode = new GeneralTreeNodeViewModel() { Header = "Empty" }; AddElementInside(emptyNode, node.Items); } } return(treeViewItem); }
public void GenerateNodeAndAdd(SubHandleCLI subHandle, ITreeNodeViewModel parent) { var storageType = (StorageType)subHandle?.GetType(); if (storageType != StorageType.IStorage) { PLogger.Log("Wrong/null storage passed..."); return; } var iStorage = subHandle.GetStorage(); if (iStorage.IsNull()) { PLogger.Log("iStorage was null"); return; } var node = Utilities.FormNodeFromStorage(iStorage); AddElementBack(node, parent); }
private List <DataTuple> GatherExportList(ITreeNodeViewModel treeNode) { var storage = treeNode?.InnerStorage; var iterator = new IIteratorCLI(); storage?.EnumStorages(ref iterator); var subHandle = new SubHandleCLI(); var dataList = new List <DataTuple>(); while (true) { bool isDone = iterator.ProcessNext(ref subHandle); if (isDone || subHandle?.GetType() != StorageType.IStorage) { break; } dataList.AddRange(ProcessStorage(subHandle?.GetStorage())); } return(dataList); }
private static bool IsSelfOrAncestorSelected(ITreeNodeViewModel viewModel) { return(viewModel.IsSelected || viewModel.Items.Any(IsSelfOrAncestorSelected)); }
private ITreeNodeViewModel AddNode(ITreeNodeViewModel treeNode, CollectionType parent) { parent?.Add(treeNode); return(treeNode); }