Ejemplo n.º 1
0
        private void _TreeNodeDeleteBgr(DxTreeViewNodeArgs args)
        {
            string nodeKey = args.NodeItemInfo.NodeId;

            System.Threading.Thread.Sleep(720);                      // Něco jako uděláme...

            _TreeList.RemoveNode(nodeKey);
        }
Ejemplo n.º 2
0
        private void _TreeNodeEditedBgr(DxTreeViewNodeArgs args)
        {
            var    nodeInfo  = args.NodeItemInfo;
            string nodeKey   = nodeInfo.NodeId;
            string parentKey = nodeInfo.ParentNodeId;
            string oldValue  = nodeInfo.Text;
            string newValue  = (args.EditedValue is string text ? text : "");

            _AddLogLine($"Změna textu pro node '{nodeKey}': '{oldValue}' => '{newValue}'");

            System.Threading.Thread.Sleep(720);                      // Něco jako uděláme...

            if (String.IsNullOrEmpty(newValue))
            {   // Delete node:
                if (nodeInfo.CanDelete)
                {
                    _TreeList.RemoveNode(nodeKey);
                }
            }
            else if (oldValue == "")
            {                                          // Insert node:
                _TreeList.RunInLock(new Action <NodeItemInfo>(node =>
                {                                      // V jednom vizuálním zámku:
                    _TreeList.RemoveNode(node.NodeId); // Odeberu blank node, to kvůli pořadí: nový blank přidám nakonec

                    // Přidám nový node pro konkrétní text = jakoby záznam:
                    NodeItemInfo newNode = _CreateChildNode(node.ParentNodeId, false);
                    newNode.Text         = newValue;
                    _TreeList.AddNode(newNode);

                    // Přidám Blank node, ten bude opět na konci Childs:
                    NodeItemInfo blankNode = _CreateChildNode(node.ParentNodeId, true);
                    _TreeList.AddNode(blankNode);

                    // Aktivuji editovaný node:
                    _TreeList.SelectNode(newNode);
                }
                                                              ), nodeInfo);
            }
            else
            {   // Edited node:
                args.NodeItemInfo.Text = newValue + " [OK]";
                args.NodeItemInfo.Refresh();
            }
        }
Ejemplo n.º 3
0
        private void _LoadChildNodesFromServerBgr(DxTreeViewNodeArgs args)
        {
            string parentKey = args.NodeItemInfo.NodeId;

            _AddLogLine($"Načítám data pro node '{parentKey}'...");

            System.Threading.Thread.Sleep(720);                      // Něco jako uděláme...

            // Upravíme hodnoty v otevřeném nodu:
            string text = args.NodeItemInfo.Text;

            if (text.EndsWith(" ..."))
            {
                args.NodeItemInfo.Text = text.Substring(0, text.Length - 4);
                args.NodeItemInfo.Refresh();
            }

            // Vytvoříme ChildNodes a zobrazíme je:
            bool empty = (Data.RandomText.Rand.Next(10) > 7);
            var  nodes = _CreateSampleChilds(parentKey, ItemCountType.Standard);      // A pak vyrobíme Child nody

            _AddLogLine($"Načtena data: {nodes.Count} prvků.");
            _TreeList.AddLazyLoadNodes(parentKey, nodes);            //  a pošleme je do TreeView.
        }
Ejemplo n.º 4
0
        private void _AddLog(string actionName, DxTreeViewNodeArgs args, bool showValue = false)
        {
            string value = (showValue ? ", Value: " + (args.EditedValue == null ? "NULL" : "'" + args.EditedValue.ToString() + "'") : "");

            _AddLogLine($"{actionName}: Node: {args.NodeItemInfo}{value}");
        }
Ejemplo n.º 5
0
 private void _TreeList_NodeDelete(object sender, DxTreeViewNodeArgs args)
 {
     _TreeList_AnyAction(sender, args);
     Data.ThreadManager.AddAction(() => _TreeNodeDeleteBgr(args));
 }
Ejemplo n.º 6
0
 private void _TreeList_LazyLoadChilds(object sender, DxTreeViewNodeArgs args)
 {
     _TreeList_AnyAction(sender, args);
     Data.ThreadManager.AddAction(() => _LoadChildNodesFromServerBgr(args));
 }
Ejemplo n.º 7
0
 private void _TreeList_AnyAction(object sender, DxTreeViewNodeArgs args)
 {
     _AddLog(args.Action.ToString(), args, (args.Action == TreeViewActionType.NodeEdited || args.Action == TreeViewActionType.EditorDoubleClick));
 }