diff --git a/TimeTable/Properties/Resources.Designer.cs b/TimeTable/Properties/Resources.Designer.cs
new file mode 100644
index 0000000..820d0fb
--- /dev/null
+++ b/TimeTable/Properties/Resources.Designer.cs
@@ -0,0 +1,63 @@
+//------------------------------------------------------------------------------
+//
+// This code was generated by a tool.
+// Runtime Version:4.0.30319.42000
+//
+// Changes to this file may cause incorrect behavior and will be lost if
+// the code is regenerated.
+//
+//------------------------------------------------------------------------------
+
+namespace TimeTable.Properties {
+ using System;
+
+
+ ///
+ /// A strongly-typed resource class, for looking up localized strings, etc.
+ ///
+ // This class was auto-generated by the StronglyTypedResourceBuilder
+ // class via a tool like ResGen or Visual Studio.
+ // To add or remove a member, edit your .ResX file then rerun ResGen
+ // with the /str option, or rebuild your VS project.
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "17.0.0.0")]
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
+ internal class Resources {
+
+ private static global::System.Resources.ResourceManager resourceMan;
+
+ private static global::System.Globalization.CultureInfo resourceCulture;
+
+ [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
+ internal Resources() {
+ }
+
+ ///
+ /// Returns the cached ResourceManager instance used by this class.
+ ///
+ [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
+ internal static global::System.Resources.ResourceManager ResourceManager {
+ get {
+ if (object.ReferenceEquals(resourceMan, null)) {
+ global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("TimeTable.Properties.Resources", typeof(Resources).Assembly);
+ resourceMan = temp;
+ }
+ return resourceMan;
+ }
+ }
+
+ ///
+ /// Overrides the current thread's CurrentUICulture property for all
+ /// resource lookups using this strongly typed resource class.
+ ///
+ [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
+ internal static global::System.Globalization.CultureInfo Culture {
+ get {
+ return resourceCulture;
+ }
+ set {
+ resourceCulture = value;
+ }
+ }
+ }
+}
diff --git a/TimeTable/Properties/Resources.resx b/TimeTable/Properties/Resources.resx
new file mode 100644
index 0000000..1af7de1
--- /dev/null
+++ b/TimeTable/Properties/Resources.resx
@@ -0,0 +1,120 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
\ No newline at end of file
diff --git a/TimeTable/TimeTable.csproj b/TimeTable/TimeTable.csproj
index c0a046f..2bf3cf7 100644
--- a/TimeTable/TimeTable.csproj
+++ b/TimeTable/TimeTable.csproj
@@ -14,5 +14,19 @@
+
+
+ True
+ True
+ Resources.resx
+
+
+
+
+
+ ResXFileCodeGenerator
+ Resources.Designer.cs
+
+
\ No newline at end of file
diff --git a/TimeTable/controll/SqliteCommands.cs b/TimeTable/controll/SqliteCommands.cs
index 8068cba..db6acff 100644
--- a/TimeTable/controll/SqliteCommands.cs
+++ b/TimeTable/controll/SqliteCommands.cs
@@ -156,5 +156,16 @@ namespace TimeTable.controll {
sqliteCmd.ExecuteNonQuery();
con.Close();
}
+
+ public static void DeleteTableRow(string uid, string sqlConnection) {
+ SqliteConnection con = new SqliteConnection(sqlConnection);
+ con.Open();
+ SqliteCommand sqliteCmd = con.CreateCommand();
+ sqliteCmd.CommandText = @"Delete FROM timetable WHERE uid='" + uid + "';";
+ con.Open();
+ sqliteCmd.ExecuteNonQuery();
+ con.Close();
+
+ }
}
}
diff --git a/TimeTable/view/Decide.Designer.cs b/TimeTable/view/Decide.Designer.cs
new file mode 100644
index 0000000..a6eac03
--- /dev/null
+++ b/TimeTable/view/Decide.Designer.cs
@@ -0,0 +1,109 @@
+using System.Drawing;
+
+namespace TimeTable.view {
+ partial class decide {
+ ///
+ /// Required designer variable.
+ ///
+ private System.ComponentModel.IContainer components = null;
+
+ ///
+ /// Clean up any resources being used.
+ ///
+ /// true if managed resources should be disposed; otherwise, false.
+ protected override void Dispose(bool disposing) {
+ if (disposing && (components != null)) {
+ components.Dispose();
+ }
+ base.Dispose(disposing);
+ }
+
+ #region Windows Form Designer generated code
+
+ ///
+ /// Required method for Designer support - do not modify
+ /// the contents of this method with the code editor.
+ ///
+ private void InitializeComponent() {
+ System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(decide));
+ stopBtn = new Button();
+ resumeBtn = new Button();
+ cancelBtn = new Button();
+ pictureBox1 = new PictureBox();
+ label1 = new Label();
+ ((System.ComponentModel.ISupportInitialize)pictureBox1).BeginInit();
+ SuspendLayout();
+ //
+ // stopBtn
+ //
+ stopBtn.Location = new Point(130, 81);
+ stopBtn.Name = "stopBtn";
+ stopBtn.Size = new Size(94, 29);
+ stopBtn.TabIndex = 0;
+ stopBtn.Text = "Stop";
+ stopBtn.UseVisualStyleBackColor = true;
+ //
+ // resumeBtn
+ //
+ resumeBtn.Location = new Point(230, 81);
+ resumeBtn.Name = "resumeBtn";
+ resumeBtn.Size = new Size(94, 29);
+ resumeBtn.TabIndex = 1;
+ resumeBtn.Text = "Resume";
+ resumeBtn.UseVisualStyleBackColor = true;
+ //
+ // cancelBtn
+ //
+ cancelBtn.Location = new Point(330, 81);
+ cancelBtn.Name = "cancelBtn";
+ cancelBtn.Size = new Size(94, 29);
+ cancelBtn.TabIndex = 2;
+ cancelBtn.Text = "Cancel";
+ cancelBtn.UseVisualStyleBackColor = true;
+ //
+ // pictureBox1
+ //
+ pictureBox1.Image = (Image)resources.GetObject("pictureBox1.Image");
+ pictureBox1.Location = new Point(19, 20);
+ pictureBox1.Margin = new Padding(10, 0, 0, 0);
+ pictureBox1.Name = "pictureBox1";
+ pictureBox1.Size = new Size(61, 57);
+ pictureBox1.SizeMode = PictureBoxSizeMode.StretchImage;
+ pictureBox1.TabIndex = 3;
+ pictureBox1.TabStop = false;
+ //
+ // label1
+ //
+ label1.AutoSize = true;
+ label1.Location = new Point(130, 38);
+ label1.Name = "label1";
+ label1.Size = new Size(267, 20);
+ label1.TabIndex = 4;
+ label1.Text = "What should happen to the Time Item?";
+ //
+ // decide
+ //
+ AutoScaleDimensions = new SizeF(8F, 20F);
+ AutoScaleMode = AutoScaleMode.Font;
+ ClientSize = new Size(439, 122);
+ Controls.Add(label1);
+ Controls.Add(pictureBox1);
+ Controls.Add(cancelBtn);
+ Controls.Add(resumeBtn);
+ Controls.Add(stopBtn);
+ Name = "decide";
+ Text = "What to do?";
+ ((System.ComponentModel.ISupportInitialize)pictureBox1).EndInit();
+ ResumeLayout(false);
+ PerformLayout();
+ }
+
+ #endregion
+
+ private Button stopBtn;
+ private Button resumeBtn;
+ private Button cancelBtn;
+ private PictureBox pictureBox1;
+ private Label label1;
+ }
+}
\ No newline at end of file
diff --git a/TimeTable/view/Decide.cs b/TimeTable/view/Decide.cs
new file mode 100644
index 0000000..fa51af0
--- /dev/null
+++ b/TimeTable/view/Decide.cs
@@ -0,0 +1,8 @@
+namespace TimeTable.view {
+ public partial class decide : Form {
+ public decide() {
+ InitializeComponent();
+ }
+
+ }
+}
diff --git a/TimeTable/view/Decide.resx b/TimeTable/view/Decide.resx
new file mode 100644
index 0000000..3f58db7
--- /dev/null
+++ b/TimeTable/view/Decide.resx
@@ -0,0 +1,177 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+
+
+ 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
+ aPwHx1g7vs5VsDQAAAAASUVORK5CYII=
+
+
+
\ No newline at end of file
diff --git a/TimeTable/view/Main.Designer.cs b/TimeTable/view/Main.Designer.cs
index 2cc9a65..6a1d349 100644
--- a/TimeTable/view/Main.Designer.cs
+++ b/TimeTable/view/Main.Designer.cs
@@ -36,6 +36,7 @@ namespace TimeTable {
bindingSource = new BindingSource(components);
con = new SQLiteConnection();
dataAdapter = new SQLiteDataAdapter();
+ btnDelete = new Button();
btnPanel.SuspendLayout();
tableView.SuspendLayout();
((System.ComponentModel.ISupportInitialize)taskTimeGridView).BeginInit();
@@ -45,6 +46,7 @@ namespace TimeTable {
// btnPanel
//
btnPanel.AutoSizeMode = AutoSizeMode.GrowAndShrink;
+ btnPanel.Controls.Add(btnDelete);
btnPanel.Controls.Add(btnTaskStop);
btnPanel.Controls.Add(btnTaskStart);
btnPanel.Controls.Add(btnStopResume);
@@ -102,7 +104,6 @@ namespace TimeTable {
tableView.Name = "tableView";
tableView.Size = new Size(631, 378);
tableView.TabIndex = 1;
-
//
// taskTimeGridView
//
@@ -110,18 +111,17 @@ namespace TimeTable {
taskTimeGridView.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.AutoSize;
taskTimeGridView.DataSource = bindingSource;
taskTimeGridView.Dock = DockStyle.Fill;
+ taskTimeGridView.EditMode = DataGridViewEditMode.EditProgrammatically;
taskTimeGridView.Location = new Point(0, 0);
taskTimeGridView.Name = "taskTimeGridView";
taskTimeGridView.RowHeadersWidth = 51;
taskTimeGridView.Size = new Size(631, 378);
taskTimeGridView.TabIndex = 0;
- taskTimeGridView.EditMode = DataGridViewEditMode.EditProgrammatically;
- taskTimeGridView.CellContentDoubleClick += timetableEditDoubleClick;
+ taskTimeGridView.CellContentDoubleClick += TimetableEditDoubleClick;
//
// con
//
con.BusyTimeout = 0;
- //con.ConnectionString = sqlConnectionString;
con.ConnectionString = sqlConnectionString;
con.DefaultDbType = null;
con.DefaultMaximumSleepTime = 150;
@@ -137,9 +137,18 @@ namespace TimeTable {
con.TraceFlags = SQLiteTraceFlags.SQLITE_TRACE_NONE;
con.VfsName = null;
con.WaitTimeout = 30000;
- // bindingSource.DataSource = createDataTable();
bindingSource.DataSource = createDataTable();
//
+ // btnDelete
+ //
+ btnDelete.Location = new Point(8, 78);
+ btnDelete.Name = "btnDelete";
+ btnDelete.Size = new Size(94, 26);
+ btnDelete.TabIndex = 4;
+ btnDelete.Text = "Delete";
+ btnDelete.UseVisualStyleBackColor = true;
+ btnDelete.Click += DeleteRow;
+ //
// Main
//
AutoScaleDimensions = new SizeF(8F, 20F);
@@ -165,7 +174,14 @@ namespace TimeTable {
return table;
}
- private void timetableEditDoubleClick(object sender, DataGridViewCellEventArgs e) {
+ private void DeleteRow(object sender, EventArgs e) {
+ DataGridViewRow row = taskTimeGridView.Rows[0];
+ string currentId = row.Cells[0].Value.ToString();
+ SqliteCommands.DeleteTableRow(currentId, sqlConnectionString);
+ bindingSource.DataSource = createDataTable();
+ }
+
+ private void TimetableEditDoubleClick(object sender, DataGridViewCellEventArgs e) {
DataGridViewRow row = taskTimeGridView.Rows[0];
string uid = row.Cells[0].Value.ToString();
string start = row.Cells[1].Value.ToString();
@@ -184,6 +200,7 @@ namespace TimeTable {
con.Open();
sqliteCmd.ExecuteNonQuery();
con.Close();
+ bindingSource.DataSource = createDataTable();
}
@@ -224,5 +241,6 @@ namespace TimeTable {
private SQLiteConnection con;
private SQLiteDataAdapter dataAdapter;
private System.ComponentModel.IContainer components;
+ private Button btnDelete;
}
}