private void CleanData() { // Make sure we have an ID, if not, generate it. if (string.IsNullOrEmpty(loadedTranslateData.ID)) { loadedTranslateData.ID = Guid.NewGuid().ToString(); } // Remove all empty data from the loaded TranslateData. for (int s = 0; s < loadedTranslateData.TranslateSheets.Count; s++) { TranslateSheetData sheet = loadedTranslateData.TranslateSheets[s]; if (sheet.TranslateHashes.Count == 0) { loadedTranslateData.TranslateSheets.Remove(sheet); s--; } else { for (int h = 0; h < sheet.TranslateHashes.Count; h++) { TranslateHashData hash = sheet.TranslateHashes[h]; if (string.IsNullOrEmpty(hash.Input) || string.IsNullOrEmpty(hash.Output)) { sheet.TranslateHashes.Remove(hash); h--; } } } } }
public void Initialize(TranslateData translateData, ConfirmationPopupBehaviour confirmationPopupBehaviour) { CleanUp(); this.translateData = translateData; this.confirmation = confirmationPopupBehaviour; // Set up bindings. disposables.Add(new InputFieldBinding(projectNameField, () => translateData.Name, delegate(string value) { value = value.Trim(' '); UpdateProjectName(value); SetDirty(true); })); disposables.Add(new InputFieldBinding(projectDescriptionField, () => translateData.Description, delegate(string value) { translateData.Description = value; SetDirty(true); })); disposables.Add(new ButtonBinding(projectDescriptionCollapseButton, () => projectDescriptionField.gameObject.SetActive(!projectDescriptionField.gameObject.activeSelf))); disposables.Add(new ButtonBinding(addTranslateSheetButton, delegate { TranslateSheetData sheetData = new TranslateSheetData(); translateData.TranslateSheets.Add(sheetData); AddTranslateSheetUIElement(sheetData); })); // Set up UI. SetDirty(false); UpdateProjectName(); BuildUI(); }
/// <summary> /// Creates a new <see cref="Translator"/> object. /// </summary> /// <param name="sheet">The data which will be used to translate the given input.</param> public Translator(TranslateSheetData sheet) { // We convert the translate sheet to a dictionary for easy access. table = new Dictionary <string, List <TranslateHashData> >(); for (int i = 0; i < sheet.TranslateHashes.Count; i++) { TranslateHashData hash = sheet.TranslateHashes[i]; if (!hash.Enabled || IsEmpty(hash.Output) || IsEmpty(hash.Input)) { continue; } if (!table.ContainsKey(hash.Input)) { table.Add(hash.Input, new List <TranslateHashData>()); } table[hash.Input].Add(sheet.TranslateHashes[i]); // We store the longest available hash to get the max-check-length. if (hash.Input.Length > longestHash) { longestHash = sheet.TranslateHashes[i].Input.Length; } } }
private void AddTranslateSheetUIElement(TranslateSheetData sheetData) { TranslateSheetUIElement element = Instantiate(translateSheetUIElementPrefab, contentParent); element.Initialize(sheetData); spawnedSheets.Add(sheetData, element); element.TranslateDataChangedEvent += OnTranslateDataChanged; element.RequestDeleteEvent += OnRequestDeleteTranslateSheetEvent; }
private void OnRequestDeleteTranslateSheetEvent(TranslateSheetData sheetData) { confirmation.Popup("Please Confirm", "Are you sure you want to delete this translate sheet?", delegate(bool result) { if (result) { Destroy(spawnedSheets[sheetData].gameObject); spawnedSheets.Remove(sheetData); translateData.TranslateSheets.Remove(sheetData); OnTranslateDataChanged(this); SetDirty(true); } }); }
public void Initialize(TranslateSheetData sheetData) { CleanUp(); this.sheetData = sheetData; // Set up bindings. disposables.Add(new ToggleBinding(enabledToggle, () => sheetData.Enabled, delegate(bool v) { sheetData.Enabled = v; TranslateDataChangedEvent?.Invoke(this); })); disposables.Add(new InputFieldBinding(sheetNameField, () => sheetData.Name, delegate(string t) { sheetData.Name = t; TranslateDataChangedEvent?.Invoke(this); })); disposables.Add(new ButtonBinding(deleteSheetButton, () => RequestDeleteEvent?.Invoke(sheetData))); disposables.Add(new ButtonBinding(addHashButton, delegate { TranslateHashData hash = new TranslateHashData(); sheetData.TranslateHashes.Add(hash); AddTranslateHashUIElement(hash); })); disposables.Add(new ButtonBinding(sortByInputButton, delegate { List <TranslateHashData> orderedList = sheetData.TranslateHashes.OrderBy((x) => x.Input).ToList(); SortHashes(orderedList); })); disposables.Add(new ButtonBinding(sortByOutputButton, delegate { List <TranslateHashData> orderedList = sheetData.TranslateHashes.OrderBy((x) => x.Output).ToList(); SortHashes(orderedList); })); disposables.Add(new ButtonBinding(sortByHashTypeButton, delegate { List <TranslateHashData> orderedList = sheetData.TranslateHashes.OrderBy((x) => x.HashType.ToString()).ToList(); SortHashes(orderedList); })); // Create child translate hash UI elements. RebuildUI(); }