private void AssembleFile(AssemblyCommandParams asmParams) { AssemblyFileViewModel assembledFile = GetViewModelByFilePath(asmParams.InputFileName); if (assembledFile.AssembleFile(m_Assembler, asmParams.OutputFileName)) { var fileAssembledMsg = new FileAssembledMessage(asmParams.OutputFileName); BroadcastMessage(fileAssembledMsg); } }
private void AssembleActiveFileAction(OutputTypes outputType) { AssemblyFileViewModel viewModel = m_EditorVm.ActiveFile; bool continueAssembling = true; if (!viewModel.IsFileBackedPhysically) { SaveFileAction(); // if this is still false, the user may have backed out of the save box. if (!viewModel.IsFileBackedPhysically) { continueAssembling = false; } } else if (viewModel.AreAnyChangedUnsaved) { string fileNameNoAsterisk = viewModel.FileName.Substring(0, viewModel.FileName.LastIndexOf('*')); DialogResult dr = MessageBox.Show(fileNameNoAsterisk + " has unsaved changes. Do you wish to save before running assembler?", "Unsaved Changes", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question); switch (dr) { case DialogResult.Yes: { SaveFileAction(); break; } case DialogResult.Cancel: { continueAssembling = false; break; } } } if (continueAssembling) { Cursor.Current = Cursors.WaitCursor; AssemblyCommandParams cmdParams = default(AssemblyCommandParams); cmdParams.InputFileName = viewModel.FilePath; string fileNoExt = viewModel.FilePath.Substring(0, viewModel.FilePath.LastIndexOf('.')); switch (outputType) { case OutputTypes.DirectBinary: { cmdParams.OutputFileName = fileNoExt + ".jef"; break; } case OutputTypes.ELF: { cmdParams.OutputFileName = fileNoExt + ".o"; break; } default: System.Diagnostics.Debug.Assert(false); break; } m_EditorVm.AssembleFileCmd.Execute(cmdParams); Cursor.Current = Cursors.Default; } }