public bool DrawGUIList(EditorGUILayoutEx in_layout) { if (!_Initialized) { _Initialized = true; UseTypeRow = Google2uGUIUtil.GetBool(Prefix + "UseTypeRow", UseTypeRow); WorksheetExportType = Google2uGUIUtil.GetEnum(Prefix + "ExportType", WorksheetExportType); } var old = GUI.enabled; if (WorksheetQueryStatus != QueryStatus.Idle && RowsDisplay.Length == 0) { GUI.enabled = false; } var newExportType = WorksheetExportType; if (IsDataValid) { newExportType = (ExportType)EditorGUILayout.EnumPopup(WorksheetName, WorksheetExportType); } else if (WorksheetQueryStatus != QueryStatus.Idle) { EditorGUILayout.LabelField(WorksheetName, Google2u.LocalizationInfo.Localize(Localization.rowIds.ID_MESSAGE_QUERYING_CELLS) + Google2u.Ellipses); } else { var oldColor = GUI.color; if (GUI.GetNameOfFocusedControl() != WorksheetName + "Invalid") { GUI.color = Color.red; } GUI.SetNextControlName(WorksheetName + "Invalid"); newExportType = (ExportType)EditorGUILayout.EnumPopup(WorksheetName, WorksheetExportType); GUI.color = oldColor; } if (newExportType != WorksheetExportType) { WorksheetExportType = Google2uGUIUtil.SetEnum(Prefix + "ExportType", newExportType); } GUI.enabled = old; return(WorksheetExportType != ExportType.DoNotExport); }
public override void DrawGUIFull(EditorGUILayoutEx in_layout) { 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) { EditorGUILayout.BeginHorizontal(); var worksheetNames = new string[WorksheetsDisplay.Length]; for (var i = 0; i < WorksheetsDisplay.Length; ++i) { worksheetNames[i] = WorksheetsDisplay[i].WorksheetName; } var activeWorksheet = WorksheetsDisplay[ActiveWorksheetIndex]; if (activeWorksheet == null) { throw new ArgumentNullException("ActiveWorksheet"); } 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 guiEnabled = GUI.enabled; if (activeWorksheet.WorksheetQueryStatus != QueryStatus.Idle) { GUI.enabled = false; } content = activeWorksheet.IsDataValid ? new GUIContent(in_layout.ValidateButtonGreen, Google2u.LocalizationInfo.Localize(Localization.rowIds.ID_LABEL_VALIDATE_WORKSHEET)) : new GUIContent(in_layout.ValidateButtonRed, Google2u.LocalizationInfo.Localize(Localization.rowIds.ID_LABEL_VALIDATE_WORKSHEET)); if (GUILayout.Button(content, GUILayout.Height(EditorGUILayoutEx.ButtonHeight), GUILayout.Width(EditorGUILayoutEx.ButtonWidth))) { // Do Validation for the active worksheet activeWorksheet.UpdateValidation = true; _OpenInvalidSheet = true; } GUI.enabled = guiEnabled; } content = new GUIContent(in_layout.GoogleButton, Google2u.LocalizationInfo.Localize(Localization.rowIds.ID_LABEL_OPEN_IN_GOOGLE)); if (GUILayout.Button(content, GUILayout.Height(EditorGUILayoutEx.ButtonHeight), GUILayout.Width(EditorGUILayoutEx.ButtonWidth))) { Application.OpenURL(WorkbookUrl); } GUILayout.FlexibleSpace(); var oldEnabled = GUI.enabled; if ((activeWorksheet.WorksheetExportType == ExportType.DoNotExport) || activeWorksheet.IsDataValid == 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(new List <Google2uWorksheet> { activeWorksheet }); } GUI.enabled = oldEnabled; EditorGUILayout.EndHorizontal(); var newActiveWorksheetIndex = EditorGUILayout.Popup( Google2u.LocalizationInfo.Localize(Localization.rowIds.ID_LABEL_ACTIVE_WORKSHEET) + ": ", ActiveWorksheetIndex, worksheetNames); if (newActiveWorksheetIndex != ActiveWorksheetIndex) { WorksheetsDisplay[ActiveWorksheetIndex].ActiveCell = null; ActiveWorksheetIndex = newActiveWorksheetIndex; } var newExportType = (ExportType) EditorGUILayout.EnumPopup( Google2u.LocalizationInfo.Localize(Localization.rowIds.ID_LABEL_EXPORT_AS) + ": ", activeWorksheet.WorksheetExportType); if (newExportType != activeWorksheet.WorksheetExportType) { activeWorksheet.WorksheetExportType = Google2uGUIUtil.SetEnum(activeWorksheet.Prefix + "ExportType", newExportType); } DrawSpreadsheetOptions(in_layout, activeWorksheet.WorksheetExportType, activeWorksheet); EditorGUILayout.Separator(); activeWorksheet.DrawGUIFull(in_layout); } else { EditorGUILayout.LabelField( Google2u.LocalizationInfo.Localize(Localization.rowIds.ID_MESSAGE_NO_WORKSHEETS)); } break; } }