public override void OnInspectorGUI() { serializedObject.Update(); m_SharedTableDataSerializedObject?.Update(); EditorGUILayout.LabelField("Table Collection Name", m_TableCollectionName?.stringValue); EditorGUILayout.PropertyField(m_LocaleId); EditorGUILayout.Space(); if (m_Collection == null) { DrawLooseTableGUI(); } else { EditorGUILayout.BeginHorizontal(); if (GUILayout.Button(m_CollectionButton, EditorStyles.miniButton, GUILayout.Width(150), GUILayout.Height(EditorGUIUtility.singleLineHeight))) { Selection.activeObject = m_Collection; } if (GUILayout.Button(m_TableEditorButton, EditorStyles.miniButton, GUILayout.Width(150), GUILayout.Height(EditorGUIUtility.singleLineHeight))) { LocalizationTablesWindow.ShowWindow(m_Collection); } EditorGUILayout.EndHorizontal(); if (GUILayout.Button(Styles.removeFromCollection)) { m_Collection.RemoveTable(m_TargetTable, createUndo: true); } if (!string.IsNullOrEmpty(m_MissingSharedDataEntriesWarning)) { EditorGUILayout.Space(); EditorGUILayout.BeginVertical(EditorStyles.helpBox); EditorGUILayout.HelpBox(m_MissingSharedDataEntriesWarning, MessageType.Warning); EditorGUILayout.BeginHorizontal(); if (GUILayout.Button(Styles.missingEntriesAdd)) { Undo.RecordObject(m_TargetTable.SharedData, "Add Missing Entries"); CheckForEntriesMissingFromSharedTableData(MissingEntryAction.AddEntriesToSharedData); GUIUtility.ExitGUI(); } if (GUILayout.Button(Styles.missingEntriesRemove)) { Undo.RecordObject(m_TargetTable, "Remove Missing Entries"); CheckForEntriesMissingFromSharedTableData(MissingEntryAction.RemoveEntriesFromTable); GUIUtility.ExitGUI(); } EditorGUILayout.EndHorizontal(); EditorGUILayout.EndVertical(); } } EditorGUILayout.Space(); serializedObject.ApplyModifiedProperties(); }
public override void OnInspectorGUI() { serializedObject.Update(); if (m_Collection.SharedData == null) { EditorGUILayout.HelpBox(Styles.missingSharedTableData, MessageType.Error); EditorGUI.BeginChangeCheck(); EditorGUILayout.PropertyField(m_SharedTableData); if (EditorGUI.EndChangeCheck()) { RefreshTables(); } return; } m_Tables.isExpanded = EditorGUILayout.Foldout(m_Tables.isExpanded, Styles.tables, true); if (m_Tables.isExpanded) { EditorGUI.indentLevel++; var tables = m_Collection.Tables; for (int i = 0; i < tables.Count; ++i) { EditorGUILayout.BeginHorizontal(); if (GUILayout.Button(tables[i].asset?.name, EditorStyles.label)) { EditorGUIUtility.PingObject(tables[i].asset); } if (GUILayout.Button(Styles.removeTable, GUILayout.Width(60))) { m_Collection.RemoveTable(tables[i].asset, createUndo: true); GUIUtility.ExitGUI(); } EditorGUILayout.EndHorizontal(); } EditorGUI.indentLevel--; } // Loose tables if (m_LooseTables.Count > 0) { m_ShowLooseTables = EditorGUILayout.Foldout(m_ShowLooseTables, Styles.looseTables); if (m_ShowLooseTables) { EditorGUILayout.HelpBox(Styles.looseTablesInfo); EditorGUI.indentLevel++; for (int i = 0; i < m_LooseTables.Count; ++i) { EditorGUILayout.BeginHorizontal(); if (GUILayout.Button(m_LooseTables[i].name, EditorStyles.label)) { EditorGUIUtility.PingObject(m_LooseTables[i]); } if (GUILayout.Button(Styles.addTable, GUILayout.Width(50))) { m_Collection.AddTable(m_LooseTables[i], createUndo: true); GUIUtility.ExitGUI(); } EditorGUILayout.EndHorizontal(); } EditorGUI.indentLevel--; } } // Missing tables if (m_MissingTables.Count > 0) { m_ShowMissingTables = EditorGUILayout.Foldout(m_ShowMissingTables, Styles.missingTables); if (m_ShowMissingTables) { EditorGUILayout.HelpBox(Styles.missingTablesInfo); EditorGUI.indentLevel++; for (int i = 0; i < m_MissingTables.Count; ++i) { EditorGUILayout.BeginHorizontal(); if (GUILayout.Button(m_MissingTables[i].name, EditorStyles.label)) { EditorGUIUtility.PingObject(m_MissingTables[i]); } if (GUILayout.Button(Styles.createTable, GUILayout.Width(60))) { m_Collection.AddNewTable(m_MissingTables[i].Identifier); GUIUtility.ExitGUI(); } EditorGUILayout.EndHorizontal(); } EditorGUI.indentLevel--; } } if (GUILayout.Button(Styles.editCollection)) { LocalizationTablesWindow.ShowWindow(target as LocalizationTableCollection); } EditorGUILayout.PropertyField(m_Group, Styles.group); m_ExtensionsList.DoLayoutList(); serializedObject.ApplyModifiedProperties(); }