protected override void ListItemSelected(int index, InstrumentDef dataProvider) { base.ListItemSelected(index, dataProvider); InstrumentsModel.SelectEditedInstrument(dataProvider.Id); EditedInstrumentChangedSignal.Dispatch(dataProvider); }
public override void Execute() { //TODO: Import from clipboard //Debug.LogWarning($"<color=\"aqua\">ImportInstrumentsCommand.Execute() : {GUIUtility.systemCopyBuffer}</color>"); //var instruments = PyramidParser.ParseInstruments(GUIUtility.systemCopyBuffer); //Get Path var loadDirectory = PrefsManager.GetUserString(LOAD_DIRECTORY_KEY, null); var path = FileBrowser.OpenSingleFile("Import CKI file", loadDirectory, JsonKeys.FILE_EXTENSIONS); PrefsManager.SetUserData(LOAD_DIRECTORY_KEY, Path.GetDirectoryName(path)); //Decide which parser to use based on extension var jsonString = File.ReadAllText(path); var extension = Path.GetExtension(path).Substring(1); var parser = extension == JsonKeys.PYRAMID_EXTENSION ? PyramidParser : CkiParser; var instruments = parser.ParseInstruments(jsonString); //return if no instruments found TODO: inform user if (instruments == null || instruments.Count == 0) { return; } var instrumentIdAfterImport = InstrumentsModel.GetAllInstruments().Count; InstrumentsModel.AddInstruments(instruments); InstrumentsModel.SelectEditedInstrument(instrumentIdAfterImport); EditedInstrumentChangedSignal.Dispatch(InstrumentsModel.GetEditedInstrument()); InstrumentsImportedSignal.Dispatch(); }
private void OnDropdownChangedHandler(int id) { InstrumentsModel.SelectEditedInstrument(id); EditedInstrumentChangedSignal.Dispatch(InstrumentsModel.GetEditedInstrument()); }