public override void ReadRow(SharedTableData.SharedTableEntry keyEntry, CsvReader reader) { if (m_ImportTable == null) { return; } // Get the entry or create one StringTableEntry entry = m_ImportTable.GetEntry(keyEntry.Id) ?? m_ImportTable.AddEntry(keyEntry.Id, string.Empty); // Get the metadata or add one var metadata = entry.GetMetadata <MyCustomDataMetadata>(); if (metadata == null) { metadata = new MyCustomDataMetadata(); entry.AddMetadata(metadata); } if (m_SomeValueIndex != -1) { metadata.someValue = reader.GetField(m_SomeValueIndex); } if (m_SomeOtherValueIndex != -1) { metadata.someOtherValue = reader.GetField <int>(m_SomeOtherValueIndex); } }
public TableEntryTreeViewItem(LocalizationTableCollection collection, SharedTableData.SharedTableEntry sharedEntry, int id, int depth) : base(id, depth) { TableCollection = collection; if (sharedEntry != null) { SharedEntry = sharedEntry; displayName = SharedEntry.Key; } }
/// <summary> /// <inheritdoc/> /// </summary> /// <param name="keyEntry"></param> /// <param name="tableEntries"></param> /// <param name="value"></param> /// <param name="note"></param> public override void PushCellData(SharedTableData.SharedTableEntry keyEntry, IList <StringTableEntry> tableEntries, out string value, out string note) { var metadata = keyEntry.Metadata.GetMetadata <TMetadata>(); if (metadata != null) { PushMetadata(metadata, out value, out note); } else { value = null; note = null; } }
public virtual void Reset() { serializedObject = null; tableReference = null; tableEntryReference = null; fallbackState = null; // Clear cached values m_FieldLabel = null; m_SelectedEntry = null; m_SelectedTableCollection = null; m_SelectedTableIdx = -1; NeedsInitializing = true; }
public override void WriteRow(SharedTableData.SharedTableEntry keyEntry, IList <StringTableEntry> tableEntries, CsvWriter writer) { if (m_CollectionTableIndex != -1 && tableEntries[m_CollectionTableIndex] != null) { var entry = tableEntries[m_CollectionTableIndex]; var metadata = entry.GetMetadata <MyCustomDataMetadata>(); if (metadata != null) { writer.WriteField(metadata.someValue, true); writer.WriteField(metadata.someOtherValue); return; } } // Write empty entries writer.WriteField(string.Empty); writer.WriteField(0); }
public override void PullMetadata(SharedTableData.SharedTableEntry keyEntry, Comment metadata, string cellValue, string cellNote) { if (string.IsNullOrEmpty(cellValue)) { if (metadata != null) { keyEntry.Metadata.RemoveMetadata(metadata); } } else { if (metadata != null) { metadata.CommentText = cellValue; } else { keyEntry.Metadata.AddMetadata(new Comment { CommentText = cellValue }); } } }
public override void PullCellData(SharedTableData.SharedTableEntry keyEntry, string cellValue, string cellNote) { }
public override void PushCellData(SharedTableData.SharedTableEntry keyEntry, IList <StringTableEntry> tableEntries, out string value, out string note) { value = keyEntry.Key; note = keyEntry.Id.ToString(); }
public override void PullCellData(SharedTableData.SharedTableEntry keyEntry, string cellValue, string cellNote) { throw new NotImplementedException(); }
public override void PushCellData(SharedTableData.SharedTableEntry keyEntry, IList <StringTableEntry> tableEntries, out string value, out string note) { throw new NotImplementedException(); }
public abstract void WriteRow(SharedTableData.SharedTableEntry keyEntry, IList <StringTableEntry> tableEntries, CsvWriter writer);
/// <summary> /// <inheritdoc/> /// </summary> /// <param name="keyEntry"></param> /// <param name="cellValue"></param> /// <param name="cellNote"></param> public override void PullCellData(SharedTableData.SharedTableEntry keyEntry, string cellValue, string cellNote) { var metadata = keyEntry.Metadata.GetMetadata <TMetadata>(); PullMetadata(keyEntry, metadata, cellValue, cellNote); }
/// <summary> /// Called during <see cref="GoogleSheets.PullIntoStringTableCollection"/> to extract data from a Google Spreadsheet column cell and convert it into <see cref="IMetadata"/>. /// </summary> /// <param name="keyEntry">The entry for this column row.</param> /// <param name="metadata">The metadata to populate with the cell value and/or note.</param> /// <param name="cellValue">The cell value from the Google Spreadsheet column.</param> /// <param name="cellNote">The cell note if one exists from the Google Spreadsheet column.</param> public abstract void PullMetadata(SharedTableData.SharedTableEntry keyEntry, TMetadata metadata, string cellValue, string cellNote);
internal virtual void RaiseTableEntryRemoved(LocalizationTableCollection collection, SharedTableData.SharedTableEntry entry) => TableEntryRemoved?.Invoke(collection, entry);
public abstract void ReadRow(SharedTableData.SharedTableEntry keyEntry, CsvReader reader);
void DrawTableDetails(Rect position, Rect rowPosition, SerializedProperty property) { if (!property.isExpanded) { return; } EditorGUI.indentLevel++; // Table selection var tableSelectionPos = m_Property.SelectedTableIndex != 0 ? new Rect(rowPosition.x, rowPosition.y, rowPosition.width - k_OpenTableEditorButtonWidth, rowPosition.height) : rowPosition; EditorGUI.BeginChangeCheck(); var selectedTableIndex = EditorGUI.Popup(tableSelectionPos, Styles.selectedTable, m_Property.SelectedTableIndex, ProjectTableLabels); if (EditorGUI.EndChangeCheck()) { m_Property.SelectedTableIndex = selectedTableIndex; } if (m_Property.SelectedTableIndex != 0) { var openTableEditorPos = new Rect(tableSelectionPos.xMax, tableSelectionPos.y, k_OpenTableEditorButtonWidth, tableSelectionPos.height); if (GUI.Button(openTableEditorPos, EditorIcons.StringTable)) { LocalizationTablesWindow.ShowWindow(m_Property.SelectedTableCollection); } } rowPosition.y += rowPosition.height; var buttonPos = new Rect(rowPosition.x + EditorGUIUtility.labelWidth, rowPosition.y, rowPosition.width - EditorGUIUtility.labelWidth, rowPosition.height); if (selectedTableIndex == 0) { if (GUI.Button(buttonPos, Styles.addTableCollection, EditorStyles.miniButton)) { LocalizationTablesWindow.ShowTableCreator(); } } else { if (GUI.Button(buttonPos, Styles.addTableEntry, EditorStyles.miniButton)) { // Attempt to create a new key with a set default name var keys = m_Property.SelectedTableCollection.SharedData; const string newKeyName = "New Entry"; var keyToTry = newKeyName; SharedTableData.SharedTableEntry entry = null; int counter = 1; while (entry == null) { if (keys.Contains(keyToTry)) { keyToTry = $"{newKeyName} {counter++}"; } else { Undo.RecordObject(keys, "Add entry."); entry = keys.AddKey(keyToTry); EditorUtility.SetDirty(keys); } } m_Property.SelectedTableEntry = entry; LocalizationEditorSettings.EditorEvents.RaiseTableEntryAdded(m_Property.SelectedTableCollection, entry); } } rowPosition.y += rowPosition.height; buttonPos.y = rowPosition.y; if (GUI.Button(buttonPos, Styles.addLocale)) { LocaleGeneratorWindow.ShowWindow(); } rowPosition.y += rowPosition.height + EditorGUIUtility.standardVerticalSpacing; if (m_Property.SelectedTableEntry != null) { DrawTableEntryDetails(ref rowPosition, position); } EditorGUI.indentLevel--; }
internal virtual void RaiseTableEntryModified(SharedTableData.SharedTableEntry tableEntry) => TableEntryModified?.Invoke(tableEntry);