protected override void OnGUI() { mainHeaderText = GDEConstants.DefineDataHeader; headerColorString = GDESettings.Instance.DefineDataColor; base.OnGUI(); DrawExpandCollapseAllFoldout(GDEItemManager.AllSchemas.Keys.ToArray(), GDEConstants.SchemaListHeader); float currentGroupHeightTotal = CalculateGroupHeightsTotal(); scrollViewHeight = HeightToBottomOfWindow(); scrollViewY = TopOfLine(); verticalScrollbarPosition = GUI.BeginScrollView(new Rect(currentLinePosition, scrollViewY, FullWindowWidth(), scrollViewHeight), verticalScrollbarPosition, new Rect(currentLinePosition, scrollViewY, ScrollViewWidth(), currentGroupHeightTotal)); foreach (KeyValuePair <string, Dictionary <string, object> > schema in GDEItemManager.AllSchemas) { // If we are filtered out, return if (ShouldFilter(schema.Key, schema.Value)) { continue; } float currentGroupHeight; if (!groupHeights.TryGetValue(schema.Key, out currentGroupHeight)) { currentGroupHeight = GDEConstants.LineHeight; } if (IsVisible(currentGroupHeight)) { DrawEntry(schema.Key, schema.Value); } else { NewLine(currentGroupHeight / GDEConstants.LineHeight); } } GUI.EndScrollView(); //Remove any schemas that were deleted foreach (string deletedSchemaKey in deletedSchemas) { Remove(deletedSchemaKey); } deletedSchemas.Clear(); // Rename any schemas that were renamed string error; foreach (KeyValuePair <string, string> pair in renamedSchemas) { if (!GDEItemManager.RenameSchema(pair.Key, pair.Value, out error)) { EditorUtility.DisplayDialog(GDEConstants.ErrorLbl, string.Format("Couldn't rename {0} to {1}: {2}", pair.Key, pair.Value, error), GDEConstants.OkLbl); } } renamedSchemas.Clear(); }