public bool LoadTemplateFromFile(string file) { BinaryTemplate = new BinaryDataTemplate(Header); if (BinaryTemplate.ReadFromXML(new XMLAccess(file))) { Header = BinaryTemplate.Name; return(true); } else { return(false); } }
public BinaryDataTabViewModel(string header, string binaryFilePath, BinaryDataTemplate template) : base(header) { this.template = template; this.BinaryFilePath = binaryFilePath; ShowHexDump = AppSettings.Instance.GetConfigValue_Bool(AppSettings.Key_ShowHexDump); if (template != null) { BinaryFile = new BinaryFile(binaryFilePath, template); BinaryFile.Read(); } else { // TODO! } }
private void OpenBinaryFileCommand_Executed(object parameter) { // check for list of files in command parameter: string binaryFile = null; if (parameter != null) { binaryFile = parameter as string; } // if no file in parameters -> select binary file via dialog: if (string.IsNullOrWhiteSpace(binaryFile)) { FileDialogEventArgs fileDialogBinaryEventArgs = new FileDialogEventArgs() { Title = TranslationManager.Instance.GetResourceText("SelectBinaryFile"), Filter = TranslationManager.Instance.GetResourceText("FileDialogFilter_Binary") + " (*.*)|*.*" }; FileDialogRequested?.Invoke(this, fileDialogBinaryEventArgs); binaryFile = fileDialogBinaryEventArgs.File; } if (!string.IsNullOrWhiteSpace(binaryFile)) { // first check if there is any matching template in default template directory: BinaryDataTemplate template = templateManager.GetMatchingTemplate(binaryFile); if (template == null) { // otherwise -> select template file via dialog: FileDialogEventArgs fileDialogTemplateEventArgs = new FileDialogEventArgs() { Title = TranslationManager.Instance.GetResourceText("SelectTemplate"), Filter = TranslationManager.Instance.GetResourceText("FileDialogFilter_Templates") + " (*.xml)|*.xml" }; FileDialogRequested?.Invoke(this, fileDialogTemplateEventArgs); string templateFile = fileDialogTemplateEventArgs.File; if (!string.IsNullOrWhiteSpace(templateFile)) { template = templateManager.GetTemplate(templateFile); } } if (template != null) { string tabHeader = ""; try { tabHeader = Path.GetFileName(binaryFile); } catch { tabHeader = binaryFile; } var newTab = new BinaryDataTabViewModel(tabHeader, binaryFile, template); AddNewTab(newTab); } } // TODO: stattdessen eigener Dialog zur Auswahl von Binärdatei und Template! // OpenBinaryFileWindowEventArgs eventArgs = new OpenBinaryFileWindowEventArgs() // OpenBinaryFileWindowRequested?.Invoke(this, eventArgs); // if (eventArgs.DialogResult) // { // string binaryFile = eventArgs.BinaryFilePath; // string templateFile = eventArgs.TemplatePath; // var newTab = new BinaryDataTabViewModel("binary file", binaryFile, templateFile); // AddNewTab(newTab); // } }