Ejemplo n.º 1
0
 protected void InitializeTree()
 {
   _tree = new ItemsList();
   TreeItem item = new TreeItem("Name", "First item");
   CreateChildren(item, 2, 3);
   _tree.Add(item);
   item = new TreeItem("Name", "Second item");
   CreateChildren(item, 2, 4);
   _tree.Add(item);
   item = new TreeItem("Name", "Third item");
   CreateChildren(item, 2, 5);
   _tree.Add(item);
 }
Ejemplo n.º 2
0
 protected void CreateChildren(TreeItem item, int level, int maxLevel)
 {
   if (level > maxLevel)
     return;
   TreeItem childItem = new TreeItem("Name", "First item, level " + level);
   CreateChildren(childItem, level + 1, maxLevel);
   item.SubItems.Add(childItem);
   childItem = new TreeItem("Name", "Second item, level " + level);
   CreateChildren(childItem, level + 1, maxLevel);
   item.SubItems.Add(childItem);
   childItem = new TreeItem("Name", "Third item, level " + level);
   CreateChildren(childItem, level + 1, maxLevel);
   item.SubItems.Add(childItem);
 }
Ejemplo n.º 3
0
 protected void AddResources(IEnumerable<ResourcePathMetadata> resources, ItemsList items)
 {
   List<ResourcePathMetadata> resourcesMetadata = new List<ResourcePathMetadata>(resources);
   resourcesMetadata.Sort((a, b) => a.ResourceName.CompareTo(b.ResourceName));
   foreach (ResourcePathMetadata resourceMetadata in resourcesMetadata)
   {
     TreeItem directoryItem = new TreeItem(Consts.KEY_NAME, resourceMetadata.ResourceName);
     directoryItem.AdditionalProperties[Consts.KEY_RESOURCE_PATH] = resourceMetadata.ResourcePath;
     directoryItem.SetLabel(Consts.KEY_PATH, resourceMetadata.HumanReadablePath);
     if (ChoosenResourcePath == resourceMetadata.ResourcePath)
       directoryItem.Selected = true;
     directoryItem.SelectedProperty.Attach(OnTreePathSelectionChanged);
     directoryItem.AdditionalProperties[Consts.KEY_EXPANSION] = new ExpansionHelper(directoryItem, this);
     items.Add(directoryItem);
   }
 }
Ejemplo n.º 4
0
 public ExpansionHelper(TreeItem directoryItem, PathBrowserService parent)
 {
   _parent = parent;
   _directoryItem = directoryItem;
   _isExpandedProperty.Attach(OnExpandedChanged);
 }
Ejemplo n.º 5
0
 public void RefreshOrClearSubPathItems(TreeItem pathItem, bool clearSubItems)
 {
   if (clearSubItems)
   {
     pathItem.SubItems.Clear();
     pathItem.SubItems.FireChange();
   }
   else
     RefreshResourceProviderPathList(pathItem.SubItems, (ResourcePath) pathItem.AdditionalProperties[Consts.KEY_RESOURCE_PATH]);
 }
Ejemplo n.º 6
0
 protected void BuildCategoriesTree(ItemsList contents, TreeItem parentItem, ICollection<string> categories, ICollection<string> allSelectedCategories,
     IDictionary<string, ICollection<string>> categories2Children, IDictionary<string, MediaCategory> allCategories)
 {
   contents.Clear();
   List<string> categoriesSorted = new List<string>(categories);
   categoriesSorted.Sort();
   foreach (string mediaCategory in categoriesSorted)
   {
     TreeItem categoryItem = new TreeItem(Consts.KEY_NAME, mediaCategory);
     categoryItem.AdditionalProperties[Consts.KEY_MEDIA_CATEGORY] = allCategories[mediaCategory];
     categoryItem.AdditionalProperties[Consts.KEY_PARENT_ITEM] = parentItem;
     if (allSelectedCategories.Contains(mediaCategory))
       categoryItem.Selected = true;
     PropertyChangedHandler handler = (property, oldValue) => OnMediaCategoryItemSelectionChanged(categoryItem);
     categoryItem.SelectedProperty.Attach(handler);
     categoryItem.AdditionalProperties["HandlerStrongReference"] = handler; // SelectedProperty only manages weak references to its handlers -> avoid handler to be removed
     ICollection<string> childCategories;
     if (!categories2Children.TryGetValue(mediaCategory, out childCategories))
       childCategories = new List<string>();
     BuildCategoriesTree(categoryItem.SubItems, categoryItem, childCategories, allSelectedCategories, categories2Children, allCategories);
     contents.Add(categoryItem);
   }
 }
Ejemplo n.º 7
0
 protected void RefreshResourceProviderPathList(ItemsList items, ResourcePath path)
 {
   items.Clear();
   IEnumerable<ResourcePathMetadata> res = GetChildDirectoriesData(path);
   if (res != null)
   {
     List<ResourcePathMetadata> directories = new List<ResourcePathMetadata>(res);
     directories.Sort((a, b) => a.ResourceName.CompareTo(b.ResourceName));
     foreach (ResourcePathMetadata childDirectory in directories)
     {
       TreeItem directoryItem = new TreeItem(Consts.KEY_NAME, childDirectory.ResourceName);
       directoryItem.AdditionalProperties[Consts.KEY_RESOURCE_PATH] = childDirectory.ResourcePath;
       directoryItem.SetLabel(Consts.KEY_PATH, childDirectory.HumanReadablePath);
       if (ChoosenResourcePath == childDirectory.ResourcePath)
         directoryItem.Selected = true;
       directoryItem.SelectedProperty.Attach(OnTreePathSelectionChanged);
       directoryItem.AdditionalProperties[Consts.KEY_EXPANSION] = new ExpansionHelper(directoryItem, this);
       items.Add(directoryItem);
     }
   }
   items.FireChange();
 }
Ejemplo n.º 8
0
 public ExpansionHelper(TreeItem directoryItem, SharesProxy parent)
 {
   _parent = parent;
   _directoryItem = directoryItem;
   _isExpandedProperty.Attach(OnExpandedChanged);
 }
Ejemplo n.º 9
0
 void OnMediaCategoryItemSelectionChanged(TreeItem changedItem)
 {
   if (changedItem.Selected)
     SelectMediaCategoryHierarchy(changedItem);
   else
     DeselectMediaCategoryHierarchy(changedItem);
   UpdateMediaCategories(GetSelectedMediaCategories(_allMediaCategoriesTree));
 }
Ejemplo n.º 10
0
 static void DeselectMediaCategoryHierarchy(TreeItem item)
 {
   item.Selected = false;
   foreach (TreeItem childItem in item.SubItems)
     DeselectMediaCategoryHierarchy(childItem);
 }
Ejemplo n.º 11
0
 static void SelectMediaCategoryHierarchy(TreeItem item)
 {
   item.Selected = true;
   TreeItem parent = (TreeItem)item.AdditionalProperties[Consts.KEY_PARENT_ITEM];
   if (parent == null)
     return;
   SelectMediaCategoryHierarchy(parent);
 }