parent
							
								
									91fabb658d
								
							
						
					
					
						commit
						97b7f823c8
					
				| @ -110,15 +110,24 @@ public partial class SectionTree : UserControl | |||||||
| 
 | 
 | ||||||
|     private async void buttonAdd_Click(object sender, EventArgs e) |     private async void buttonAdd_Click(object sender, EventArgs e) | ||||||
|     { |     { | ||||||
|         var result = InputDialog.Show("Please type the desired section name.", "Add a section", "My next section"); |         var result = InputDialog.Show(new InputDialog.Options( | ||||||
|  |             Message: "Please type the desired section name.", | ||||||
|  |             Title: "Add a section", | ||||||
|  |             Placeholder: "My next section", | ||||||
|  |             ShowQuestionCheckbox: true, | ||||||
|  |             QuestionCheckboxText: "Add a root node (i.e. ignoring the selected node)" | ||||||
|  |         )); | ||||||
|  |          | ||||||
|         if(result.DialogResult == DialogResult.Cancel) |         if(result.DialogResult == DialogResult.Cancel) | ||||||
|             return; |             return; | ||||||
|  | 
 | ||||||
|  |         var addRootNode = result.AnswerToQuestion; | ||||||
|          |          | ||||||
|         // Get the currently selected section as parent: |         // Get the currently selected section as parent: | ||||||
|         var selectedNode = this.treeView.SelectedNode; |         var selectedNode = this.treeView.SelectedNode; | ||||||
| 
 | 
 | ||||||
|         // Add the new section to the database: |         // Add the new section to the database: | ||||||
|         var addedSection = await SectionProcessor.AddSection(this.db, result.Text,  result.IsRoot ? null : selectedNode?.Name); |         var addedSection = await SectionProcessor.AddSection(this.db, result.Text,  addRootNode ? null : selectedNode?.Name); | ||||||
|          |          | ||||||
|         // Add the new section to the tree control: |         // Add the new section to the tree control: | ||||||
|         var node = new TreeNode |         var node = new TreeNode | ||||||
| @ -128,7 +137,7 @@ public partial class SectionTree : UserControl | |||||||
|             StateImageIndex = 1, |             StateImageIndex = 1, | ||||||
|         }; |         }; | ||||||
| 
 | 
 | ||||||
|         if(!result.IsRoot && selectedNode is not null) |         if(!addRootNode && selectedNode is not null) | ||||||
|             selectedNode.Nodes.Add(node); |             selectedNode.Nodes.Add(node); | ||||||
|         else |         else | ||||||
|             this.treeView.Nodes.Add(node); |             this.treeView.Nodes.Add(node); | ||||||
|  | |||||||
| @ -34,7 +34,7 @@ | |||||||
|             this.buttonOk = new System.Windows.Forms.Button(); |             this.buttonOk = new System.Windows.Forms.Button(); | ||||||
|             this.buttonCancel = new System.Windows.Forms.Button(); |             this.buttonCancel = new System.Windows.Forms.Button(); | ||||||
|             this.textBoxInput = new System.Windows.Forms.TextBox(); |             this.textBoxInput = new System.Windows.Forms.TextBox(); | ||||||
|             this.checkBoxIsRoot = new System.Windows.Forms.CheckBox(); |             this.checkBoxQuestion = new System.Windows.Forms.CheckBox(); | ||||||
|             this.tableLayout.SuspendLayout(); |             this.tableLayout.SuspendLayout(); | ||||||
|             this.flowLayoutBottom.SuspendLayout(); |             this.flowLayoutBottom.SuspendLayout(); | ||||||
|             this.SuspendLayout(); |             this.SuspendLayout(); | ||||||
| @ -72,7 +72,7 @@ | |||||||
|             //  |             //  | ||||||
|             this.flowLayoutBottom.Controls.Add(this.buttonOk); |             this.flowLayoutBottom.Controls.Add(this.buttonOk); | ||||||
|             this.flowLayoutBottom.Controls.Add(this.buttonCancel); |             this.flowLayoutBottom.Controls.Add(this.buttonCancel); | ||||||
|             this.flowLayoutBottom.Controls.Add(this.checkBoxIsRoot); |             this.flowLayoutBottom.Controls.Add(this.checkBoxQuestion); | ||||||
|             this.flowLayoutBottom.Dock = System.Windows.Forms.DockStyle.Fill; |             this.flowLayoutBottom.Dock = System.Windows.Forms.DockStyle.Fill; | ||||||
|             this.flowLayoutBottom.Location = new System.Drawing.Point(3, 68); |             this.flowLayoutBottom.Location = new System.Drawing.Point(3, 68); | ||||||
|             this.flowLayoutBottom.Margin = new System.Windows.Forms.Padding(3, 0, 0, 0); |             this.flowLayoutBottom.Margin = new System.Windows.Forms.Padding(3, 0, 0, 0); | ||||||
| @ -120,14 +120,13 @@ | |||||||
|             //  |             //  | ||||||
|             // checkBoxIsRoot |             // checkBoxIsRoot | ||||||
|             //  |             //  | ||||||
|             this.checkBoxIsRoot.AutoSize = true; |             this.checkBoxQuestion.AutoSize = true; | ||||||
|             this.checkBoxIsRoot.Dock = System.Windows.Forms.DockStyle.Left; |             this.checkBoxQuestion.Dock = System.Windows.Forms.DockStyle.Left; | ||||||
|             this.checkBoxIsRoot.Location = new System.Drawing.Point(253, 3); |             this.checkBoxQuestion.Location = new System.Drawing.Point(253, 3); | ||||||
|             this.checkBoxIsRoot.Name = "checkBoxIsRoot"; |             this.checkBoxQuestion.Name = "checkBoxQuestion"; | ||||||
|             this.checkBoxIsRoot.Size = new System.Drawing.Size(458, 60); |             this.checkBoxQuestion.Size = new System.Drawing.Size(458, 60); | ||||||
|             this.checkBoxIsRoot.TabIndex = 3; |             this.checkBoxQuestion.TabIndex = 3; | ||||||
|             this.checkBoxIsRoot.Text = "Add a root node (i.e. ignoring the selected node)"; |             this.checkBoxQuestion.UseVisualStyleBackColor = true; | ||||||
|             this.checkBoxIsRoot.UseVisualStyleBackColor = true; |  | ||||||
|             //  |             //  | ||||||
|             // InputDialog |             // InputDialog | ||||||
|             //  |             //  | ||||||
| @ -161,6 +160,6 @@ | |||||||
|         private TextBox textBoxInput; |         private TextBox textBoxInput; | ||||||
|         private Button buttonOk; |         private Button buttonOk; | ||||||
|         private Button buttonCancel; |         private Button buttonCancel; | ||||||
|         private CheckBox checkBoxIsRoot; |         private CheckBox checkBoxQuestion; | ||||||
|     } |     } | ||||||
| } | } | ||||||
| @ -2,22 +2,39 @@ | |||||||
| 
 | 
 | ||||||
| public partial class InputDialog : Form | public partial class InputDialog : Form | ||||||
| { | { | ||||||
|  |     public readonly record struct Options( | ||||||
|  |         string Message, | ||||||
|  |         string Title, | ||||||
|  |         string Placeholder = "", | ||||||
|  |         string PreloadedText = "", | ||||||
|  |         string OkButtonText = "Ok", | ||||||
|  |         string CancelButtonText = "Cancel", | ||||||
|  |         bool ShowQuestionCheckbox = false, | ||||||
|  |         string QuestionCheckboxText = "" | ||||||
|  |     ); | ||||||
|  |      | ||||||
|     private InputDialog() |     private InputDialog() | ||||||
|     { |     { | ||||||
|         this.InitializeComponent(); |         this.InitializeComponent(); | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     public static InputResult Show(string message, string title, string placeholder = "", string preloadedText = "", string okButtonText = "Ok", string cancelButtonText = "Cancel") |     public static InputResult Show(Options options) | ||||||
|     { |     { | ||||||
|         using var inputDialog = new InputDialog(); |         using var inputDialog = new InputDialog(); | ||||||
|         inputDialog.labelHead.Text = message; |         inputDialog.labelHead.Text = options.Message; | ||||||
|         inputDialog.Text = title; |         inputDialog.Text = options.Title; | ||||||
|         inputDialog.textBoxInput.PlaceholderText = placeholder; |         inputDialog.textBoxInput.PlaceholderText = options.Placeholder; | ||||||
|         inputDialog.textBoxInput.Text = preloadedText; |         inputDialog.textBoxInput.Text = options.PreloadedText; | ||||||
|         inputDialog.buttonOk.Text = okButtonText; |         inputDialog.buttonOk.Text = options.OkButtonText; | ||||||
|         inputDialog.buttonCancel.Text = cancelButtonText; |         inputDialog.buttonCancel.Text = options.CancelButtonText; | ||||||
|  |         inputDialog.checkBoxQuestion.Visible = options.ShowQuestionCheckbox; | ||||||
|  |         inputDialog.checkBoxQuestion.Text = options.QuestionCheckboxText; | ||||||
| 
 | 
 | ||||||
|         return new InputResult(inputDialog.ShowDialog(), inputDialog.textBoxInput.Text, inputDialog.checkBoxIsRoot.Checked); |         return new InputResult( | ||||||
|  |             inputDialog.ShowDialog(), | ||||||
|  |             inputDialog.textBoxInput.Text, | ||||||
|  |             inputDialog.checkBoxQuestion.Checked | ||||||
|  |         ); | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     private void textBoxInput_KeyUp(object sender, KeyEventArgs e) |     private void textBoxInput_KeyUp(object sender, KeyEventArgs e) | ||||||
| @ -35,5 +52,5 @@ public partial class InputDialog : Form | |||||||
|         } |         } | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     public readonly record struct InputResult(DialogResult DialogResult, string Text, bool IsRoot); |     public readonly record struct InputResult(DialogResult DialogResult, string Text, bool AnswerToQuestion); | ||||||
| } | } | ||||||
		Loading…
	
		Reference in New Issue
	
	Block a user