コード例 #1
0
        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);
            }
        }
コード例 #2
0
ファイル: TableEntryTreeView.cs プロジェクト: Habi-Thapa/csv
 public TableEntryTreeViewItem(LocalizationTableCollection collection, SharedTableData.SharedTableEntry sharedEntry, int id, int depth) :
     base(id, depth)
 {
     TableCollection = collection;
     if (sharedEntry != null)
     {
         SharedEntry = sharedEntry;
         displayName = SharedEntry.Key;
     }
 }
コード例 #3
0
        /// <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;
            }
        }
コード例 #4
0
            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;
            }
コード例 #5
0
        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);
        }
コード例 #6
0
ファイル: KeyCommentColumn.cs プロジェクト: Habi-Thapa/csv
 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
             });
         }
     }
 }
コード例 #7
0
 public override void PullCellData(SharedTableData.SharedTableEntry keyEntry, string cellValue, string cellNote)
 {
 }
コード例 #8
0
 public override void PushCellData(SharedTableData.SharedTableEntry keyEntry, IList <StringTableEntry> tableEntries, out string value, out string note)
 {
     value = keyEntry.Key;
     note  = keyEntry.Id.ToString();
 }
コード例 #9
0
ファイル: JsonField.cs プロジェクト: vamidi/StoryTime-UPM
 public override void PullCellData(SharedTableData.SharedTableEntry keyEntry, string cellValue, string cellNote)
 {
     throw new NotImplementedException();
 }
コード例 #10
0
ファイル: JsonField.cs プロジェクト: vamidi/StoryTime-UPM
 public override void PushCellData(SharedTableData.SharedTableEntry keyEntry, IList <StringTableEntry> tableEntries, out string value, out string note)
 {
     throw new NotImplementedException();
 }
コード例 #11
0
ファイル: CsvColumns.cs プロジェクト: Habi-Thapa/csv
 public abstract void WriteRow(SharedTableData.SharedTableEntry keyEntry, IList <StringTableEntry> tableEntries, CsvWriter writer);
コード例 #12
0
        /// <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);
        }
コード例 #13
0
 /// <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);
コード例 #14
0
 internal virtual void RaiseTableEntryRemoved(LocalizationTableCollection collection, SharedTableData.SharedTableEntry entry) => TableEntryRemoved?.Invoke(collection, entry);
コード例 #15
0
ファイル: CsvColumns.cs プロジェクト: Habi-Thapa/csv
 public abstract void ReadRow(SharedTableData.SharedTableEntry keyEntry, CsvReader reader);
コード例 #16
0
        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--;
        }
コード例 #17
0
 internal virtual void RaiseTableEntryModified(SharedTableData.SharedTableEntry tableEntry) => TableEntryModified?.Invoke(tableEntry);