public CloudItemAction(CloudItem cloudItem, string text, Bitmap icon, Func <Task> onClick, CloudItemActionContinuation continuation) { this.cloudItem = cloudItem; this.continuation = continuation; this.text = text; this.icon = icon; this.onClick = onClick; }
protected static CloudItem GetRootItem(CloudItem ci) { if (ci.parent == null) { return(ci); } else { return(GetRootItem(ci.parent)); } }
protected static HashSet <CloudItem> GetNodesWithConnection(CloudItem cloudItem, EntityGuid id) { HashSet <CloudItem> result = new HashSet <CloudItem>(); Type thisType = cloudItem.GetType(); var fields = thisType.GetFields(BindingFlags.Instance | BindingFlags.NonPublic); foreach (var field in fields) { if (field.FieldType.Assembly.FullName.StartsWith("CloudFoundry.CloudController", StringComparison.OrdinalIgnoreCase)) { var value = field.GetValue(cloudItem); var collection = value as IEnumerable; if (collection != null) { foreach (var obj in collection) { if (ValueIsConnected(obj, id)) { result.Add(cloudItem); break; } } } else { if (ValueIsConnected(value, id)) { result.Add(cloudItem); break; } } } } foreach (var child in cloudItem.children) { foreach (var node in GetNodesWithConnection(child, id)) { result.Add(node); } } return(result); }
public CloudItemAction(CloudItem cloudItem, string text, Bitmap icon, Func <Task> onClick) : this(cloudItem, text, icon, onClick, CloudItemActionContinuation.None) { }
private void AttachToParent(CloudItem parentItem) { this.parent = parentItem; }