public void ShowFade(string in_label, string in_savedVar, bool in_isOuter, FadeOpenCallback[] in_callbacks) { var savedVar = Google2uGUIUtil.GetBool(in_savedVar, false); var fadeVar = MyGUILayout.BeginFadeArea(savedVar, in_label, in_savedVar, in_isOuter ? MyGUILayout.OuterBox : MyGUILayout.InnerBox, in_isOuter ? MyGUILayout.OuterBoxHeader : MyGUILayout.InnerBoxHeader); Google2uGUIUtil.SetBool(in_savedVar, fadeVar.Open); if (fadeVar.Show()) { foreach (var fadeOpenCallback in in_callbacks) { fadeOpenCallback(); } } MyGUILayout.EndFadeArea(); }
public override bool DrawGUIList(EditorGUILayoutEx in_layout, bool in_showAll) { var ret = true; var SpreadsheetVisibleString = "workbook" + WorkbookName.Replace(' ', '_') + "_Visible"; SpreadsheetVisible = Google2uGUIUtil.GetBool(SpreadsheetVisibleString, SpreadsheetVisible); if ((SpreadsheetVisible == false) && !in_showAll) return true; ShowSpreadsheet = Google2uGUIUtil.GetBool("workbook" + WorkbookName.Replace(' ', '_') + "_Open", ShowSpreadsheet); var mainFadeArea = in_layout.BeginFadeArea(ShowSpreadsheet, WorkbookName, "workbook" + WorkbookName.Replace(' ', '_'), in_layout.OuterBox, in_layout.OuterBoxHeader, SpreadsheetVisibleString); ShowSpreadsheet = mainFadeArea.Open; Google2uGUIUtil.SetBool("workbook" + WorkbookName.Replace(' ', '_') + "_Open", ShowSpreadsheet); // We have to do this here. Otherwise there is a threading issue (Can't initialize from EditorPreferences outside the main thread) if (ExportOptions == null) { ExportOptions = new Google2uExportOptions("workbook" + WorkbookName.Replace(' ', '_') + "_Option_"); } if (mainFadeArea.Show()) { var showExport = false; var exportsheets = new List<Google2uWorksheet>(); switch (WorksheetQueryStatus) { case QueryStatus.Idle: { WorksheetQueryStatus = QueryStatus.Uninitialized; } break; case QueryStatus.Querying: EditorGUILayout.LabelField(Google2u.LocalizationInfo.Localize(Localization.rowIds.ID_MESSAGE_QUERYING_WORKSHEETS) + Google2u.Ellipses); break; case QueryStatus.QueryComplete: if (WorksheetsDisplay.Length > 0) { foreach (var Google2uWorksheet in WorksheetsDisplay) { if (Google2uWorksheet.DrawGUIList(in_layout)) { exportsheets.Add(Google2uWorksheet); showExport = true; } } if (_OpenInvalidSheet) { var stillQuerying = false; for (var i = 0; i < Worksheets.Count; ++i) { if (!exportsheets.Contains(Worksheets[i])) continue; if (Worksheets[i].UpdateValidation || Worksheets[i].Validating) stillQuerying = true; if (Worksheets[i].IsDataValid == false) { var ed = EditorWindow.GetWindow<Google2uEditor>(); Google2u.ActiveWorkbookWindow = ed; ed.Workbook = this; ed.Layout = in_layout; ed.title = WorkbookName; ed.wantsMouseMove = true; ActiveWorksheetIndex = i; Worksheets[i].HighlightFirstInvalidCell(); _OpenInvalidSheet = false; break; } } if(!stillQuerying) _OpenInvalidSheet = false; } EditorGUILayout.BeginHorizontal(); var content = new GUIContent(in_layout.RefreshButton, Google2u.LocalizationInfo.Localize(Localization.rowIds.ID_LABEL_REFRESH_WORKBOOK)); if (GUILayout.Button(content, GUILayout.Height(EditorGUILayoutEx.ButtonHeight), GUILayout.Width(EditorGUILayoutEx.ButtonWidth))) { Worksheets.Clear(); WorksheetQueryStatus = QueryStatus.Uninitialized; } var querying = false; var bAllWorksheetsValid = true; foreach (var Google2uWorksheet in exportsheets) { if (Google2uWorksheet.IsDataValid == false) bAllWorksheetsValid = false; if (Google2uWorksheet.WorksheetQueryStatus != QueryStatus.Idle) querying = true; } { var guiEnabled = GUI.enabled; if (querying) GUI.enabled = false; content = bAllWorksheetsValid ? new GUIContent(in_layout.ValidateButtonGreen, Google2u.LocalizationInfo.Localize(Localization.rowIds.ID_LABEL_VALIDATE_WORKBOOK)) : new GUIContent(in_layout.ValidateButtonRed, Google2u.LocalizationInfo.Localize(Localization.rowIds.ID_LABEL_VALIDATE_WORKBOOK)); if (GUILayout.Button(content, GUILayout.Height(EditorGUILayoutEx.ButtonHeight), GUILayout.Width(EditorGUILayoutEx.ButtonWidth))) { // Do Validation for the worksheets we will be exporting foreach (var Google2uWorksheet in exportsheets) { Google2uWorksheet.UpdateValidation = true; Google2uWorksheet.Validating = true; } _OpenInvalidSheet = true; } GUI.enabled = guiEnabled; } content = new GUIContent(in_layout.EditButton, Google2u.LocalizationInfo.Localize(Localization.rowIds.ID_LABEL_EDIT_WORKBOOK)); if (GUILayout.Button(content, GUILayout.Height(EditorGUILayoutEx.ButtonHeight), GUILayout.Width(EditorGUILayoutEx.ButtonWidth))) { var ed = EditorWindow.GetWindow<Google2uEditor>(); Google2u.ActiveWorkbookWindow = ed; ed.Workbook = this; ed.Layout = in_layout; ed.title = WorkbookName; ed.wantsMouseMove = true; } GUILayout.FlexibleSpace(); if (showExport) { var oldEnabled = GUI.enabled; if (bAllWorksheetsValid == false) GUI.enabled = false; content = new GUIContent(in_layout.SaveButton, Google2u.LocalizationInfo.Localize(Localization.rowIds.ID_LABEL_EXPORT)); if (GUILayout.Button(content, GUILayout.Height(EditorGUILayoutEx.ButtonHeight), GUILayout.Width(EditorGUILayoutEx.ButtonWidth))) { DoExport(exportsheets); } GUI.enabled = oldEnabled; } EditorGUILayout.EndHorizontal(); } else { EditorGUILayout.LabelField(Google2u.LocalizationInfo.Localize(Localization.rowIds.ID_MESSAGE_NO_WORKSHEETS)); } break; } } in_layout.EndFadeArea(); return ret; }
protected void DrawSpreadsheetOptions(EditorGUILayoutEx in_layout, ExportType in_exportType, Google2uWorksheet in_activeWorksheet) { ShowSpreadsheetOptions = Google2uGUIUtil.GetBool("workbook" + WorkbookName.Replace(' ', '_') + "_OptionsOpen", ShowSpreadsheetOptions); var showWorkbookOptions = in_layout.BeginFadeArea(ShowSpreadsheetOptions, Google2u.LocalizationInfo.Localize(Localization.rowIds.ID_LABEL_EXPORT_OPTIONS), "workbook" + WorkbookName.Replace(' ', '_') + "_Options", in_layout.InnerBox, in_layout.InnerBoxHeader); ShowSpreadsheetOptions = showWorkbookOptions.Open; Google2uGUIUtil.SetBool("workbook" + WorkbookName.Replace(' ', '_') + "_OptionsOpen", ShowSpreadsheetOptions); if (showWorkbookOptions.Show()) { var prefix = "workbook" + WorkbookName.Replace(' ', '_') + "_Option_"; ShowSpreadsheetOptionsLegacy = Google2uGUIUtil.GetBool("workbook" + WorkbookName.Replace(' ', '_') + "_OptionsLegacyOpen", ShowSpreadsheetOptionsLegacy); var showWorkbookOptionsLegacy = in_layout.BeginFadeArea(ShowSpreadsheetOptionsLegacy, Google2u.LocalizationInfo.Localize(Localization.rowIds.ID_LABEL_LEGACY_OPTIONS), "workbook" + WorkbookName.Replace(' ', '_') + "_OptionsLegacy", in_layout.OuterBox, in_layout.OuterBoxHeader); ShowSpreadsheetOptionsLegacy = showWorkbookOptionsLegacy.Open; Google2uGUIUtil.SetBool("workbook" + WorkbookName.Replace(' ', '_') + "_OptionsLegacyOpen", ShowSpreadsheetOptionsLegacy); if (showWorkbookOptionsLegacy.Show()) { EditorGUILayoutEx.ToggleInput( Google2u.LocalizationInfo.Localize(Localization.rowIds.ID_LABEL_LOWERCASE_HEADER), ref ExportOptions.LowercaseHeader, prefix + "LowercaseHeader"); } in_layout.EndFadeArea(); ShowSpreadsheetOptionsWhitespace = Google2uGUIUtil.GetBool("workbook" + WorkbookName.Replace(' ', '_') + "_OptionsWhitespaceOpen", ShowSpreadsheetOptionsWhitespace); var showWorkbookOptionsWhitespace = in_layout.BeginFadeArea(ShowSpreadsheetOptionsWhitespace, Google2u.LocalizationInfo.Localize(Localization.rowIds.ID_LABEL_WHITESPACE), "workbook" + WorkbookName.Replace(' ', '_') + "_OptionsWhitespace", in_layout.OuterBox, in_layout.OuterBoxHeader); ShowSpreadsheetOptionsWhitespace = showWorkbookOptionsWhitespace.Open; Google2uGUIUtil.SetBool("workbook" + WorkbookName.Replace(' ', '_') + "_OptionsWhitespaceOpen", ShowSpreadsheetOptionsWhitespace); if (showWorkbookOptionsWhitespace.Show()) { EditorGUILayoutEx.ToggleInput( Google2u.LocalizationInfo.Localize(Localization.rowIds.ID_LABEL_TRIM_STRINGS), ref ExportOptions.TrimStrings, prefix + "TrimStrings"); EditorGUILayoutEx.ToggleInput( Google2u.LocalizationInfo.Localize(Localization.rowIds.ID_LABEL_TRIM_STRING_ARRAYS), ref ExportOptions.TrimStringArrays, prefix + "TrimStringArrays"); } in_layout.EndFadeArea(); ShowSpreadsheetOptionsArrayDelimiters = Google2uGUIUtil.GetBool( "workbook" + WorkbookName.Replace(' ', '_') + "_OptionsArrayDelimitersOpen", ShowSpreadsheetOptionsArrayDelimiters); var showWorkbookOptionsArrayDelimiters = in_layout.BeginFadeArea(ShowSpreadsheetOptionsArrayDelimiters, Google2u.LocalizationInfo.Localize(Localization.rowIds.ID_LABEL_ARRAY_DELIMITERS), "workbook" + WorkbookName.Replace(' ', '_') + "_OptionsArrayDelimiters", in_layout.OuterBox, in_layout.OuterBoxHeader); ShowSpreadsheetOptionsArrayDelimiters = showWorkbookOptionsArrayDelimiters.Open; Google2uGUIUtil.SetBool("workbook" + WorkbookName.Replace(' ', '_') + "_OptionsArrayDelimitersOpen", ShowSpreadsheetOptionsArrayDelimiters); if (showWorkbookOptionsArrayDelimiters.Show()) { EditorGUILayout.BeginHorizontal(); GUILayout.Label(Google2u.LocalizationInfo.Localize(Localization.rowIds.ID_LABEL_NON_STRING)); var newArrayDelimiters = EditorGUILayout.Popup(ExportOptions.ArrayDelimiters, ExportOptions.DelimiterOptionStrings, GUILayout.Width(100)); GUILayout.FlexibleSpace(); switch (newArrayDelimiters) { case 0: // , - Comma GUILayout.Label("Example Int Array - 1,2,3,4"); break; case 1: // | - Pipe GUILayout.Label("Example Int Array - 1|2|3|4"); break; case 2: // - Space GUILayout.Label("Example Int Array - 1 2 3 4"); break; } EditorGUILayout.EndHorizontal(); if (newArrayDelimiters != ExportOptions.ArrayDelimiters) { Google2uGUIUtil.SetInt(prefix + "ArrayDelimiters", newArrayDelimiters); ExportOptions.ArrayDelimiters = newArrayDelimiters; in_activeWorksheet.UpdateValidation = true; } EditorGUILayout.BeginHorizontal(); GUILayout.Label(Google2u.LocalizationInfo.Localize(Localization.rowIds.ID_LABEL_STRINGS)); var newStringArrayDelimiters = EditorGUILayout.Popup(ExportOptions.StringArrayDelimiters, ExportOptions.DelimiterOptionStrings, GUILayout.Width(100)); GUILayout.FlexibleSpace(); switch (newStringArrayDelimiters) { case 0: // , - Comma GUILayout.Label("Example String Array - Hello,Hola,Bonjour"); break; case 1: // | - Pipe GUILayout.Label("Example String Array - Hello|Hola|Bonjour"); break; case 2: // - Space GUILayout.Label("Example String Array - Hello Hola Bonjour"); break; } EditorGUILayout.EndHorizontal(); if (newStringArrayDelimiters != ExportOptions.StringArrayDelimiters) { Google2uGUIUtil.SetInt(prefix + "StringArrayDelimiters", newStringArrayDelimiters); ExportOptions.StringArrayDelimiters = newStringArrayDelimiters; in_activeWorksheet.UpdateValidation = true; } EditorGUILayout.BeginHorizontal(); GUILayout.Label(Google2u.LocalizationInfo.Localize(Localization.rowIds.ID_LABEL_COMPLEX_TYPES)); var newComplexTypeDelimiters = EditorGUILayout.Popup(ExportOptions.ComplexTypeDelimiters, ExportOptions.DelimiterOptionStrings, GUILayout.Width(100)); GUILayout.FlexibleSpace(); switch (newComplexTypeDelimiters) { case 0: // , - Comma GUILayout.Label("Example Vector - 1,2,3"); break; case 1: // | - Pipe GUILayout.Label("Example Vector - 1|2|3"); break; case 2: // - Space GUILayout.Label("Example Vector - 1 2 3"); break; } EditorGUILayout.EndHorizontal(); if (newComplexTypeDelimiters != ExportOptions.ComplexTypeDelimiters) { Google2uGUIUtil.SetInt(prefix + "ComplexTypeDelimiters", newComplexTypeDelimiters); ExportOptions.ComplexTypeDelimiters = newComplexTypeDelimiters; in_activeWorksheet.UpdateValidation = true; } var tmpDelimStrings = new List<string>(); var tmpDelimInts = new List<int>(); var curDelim = 0; for (var i = 0; i < ExportOptions.DelimiterOptionStrings.Length; ++i) { if (i == ExportOptions.ComplexTypeDelimiters) continue; tmpDelimStrings.Add(ExportOptions.DelimiterOptionStrings[i]); if (ExportOptions.ComplexArrayDelimiters == i) curDelim = tmpDelimInts.Count; tmpDelimInts.Add(i); } EditorGUILayout.BeginHorizontal(); GUILayout.Label(Google2u.LocalizationInfo.Localize(Localization.rowIds.ID_LABEL_COMPLEX_ARRAYS)); var newComplexArrayDelimiters = EditorGUILayout.Popup(curDelim, tmpDelimStrings.ToArray(), GUILayout.Width(100)); newComplexArrayDelimiters = tmpDelimInts[newComplexArrayDelimiters]; GUILayout.FlexibleSpace(); switch (newComplexArrayDelimiters) { case 0: // , - Comma { switch (ExportOptions.ComplexTypeDelimiters) { case 0: // , - Comma GUILayout.Label("Cannot use Comma as both Complex Type and Complex Array delimiters"); break; case 1: // | - Pipe GUILayout.Label("Example Vector Array - 1,2,3|4,5,6|7,8,9"); break; case 2: // - Space GUILayout.Label("Example Vector Array - 1,2,3 4,5,6 7,8,9"); break; } } break; case 1: // | - Pipe { switch (ExportOptions.ComplexTypeDelimiters) { case 0: // , - Comma GUILayout.Label("Example Vector Array - 1|2|3,4|5|6,7|8|9"); break; case 1: // | - Pipe GUILayout.Label("Cannot use Pipe as both Complex Type and Complex Array delimiters"); break; case 2: // - Space GUILayout.Label("Example Vector Array - 1|2|3 4|5|6 7|8|9"); break; } } break; case 2: // - Space { switch (ExportOptions.ComplexTypeDelimiters) { case 0: // , - Comma GUILayout.Label("Example Vector Array - 1 2 3,4 5 6,7 8 9"); break; case 1: // | - Pipe GUILayout.Label("Example Vector Array - 1 2 3|4 5 6|7 8 9"); break; case 2: // - Space GUILayout.Label("Cannot use Space as both Complex Type and Complex Array delimiters"); break; } } break; } EditorGUILayout.EndHorizontal(); if (newComplexArrayDelimiters != ExportOptions.ComplexArrayDelimiters) { Google2uGUIUtil.SetInt(prefix + "ComplexArrayDelimiters", newComplexArrayDelimiters); ExportOptions.ComplexArrayDelimiters = newComplexArrayDelimiters; } } in_layout.EndFadeArea(); if (in_exportType == ExportType.ObjectDatabase) { ShowSpreadsheetOptionsObjectDB = Google2uGUIUtil.GetBool("workbook" + WorkbookName.Replace(' ', '_') + "_OptionsObjectDBOpen", ShowSpreadsheetOptionsObjectDB); var showWorkbookOptionsObjectDB = in_layout.BeginFadeArea(ShowSpreadsheetOptionsObjectDB, Google2u.LocalizationInfo.Localize(Localization.rowIds.ID_LABEL_GAME_OBJECT_DATABASE) + " " + Google2u.LocalizationInfo.Localize(Localization.rowIds.ID_LABEL_CREATION_OPTIONS), "workbook" + WorkbookName.Replace(' ', '_') + "_OptionsObjectDB", in_layout.OuterBox, in_layout.OuterBoxHeader); ShowSpreadsheetOptionsObjectDB = showWorkbookOptionsObjectDB.Open; Google2uGUIUtil.SetBool("workbook" + WorkbookName.Replace(' ', '_') + "_OptionsObjectDBOpen", ShowSpreadsheetOptionsObjectDB); if (showWorkbookOptionsObjectDB.Show()) { EditorGUILayout.LabelField("Global Options"); EditorGUILayout.Separator(); ExportOptions.ExportDatabaseGameObject = EditorGUILayout.ObjectField( Google2u.LocalizationInfo.Localize(Localization.rowIds.ID_LABEL_GAME_OBJECT_DATABASE) + ": ", ExportOptions.ExportDatabaseGameObject, typeof (GameObject), true) as GameObject; EditorGUILayoutEx.ToggleInput( Google2u.LocalizationInfo.Localize(Localization.rowIds.ID_LABEL_GENERATE_PLAYMAKER), ref ExportOptions.GeneratePlaymakerActions, prefix + "GeneratePlaymakerActions"); EditorGUILayoutEx.ToggleInput( Google2u.LocalizationInfo.Localize(Localization.rowIds.ID_LABEL_PERSIST_SCENE_LOADING), ref ExportOptions.UseDoNotDestroy, prefix + "UseDoNotDestroy"); var oldObjectDBCullColumns = ExportOptions.ObjectDBCullColumns; EditorGUILayoutEx.ToggleInput( Google2u.LocalizationInfo.Localize(Localization.rowIds.ID_LABEL_CULL_COLUMNS), ref ExportOptions.ObjectDBCullColumns, prefix + "ObjectDBCullColumns"); if (oldObjectDBCullColumns != ExportOptions.ObjectDBCullColumns) in_activeWorksheet.UpdateValidation = true; var oldObjectDBCullRows = ExportOptions.ObjectDBCullRows; EditorGUILayoutEx.ToggleInput( Google2u.LocalizationInfo.Localize(Localization.rowIds.ID_LABEL_CULL_ROWS), ref ExportOptions.ObjectDBCullRows, prefix + "ObjectDBCullRows"); if (oldObjectDBCullRows != ExportOptions.ObjectDBCullRows) in_activeWorksheet.UpdateValidation = true; EditorGUILayout.Separator(); EditorGUILayout.LabelField("Local Options - " + in_activeWorksheet.WorksheetName); EditorGUILayout.Separator(); var overrideObject = EditorGUILayout.ObjectField( Google2u.LocalizationInfo.Localize(Localization.rowIds.ID_LABEL_GAME_OBJECT_DATABASE) + ": ", ExportOptions.GetOverrideObjectDatabaseGameObject(in_activeWorksheet.WorksheetName), typeof (GameObject), true) as GameObject; if (overrideObject != null) ExportOptions.SetOverrideObjectDatabaseGameObject(in_activeWorksheet.WorksheetName, overrideObject); } in_layout.EndFadeArea(); } if (in_exportType == ExportType.StaticDatabase) { ShowSpreadsheetOptionsStaticDB = Google2uGUIUtil.GetBool("workbook" + WorkbookName.Replace(' ', '_') + "_OptionsStaticDBOpen", ShowSpreadsheetOptionsObjectDB); var showWorkbookOptionsStaticDB = in_layout.BeginFadeArea(ShowSpreadsheetOptionsStaticDB, Google2u.LocalizationInfo.Localize(Localization.rowIds.ID_LABEL_STATIC_DATABASE) + " " + Google2u.LocalizationInfo.Localize(Localization.rowIds.ID_LABEL_CREATION_OPTIONS), "workbook" + WorkbookName.Replace(' ', '_') + "_OptionsStaticDB", in_layout.OuterBox, in_layout.OuterBoxHeader); ShowSpreadsheetOptionsStaticDB = showWorkbookOptionsStaticDB.Open; Google2uGUIUtil.SetBool("workbook" + WorkbookName.Replace(' ', '_') + "_OptionsStaticDBOpen", ShowSpreadsheetOptionsStaticDB); if (showWorkbookOptionsStaticDB.Show()) { var oldStaticDBCullColumns = ExportOptions.StaticDBCullColumns; EditorGUILayoutEx.ToggleInput( Google2u.LocalizationInfo.Localize(Localization.rowIds.ID_LABEL_CULL_COLUMNS), ref ExportOptions.StaticDBCullColumns, prefix + "StaticDBCullColumns"); if (oldStaticDBCullColumns != ExportOptions.StaticDBCullColumns) in_activeWorksheet.UpdateValidation = true; var oldStaticDBCullRows = ExportOptions.StaticDBCullRows; EditorGUILayoutEx.ToggleInput( Google2u.LocalizationInfo.Localize(Localization.rowIds.ID_LABEL_CULL_ROWS), ref ExportOptions.StaticDBCullRows, prefix + "StaticDBCullRows"); if (oldStaticDBCullRows != ExportOptions.StaticDBCullRows) in_activeWorksheet.UpdateValidation = true; } in_layout.EndFadeArea(); } if (in_exportType == ExportType.JSON) { ShowSpreadsheetOptionsJSON = Google2uGUIUtil.GetBool("workbook" + WorkbookName.Replace(' ', '_') + "_OptionsJSONOpen", ShowSpreadsheetOptionsJSON); var showWorkbookOptionsJSON = in_layout.BeginFadeArea(ShowSpreadsheetOptionsJSON, Google2u.LocalizationInfo.Localize(Localization.rowIds.ID_LABEL_JSON_FORMATTING), "workbook" + WorkbookName.Replace(' ', '_') + "_OptionsJSON", in_layout.OuterBox, in_layout.OuterBoxHeader); ShowSpreadsheetOptionsJSON = showWorkbookOptionsJSON.Open; Google2uGUIUtil.SetBool("workbook" + WorkbookName.Replace(' ', '_') + "_OptionsJSONOpen", ShowSpreadsheetOptionsJSON); if (showWorkbookOptionsJSON.Show()) { var oldEscapeUnicode = ExportOptions.EscapeUnicode; EditorGUILayoutEx.ToggleInput( Google2u.LocalizationInfo.Localize(Localization.rowIds.ID_LABEL_ESCAPE_UNICODE), ref ExportOptions.EscapeUnicode, prefix + "EscapeUnicode"); if (oldEscapeUnicode != ExportOptions.EscapeUnicode) in_activeWorksheet.UpdateValidation = true; var oldJSONCellArrayToString = ExportOptions.JSONCellArrayToString; EditorGUILayoutEx.ToggleInput( Google2u.LocalizationInfo.Localize(Localization.rowIds.ID_LABEL_CONVERT_CELL_ARRAYS), ref ExportOptions.JSONCellArrayToString, prefix + "JSONCellArrayToString"); if (oldJSONCellArrayToString != ExportOptions.JSONCellArrayToString) in_activeWorksheet.UpdateValidation = true; var oldJSONExportClass = ExportOptions.JSONExportClass; EditorGUILayoutEx.ToggleInput( Google2u.LocalizationInfo.Localize(Localization.rowIds.ID_LABEL_JSON_EXPORT_CLASS), ref ExportOptions.JSONExportClass, prefix + "JSONExportClass"); if (oldJSONExportClass != ExportOptions.JSONExportClass) in_activeWorksheet.UpdateValidation = true; var oldExportType = ExportOptions.JSONExportType; ExportOptions.JSONExportType = (Google2uExportOptions.ExportType) EditorGUILayout.EnumPopup( Google2u.LocalizationInfo.Localize(Localization.rowIds.ID_LABEL_JSON_EXPORT_TYPE) + ":", ExportOptions.JSONExportType); if (oldExportType != ExportOptions.JSONExportType) { Google2uGUIUtil.SetEnum(prefix + "JSONExportType", ExportOptions.JSONExportType); in_activeWorksheet.UpdateValidation = true; } var oldJSONCullColumns = ExportOptions.JSONCullColumns; EditorGUILayoutEx.ToggleInput( Google2u.LocalizationInfo.Localize(Localization.rowIds.ID_LABEL_CULL_COLUMNS), ref ExportOptions.JSONCullColumns, prefix + "JSONCullColumns"); if (oldJSONCullColumns != ExportOptions.JSONCullColumns) in_activeWorksheet.UpdateValidation = true; var oldJSONCullRows = ExportOptions.JSONCullRows; EditorGUILayoutEx.ToggleInput( Google2u.LocalizationInfo.Localize(Localization.rowIds.ID_LABEL_CULL_ROWS), ref ExportOptions.JSONCullRows, prefix + "JSONCullRows"); if (oldJSONCullRows != ExportOptions.JSONCullRows) in_activeWorksheet.UpdateValidation = true; var oldJSONIgnoreIDColumn = ExportOptions.JSONIgnoreIDColumn; EditorGUILayoutEx.ToggleInput( "Ignore ID Column", ref ExportOptions.JSONIgnoreIDColumn, prefix + "JSONIgnoreIDColumn"); if (oldJSONIgnoreIDColumn != ExportOptions.JSONIgnoreIDColumn) in_activeWorksheet.UpdateValidation = true; } in_layout.EndFadeArea(); ShowSpreadsheetPreviewJSON = Google2uGUIUtil.GetBool("workbook" + WorkbookName.Replace(' ', '_') + "_OptionsJSONPreviewOpen", ShowSpreadsheetPreviewJSON); var showWorkbookPreviewJSON = in_layout.BeginFadeArea(ShowSpreadsheetPreviewJSON, Google2u.LocalizationInfo.Localize(Localization.rowIds.ID_LABEL_JSON_OBJECT_PREVIEW), "workbook" + WorkbookName.Replace(' ', '_') + "_OptionsJSONPreviewOpen", in_layout.OuterBox, in_layout.OuterBoxHeader); ShowSpreadsheetPreviewJSON = showWorkbookPreviewJSON.Open; Google2uGUIUtil.SetBool("workbook" + WorkbookName.Replace(' ', '_') + "_OptionsJSONPreviewOpen", ShowSpreadsheetPreviewJSON); if (showWorkbookPreviewJSON.Show()) { var oldEnabled = GUI.enabled; if (!in_activeWorksheet.IsDataValid) GUI.enabled = false; GUI.SetNextControlName("JSONPREVIEW"); if ( GUILayout.Button( Google2u.LocalizationInfo.Localize(Localization.rowIds.ID_LABEL_GENERATE_PREVIEW))) { _JSONPreviewString = Google2u.ExportJsonObjectString(in_activeWorksheet, ExportOptions, true); } var textSize = in_layout.CellHeader.CalcSize(new GUIContent(_JSONPreviewString)); _JSONPreviewScrollPos = EditorGUILayout.BeginScrollView(_JSONPreviewScrollPos, false, false, GUILayout.MinHeight(250)); var newString = EditorGUILayout.TextArea(_JSONPreviewString, GUILayout.ExpandHeight(true), GUILayout.ExpandWidth(true), GUILayout.MinWidth(textSize.x), GUILayout.MinHeight(textSize.y)); if (newString != _JSONPreviewString) GUI.FocusControl("JSONPREVIEW"); GUI.enabled = oldEnabled; EditorGUILayout.EndScrollView(); } in_layout.EndFadeArea(); ShowSpreadsheetPreviewJSONClass = Google2uGUIUtil.GetBool( "workbook" + WorkbookName.Replace(' ', '_') + "_OptionsJSONPreviewClassOpen", ShowSpreadsheetPreviewJSONClass); var showWorkbookPreviewJSONClass = in_layout.BeginFadeArea(ShowSpreadsheetPreviewJSONClass, Google2u.LocalizationInfo.Localize(Localization.rowIds.ID_LABEL_JSON_CLASS_PREVIEW), "workbook" + WorkbookName.Replace(' ', '_') + "_OptionsJSONPreviewClassOpen", in_layout.OuterBox, in_layout.OuterBoxHeader); ShowSpreadsheetPreviewJSONClass = showWorkbookPreviewJSONClass.Open; Google2uGUIUtil.SetBool( "workbook" + WorkbookName.Replace(' ', '_') + "_OptionsJSONPreviewClassOpen", ShowSpreadsheetPreviewJSONClass); if (showWorkbookPreviewJSONClass.Show()) { var oldEnabled = GUI.enabled; if (!in_activeWorksheet.IsDataValid) GUI.enabled = false; GUI.SetNextControlName("JSONPREVIEWCLASS"); if ( GUILayout.Button( Google2u.LocalizationInfo.Localize(Localization.rowIds.ID_LABEL_GENERATE_CLASS))) { _JSONPreviewClassString = Google2u.ExportJsonObjectClassString(in_activeWorksheet, ExportOptions); } var textSize = in_layout.CellHeader.CalcSize(new GUIContent(_JSONPreviewClassString)); _JSONPreviewClassScrollPos = EditorGUILayout.BeginScrollView(_JSONPreviewClassScrollPos, false, false, GUILayout.MinHeight(250)); var newString = EditorGUILayout.TextArea(_JSONPreviewClassString, GUILayout.ExpandHeight(true), GUILayout.ExpandWidth(true), GUILayout.MinWidth(textSize.x), GUILayout.MinHeight(textSize.y)); if (newString != _JSONPreviewClassString) GUI.FocusControl("JSONPREVIEWCLASS"); GUI.enabled = oldEnabled; EditorGUILayout.EndScrollView(); } in_layout.EndFadeArea(); } if (in_exportType == ExportType.CSV) { ShowSpreadsheetOptionsCSV = Google2uGUIUtil.GetBool("workbook" + WorkbookName.Replace(' ', '_') + "_OptionsCSVOpen", ShowSpreadsheetOptionsCSV); var showWorkbookOptionsCSV = in_layout.BeginFadeArea(ShowSpreadsheetOptionsCSV, Google2u.LocalizationInfo.Localize(Localization.rowIds.ID_LABEL_CSV_FORMATTING), "workbook" + WorkbookName.Replace(' ', '_') + "_OptionsCSV", in_layout.OuterBox, in_layout.OuterBoxHeader); ShowSpreadsheetOptionsCSV = showWorkbookOptionsCSV.Open; Google2uGUIUtil.SetBool("workbook" + WorkbookName.Replace(' ', '_') + "_OptionsCSVOpen", ShowSpreadsheetOptionsCSV); if (showWorkbookOptionsCSV.Show()) { var oldEscapeCSVStrings = ExportOptions.EscapeCSVStrings; EditorGUILayoutEx.ToggleInput( Google2u.LocalizationInfo.Localize(Localization.rowIds.ID_LABEL_ESCAPE_STRINGS), ref ExportOptions.EscapeCSVStrings, prefix + "EscapeCSVStrings"); if (oldEscapeCSVStrings != ExportOptions.EscapeCSVStrings) in_activeWorksheet.UpdateValidation = true; var oldCSVCullColumns = ExportOptions.CSVCullColumns; EditorGUILayoutEx.ToggleInput( Google2u.LocalizationInfo.Localize(Localization.rowIds.ID_LABEL_CULL_COLUMNS), ref ExportOptions.CSVCullColumns, prefix + "CSVCullColumns"); if (oldCSVCullColumns != ExportOptions.CSVCullColumns) in_activeWorksheet.UpdateValidation = true; var oldCSVCullRows = ExportOptions.CSVCullRows; EditorGUILayoutEx.ToggleInput( Google2u.LocalizationInfo.Localize(Localization.rowIds.ID_LABEL_CULL_ROWS), ref ExportOptions.CSVCullRows, prefix + "CSVCullRows"); if (oldCSVCullRows != ExportOptions.CSVCullRows) in_activeWorksheet.UpdateValidation = true; var oldCSVConvertLineBreaks = ExportOptions.CSVConvertLineBreaks; EditorGUILayoutEx.ToggleInput( Google2u.LocalizationInfo.Localize(Localization.rowIds.ID_LABEL_ESCAPE_LINE_BREAKS), ref ExportOptions.CSVConvertLineBreaks, prefix + "CSVConvertLineBreaks"); if (oldCSVConvertLineBreaks != ExportOptions.CSVConvertLineBreaks) in_activeWorksheet.UpdateValidation = true; } in_layout.EndFadeArea(); ShowSpreadsheetPreviewCSV = Google2uGUIUtil.GetBool("workbook" + WorkbookName.Replace(' ', '_') + "_OptionsCSVPreviewOpen", ShowSpreadsheetPreviewCSV); var showWorkbookPreviewCSV = in_layout.BeginFadeArea(ShowSpreadsheetPreviewCSV, Google2u.LocalizationInfo.Localize(Localization.rowIds.ID_LABEL_CSV_PREVIEW), "workbook" + WorkbookName.Replace(' ', '_') + "_OptionsCSVPreviewOpen", in_layout.OuterBox, in_layout.OuterBoxHeader); ShowSpreadsheetPreviewCSV = showWorkbookPreviewCSV.Open; Google2uGUIUtil.SetBool("workbook" + WorkbookName.Replace(' ', '_') + "_OptionsCSVPreviewOpen", ShowSpreadsheetPreviewCSV); if (showWorkbookPreviewCSV.Show()) { var oldEnabled = GUI.enabled; if (!in_activeWorksheet.IsDataValid) GUI.enabled = false; GUI.SetNextControlName("CSVPREVIEW"); if ( GUILayout.Button( Google2u.LocalizationInfo.Localize(Localization.rowIds.ID_LABEL_GENERATE_PREVIEW))) { _CSVPreviewString = Google2u.ExportCsvString(in_activeWorksheet, ExportOptions); } var textSize = in_layout.CellHeader.CalcSize(new GUIContent(_CSVPreviewString)); _CSVPreviewScrollPos = EditorGUILayout.BeginScrollView(_CSVPreviewScrollPos, false, false, GUILayout.MinHeight(250)); var newString = EditorGUILayout.TextArea(_CSVPreviewString, GUILayout.ExpandHeight(true), GUILayout.ExpandWidth(true), GUILayout.MinWidth(textSize.x), GUILayout.MinHeight(textSize.y)); if (newString != _CSVPreviewString) GUI.FocusControl("CSVPREVIEW"); GUI.enabled = oldEnabled; EditorGUILayout.EndScrollView(); } in_layout.EndFadeArea(); } if (in_exportType == ExportType.NGUI) { ShowSpreadsheetOptionsNGUI = Google2uGUIUtil.GetBool("workbook" + WorkbookName.Replace(' ', '_') + "_OptionsNGUIOpen", ShowSpreadsheetOptionsNGUI); var showWorkbookOptionsNGUI = in_layout.BeginFadeArea(ShowSpreadsheetOptionsNGUI, Google2u.LocalizationInfo.Localize(Localization.rowIds.ID_LABEL_NGUI_FORMATTING), "workbook" + WorkbookName.Replace(' ', '_') + "_OptionsNGUI", in_layout.OuterBox, in_layout.OuterBoxHeader); ShowSpreadsheetOptionsNGUI = showWorkbookOptionsNGUI.Open; Google2uGUIUtil.SetBool("workbook" + WorkbookName.Replace(' ', '_') + "_OptionsNGUIOpen", ShowSpreadsheetOptionsNGUI); if (showWorkbookOptionsNGUI.Show()) { var oldEscapeNGUIStrings = ExportOptions.EscapeNGUIStrings; EditorGUILayoutEx.ToggleInput( Google2u.LocalizationInfo.Localize(Localization.rowIds.ID_LABEL_ESCAPE_STRINGS), ref ExportOptions.EscapeNGUIStrings, prefix + "EscapeNGUIStrings"); if (oldEscapeNGUIStrings != ExportOptions.EscapeNGUIStrings) in_activeWorksheet.UpdateValidation = true; var oldNGUICullColumns = ExportOptions.NGUICullColumns; EditorGUILayoutEx.ToggleInput( Google2u.LocalizationInfo.Localize(Localization.rowIds.ID_LABEL_CULL_COLUMNS), ref ExportOptions.NGUICullColumns, prefix + "NGUICullColumns"); if (oldNGUICullColumns != ExportOptions.NGUICullColumns) in_activeWorksheet.UpdateValidation = true; var oldNGUICullRows = ExportOptions.NGUICullRows; EditorGUILayoutEx.ToggleInput( Google2u.LocalizationInfo.Localize(Localization.rowIds.ID_LABEL_CULL_ROWS), ref ExportOptions.NGUICullRows, prefix + "NGUICullRows"); if (oldNGUICullRows != ExportOptions.NGUICullRows) in_activeWorksheet.UpdateValidation = true; var oldNGUIConvertLineBreaks = ExportOptions.NGUIConvertLineBreaks; EditorGUILayoutEx.ToggleInput( Google2u.LocalizationInfo.Localize(Localization.rowIds.ID_LABEL_ESCAPE_LINE_BREAKS), ref ExportOptions.NGUIConvertLineBreaks, prefix + "NGUIConvertLineBreaks"); if (oldNGUIConvertLineBreaks != ExportOptions.NGUIConvertLineBreaks) in_activeWorksheet.UpdateValidation = true; var oldNGUILegacyExport = ExportOptions.NGUILegacyExport; // TODO: Localize EditorGUILayoutEx.ToggleInput( "Use NGUI Legacy Export", ref ExportOptions.NGUILegacyExport, prefix + "NGUILegacyExport"); if (oldNGUILegacyExport != ExportOptions.NGUILegacyExport) in_activeWorksheet.UpdateValidation = true; } in_layout.EndFadeArea(); ShowSpreadsheetPreviewNGUI = Google2uGUIUtil.GetBool("workbook" + WorkbookName.Replace(' ', '_') + "_OptionsNGUIPreviewOpen", ShowSpreadsheetPreviewNGUI); var showWorkbookPreviewNGUI = in_layout.BeginFadeArea(ShowSpreadsheetPreviewNGUI, Google2u.LocalizationInfo.Localize(Localization.rowIds.ID_LABEL_NGUI_PREVIEW), "workbook" + WorkbookName.Replace(' ', '_') + "_OptionsNGUIPreviewOpen", in_layout.OuterBox, in_layout.OuterBoxHeader); ShowSpreadsheetPreviewNGUI = showWorkbookPreviewNGUI.Open; Google2uGUIUtil.SetBool("workbook" + WorkbookName.Replace(' ', '_') + "_OptionsNGUIPreviewOpen", ShowSpreadsheetPreviewNGUI); if (showWorkbookPreviewNGUI.Show()) { var oldEnabled = GUI.enabled; if (!in_activeWorksheet.IsDataValid) GUI.enabled = false; GUI.SetNextControlName("NGUIPREVIEW"); if ( GUILayout.Button( Google2u.LocalizationInfo.Localize(Localization.rowIds.ID_LABEL_GENERATE_PREVIEW))) { if (ExportOptions.NGUILegacyExport) _NGUIPreviewString = Google2u.ExportNGUILegacyString(in_activeWorksheet, ExportOptions); else _NGUIPreviewString = Google2u.ExportNGUIString(in_activeWorksheet, ExportOptions); } var textSize = in_layout.CellHeader.CalcSize(new GUIContent(_NGUIPreviewString)); _NGUIPreviewScrollPos = EditorGUILayout.BeginScrollView(_NGUIPreviewScrollPos, false, false, GUILayout.MinHeight(250)); var newString = EditorGUILayout.TextArea(_NGUIPreviewString, GUILayout.ExpandHeight(true), GUILayout.ExpandWidth(true), GUILayout.MinWidth(textSize.x), GUILayout.MinHeight(textSize.y)); if (newString != _NGUIPreviewString) GUI.FocusControl("NGUIPREVIEW"); GUI.enabled = oldEnabled; EditorGUILayout.EndScrollView(); } in_layout.EndFadeArea(); } if (in_exportType == ExportType.XML) { ShowSpreadsheetOptionsXML = Google2uGUIUtil.GetBool("workbook" + WorkbookName.Replace(' ', '_') + "_OptionsXMLOpen", ShowSpreadsheetOptionsXML); var showWorkbookOptionsXML = in_layout.BeginFadeArea(ShowSpreadsheetOptionsXML, Google2u.LocalizationInfo.Localize(Localization.rowIds.ID_LABEL_XML_FORMATTING), "workbook" + WorkbookName.Replace(' ', '_') + "_OptionsXML", in_layout.OuterBox, in_layout.OuterBoxHeader); ShowSpreadsheetOptionsXML = showWorkbookOptionsXML.Open; Google2uGUIUtil.SetBool("workbook" + WorkbookName.Replace(' ', '_') + "_OptionsXMLOpen", ShowSpreadsheetOptionsXML); if (showWorkbookOptionsXML.Show()) { var oldXMLCellArrayToString = ExportOptions.XMLCellArrayToString; EditorGUILayoutEx.ToggleInput( Google2u.LocalizationInfo.Localize(Localization.rowIds.ID_LABEL_CONVERT_CELL_ARRAYS), ref ExportOptions.XMLCellArrayToString, prefix + "XMLCellArrayToString"); if (oldXMLCellArrayToString != ExportOptions.XMLCellArrayToString) in_activeWorksheet.UpdateValidation = true; var oldXMLCullColumns = ExportOptions.XMLCullColumns; EditorGUILayoutEx.ToggleInput( Google2u.LocalizationInfo.Localize(Localization.rowIds.ID_LABEL_CULL_COLUMNS), ref ExportOptions.XMLCullColumns, prefix + "XMLCullColumns"); if (oldXMLCullColumns != ExportOptions.XMLCullColumns) in_activeWorksheet.UpdateValidation = true; var oldXMLCullRows = ExportOptions.XMLCullRows; EditorGUILayoutEx.ToggleInput( Google2u.LocalizationInfo.Localize(Localization.rowIds.ID_LABEL_CULL_ROWS), ref ExportOptions.XMLCullRows, prefix + "XMLCullRows"); if (oldXMLCullRows != ExportOptions.XMLCullRows) in_activeWorksheet.UpdateValidation = true; } in_layout.EndFadeArea(); ShowSpreadsheetPreviewXML = Google2uGUIUtil.GetBool("workbook" + WorkbookName.Replace(' ', '_') + "_OptionsXMLPreviewOpen", ShowSpreadsheetPreviewXML); var showWorkbookPreviewXML = in_layout.BeginFadeArea(ShowSpreadsheetPreviewXML, Google2u.LocalizationInfo.Localize(Localization.rowIds.ID_LABEL_XML_PREVIEW), "workbook" + WorkbookName.Replace(' ', '_') + "_OptionsXMLPreviewOpen", in_layout.OuterBox, in_layout.OuterBoxHeader); ShowSpreadsheetPreviewXML = showWorkbookPreviewXML.Open; Google2uGUIUtil.SetBool("workbook" + WorkbookName.Replace(' ', '_') + "_OptionsXMLPreviewOpen", ShowSpreadsheetPreviewXML); if (showWorkbookPreviewXML.Show()) { var oldEnabled = GUI.enabled; if (!in_activeWorksheet.IsDataValid) GUI.enabled = false; GUI.SetNextControlName("XMLPREVIEW"); if ( GUILayout.Button( Google2u.LocalizationInfo.Localize(Localization.rowIds.ID_LABEL_GENERATE_PREVIEW))) { _XMLPreviewString = Google2u.ExportXMLString(in_activeWorksheet, ExportOptions); } var textSize = in_layout.CellHeader.CalcSize(new GUIContent(_XMLPreviewString)); _XMLPreviewScrollPos = EditorGUILayout.BeginScrollView(_XMLPreviewScrollPos, false, false, GUILayout.MinHeight(250)); var newString = EditorGUILayout.TextArea(_XMLPreviewString, GUILayout.ExpandHeight(true), GUILayout.ExpandWidth(true), GUILayout.MinWidth(textSize.x), GUILayout.MinHeight(textSize.y)); if (newString != _XMLPreviewString) GUI.FocusControl("XMLPREVIEW"); GUI.enabled = oldEnabled; EditorGUILayout.EndScrollView(); } in_layout.EndFadeArea(); } } in_layout.EndFadeArea(); }
public override bool DrawGUIList(EditorGUILayoutEx in_layout, bool in_showAll) { var ret = true; var spreadsheetVisibleString = "workbook" + WorkbookName.Replace(' ', '_') + "_Visible"; SpreadsheetVisible = Google2uGUIUtil.GetBool(spreadsheetVisibleString, SpreadsheetVisible); if ((SpreadsheetVisible == false) && !in_showAll) { return(true); } ShowSpreadsheet = Google2uGUIUtil.GetBool("workbook" + WorkbookName.Replace(' ', '_') + "_Open", ShowSpreadsheet); var mainFadeArea = in_layout.BeginFadeArea(ShowSpreadsheet, WorkbookName, "workbook" + WorkbookName.Replace(' ', '_'), in_layout.OuterBox, in_layout.OuterBoxHeader, spreadsheetVisibleString); ShowSpreadsheet = mainFadeArea.Open; Google2uGUIUtil.SetBool("workbook" + WorkbookName.Replace(' ', '_') + "_Open", ShowSpreadsheet); // We have to do this here. Otherwise there is a threading issue (Can't initialize from EditorPreferences outside the main thread) if (ExportOptions == null) { ExportOptions = new Google2uExportOptions("workbook" + WorkbookName.Replace(' ', '_') + "_Option_"); } if (mainFadeArea.Show()) { var showExport = false; var exportsheets = new List <Google2uWorksheet>(); switch (WorksheetQueryStatus) { case QueryStatus.Idle: { WorksheetQueryStatus = QueryStatus.Uninitialized; } break; case QueryStatus.Querying: EditorGUILayout.LabelField( Google2u.LocalizationInfo.Localize(Localization.rowIds.ID_MESSAGE_QUERYING_WORKSHEETS) + Google2u.Ellipses); break; case QueryStatus.QueryComplete: if (WorksheetsDisplay.Length > 0) { foreach (var google2UWorksheet in WorksheetsDisplay) { if (google2UWorksheet.DrawGUIList(in_layout)) { exportsheets.Add(google2UWorksheet); showExport = true; } } if (_OpenInvalidSheet) { var stillQuerying = false; for (var i = 0; i < Worksheets.Count; ++i) { if (!exportsheets.Contains(Worksheets[i])) { continue; } if (Worksheets[i].UpdateValidation || Worksheets[i].Validating) { stillQuerying = true; } if (Worksheets[i].IsDataValid == false) { var ed = EditorWindow.GetWindow <Google2uEditor>(); Google2u.ActiveWorkbookWindow = ed; ed.Workbook = this; ed.Layout = in_layout; #if (UNITY_4) ed.title = WorkbookName; #elif (UNITY_5_0) ed.title = WorkbookName; #else ed.titleContent.text = WorkbookName; #endif ed.wantsMouseMove = true; ActiveWorksheetIndex = i; Worksheets[i].HighlightFirstInvalidCell(); _OpenInvalidSheet = false; break; } } if (!stillQuerying) { _OpenInvalidSheet = false; } } EditorGUILayout.BeginHorizontal(); var content = new GUIContent(in_layout.RefreshButton, Google2u.LocalizationInfo.Localize(Localization.rowIds.ID_LABEL_REFRESH_WORKBOOK)); if (GUILayout.Button(content, GUILayout.Height(EditorGUILayoutEx.ButtonHeight), GUILayout.Width(EditorGUILayoutEx.ButtonWidth))) { Worksheets.Clear(); WorksheetQueryStatus = QueryStatus.Uninitialized; } var querying = false; var bAllWorksheetsValid = true; foreach (var google2UWorksheet in exportsheets) { if (google2UWorksheet.IsDataValid == false) { bAllWorksheetsValid = false; } if (google2UWorksheet.WorksheetQueryStatus != QueryStatus.Idle) { querying = true; } } { var guiEnabled = GUI.enabled; if (querying) { GUI.enabled = false; } content = bAllWorksheetsValid ? new GUIContent(in_layout.ValidateButtonGreen, Google2u.LocalizationInfo.Localize( Localization.rowIds.ID_LABEL_VALIDATE_WORKBOOK)) : new GUIContent(in_layout.ValidateButtonRed, Google2u.LocalizationInfo.Localize( Localization.rowIds.ID_LABEL_VALIDATE_WORKBOOK)); if (GUILayout.Button(content, GUILayout.Height(EditorGUILayoutEx.ButtonHeight), GUILayout.Width(EditorGUILayoutEx.ButtonWidth))) { // Do Validation for the worksheets we will be exporting foreach (var google2UWorksheet in exportsheets) { google2UWorksheet.UpdateValidation = true; google2UWorksheet.Validating = true; } _OpenInvalidSheet = true; } GUI.enabled = guiEnabled; } content = new GUIContent(in_layout.EditButton, Google2u.LocalizationInfo.Localize(Localization.rowIds.ID_LABEL_EDIT_WORKBOOK)); if (GUILayout.Button(content, GUILayout.Height(EditorGUILayoutEx.ButtonHeight), GUILayout.Width(EditorGUILayoutEx.ButtonWidth))) { var ed = EditorWindow.GetWindow <Google2uEditor>(); Google2u.ActiveWorkbookWindow = ed; ed.Workbook = this; ed.Layout = in_layout; #if (UNITY_4) ed.title = WorkbookName; #elif (UNITY_5_0) ed.title = WorkbookName; #else ed.titleContent.text = WorkbookName; #endif ed.wantsMouseMove = true; } GUILayout.FlexibleSpace(); if (showExport) { var oldEnabled = GUI.enabled; if (bAllWorksheetsValid == false) { GUI.enabled = false; } content = new GUIContent(in_layout.SaveButton, Google2u.LocalizationInfo.Localize(Localization.rowIds.ID_LABEL_EXPORT)); if (GUILayout.Button(content, GUILayout.Height(EditorGUILayoutEx.ButtonHeight), GUILayout.Width(EditorGUILayoutEx.ButtonWidth))) { DoExport(exportsheets); } GUI.enabled = oldEnabled; } EditorGUILayout.EndHorizontal(); } else { EditorGUILayout.LabelField( Google2u.LocalizationInfo.Localize(Localization.rowIds.ID_MESSAGE_NO_WORKSHEETS)); } break; } } in_layout.EndFadeArea(); return(ret); }
public override bool DrawGUIList(EditorGUILayoutEx in_layout, bool in_showAll) { var ret = true; ShowSpreadsheet = Google2uGUIUtil.GetBool("mworkbook" + WorkbookName.Replace(' ', '_') + "_Open", ShowSpreadsheet); var mainFadeArea = in_layout.BeginFadeArea(ShowSpreadsheet, WorkbookName, "mworkbook" + WorkbookName.Replace(' ', '_'), in_layout.OuterBox, in_layout.OuterBoxHeader); ShowSpreadsheet = mainFadeArea.Open; Google2uGUIUtil.SetBool("mworkbook" + WorkbookName.Replace(' ', '_') + "_Open", ShowSpreadsheet); if (mainFadeArea.Show()) { // We have to do this here. Otherwise there is a threading issue (Can't initialize from EditorPreferences outside the main thread) if (ExportOptions == null) { ExportOptions = new Google2uExportOptions("mworkbook" + WorkbookName.Replace(' ', '_') + "_Option_"); } var showExport = false; var exportsheets = new List<Google2uWorksheet>(); switch (WorksheetQueryStatus) { case QueryStatus.Idle: { WorksheetQueryStatus = QueryStatus.Uninitialized; } break; case QueryStatus.Querying: EditorGUILayout.LabelField( Google2u.LocalizationInfo.Localize(Localization.rowIds.ID_MESSAGE_QUERYING_WORKSHEETS) + Google2u.Ellipses); break; case QueryStatus.QueryComplete: if (Worksheets.Count > 0) { foreach (var google2UWorksheet in Worksheets) { if (google2UWorksheet.DrawGUIList(in_layout)) { exportsheets.Add(google2UWorksheet); showExport = true; } } EditorGUILayout.BeginHorizontal(); var content = new GUIContent(in_layout.RefreshButton, Google2u.LocalizationInfo.Localize(Localization.rowIds.ID_LABEL_REFRESH_WORKBOOK)); if (GUILayout.Button(content, GUILayout.Height(EditorGUILayoutEx.ButtonHeight), GUILayout.Width(EditorGUILayoutEx.ButtonWidth))) { Worksheets.Clear(); WorksheetQueryStatus = QueryStatus.Uninitialized; } var querying = false; var bAllWorksheetsValid = true; foreach (var google2UWorksheet in exportsheets) { if (google2UWorksheet.IsDataValid == false) bAllWorksheetsValid = false; if (google2UWorksheet.WorksheetQueryStatus != QueryStatus.Idle) querying = true; } { var guiEnabled = GUI.enabled; if (querying) GUI.enabled = false; content = bAllWorksheetsValid ? new GUIContent(in_layout.ValidateButtonGreen, Google2u.LocalizationInfo.Localize( Localization.rowIds.ID_LABEL_VALIDATE_WORKBOOK)) : new GUIContent(in_layout.ValidateButtonRed, Google2u.LocalizationInfo.Localize( Localization.rowIds.ID_LABEL_VALIDATE_WORKBOOK)); if (GUILayout.Button(content, GUILayout.Height(EditorGUILayoutEx.ButtonHeight), GUILayout.Width(EditorGUILayoutEx.ButtonWidth))) { // Do Validation for the worksheets we will be exporting foreach (var google2UWorksheet in exportsheets) { google2UWorksheet.UpdateValidation = true; } } GUI.enabled = guiEnabled; } content = new GUIContent(in_layout.EditButton, Google2u.LocalizationInfo.Localize(Localization.rowIds.ID_LABEL_VIEW_WORKBOOK)); if (GUILayout.Button(content, GUILayout.Height(EditorGUILayoutEx.ButtonHeight), GUILayout.Width(EditorGUILayoutEx.ButtonWidth))) { var ed = EditorWindow.GetWindow<Google2uEditor>(); ed.Workbook = this; ed.Layout = in_layout; #if(UNITY_4) ed.title = WorkbookName; #elif(UNITY_5_0) ed.title = WorkbookName; #else ed.titleContent.text = WorkbookName; #endif ed.wantsMouseMove = true; } content = new GUIContent(in_layout.DeleteButton, Google2u.LocalizationInfo.Localize(Localization.rowIds.ID_LABEL_REMOVE_WORKBOOK)); if (GUILayout.Button(content, GUILayout.Height(EditorGUILayoutEx.ButtonHeight), GUILayout.Width(EditorGUILayoutEx.ButtonWidth))) { if ( EditorUtility.DisplayDialog( Google2u.LocalizationInfo.Localize(Localization.rowIds.ID_LABEL_REMOVE_WORKBOOK), Google2u.LocalizationInfo.Localize( Localization.rowIds.ID_MESSAGE_REMOVE_WORKBOOK), Google2u.LocalizationInfo.Localize(Localization.rowIds.ID_LABEL_DELETE), Google2u.LocalizationInfo.Localize(Localization.rowIds.ID_LABEL_CANCEL))) ret = false; } GUILayout.FlexibleSpace(); if (showExport) { var oldEnabled = GUI.enabled; if (bAllWorksheetsValid == false) GUI.enabled = false; content = new GUIContent(in_layout.SaveButton, Google2u.LocalizationInfo.Localize(Localization.rowIds.ID_LABEL_EXPORT)); if (GUILayout.Button(content, GUILayout.Height(EditorGUILayoutEx.ButtonHeight), GUILayout.Width(EditorGUILayoutEx.ButtonWidth))) { DoExport(exportsheets); } GUI.enabled = oldEnabled; } EditorGUILayout.EndHorizontal(); } else { EditorGUILayout.LabelField( Google2u.LocalizationInfo.Localize(Localization.rowIds.ID_MESSAGE_NO_WORKSHEETS)); } break; } } in_layout.EndFadeArea(); return ret; }