예제 #1
0
        private void ChangeActiveTaxonomy(TaxonomyItem newTaxonomyItem)
        {
            // handle the case where no taxonomy is selected
            // this can happen when all taxonomies are closed
            if (newTaxonomyItem == null)
            {
                Namespaces.Clear();
                CurrentDirectory = "";
                return;
            }

            var taxonomy = newTaxonomyItem.Taxonomy.Value;

            Namespaces.Clear();
            foreach (var ns in taxonomy.AllNamespaces())
            {
                var namespaceItem = new NamespaceItem(ns);
                foreach (var tag in taxonomy.TagsInNamespace(ns))
                {
                    namespaceItem.Tags.Add(tag);
                }
                Namespaces.Add(namespaceItem);
            }
            CurrentDirectory = taxonomy.RootPath;
        }
예제 #2
0
        // text: tag in the format 'namespace:tag'
        public void AddTag(string text)
        {
            var           split         = text.Trim().Split(':');
            var           ns            = new Namespace(split[0]);
            var           tagName       = new TagName(split[1]);
            var           taxonomy      = CurrentTaxonomy.Taxonomy.Value;
            var           tag           = taxonomy.AddTag(ns, tagName);
            NamespaceItem namespaceItem = namespaces.FirstOrDefault(ni => ni.Namespace == ns);

            if (namespaceItem == null)
            {
                namespaceItem = new NamespaceItem(ns);
                namespaces.Add(namespaceItem);
            }
            namespaceItem.Tags.Add(tag);
        }