protected override AdvancedDropdownItem FetchData()
        {
            AdvancedDropdownItem rootGroup = new AdvancedDropdownItem(label);

            searchableElements = new List <AdvancedDropdownItem> ();

            for (int i = 0; i < displayedOptions.Length; i++)
            {
                string   menuPath = displayedOptions[i];
                string[] paths    = menuPath.Split('/');

                AdvancedDropdownItem parent = rootGroup;
                for (int j = 0; j < paths.Length; j++)
                {
                    string path = paths[j];
                    if (j == paths.Length - 1)
                    {
                        MultiLevelItem element = new MultiLevelItem(path, menuPath);
                        element.ElementIndex = i;
                        parent.AddChild(element);
                        searchableElements.Add(element);

                        if (i == selectedIndex)
                        {
                            SelectedIDs.Add(element.Id);
//                            var tempParent = parent;
//                            AdvancedDropdownItem searchedItem = element;
                            //TODO fix selecting
//                            while (tempParent != null)
//                            {
//                                state.SetSelectedIndex(tempParent, tempParent.children.IndexOf(searchedItem));
//                                searchedItem = tempParent;
//                                tempParent = tempParent.parent;
//                            }
                        }

                        continue;
                    }

                    string groupPathId = paths[0];
                    for (int k = 1; k <= j; k++)
                    {
                        groupPathId += "/" + paths[k];
                    }

                    AdvancedDropdownItem group = parent.Children.SingleOrDefault(c => ((MultiLevelItem)c).stringId == groupPathId);
                    if (group == null)
                    {
                        group = new MultiLevelItem(path, groupPathId);
                        parent.AddChild(group);
                    }

                    parent = group;
                }
            }

            return(rootGroup);
        }
Example #2
0
 private void btnSelect_Click(object sender, EventArgs e)
 {
     // get the selected IDs and items
     SelectedIDs   = selectedItems.Keys.ToList();
     SelectedID    = SelectedIDs.FirstOrDefault();
     SelectedItems = selectedItems.Select(pair => pair.Value.SourceItem).ToList();
     SelectedItem  = SelectedItems.FirstOrDefault();
     DialogResult  = DialogResult.OK;
 }