diff --git a/Advanced Software Engineering/Advanced Software Engineering/TextEditor.Designer.cs b/Advanced Software Engineering/Advanced Software Engineering/TextEditor.Designer.cs index a150e86..8f9d41a 100644 --- a/Advanced Software Engineering/Advanced Software Engineering/TextEditor.Designer.cs +++ b/Advanced Software Engineering/Advanced Software Engineering/TextEditor.Designer.cs @@ -187,6 +187,7 @@ namespace Advanced_Software_Engineering // timer1 // this.timer1.Interval = 1000; + this.timer1.Tick += new System.EventHandler(this.timer1_Tick); // // Text_Editor // diff --git a/Advanced Software Engineering/Advanced Software Engineering/TextEditor.cs b/Advanced Software Engineering/Advanced Software Engineering/TextEditor.cs index 98bae9a..1403e6b 100644 --- a/Advanced Software Engineering/Advanced Software Engineering/TextEditor.cs +++ b/Advanced Software Engineering/Advanced Software Engineering/TextEditor.cs @@ -39,6 +39,7 @@ namespace Advanced_Software_Engineering { newWindow = false; okToOverwrite = true; UpdateTitle(openFile.FileName); + fileStream.Close(); } void UpdateTitle(string fileName) { @@ -55,14 +56,15 @@ namespace Advanced_Software_Engineering { private void saveFile() { if (!okToOverwrite) saveFileAs(); else { - StreamWriter fileStream = new StreamWriter(fileName); try { + StreamWriter fileStream = new StreamWriter(fileName); fileStream.Write(textBox1.Text); unsavedChanges = false; + showSavedMessage(); + fileStream.Close(); } catch (Exception e) { new ErrorWindow("Write Failed!", "The program failed to write the file.", e.Message + "\n" + e.StackTrace, ErrorWindow.ERROR_MESSAGE).Show(); } finally { - fileStream.Close(); UpdateTitle(); } } @@ -83,6 +85,7 @@ namespace Advanced_Software_Engineering { unsavedChanges = false; okToOverwrite = true; fileName = saveFileDialog.FileName; + showSavedMessage(); } catch (Exception e) { new ErrorWindow("Write Failed!", "The program failed to write the file.", e.Message + "\n" + e.StackTrace, ErrorWindow.ERROR_MESSAGE).Show(); } finally { @@ -92,6 +95,11 @@ namespace Advanced_Software_Engineering { } } + private void showSavedMessage() { + label1.Text = "File saved"; + timer1.Start(); + } + private void updateRowCol() { int line = textBox1.GetLineFromCharIndex(textBox1.SelectionStart); int column = textBox1.SelectionStart - textBox1.GetFirstCharIndexFromLine(line); @@ -112,26 +120,22 @@ namespace Advanced_Software_Engineering { } private void openFile() { - DialogResult result = DialogResult.Yes; - if (unsavedChanges) { - result = MessageBox.Show("You have unsaved work. Would you like to discard your work and open a new file?", "Unsaved work!", MessageBoxButtons.YesNo, MessageBoxIcon.None); + OpenFileDialog openFileDialog = new OpenFileDialog(); + + if (openFileDialog.ShowDialog() == DialogResult.OK) { + + if (newWindow) { + StreamReader fileStream = new StreamReader(openFileDialog.OpenFile()); + textBox1.Text = fileStream.ReadToEnd(); + unsavedChanges = false; + okToOverwrite = true; + newWindow = false; + UpdateTitle(openFileDialog.FileName); + fileStream.Close(); + } else new Text_Editor(openFileDialog).Show(); } - if (result == DialogResult.Yes) { - OpenFileDialog openFileDialog = new OpenFileDialog(); - - if (openFileDialog.ShowDialog() == DialogResult.OK) { - - if (newWindow) { - StreamReader fileStream = new StreamReader(openFileDialog.OpenFile()); - textBox1.Text = fileStream.ReadToEnd(); - unsavedChanges = false; - newWindow = false; - UpdateTitle(openFileDialog.FileName); - } else new Text_Editor(openFileDialog).Show(); - } - } } private void RunCode() { @@ -184,7 +188,7 @@ namespace Advanced_Software_Engineering { } private void runToolStripMenuItem_Click(object sender, EventArgs e) => RunCode(); - + private void createNewInstance() => new Text_Editor().Show(); @@ -205,7 +209,7 @@ namespace Advanced_Software_Engineering { private void Text_Editor_PreviewKeyDown(object sender, KeyEventArgs e) { //New window - if(e.Control && e.KeyCode == Keys.N) { + if (e.Control && e.KeyCode == Keys.N) { createNewInstance(); e.Handled = true; } else if (e.Control && e.KeyCode == Keys.S) { @@ -217,13 +221,13 @@ namespace Advanced_Software_Engineering { } else if (e.Control && e.KeyCode == Keys.O) { openFile(); e.Handled = true; - } else if(e.KeyCode == Keys.F5) { + } else if (e.KeyCode == Keys.F5) { RunCode(); e.Handled = true; - } else if(e.KeyCode == Keys.F5 && e.Shift) { + } else if (e.KeyCode == Keys.F5 && e.Shift) { CheckCode(); e.Handled = true; - } else if(e.KeyCode == Keys.F1 && e.Shift) { + } else if (e.KeyCode == Keys.F1 && e.Shift) { DescribeCode(); e.Handled = true; } @@ -233,6 +237,9 @@ namespace Advanced_Software_Engineering { private void describeToolStripMenuItem_Click(object sender, EventArgs e) => DescribeCode(); - + private void timer1_Tick(object sender, EventArgs e) { + updateRowCol(); + timer1.Stop(); + } } }