예제 #1
0
        public void LoadLedger()
        {
            Active = null;

            Xml = XDocument.Load(File);

            //add missing total attributes
            foreach (var node in Xml.Descendants(XmlFormat.Node))
            {
                if (node.Attribute(XmlFormat.Total) == null)
                {
                    node.SetAttributeValue(XmlFormat.Total, TimeSpan.Zero);
                }
            }

            //add missing leaf values, search for default
            foreach (var node in Xml.Descendants(XmlFormat.Leaf))
            {
                if (string.IsNullOrWhiteSpace(node.Value))
                {
                    node.SetValue(TimeSpan.Zero);
                }

                if (node.Attribute(XmlFormat.Default) != null)
                {
                    active = node;
                    ActiveChanged(XmlFormat.Name(node));
                }
            }

            LedgerChanged();
        }
예제 #2
0
        IEnumerable <ToolStripMenuItem> BuildChildMenu(XElement element)
        {
            var leaves = element.Elements(XmlFormat.Leaf).Select(leaf => {
                ToolStripMenuItem item = new ToolStripMenuItem(XmlFormat.Name(leaf));
                item.Click            += delegate { controller.Select(leaf); };
                return(item);
            });
            var nodes = element.Elements(XmlFormat.Node).Select(node => new ToolStripMenuItem(XmlFormat.Name(node), null, BuildChildMenu(node).ToArray()));

            return(nodes.Concat(leaves));
        }