public void Build(object root) { this.root = root; //create set of selected and checked nodes var selected = new HashSet <object>(); var check = new HashSet <object>(); foreach (var i in SelectedItemIndex) { selected.Add(nodes[i]); } foreach (var i in CheckedItemIndex) { check.Add(nodes[i]); } // nodes.Clear(); levels.Clear(); SelectedItemIndex.Clear(); CheckedItemIndex.Clear(); //build list of expanded nodes if (ShowRootNode) { AddNode(root, 0); } else { AddNodeChildren(root, 0); } //restore indexes of selected and checked nodes var newExpanded = new HashSet <object>(); hasChildren = new BitArray(nodes.Count); for (int i = 0; i < nodes.Count; i++) { var node = nodes[i]; if (selected.Contains(node)) { SelectedItemIndex.Add(i); } if (check.Contains(node)) { CheckedItemIndex.Add(i); } if (expandedNodes.Contains(node)) { newExpanded.Add(node); } hasChildren[i] = GetNodeChildren(nodes[i]).Cast <object>().Any(); } expandedNodes = newExpanded; ItemCount = nodes.Count; base.Build(); }
public FastList() { if (LicenseManager.UsageMode == LicenseUsageMode.Designtime) { ItemCount = 100; ItemTextNeeded += (o, a) => a.Result = "Item " + a.ItemIndex; SelectedItemIndex.Add(0); } }
public FastTree() { AutoCollapse = true; ShowRootNode = false; ShowExpandBoxes = true; ItemIndentDefault = 16; if (LicenseManager.UsageMode == LicenseUsageMode.Designtime) { Build(new object[] { "Node 1", "Node 2", "Node 3" }); SelectedItemIndex.Add(0); } }
public Schema() : base() { InstanceType = typeof(__Radiolis__); ClassName = "RadiolistPage"; Properties.ClearExposed(); Html = Add <__TString__>("Html"); Html.DefaultValue = "/KitchenSink/RadiolistPage.html"; Html.SetCustomAccessors((_p_) => { return(((__Radiolis__)_p_).__bf__Html__); }, (_p_, _v_) => { ((__Radiolis__)_p_).__bf__Html__ = (System.String)_v_; }, false); MenuOptions = Add <__TArray__>("MenuOptions"); MenuOptions.SetCustomGetElementType((arr) => { return(__MenuOpti__.DefaultTemplate); }); MenuOptions.SetCustomAccessors((_p_) => { return(((__Radiolis__)_p_).__bf__MenuOptions__); }, (_p_, _v_) => { ((__Radiolis__)_p_).__bf__MenuOptions__ = (__Arr__)_v_; }, false); SelectedItemIndex = Add <__TLong__>("SelectedItemIndex$"); SelectedItemIndex.DefaultValue = 0L; SelectedItemIndex.Editable = true; SelectedItemIndex.SetCustomAccessors((_p_) => { return(((__Radiolis__)_p_).__bf__SelectedItemIndex__); }, (_p_, _v_) => { ((__Radiolis__)_p_).__bf__SelectedItemIndex__ = (System.Int64)_v_; }, false); SelectedItemIndex.AddHandler((Json pup, Property <Int64> prop, Int64 value) => { return(new Input.SelectedItemIndex() { App = (RadiolistPage)pup, Template = (TLong)prop, Value = value }); }, (Json pup, Starcounter.Input <Int64> input) => { ((RadiolistPage)pup).Handle((Input.SelectedItemIndex)input); }); SelectedItemLabel = Add <__TString__>("SelectedItemLabel"); SelectedItemLabel.DefaultValue = ""; SelectedItemLabel.SetCustomAccessors((_p_) => { return(((__Radiolis__)_p_).__bf__SelectedItemLabel__); }, (_p_, _v_) => { ((__Radiolis__)_p_).__bf__SelectedItemLabel__ = (System.String)_v_; }, false); }
public virtual bool IsNodeSelected(object node) { return(SelectedItemIndex.Contains(nodes.IndexOf(node))); }