private void RemoveBusinessObjectNode(IBusinessObject businessObject) { if (businessObject != null && ObjectNodes.ContainsKey(businessObject)) { NodeState nodeState = ObjectNodes[businessObject]; ITreeNode node = nodeState.Node; ITreeNode parentNode = node.Parent; RemoveNode(businessObject, node); IDictionary <string, IRelationship> relationships = GetVisibleRelationships(businessObject); foreach (KeyValuePair <string, IRelationship> relationshipPair in relationships) { IRelationship relationship = relationshipPair.Value; RemoveRelationshipNode(relationship); } if (parentNode != null) { IBusinessObjectCollection businessObjectCollection = parentNode.Tag as IBusinessObjectCollection; if (businessObjectCollection != null) { UpdateNodeDummy(nodeState, businessObjectCollection.Count); } } } }
private ITreeNode SetupBusinessObjectNode(IBusinessObject businessObject, ITreeNodeCollection nodes) { ITreeNode node; NodeState nodeState; if (!ObjectNodes.ContainsKey(businessObject)) { node = nodes.Add(""); node.Collapse(false); if (_levelsToDisplay > -1 && node.Level > _levelsToDisplay) { nodes.Remove(node); return(null); } nodeState = new NodeState(node); nodeState.IsLoaded = false; UpdateNodeDummy(nodeState, GetVisibleRelationships(businessObject).Count); //LoadChildrenNodes(nodeState.Node.Nodes, businessObject); ObjectNodes.Add(businessObject, nodeState); // LoadObjectNode(businessObject); RegisterForBusinessObjectEvents(businessObject); } else { nodeState = ObjectNodes[businessObject]; node = nodeState.Node; } DoSetupNodeWithBusinessObject(node, businessObject); node.Tag = businessObject; return(node); }
private NodeState GetBusinessObjectNodeState(IBusinessObject businessObject) { if (ObjectNodes.ContainsKey(businessObject)) { return(ObjectNodes[businessObject]); } return(null); }
private void RefreshBusinessObjectNode(IBusinessObject businessObject) { if (businessObject != null && ObjectNodes.ContainsKey(businessObject)) { NodeState nodeState = ObjectNodes[businessObject]; ITreeNode node = nodeState.Node; DoSetupNodeWithBusinessObject(node, businessObject); //node.Text = GetClassDescription(businessObject); } }
private async System.Threading.Tasks.Task InitializeObjectToEditAsync() { Models.Object objectInfo = await _objectStorage.GetObjectFullInfo(CreatedObject.uuid); ObjectName = objectInfo.Name; foreach (var item in objectInfo.Nodes) { var group = new Grouping <Node, Material>(item, item.Materials); ObjectNodes.Add(group); } }
///<summary> /// Sets the business object's node as the selected node. ///</summary> ///<param name="businessObject"></param> public void SelectObject(IBusinessObject businessObject) { if (ObjectNodes.ContainsKey(businessObject)) { NodeState nodeState = ObjectNodes[businessObject]; ITreeNode node = nodeState.Node; if (TreeView.SelectedNode != node) { _preventSelectionChanged = true; TreeView.SelectedNode = node; _preventSelectionChanged = false; } } }
public void AddNode() { if (App.IsUserHaveFullAccess == false & ObjectNodes.Count >= 2) { CoreMethods.DisplayAlert("Не выполнено", "Без расширенного доступа, вы не можете создавать больше одного объекта, добавлять больше двух узлов и скачивать PDF отчеты.", "Ok"); return; } var newNode = new Node { Name = "", Materials = new List <Material>() }; var group = new Grouping <Node, Material>(newNode, newNode.Materials); ObjectNodes.Insert(0, group); }
///<summary> /// Cleans up the tree view by derigistering for all BusinessObject events and removing /// all nodes. ///</summary> public void CleanUp() { foreach (KeyValuePair <IBusinessObject, NodeState> objectNode in ObjectNodes) { IBusinessObject businessObject = objectNode.Key; UnRegisterForBusinessObjectEvents(businessObject); } ObjectNodes.Clear(); foreach (KeyValuePair <IBusinessObjectCollection, NodeState> collectionNode in ChildCollectionNodes) { IBusinessObjectCollection businessObjectCollection = collectionNode.Key; UnRegisterForBusinessObjectCollectionEvents(businessObjectCollection); } ChildCollectionNodes.Clear(); RelationshipNodes.Clear(); RootNodeBusinessObject = null; }
private async void DeleteNodeAsync(Grouping <Node, Material> nodeToDelete) { if (IsEditMode) { var response = await _objectStorage.DeleteNodeAsync(nodeToDelete.GroupKey.uuid); if (response == true) { ObjectNodes.Remove(nodeToDelete); await CoreMethods.DisplayAlert("Выполнено", "Узел удален", "OK"); } } else { ObjectNodes.Remove(nodeToDelete); await CoreMethods.DisplayAlert("Выполнено", "Узел удален", "OK"); } }
private void RemoveNode(IBusinessObject businessObject, ITreeNode node) { try { node.Remove(); } catch (System.ObjectDisposedException ex) { log.Debug ("RemoveNode : cannot remove node for Business Object : " + businessObject.ToString() + Environment.NewLine + " Error :" + ex.Message); } finally { try { ObjectNodes.Remove(businessObject); } finally { UnRegisterForBusinessObjectEvents(businessObject); } } }
private void CleanPage() { ObjectName = String.Empty; CreatedObject = new Models.Object(); ObjectNodes?.Clear(); }