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);
     }
 }
Esempio n. 5
0
        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;
         }
     }
 }
Esempio n. 7
0
        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;
 }
Esempio n. 9
0
        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");
            }
        }
Esempio n. 10
0
 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);
         }
     }
 }
Esempio n. 11
0
 private void CleanPage()
 {
     ObjectName    = String.Empty;
     CreatedObject = new Models.Object();
     ObjectNodes?.Clear();
 }