public static void InitTypeListWindow(string title, GraphTypeInfo[] items, Action<GraphTypeInfo> onAdd) { // Get existing open window or if none, make a new one: var window = (ElementItemTypesWindow)GetWindow(typeof(ElementItemTypesWindow)); window._triggerGroups = items.GroupBy(p => window.GroupBy(p)).ToArray(); window.title = title; window._OnAdd = onAdd; window._labelSelector = window.GetLabel; window.Show(); }
public virtual string GetLabel(GraphTypeInfo item) { return item.Label; }
public virtual string GroupBy(GraphTypeInfo item) { return item.Group; }
private bool IsValidInterface(GraphTypeInfo iface) { return(iface.IsInterfaceType && !iface.IsIgnored && (IgnoreTypeCallback == null || !IgnoreTypeCallback(iface.GetType(), null))); }
private TypeInfo GetTypeInfo(GraphTypeInfo type) => GetTypeInfo(type.AttributeProvider);
public static bool HasField(this GraphTypeInfo typeInfo, string fieldName) => typeInfo.Fields.Any(field => field.Name == fieldName);
public abstract object WrapValue(GraphEntityInfo entity, GraphTypeInfo type, object value);
private IObjectGraphType DeriveOperationType(GraphTypeInfo typeInfo) => typeInfo != null ? DeriveType(typeInfo) as IObjectGraphType : null;
private IGraphType CacheType(GraphTypeInfo typeInfo, IGraphType graphType) { _typeDescriptors.AddEntity(typeInfo.TypeRepresentation.AsType(), WrapNonNullableType(typeInfo, graphType)); _typeDescriptors.AddEntity(graphType.GetType(), graphType); return(graphType); }
private Type GetType(GraphTypeInfo typeInfo) => DeriveType(typeInfo).GetType();
private IGraphType WrapNonNullableType(GraphTypeInfo typeInfo, IGraphType graphType) => typeInfo.IsNullable ? graphType : CreateTypeInstance <GraphType>(typeof(NonNullGraphType <>).MakeGenericType(graphType.GetType()));