added features for editing, tasks and stop funktion
This commit is contained in:
parent
2acfee90ca
commit
112b1a968c
|
@ -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();
|
||||
}
|
||||
}
|
||||
}
|
|
@ -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();
|
|
@ -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?";
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -120,6 +120,9 @@
|
|||
<metadata name="bindingSource.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<value>381, 17</value>
|
||||
</metadata>
|
||||
<metadata name="bindingSource.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<value>381, 17</value>
|
||||
</metadata>
|
||||
<metadata name="con.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<value>161, 17</value>
|
||||
</metadata>
|
||||
|
|
|
@ -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.
|
||||
/// </summary>
|
||||
private System.ComponentModel.IContainer components = null;
|
||||
Main main;
|
||||
|
||||
/// <summary>
|
||||
/// 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;
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -3,9 +3,5 @@
|
|||
public RowEdit() {
|
||||
InitializeComponent();
|
||||
}
|
||||
|
||||
private void button1_Click(object sender, EventArgs e) {
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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";
|
||||
|
|
Loading…
Reference in New Issue