Private
Public Access
TextEditor now saves properly
This commit is contained in:
1 parent
69a6562482
commit
b9324f8619
3 files changed
+145
-22
No files matched your search
+43
-1
@@ -33,17 +33,22 @@ namespace Advanced_Software_Engineering
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
private void InitializeComponent()
|
private void InitializeComponent()
|
||||||
{
|
{
|
||||||
|
this.components = new System.ComponentModel.Container();
|
||||||
this.textBox1 = new System.Windows.Forms.TextBox();
|
this.textBox1 = new System.Windows.Forms.TextBox();
|
||||||
this.menuStrip1 = new System.Windows.Forms.MenuStrip();
|
this.menuStrip1 = new System.Windows.Forms.MenuStrip();
|
||||||
this.fileToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
this.fileToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
this.newFileToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
this.newFileToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
this.openToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
this.openToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
this.saveToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
this.saveToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
|
this.saveAsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
this.exitToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
this.exitToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
this.runToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
this.runToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
|
this.checkSyntaxToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
this.helpToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
this.helpToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
this.aboutToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
this.aboutToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
this.helpToolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem();
|
this.helpToolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
|
this.label1 = new System.Windows.Forms.Label();
|
||||||
|
this.timer1 = new System.Windows.Forms.Timer(this.components);
|
||||||
this.menuStrip1.SuspendLayout();
|
this.menuStrip1.SuspendLayout();
|
||||||
this.SuspendLayout();
|
this.SuspendLayout();
|
||||||
//
|
//
|
||||||
@@ -58,15 +63,18 @@ namespace Advanced_Software_Engineering
|
|||||||
this.textBox1.Multiline = true;
|
this.textBox1.Multiline = true;
|
||||||
this.textBox1.Name = "textBox1";
|
this.textBox1.Name = "textBox1";
|
||||||
this.textBox1.ScrollBars = System.Windows.Forms.ScrollBars.Both;
|
this.textBox1.ScrollBars = System.Windows.Forms.ScrollBars.Both;
|
||||||
this.textBox1.Size = new System.Drawing.Size(602, 524);
|
this.textBox1.Size = new System.Drawing.Size(602, 509);
|
||||||
this.textBox1.TabIndex = 0;
|
this.textBox1.TabIndex = 0;
|
||||||
this.textBox1.WordWrap = false;
|
this.textBox1.WordWrap = false;
|
||||||
|
this.textBox1.Click += new System.EventHandler(this.textBox1_Click);
|
||||||
|
this.textBox1.TextChanged += new System.EventHandler(this.handleKeypress);
|
||||||
//
|
//
|
||||||
// menuStrip1
|
// menuStrip1
|
||||||
//
|
//
|
||||||
this.menuStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
this.menuStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
||||||
this.fileToolStripMenuItem,
|
this.fileToolStripMenuItem,
|
||||||
this.runToolStripMenuItem,
|
this.runToolStripMenuItem,
|
||||||
|
this.checkSyntaxToolStripMenuItem,
|
||||||
this.helpToolStripMenuItem});
|
this.helpToolStripMenuItem});
|
||||||
this.menuStrip1.Location = new System.Drawing.Point(0, 0);
|
this.menuStrip1.Location = new System.Drawing.Point(0, 0);
|
||||||
this.menuStrip1.Name = "menuStrip1";
|
this.menuStrip1.Name = "menuStrip1";
|
||||||
@@ -80,6 +88,7 @@ namespace Advanced_Software_Engineering
|
|||||||
this.newFileToolStripMenuItem,
|
this.newFileToolStripMenuItem,
|
||||||
this.openToolStripMenuItem,
|
this.openToolStripMenuItem,
|
||||||
this.saveToolStripMenuItem,
|
this.saveToolStripMenuItem,
|
||||||
|
this.saveAsToolStripMenuItem,
|
||||||
this.exitToolStripMenuItem});
|
this.exitToolStripMenuItem});
|
||||||
this.fileToolStripMenuItem.Name = "fileToolStripMenuItem";
|
this.fileToolStripMenuItem.Name = "fileToolStripMenuItem";
|
||||||
this.fileToolStripMenuItem.Size = new System.Drawing.Size(37, 20);
|
this.fileToolStripMenuItem.Size = new System.Drawing.Size(37, 20);
|
||||||
@@ -104,6 +113,14 @@ namespace Advanced_Software_Engineering
|
|||||||
this.saveToolStripMenuItem.Name = "saveToolStripMenuItem";
|
this.saveToolStripMenuItem.Name = "saveToolStripMenuItem";
|
||||||
this.saveToolStripMenuItem.Size = new System.Drawing.Size(180, 22);
|
this.saveToolStripMenuItem.Size = new System.Drawing.Size(180, 22);
|
||||||
this.saveToolStripMenuItem.Text = "Save";
|
this.saveToolStripMenuItem.Text = "Save";
|
||||||
|
this.saveToolStripMenuItem.Click += new System.EventHandler(this.saveToolStripMenuItem_Click);
|
||||||
|
//
|
||||||
|
// saveAsToolStripMenuItem
|
||||||
|
//
|
||||||
|
this.saveAsToolStripMenuItem.Name = "saveAsToolStripMenuItem";
|
||||||
|
this.saveAsToolStripMenuItem.Size = new System.Drawing.Size(180, 22);
|
||||||
|
this.saveAsToolStripMenuItem.Text = "Save As";
|
||||||
|
this.saveAsToolStripMenuItem.Click += new System.EventHandler(this.saveAsToolStripMenuItem_Click);
|
||||||
//
|
//
|
||||||
// exitToolStripMenuItem
|
// exitToolStripMenuItem
|
||||||
//
|
//
|
||||||
@@ -119,6 +136,12 @@ namespace Advanced_Software_Engineering
|
|||||||
this.runToolStripMenuItem.Text = "Run";
|
this.runToolStripMenuItem.Text = "Run";
|
||||||
this.runToolStripMenuItem.Click += new System.EventHandler(this.runToolStripMenuItem_Click);
|
this.runToolStripMenuItem.Click += new System.EventHandler(this.runToolStripMenuItem_Click);
|
||||||
//
|
//
|
||||||
|
// checkSyntaxToolStripMenuItem
|
||||||
|
//
|
||||||
|
this.checkSyntaxToolStripMenuItem.Name = "checkSyntaxToolStripMenuItem";
|
||||||
|
this.checkSyntaxToolStripMenuItem.Size = new System.Drawing.Size(90, 20);
|
||||||
|
this.checkSyntaxToolStripMenuItem.Text = "Check Syntax";
|
||||||
|
//
|
||||||
// helpToolStripMenuItem
|
// helpToolStripMenuItem
|
||||||
//
|
//
|
||||||
this.helpToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
this.helpToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
||||||
@@ -141,16 +164,31 @@ namespace Advanced_Software_Engineering
|
|||||||
this.helpToolStripMenuItem1.Size = new System.Drawing.Size(107, 22);
|
this.helpToolStripMenuItem1.Size = new System.Drawing.Size(107, 22);
|
||||||
this.helpToolStripMenuItem1.Text = "Help";
|
this.helpToolStripMenuItem1.Text = "Help";
|
||||||
//
|
//
|
||||||
|
// label1
|
||||||
|
//
|
||||||
|
this.label1.AutoSize = true;
|
||||||
|
this.label1.Dock = System.Windows.Forms.DockStyle.Bottom;
|
||||||
|
this.label1.Location = new System.Drawing.Point(0, 535);
|
||||||
|
this.label1.Name = "label1";
|
||||||
|
this.label1.Size = new System.Drawing.Size(0, 13);
|
||||||
|
this.label1.TabIndex = 2;
|
||||||
|
//
|
||||||
|
// timer1
|
||||||
|
//
|
||||||
|
this.timer1.Interval = 1000;
|
||||||
|
//
|
||||||
// Text_Editor
|
// Text_Editor
|
||||||
//
|
//
|
||||||
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
||||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||||
this.ClientSize = new System.Drawing.Size(602, 548);
|
this.ClientSize = new System.Drawing.Size(602, 548);
|
||||||
|
this.Controls.Add(this.label1);
|
||||||
this.Controls.Add(this.textBox1);
|
this.Controls.Add(this.textBox1);
|
||||||
this.Controls.Add(this.menuStrip1);
|
this.Controls.Add(this.menuStrip1);
|
||||||
this.MainMenuStrip = this.menuStrip1;
|
this.MainMenuStrip = this.menuStrip1;
|
||||||
this.Name = "Text_Editor";
|
this.Name = "Text_Editor";
|
||||||
this.Text = "Advanced Software Engineering - Text Editor";
|
this.Text = "Advanced Software Engineering - Text Editor";
|
||||||
|
this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.Text_Editor_FormClosing);
|
||||||
this.FormClosed += new System.Windows.Forms.FormClosedEventHandler(this.Console_FormClosed);
|
this.FormClosed += new System.Windows.Forms.FormClosedEventHandler(this.Console_FormClosed);
|
||||||
this.menuStrip1.ResumeLayout(false);
|
this.menuStrip1.ResumeLayout(false);
|
||||||
this.menuStrip1.PerformLayout();
|
this.menuStrip1.PerformLayout();
|
||||||
@@ -172,5 +210,9 @@ namespace Advanced_Software_Engineering
|
|||||||
private ToolStripMenuItem helpToolStripMenuItem;
|
private ToolStripMenuItem helpToolStripMenuItem;
|
||||||
private ToolStripMenuItem aboutToolStripMenuItem;
|
private ToolStripMenuItem aboutToolStripMenuItem;
|
||||||
private ToolStripMenuItem helpToolStripMenuItem1;
|
private ToolStripMenuItem helpToolStripMenuItem1;
|
||||||
|
private ToolStripMenuItem saveAsToolStripMenuItem;
|
||||||
|
private ToolStripMenuItem checkSyntaxToolStripMenuItem;
|
||||||
|
private Label label1;
|
||||||
|
private Timer timer1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -26,6 +26,7 @@ namespace Advanced_Software_Engineering {
|
|||||||
public Text_Editor() {
|
public Text_Editor() {
|
||||||
SettingsAndHelperFunctions.NumberOfWindows++;
|
SettingsAndHelperFunctions.NumberOfWindows++;
|
||||||
InitializeComponent();
|
InitializeComponent();
|
||||||
|
UpdateTitle();
|
||||||
}
|
}
|
||||||
|
|
||||||
public Text_Editor(OpenFileDialog openFile) {
|
public Text_Editor(OpenFileDialog openFile) {
|
||||||
@@ -42,41 +43,85 @@ namespace Advanced_Software_Engineering {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void UpdateTitle() {
|
void UpdateTitle() {
|
||||||
this.Text = DefaultTitleString + " - " + fileName;
|
if (fileName != "") this.Text = DefaultTitleString + " - " + fileName;
|
||||||
|
else this.Text = DefaultTitleString;
|
||||||
if (unsavedChanges) this.Text = "* " + this.Text + " *";
|
if (unsavedChanges) this.Text = "* " + this.Text + " *";
|
||||||
}
|
}
|
||||||
|
|
||||||
private void Console_FormClosed(object sender, FormClosedEventArgs e) {
|
private void saveFile() {
|
||||||
if (DisplayForm != null && !DisplayForm.IsDisposed) DisplayForm.ReleaseCommandLock();
|
if (!okToOverwrite) saveFileAs();
|
||||||
SettingsAndHelperFunctions.WindowClosed();
|
else {
|
||||||
Dispose();
|
StreamWriter fileStream = new StreamWriter(fileName);
|
||||||
|
try {
|
||||||
|
fileStream.Write(textBox1.Text);
|
||||||
|
unsavedChanges = false;
|
||||||
|
} 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();
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void newFileToolStripMenuItem_Click(object sender, EventArgs e) {
|
private void saveFileAs() {
|
||||||
new Text_Editor().Show();
|
SaveFileDialog saveFileDialog = new SaveFileDialog();
|
||||||
|
saveFileDialog.OverwritePrompt = true;
|
||||||
|
saveFileDialog.DefaultExt = ".txt";
|
||||||
|
if (fileName != "") saveFileDialog.FileName = fileName;
|
||||||
|
saveFileDialog.ValidateNames = true;
|
||||||
|
|
||||||
|
DialogResult dialogResult = saveFileDialog.ShowDialog();
|
||||||
|
if (dialogResult == DialogResult.OK) {
|
||||||
|
StreamWriter fileStream = new StreamWriter(saveFileDialog.OpenFile());
|
||||||
|
try {
|
||||||
|
fileStream.Write(textBox1.Text);
|
||||||
|
unsavedChanges = false;
|
||||||
|
okToOverwrite = true;
|
||||||
|
fileName = saveFileDialog.FileName;
|
||||||
|
} 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();
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void aboutToolStripMenuItem_Click(object sender, EventArgs e) {
|
private void updateRowCol() {
|
||||||
new About_Window().Show();
|
int line = textBox1.GetLineFromCharIndex(textBox1.SelectionStart);
|
||||||
|
int column = textBox1.SelectionStart - textBox1.GetFirstCharIndexFromLine(line);
|
||||||
|
label1.Text = "row: " + line.ToString() + " col: " + column.ToString();
|
||||||
}
|
}
|
||||||
|
|
||||||
private void exitToolStripMenuItem_Click(object sender, EventArgs e) {
|
private void handleKeypress() {
|
||||||
Close();
|
updateSaveStatus();
|
||||||
|
updateRowCol();
|
||||||
}
|
}
|
||||||
|
|
||||||
private void runToolStripMenuItem_Click(object sender, EventArgs e) {
|
private void updateSaveStatus() {
|
||||||
if(DisplayForm == null || DisplayForm.IsDisposed) {
|
if (!unsavedChanges) {
|
||||||
DisplayForm = new Draw_Preview(textBox1.Text);
|
unsavedChanges = true;
|
||||||
} else {
|
UpdateTitle();
|
||||||
Console.WriteLine("Removed all commands");
|
|
||||||
DisplayForm.RemoveAllCommands();
|
|
||||||
DisplayForm.SubmitCommands(textBox1.Text);
|
|
||||||
}
|
}
|
||||||
DisplayForm.Show();
|
}
|
||||||
DisplayForm.Focus();
|
|
||||||
|
private void handleExit(FormClosingEventArgs e) {
|
||||||
|
if (unsavedChanges) {
|
||||||
|
DialogResult dialogResult = MessageBox.Show("You have unsaved work. Would you like to discard your work?", "Unsaved work!", MessageBoxButtons.YesNo, MessageBoxIcon.None);
|
||||||
|
if (e != null) e.Cancel = dialogResult != DialogResult.Yes;
|
||||||
|
else Close();
|
||||||
|
} else Close();
|
||||||
}
|
}
|
||||||
|
|
||||||
private void openToolStripMenuItem_Click(object sender, EventArgs e) {
|
private void openToolStripMenuItem_Click(object sender, EventArgs e) {
|
||||||
|
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);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (result == DialogResult.Yes) {
|
||||||
OpenFileDialog openFileDialog = new OpenFileDialog();
|
OpenFileDialog openFileDialog = new OpenFileDialog();
|
||||||
|
|
||||||
if (openFileDialog.ShowDialog() == DialogResult.OK) {
|
if (openFileDialog.ShowDialog() == DialogResult.OK) {
|
||||||
@@ -87,7 +132,40 @@ namespace Advanced_Software_Engineering {
|
|||||||
UpdateTitle(openFileDialog.FileName);
|
UpdateTitle(openFileDialog.FileName);
|
||||||
} else new Text_Editor(openFileDialog).Show();
|
} else new Text_Editor(openFileDialog).Show();
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void Console_FormClosed(object sender, FormClosedEventArgs e) {
|
||||||
|
if (DisplayForm != null && !DisplayForm.IsDisposed) DisplayForm.ReleaseCommandLock();
|
||||||
|
SettingsAndHelperFunctions.WindowClosed();
|
||||||
|
Dispose();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void runToolStripMenuItem_Click(object sender, EventArgs e) {
|
||||||
|
if (DisplayForm == null || DisplayForm.IsDisposed) {
|
||||||
|
DisplayForm = new Draw_Preview(textBox1.Text);
|
||||||
|
} else {
|
||||||
|
Console.WriteLine("Removed all commands");
|
||||||
|
DisplayForm.RemoveAllCommands();
|
||||||
|
DisplayForm.SubmitCommands(textBox1.Text);
|
||||||
|
}
|
||||||
|
DisplayForm.Show();
|
||||||
|
DisplayForm.Focus();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void handleKeypress(object sender, EventArgs e) => handleKeypress();
|
||||||
|
|
||||||
|
private void textBox1_Click(object sender, EventArgs e) => updateRowCol();
|
||||||
|
|
||||||
|
private void saveAsToolStripMenuItem_Click(object sender, EventArgs e) => saveFileAs();
|
||||||
|
private void saveToolStripMenuItem_Click(object sender, EventArgs e) => saveFile();
|
||||||
|
|
||||||
|
private void Text_Editor_FormClosing(object sender, FormClosingEventArgs e) => handleExit(e);
|
||||||
|
|
||||||
|
private void newFileToolStripMenuItem_Click(object sender, EventArgs e) => new Text_Editor().Show();
|
||||||
|
private void aboutToolStripMenuItem_Click(object sender, EventArgs e) => new About_Window().Show();
|
||||||
|
|
||||||
|
private void exitToolStripMenuItem_Click(object sender, EventArgs e) => handleExit(null);
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
|
||||||
}
|
}
|
||||||
@@ -120,6 +120,9 @@
|
|||||||
<metadata name="menuStrip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
<metadata name="menuStrip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||||
<value>17, 17</value>
|
<value>17, 17</value>
|
||||||
</metadata>
|
</metadata>
|
||||||
|
<metadata name="timer1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||||
|
<value>132, 17</value>
|
||||||
|
</metadata>
|
||||||
<metadata name="$this.TrayHeight" type="System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
<metadata name="$this.TrayHeight" type="System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||||
<value>59</value>
|
<value>59</value>
|
||||||
</metadata>
|
</metadata>
|
||||||
|
|||||||
Reference in new issue
Block a user