public OpenOCDSettingsFormViewModel(IProject model) : base(model) { settings = OpenOCDDebugAdaptor.GetSettings(model); interfaceConfigFile = settings.InterfaceConfigFile; targetConfigFile = settings.TargetConfigFile; BrowseInterfaceConfigFileCommand = ReactiveCommand.Create(); BrowseInterfaceConfigFileCommand.Subscribe(async _ => { var ofd = new OpenFileDialog(); ofd.InitialDirectory = Path.Combine(OpenOCDDebugAdaptor.BaseDirectory, "scripts", "interface"); ofd.Filters.Add(new FileDialogFilter { Name = "OpenOCD Config File", Extensions = new List <string> { "cfg" } }); ofd.AllowMultiple = false; ofd.Title = "Open OpenOCD Interface Config File"; var result = await ofd.ShowAsync(); if (result != null && !string.IsNullOrEmpty(result.First())) { InterfaceConfigFile = OpenOCDDebugAdaptor.BaseDirectory.MakeRelativePath(result.First()); } }); BrowseTargetConfigFileCommand = ReactiveCommand.Create(); BrowseTargetConfigFileCommand.Subscribe(async _ => { var ofd = new OpenFileDialog(); ofd.InitialDirectory = Path.Combine(OpenOCDDebugAdaptor.BaseDirectory, "scripts", "target"); ofd.Filters.Add(new FileDialogFilter { Name = "OpenOCD Config File", Extensions = new List <string> { "cfg" } }); ofd.AllowMultiple = false; ofd.Title = "Open OpenOCD Target Config File"; var result = await ofd.ShowAsync(); if (result != null && !string.IsNullOrEmpty(result.First())) { TargetConfigFile = OpenOCDDebugAdaptor.BaseDirectory.MakeRelativePath(result.First()); } }); }
public OpenOCDSettingsFormViewModel(IProject model) : base(model) { settings = model.GetDebuggerSettings <OpenOCDSettings>(); interfaceConfigFile = settings.InterfaceConfigFile; targetConfigFile = settings.TargetConfigFile; BrowseInterfaceConfigFileCommand = ReactiveCommand.CreateFromTask(async() => { var ofd = new OpenFileDialog(); ofd.InitialDirectory = Path.Combine(BaseDirectory, "scripts", "interface"); ofd.Filters.Add(new FileDialogFilter { Name = "OpenOCD Config File", Extensions = new List <string> { "cfg" } }); ofd.AllowMultiple = false; ofd.Title = "Open OpenOCD Interface Config File"; var result = await ofd.ShowAsync(Application.Current.MainWindow); if (result != null && !string.IsNullOrEmpty(result.FirstOrDefault())) { InterfaceConfigFile = BaseDirectory.MakeRelativePath(result.First()); } }); BrowseTargetConfigFileCommand = ReactiveCommand.CreateFromTask(async() => { var ofd = new OpenFileDialog(); ofd.InitialDirectory = Path.Combine(BaseDirectory, "scripts", "target"); ofd.Filters.Add(new FileDialogFilter { Name = "OpenOCD Config File", Extensions = new List <string> { "cfg" } }); ofd.AllowMultiple = false; ofd.Title = "Open OpenOCD Target Config File"; var result = await ofd.ShowAsync(Application.Current.MainWindow); if (result != null && !string.IsNullOrEmpty(result.FirstOrDefault())) { TargetConfigFile = BaseDirectory.MakeRelativePath(result.First()); } }); }
public static OpenOCDSettings GetSettings(IProject project) { OpenOCDSettings result = null; try { if (project.DebugSettings.OpenOCDSettings is ExpandoObject) { result = (project.DebugSettings.OpenOCDSettings as ExpandoObject).GetConcreteType <OpenOCDSettings>(); } else { result = project.DebugSettings.OpenOCDSettings; } } catch (Exception) { result = project.DebugSettings.OpenOCDSettings = new OpenOCDSettings(); } return(result); }
public static void SetSettings(IProject project, OpenOCDSettings settings) { project.DebugSettings.OpenOCDSettings = settings; }