diff --git a/TimeTable/controll/SqliteTaskCommands.cs b/TimeTable/controll/SqliteTaskCommands.cs
new file mode 100644
index 0000000..9df688d
--- /dev/null
+++ b/TimeTable/controll/SqliteTaskCommands.cs
@@ -0,0 +1,38 @@
+using Microsoft.Data.Sqlite;
+using System.Globalization;
+
+namespace TimeTable.controll {
+ internal static class SqliteTaskCommands {
+
+ public static string select = "select uid, lfdr, start, end, text, time from tasks";
+ private static CultureInfo ci = System.Globalization.CultureInfo.GetCultureInfo("de-de");
+ private static string insertPrefix = "insert into tasks (";
+ private static string insertIntermediate = ") values(";
+ private static string insertPostfix = ");";
+
+ private static string updatePrefix = "update tasks set ";
+ private static string updateIntermediate = " where uid = ";
+ private static string updatePostfix = ";";
+
+
+ public static void CreateTableIfNotExists(string sqlConnection) {
+ SqliteConnection con = new SqliteConnection(sqlConnection);
+ con.Open();
+ SqliteCommand sqliteCmd = con.CreateCommand();
+ sqliteCmd.CommandText = @"SELECT name FROM sqlite_master WHERE type='table' AND name='tasks';";
+
+ var name = sqliteCmd.ExecuteScalar();
+ if (name != null && name.ToString() == "tasks") {
+ return;
+ }
+ var cols = "lfdr INTEGER PRIMARY KEY AUTOINCREMENT,";
+ string[] columns = new string[5] { "start", "end", "text", "time", "uid" };
+ cols += string.Join(" VARCHAR,", columns);
+ cols = cols + " Varchar";
+ sqliteCmd.CommandText = "CREATE TABLE tasks (" + cols + ")";
+ con.Open();
+ sqliteCmd.ExecuteNonQuery();
+ con.Close();
+ }
+ }
+}
diff --git a/TimeTable/controll/SqliteCommands.cs b/TimeTable/controll/SqliteTimeTableCommands.cs
similarity index 96%
rename from TimeTable/controll/SqliteCommands.cs
rename to TimeTable/controll/SqliteTimeTableCommands.cs
index db6acff..fc608a5 100644
--- a/TimeTable/controll/SqliteCommands.cs
+++ b/TimeTable/controll/SqliteTimeTableCommands.cs
@@ -3,7 +3,7 @@ using System.Globalization;
using TimeTable.model;
namespace TimeTable.controll {
- internal static class SqliteCommands {
+ internal static class SqliteTimeTableCommands {
public static string select = "select uid, start, end, text, time from timetable";
private static CultureInfo ci = System.Globalization.CultureInfo.GetCultureInfo("de-de");
@@ -149,7 +149,8 @@ namespace TimeTable.controll {
if (name != null && name.ToString() == "timetable") {
return;
}
- var cols = string.Join(" VARCHAR,", "uid, start, end, text, time");
+ string[] columns = new string[5] { "start", "end", "text", "time", "uid" };
+ var cols = string.Join(" VARCHAR,", columns);
cols = cols + " Varchar";
sqliteCmd.CommandText = "CREATE TABLE timetable (" + cols + ")";
con.Open();
diff --git a/TimeTable/view/Decide.Designer.cs b/TimeTable/view/Decide.Designer.cs
index 58226a7..fc34a60 100644
--- a/TimeTable/view/Decide.Designer.cs
+++ b/TimeTable/view/Decide.Designer.cs
@@ -78,11 +78,11 @@ namespace TimeTable.view {
pictureBox1.TabIndex = 3;
pictureBox1.TabStop = false;
//
- // label1
+ // uidText
//
label1.AutoSize = true;
label1.Location = new Point(130, 38);
- label1.Name = "label1";
+ label1.Name = "uidText";
label1.Size = new Size(267, 20);
label1.TabIndex = 4;
label1.Text = "What should happen to the Time Item?";
diff --git a/TimeTable/view/Main.Designer.cs b/TimeTable/view/Main.Designer.cs
index d2dceb1..eba8108 100644
--- a/TimeTable/view/Main.Designer.cs
+++ b/TimeTable/view/Main.Designer.cs
@@ -27,6 +27,9 @@ namespace TimeTable {
private void InitializeComponent() {
components = new System.ComponentModel.Container();
btnPanel = new Panel();
+ uidLbl = new Label();
+ uidText = new Label();
+ btnDelete = new Button();
btnTaskStop = new Button();
btnTaskStart = new Button();
btnStopResume = new Button();
@@ -36,16 +39,19 @@ namespace TimeTable {
bindingSource = new BindingSource(components);
con = new SQLiteConnection();
dataAdapter = new SQLiteDataAdapter();
- btnDelete = new Button();
+ taskTableGridView = new DataGridView();
btnPanel.SuspendLayout();
tableView.SuspendLayout();
((System.ComponentModel.ISupportInitialize)taskTimeGridView).BeginInit();
((System.ComponentModel.ISupportInitialize)bindingSource).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)taskTableGridView).BeginInit();
SuspendLayout();
//
// btnPanel
//
btnPanel.AutoSizeMode = AutoSizeMode.GrowAndShrink;
+ btnPanel.Controls.Add(uidLbl);
+ btnPanel.Controls.Add(uidText);
btnPanel.Controls.Add(btnDelete);
btnPanel.Controls.Add(btnTaskStop);
btnPanel.Controls.Add(btnTaskStart);
@@ -57,6 +63,34 @@ namespace TimeTable {
btnPanel.Size = new Size(233, 378);
btnPanel.TabIndex = 0;
//
+ // uidLbl
+ //
+ uidLbl.AutoSize = true;
+ uidLbl.Location = new Point(3, 152);
+ uidLbl.Name = "uidLbl";
+ uidLbl.Size = new Size(42, 20);
+ uidLbl.TabIndex = 2;
+ uidLbl.Text = "none";
+ //
+ // uidText
+ //
+ uidText.AutoSize = true;
+ uidText.Location = new Point(3, 122);
+ uidText.Name = "uidText";
+ uidText.Size = new Size(95, 20);
+ uidText.TabIndex = 5;
+ uidText.Text = "Selected UID";
+ //
+ // btnDelete
+ //
+ btnDelete.Location = new Point(3, 73);
+ btnDelete.Name = "btnDelete";
+ btnDelete.Size = new Size(94, 26);
+ btnDelete.TabIndex = 4;
+ btnDelete.Text = "Delete";
+ btnDelete.UseVisualStyleBackColor = true;
+ btnDelete.Click += DeleteRow;
+ //
// btnTaskStop
//
btnTaskStop.Location = new Point(103, 38);
@@ -82,7 +116,7 @@ namespace TimeTable {
btnStopResume.Name = "btnStopResume";
btnStopResume.Size = new Size(114, 29);
btnStopResume.TabIndex = 1;
- btnStopResume.Text = "Stop/Resume";
+ btnStopResume.Text = "Stop";
btnStopResume.UseVisualStyleBackColor = true;
//
// btnStart
@@ -98,6 +132,7 @@ namespace TimeTable {
// tableView
//
tableView.AutoSizeMode = AutoSizeMode.GrowAndShrink;
+ tableView.Controls.Add(taskTableGridView);
tableView.Controls.Add(taskTimeGridView);
tableView.Dock = DockStyle.Fill;
tableView.Location = new Point(233, 0);
@@ -107,7 +142,7 @@ namespace TimeTable {
//
// taskTimeGridView
//
- taskTimeGridView.AutoGenerateColumns = true;
+ taskTimeGridView.AutoGenerateColumns = false;
taskTimeGridView.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.AutoSize;
taskTimeGridView.DataSource = bindingSource;
taskTimeGridView.Dock = DockStyle.Fill;
@@ -117,12 +152,12 @@ namespace TimeTable {
taskTimeGridView.RowHeadersWidth = 51;
taskTimeGridView.Size = new Size(631, 378);
taskTimeGridView.TabIndex = 0;
+ taskTimeGridView.CellClick += TimeTableClick;
taskTimeGridView.CellDoubleClick += TimetableEditDoubleClick;
//
// con
//
con.BusyTimeout = 0;
- con.ConnectionString = sqlConnectionString;
con.DefaultDbType = null;
con.DefaultMaximumSleepTime = 150;
con.DefaultTimeout = 30;
@@ -137,17 +172,17 @@ namespace TimeTable {
con.TraceFlags = SQLiteTraceFlags.SQLITE_TRACE_NONE;
con.VfsName = null;
con.WaitTimeout = 30000;
- bindingSource.DataSource = createDataTable();
+ OtherTasks();
//
- // btnDelete
+ // taskTableGridView
//
- 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;
+ taskTableGridView.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.AutoSize;
+ taskTableGridView.Dock = DockStyle.Bottom;
+ taskTableGridView.Location = new Point(0, 232);
+ taskTableGridView.Name = "taskTableGridView";
+ taskTableGridView.RowHeadersWidth = 51;
+ taskTableGridView.Size = new Size(631, 146);
+ taskTableGridView.TabIndex = 1;
//
// Main
//
@@ -159,13 +194,22 @@ namespace TimeTable {
Name = "Main";
Text = "TimeTable";
btnPanel.ResumeLayout(false);
+ btnPanel.PerformLayout();
tableView.ResumeLayout(false);
((System.ComponentModel.ISupportInitialize)taskTimeGridView).EndInit();
((System.ComponentModel.ISupportInitialize)bindingSource).EndInit();
+ ((System.ComponentModel.ISupportInitialize)taskTableGridView).EndInit();
ResumeLayout(false);
}
- private DataTable createDataTable() {
+ private void OtherTasks() {
+ SqliteTimeTableCommands.CreateTableIfNotExists(sqlConnectionString);
+ taskTimeGridView.AutoGenerateColumns = true;
+ con.ConnectionString = sqlConnectionString;
+ bindingSource.DataSource = createDataTable();
+ }
+
+ public DataTable createDataTable() {
DataTable table = new DataTable();
table.Locale = new System.Globalization.CultureInfo("de-de");
SQLiteCommand sqlCommand = new SQLiteCommand("select * from timetable;", con);
@@ -177,7 +221,7 @@ namespace TimeTable {
private void DeleteRow(object sender, EventArgs e) {
DataGridViewRow row = taskTimeGridView.Rows[0];
string currentId = row.Cells[0].Value.ToString();
- SqliteCommands.DeleteTableRow(currentId, sqlConnectionString);
+ SqliteTimeTableCommands.DeleteTableRow(currentId, sqlConnectionString);
bindingSource.DataSource = createDataTable();
}
@@ -189,12 +233,27 @@ namespace TimeTable {
string text = row.Cells[3].Value.ToString();
RowEdit rowEdit = new RowEdit();
- rowEdit.Data(uid, start, end, text);
+ rowEdit.Data(uid, start, end, text, this);
rowEdit.ShowDialog();
}
- private void executeSql(string command) {
+ private void TimeTableClick(object sender, DataGridViewCellEventArgs e) {
+ DataGridViewRow row = taskTimeGridView.Rows[0];
+ string uid = row.Cells[4].Value.ToString();
+ uidLbl.Text = uid;
+ this.uid = uid;
+
+ BindingSource bindingSource = new BindingSource();
+ DataTable table = new DataTable();
+ table.Locale = new System.Globalization.CultureInfo("de-de");
+ SQLiteCommand sqlCommand = new SQLiteCommand("select * from tasks where uid = " + uid + ";", con);
+ dataAdapter.SelectCommand = sqlCommand;
+ dataAdapter.Fill(table);
+ taskTableGridView.DataSource = table;
+ }
+
+ public void executeSql(string command) {
SqliteConnection con = new SqliteConnection(sqlConnectionString);
SqliteCommand sqliteCmd = con.CreateCommand();
sqliteCmd.CommandText = command;
@@ -208,7 +267,7 @@ namespace TimeTable {
private void btnStartClick(object sender, EventArgs e) {
- UidCommand uidCmd = SqliteCommands.InsertCmd(DateTime.Now);
+ UidCommand uidCmd = SqliteTimeTableCommands.InsertCmd(DateTime.Now);
uid = uidCmd.uid;
executeSql(uidCmd.command);
}
@@ -217,8 +276,8 @@ namespace TimeTable {
}
- private void btnStopResumeClick(object sender, EventArgs e) {
- String cmd = SqliteCommands.UpdateEndCmd(uid, DateTime.Now);
+ private void btnStopResumeClick(object sender, EventArgs e) {
+ String cmd = SqliteTimeTableCommands.UpdateEndCmd(uid, DateTime.Now);
executeSql(cmd);
}
@@ -243,5 +302,8 @@ namespace TimeTable {
private SQLiteDataAdapter dataAdapter;
private System.ComponentModel.IContainer components;
private Button btnDelete;
+ private Label uidText;
+ private Label uidLbl;
+ private DataGridView taskTableGridView;
}
}
diff --git a/TimeTable/view/Main.resx b/TimeTable/view/Main.resx
index d3f3187..19142ec 100644
--- a/TimeTable/view/Main.resx
+++ b/TimeTable/view/Main.resx
@@ -120,6 +120,9 @@
381, 17
+
+ 381, 17
+
161, 17
diff --git a/TimeTable/view/RowEdit.Designer.cs b/TimeTable/view/RowEdit.Designer.cs
index 7377035..b01e972 100644
--- a/TimeTable/view/RowEdit.Designer.cs
+++ b/TimeTable/view/RowEdit.Designer.cs
@@ -1,4 +1,5 @@
using Microsoft.IdentityModel.Tokens;
+using System.Windows.Forms;
using TimeTable.controll;
using TimeTable.model;
@@ -8,6 +9,7 @@ namespace TimeTable.view {
/// Required designer variable.
///
private System.ComponentModel.IContainer components = null;
+ Main main;
///
/// Clean up any resources being used.
@@ -37,8 +39,6 @@ namespace TimeTable.view {
textBox = new TextBox();
btnSave = new Button();
btnCancel = new Button();
- startTimePicker = new DateTimePicker();
- endTimePicker = new DateTimePicker();
SuspendLayout();
//
// uidTxt
@@ -77,49 +77,55 @@ namespace TimeTable.view {
textTxt.TabIndex = 3;
textTxt.Text = "Text";
//
- // uidLbl
+ // uidText
//
uidLbl.AutoSize = true;
uidLbl.Location = new Point(71, 20);
- uidLbl.Name = "uidLbl";
+ uidLbl.Name = "uidText";
uidLbl.Size = new Size(34, 20);
uidLbl.TabIndex = 4;
uidLbl.Text = "UID";
//
// startDatePicker
//
+ startDatePicker.CustomFormat = "dd-mm-yyyy HH:mm:ss";
+ startDatePicker.Format = DateTimePickerFormat.Custom;
+ startDatePicker.ShowUpDown = true;
startDatePicker.Location = new Point(71, 49);
startDatePicker.Name = "startDatePicker";
- startDatePicker.Size = new Size(186, 27);
+ startDatePicker.Size = new Size(230, 27);
startDatePicker.TabIndex = 5;
//
// endDatePicker
//
+ endDatePicker.CustomFormat = "dd-mm-yyyy HH:mm:ss";
+ endDatePicker.Format = DateTimePickerFormat.Custom;
+ endDatePicker.ShowUpDown = true;
endDatePicker.Location = new Point(71, 88);
endDatePicker.Name = "endDatePicker";
- endDatePicker.Size = new Size(186, 27);
+ endDatePicker.Size = new Size(230, 27);
endDatePicker.TabIndex = 6;
//
// textBox
//
textBox.Location = new Point(71, 126);
textBox.Name = "textBox";
- textBox.Size = new Size(300, 27);
+ textBox.Size = new Size(230, 27);
textBox.TabIndex = 7;
//
// btnSave
//
- btnSave.Location = new Point(156, 173);
+ btnSave.Location = new Point(98, 173);
btnSave.Name = "btnSave";
btnSave.Size = new Size(101, 30);
btnSave.TabIndex = 8;
btnSave.Text = "Save";
btnSave.UseVisualStyleBackColor = true;
- btnSave.Click += button1_Click;
+ btnSave.Click += btnSaveCmd;
//
// btnCancel
//
- btnCancel.Location = new Point(270, 173);
+ btnCancel.Location = new Point(212, 173);
btnCancel.Name = "btnCancel";
btnCancel.Size = new Size(101, 30);
btnCancel.TabIndex = 9;
@@ -127,29 +133,11 @@ namespace TimeTable.view {
btnCancel.UseVisualStyleBackColor = true;
btnCancel.Click += btnCancelCmd;
//
- // startTimePicker
- //
- startTimePicker.Format = DateTimePickerFormat.Time;
- startTimePicker.Location = new Point(263, 49);
- startTimePicker.Name = "startTimePicker";
- startTimePicker.Size = new Size(108, 27);
- startTimePicker.TabIndex = 10;
- //
- // endTimePicker
- //
- endTimePicker.Format = DateTimePickerFormat.Time;
- endTimePicker.Location = new Point(263, 88);
- endTimePicker.Name = "endTimePicker";
- endTimePicker.Size = new Size(108, 27);
- endTimePicker.TabIndex = 11;
- //
// RowEdit
//
AutoScaleDimensions = new SizeF(8F, 20F);
AutoScaleMode = AutoScaleMode.Font;
- ClientSize = new Size(382, 237);
- Controls.Add(endTimePicker);
- Controls.Add(startTimePicker);
+ ClientSize = new Size(325, 215);
Controls.Add(btnCancel);
Controls.Add(btnSave);
Controls.Add(textBox);
@@ -167,20 +155,24 @@ namespace TimeTable.view {
PerformLayout();
}
-
private void btnCancelCmd(object sender, EventArgs e) {
this.Close();
}
+ private void btnSaveCmd(object sender, EventArgs e) {
+ string cmd = SqliteTimeTableCommands.UpdateCmd(uidLbl.Text, startDatePicker.Value, endDatePicker.Value, textBox.Text);
+ main.executeSql(cmd);
+ }
#endregion
- public void Data(string uid, string start, string end, string text) {
+ public void Data(string uid, string start, string end, string text, Main mainView) {
+ main = mainView;
uidLbl.Text = uid;
if (!start.IsNullOrEmpty()) {
startDatePicker.Text = start;
}
- if (!end.IsNullOrEmpty()) {
+ if (!end.IsNullOrEmpty()) {
endDatePicker.Text = end;
}
@@ -199,8 +191,6 @@ namespace TimeTable.view {
private TextBox textBox;
private Button btnSave;
private Button btnCancel;
- private DateTimePicker startTimePicker;
- private DateTimePicker endTimePicker;
}
diff --git a/TimeTable/view/RowEdit.cs b/TimeTable/view/RowEdit.cs
index d66da88..4cbd3a5 100644
--- a/TimeTable/view/RowEdit.cs
+++ b/TimeTable/view/RowEdit.cs
@@ -3,9 +3,5 @@
public RowEdit() {
InitializeComponent();
}
-
- private void button1_Click(object sender, EventArgs e) {
-
- }
}
}
diff --git a/TimeTable/view/TextInsert.Designer.cs b/TimeTable/view/TextInsert.Designer.cs
index faff4a2..bdc6f41 100644
--- a/TimeTable/view/TextInsert.Designer.cs
+++ b/TimeTable/view/TextInsert.Designer.cs
@@ -27,11 +27,11 @@
textBox = new TextBox();
SuspendLayout();
//
- // label1
+ // uidText
//
label1.AutoSize = true;
label1.Location = new Point(12, 23);
- label1.Name = "label1";
+ label1.Name = "uidText";
label1.Size = new Size(36, 20);
label1.TabIndex = 0;
label1.Text = "Text";