Exemplo n.º 1
0
        private static void ProcessNodeProperties(GeneralTreeNodeViewModel node, BinaryStreamCLI stream)
        {
            var streamType = stream.GetStreamType();
            var title      = stream.GetTitle();
            var value      = stream.GetValue();

            var data = new DataTuple(
                title,
                value
                );

            if (streamType != PropertyType.Property)
            {
                //when forming a node we need to get only properties
                return;
            }

            node.Properties.Add(data);

            switch (title) //we need to get the name of the node to properly display it
            {
            case "gui_name":
                node.Header = value;
                break;

            case "storage_type":
                var storageType = value;
                node.IsFinalGuiNode = storageType == "final_node";
                node.IsGuiNode      = storageType == "node" || node.IsFinalGuiNode;
                break;

            case "markup":
                node.Markup = value;
                break;
            }
        }
Exemplo n.º 2
0
        public static GeneralTreeNodeViewModel FormNodeFromStorage(IStorageCLI storage)
        {
            if (storage == null || storage.IsNull())
            {
                PLogger.Log("Node was null, skipping...");
                return(null);
            }

            var newNode = new GeneralTreeNodeViewModel()
            {
                InnerStorage = storage
            };

            //EnumStreams here
            var infoIt = new IIteratorCLI();

            storage.EnumStreams(ref infoIt);

            var subHandle = new SubHandleCLI();

            while (true)
            {
                bool isDone = infoIt?.ProcessNext(ref subHandle) ?? false;
                var  type   = subHandle?.GetType();
                if (type != StorageType.BinaryStream || isDone)
                {
                    break;
                }

                var stream = subHandle.GetBinaryStream();

                ProcessNodeProperties(newNode, stream);
            }

            return(newNode);
        }