Skip to content

Commit 30b1273

Browse files
committed
CSV/XLS: set the type conversion for multiple selected columns at once.
Fixes #45
1 parent 9fe67a3 commit 30b1273

File tree

8 files changed

+201
-6
lines changed

8 files changed

+201
-6
lines changed

ext/fatcow/magic_wand16.png

453 Bytes
Loading

ext/fatcow/magic_wand32.png

1.23 KB
Loading

src/SqlNotebook/Import/ImportColumnsControl.Designer.cs

Lines changed: 105 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/SqlNotebook/Import/ImportColumnsControl.cs

Lines changed: 39 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,10 @@
11
using System;
22
using System.Collections.Generic;
33
using System.Data;
4+
using System.Diagnostics;
45
using System.Linq;
56
using System.Windows.Forms;
7+
using SqlNotebook.Properties;
68
using SqlNotebookScript.Utils;
79

810
namespace SqlNotebook.Import;
@@ -28,7 +30,7 @@ from col in GetImportColumns()
2830
select $" {col.SourceName.DoubleQuote()}{(renamed ? " AS " + col.TargetName.DoubleQuote() : "")} {col.Conversion}"
2931
);
3032

31-
public ImportColumnsControl() {
33+
public ImportColumnsControl(bool allowDetectTypes = false) {
3234
InitializeComponent();
3335

3436
_table = new DataTable();
@@ -43,6 +45,12 @@ public ImportColumnsControl() {
4345
_grid.EnableDoubleBuffering();
4446

4547
Ui ui = new(this, false);
48+
ui.Init(_toolStrip);
49+
ui.Init(_detectTypesButton, Resources.magic_wand16, Resources.magic_wand32);
50+
ui.Init(_toolStripSeparator);
51+
_detectTypesButton.Visible = allowDetectTypes;
52+
_toolStripSeparator.Visible = allowDetectTypes;
53+
ui.Init(_setSelectedTypesMenu);
4654
ui.Init(_importColumn, 10);
4755
ui.Init(_conversionColumn, 25);
4856

@@ -172,6 +180,36 @@ private void ValidateGridInput() { // true = passed validation
172180
}
173181
Error.Value = error;
174182
}
183+
184+
private void SetTypeMenu_Click(object sender, EventArgs e) {
185+
string type;
186+
if (ReferenceEquals(sender, _setTypeTextMenu)) {
187+
type = "TEXT";
188+
} else if (ReferenceEquals(sender, _setTypeIntegerMenu)) {
189+
type = "INTEGER";
190+
} else if (ReferenceEquals(sender, _setTypeRealMenu)) {
191+
type = "REAL";
192+
} else if (ReferenceEquals(sender, _setTypeDateMenu)) {
193+
type = "DATE";
194+
} else if (ReferenceEquals(sender, _setTypeDateTimeMenu)) {
195+
type = "DATETIME";
196+
} else {
197+
Debug.Assert(false);
198+
return;
199+
}
200+
201+
foreach (var dataRow in
202+
_grid.SelectedCells
203+
.Cast<DataGridViewCell>()
204+
.Select(x => ((DataRowView)x.OwningRow.DataBoundItem).Row)
205+
) {
206+
dataRow[GridColumn.Conversion] = type;
207+
}
208+
}
209+
210+
private void DetectTypesButton_Click(object sender, EventArgs e) {
211+
212+
}
175213
}
176214

177215
public sealed class ImportColumn {

src/SqlNotebook/Import/ImportColumnsControl.resx

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -69,4 +69,30 @@
6969
<metadata name="_conversionColumn.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
7070
<value>True</value>
7171
</metadata>
72+
<metadata name="_toolStrip.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
73+
<value>268, 17</value>
74+
</metadata>
75+
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
76+
<data name="_detectTypesButton.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
77+
<value>
78+
iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
79+
YQUAAAAJcEhZcwAAFiUAABYlAUlSJPAAAAEKSURBVEhL3ZG9DsFQHMXvczDZvIOtXsHObuhqkViI3Quw
80+
6CYmNoMYJJ0NBiFFIoIytOuf0+TeXP3yde+iyS+3OcP53Z4y3/dJJ4HAsiwyTVMp6BQCBIZhKAWdEcHV
81+
vSlBmeB82NFy1KLluEWOPRC5MoHdMWhazwi4RJlALgf4EuT6BI+5kCsTrGddUY658E+QvyXYHq9UnRyC
82+
U87f4aUApcXhnrI9Jzg/laQKFntXlHM+lSQK5psL5fvbp/JvJLGCQqmSWM5JkiCT84igXGtSrruKLQ0T
83+
luAdmZxHBG37FFuWBC/j5XKOmX8WAH7rcI6ZMffPgjQwN2bXJgDo/COBTpjneQ2dML0PY3cISreGe8HM
84+
qgAAAABJRU5ErkJggg==
85+
</value>
86+
</data>
87+
<data name="_setSelectedTypesMenu.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
88+
<value>
89+
iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
90+
YQUAAAAJcEhZcwAAFiUAABYlAUlSJPAAAAEKSURBVEhL3ZG9DsFQHMXvczDZvIOtXsHObuhqkViI3Quw
91+
6CYmNoMYJJ0NBiFFIoIytOuf0+TeXP3yde+iyS+3OcP53Z4y3/dJJ4HAsiwyTVMp6BQCBIZhKAWdEcHV
92+
vSlBmeB82NFy1KLluEWOPRC5MoHdMWhazwi4RJlALgf4EuT6BI+5kCsTrGddUY658E+QvyXYHq9UnRyC
93+
U87f4aUApcXhnrI9Jzg/laQKFntXlHM+lSQK5psL5fvbp/JvJLGCQqmSWM5JkiCT84igXGtSrruKLQ0T
94+
luAdmZxHBG37FFuWBC/j5XKOmX8WAH7rcI6ZMffPgjQwN2bXJgDo/COBTpjneQ2dML0PY3cISreGe8HM
95+
qgAAAABJRU5ErkJggg==
96+
</value>
97+
</data>
7298
</root>

src/SqlNotebook/Properties/Resources.Designer.cs

Lines changed: 20 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/SqlNotebook/Properties/Resources.resx

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -112,12 +112,12 @@
112112
<value>2.0</value>
113113
</resheader>
114114
<resheader name="reader">
115-
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
115+
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
116116
</resheader>
117117
<resheader name="writer">
118-
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
118+
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
119119
</resheader>
120-
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
120+
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
121121
<data name="Diskette" type="System.Resources.ResXFileRef, System.Windows.Forms">
122122
<value>..\..\..\ext\fatcow\diskette.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
123123
</data>
@@ -436,4 +436,10 @@
436436
<data name="filter_clear32" type="System.Resources.ResXFileRef, System.Windows.Forms">
437437
<value>..\..\..\ext\fatcow\filter_clear32.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
438438
</data>
439+
<data name="magic_wand16" type="System.Resources.ResXFileRef, System.Windows.Forms">
440+
<value>..\..\..\ext\fatcow\magic_wand16.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
441+
</data>
442+
<data name="magic_wand32" type="System.Resources.ResXFileRef, System.Windows.Forms">
443+
<value>..\..\..\ext\fatcow\magic_wand32.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
444+
</data>
439445
</root>

src/SqlNotebook/Ui.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -190,6 +190,7 @@ public void Init(ToolStrip strip) {
190190
}
191191

192192
public void Init(ToolStripButton button) {
193+
button.Padding = new((int)(2 * _scale), (int)(2 * _scale), (int)(2 * _scale), (int)(4 * _scale));
193194
button.AutoSize = true;
194195
}
195196

@@ -209,6 +210,7 @@ public void Init(ToolStripMenuItem item, Image lodpi, Image hidpi) {
209210
}
210211

211212
public void Init(ToolStripDropDownButton item) {
213+
item.Padding = new((int)(2 * _scale), (int)(2 * _scale), (int)(2 * _scale), (int)(4 * _scale));
212214
}
213215

214216
public void Init(ToolStripDropDownButton item, Image lodpi, Image hidpi) {

0 commit comments

Comments
 (0)