private void PopulatePreviousSelections() { gridPrevSelections.Rows.Clear(); gridPrevSelections.Rows.Add(" -- empty --"); List <object> addedObjects = new List <object>(); foreach (var funcParams in FunctionRunner.CachedParameters.Values) { foreach (object param in funcParams) { if (TypeOfObject.IsInstanceOfType(param)) { bool found = false; foreach (object alreadyAddedObj in addedObjects) { if (alreadyAddedObj == param) { found = true; break; } } if (!found) { string name = string.Format("{0} [{1}]", ProviderInfo.GetDisplayName(param), param.GetType().Name); int index = gridPrevSelections.Rows.Add(name); gridPrevSelections.Rows[index].Tag = param; addedObjects.Add(param); } } } } gridPrevSelections.Sort(gridPrevSelections.Columns[0], ListSortDirection.Ascending); }
private void AddPropertiesToTreeview(DevComponents.AdvTree.Node parentNode) { treeList1.BeginUpdate(); parentNode.Nodes.Clear(); PopulatedCollectionNodes.Add(parentNode); object obj = parentNode.Tag; PropertyInfo[] properties = obj.GetType().GetProperties(); foreach (PropertyInfo prop in properties) { PropertyAttributes atts = GetPropertyAttributes(prop); // We don't want strings to be treated as collections. if (atts.IsCollection) { DevComponents.AdvTree.Node collectionNode = null; foreach (object item in (System.Collections.IEnumerable)prop.GetValue(obj, null)) { // All we want to do is determine whether the collection has any items. Seeing // as we are here, it obviously does collectionNode = new DevComponents.AdvTree.Node(); collectionNode.Text = prop.Name; parentNode.Nodes.Add(collectionNode); //collectionNode.HasChildren = true; DevComponents.AdvTree.Node tempNode = new DevComponents.AdvTree.Node(); collectionNode.Nodes.Add(tempNode); break; } } else if (atts.IsIterator) { object propObject = prop.GetValue(obj, null); if (propObject != null) { string displayName = ProviderInfo.GetDisplayName(propObject); DevComponents.AdvTree.Node propNode = new DevComponents.AdvTree.Node(); propNode.Text = displayName; propNode.Tag = propObject; parentNode.Nodes.Add(propNode); DevComponents.AdvTree.Node tempNode = new DevComponents.AdvTree.Node(); propNode.Nodes.Add(tempNode); } } } //Slyce.Common.TreelistUtility.TreelistNodeComparer comparer = new Slyce.Common.TreelistUtility.TreelistNodeComparer(Slyce.Common.TreelistUtility.TreelistNodeComparer.SortDirection.Ascending, 0); //Slyce.Common.TreelistUtility.SortNodes(treeList1, comparer); treeList1.EndUpdate(); }
private void AddObjectToTreeview(object obj, DevComponents.AdvTree.Node parentNode) { if (InvokeRequired) { MethodInvoker mi = delegate { AddObjectToTreeview(obj, parentNode); }; Controller.SafeInvoke(this, mi); return; } string displayName = ProviderInfo.GetDisplayName(obj); DevComponents.AdvTree.Node node = new DevComponents.AdvTree.Node(); node.Text = displayName; node.Tag = obj; if (parentNode != null) { parentNode.Nodes.Add(node); } else { treeList1.Nodes.Add(node); } PropertyInfo[] properties = obj.GetType().GetProperties(); if (properties.Length > 0) { DevComponents.AdvTree.Node tempNode = new DevComponents.AdvTree.Node(); node.Nodes.Add(tempNode); } if (obj != null && TypeOfObject.IsInstanceOfType(obj)) { node.Style = treeList1.Styles["elementStyleHighlighted"]; } else { node.Style = treeList1.Styles["elementStyle1"]; } }