void DrawLooseTableGUI() { if (m_TargetTable.SharedData == null) { EditorGUILayout.HelpBox("Shared Table Data is missing. Please add the missing asset or create a new one.", MessageType.Error); EditorGUI.BeginChangeCheck(); EditorGUILayout.ObjectField(m_SharedTableData); if (EditorGUI.EndChangeCheck()) { ResolveTableCollection(); } return; } EditorGUILayout.HelpBox("Table does not belong to a Collection and will be ignored.", MessageType.Warning); if (m_SharedTableDataCollection != null) { if (GUILayout.Button(Styles.addToCollection)) { m_SharedTableDataCollection.AddTable(m_TargetTable, createUndo: true); } return; } if (m_PossibleTableCollection.Count > 0) { EditorGUILayout.Space(); EditorGUILayout.HelpBox("The following loose tables could be combined into a new Table Collection", MessageType.Info); for (int i = 0; i < m_PossibleTableCollection.Count; ++i) { EditorGUILayout.BeginHorizontal(); if (GUILayout.Button(m_PossibleTableCollection[i].name, EditorStyles.label)) { EditorGUIUtility.PingObject(m_PossibleTableCollection[i]); } if (GUILayout.Button(Styles.removeTableFromList, GUILayout.Width(40))) { m_PossibleTableCollection.RemoveAt(i); EditorGUIUtility.ExitGUI(); } EditorGUILayout.EndHorizontal(); } } if (m_PossibleTableCollection.Count > 0) { var isStringTable = typeof(StringTable).IsAssignableFrom(m_PossibleTableCollection[0].GetType()); var label = isStringTable ? Styles.createStringTableCollection : Styles.createAssetTableCollection; if (GUILayout.Button(label)) { var defaultDirectory = Path.GetDirectoryName(AssetDatabase.GetAssetPath(m_TargetTable.SharedData)); var path = EditorUtility.SaveFilePanel("Create Table Collection", defaultDirectory, m_TargetTable.TableCollectionName, "asset"); if (string.IsNullOrEmpty(path)) { return; } LocalizationEditorSettings.CreateCollectionFromLooseTables(m_PossibleTableCollection, path); } } }