Skip to content

Commit bd28852

Browse files
authored
Merge pull request #24 from mukunku/v2.2.1
fix: fill weight overflow when there are too many columns (#22)
2 parents 149b13b + 54721d8 commit bd28852

8 files changed

+358
-324
lines changed

src/ParquetFileViewer/Constants.cs

+13
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
using System;
2+
using System.Collections.Generic;
3+
using System.Linq;
4+
using System.Text;
5+
using System.Threading.Tasks;
6+
7+
namespace ParquetFileViewer
8+
{
9+
public static class Constants
10+
{
11+
public const string FILL_WEIGHT_EXCEPTION_MESSAGE = "FillWeight";
12+
}
13+
}
Original file line numberDiff line numberDiff line change
@@ -1,72 +1,72 @@
1-
using System;
2-
using System.Windows.Forms;
3-
4-
namespace ParquetFileViewer
5-
{
6-
public class DelayedOnChangedTextBox : TextBox
7-
{
8-
private Timer m_delayedTextChangedTimer;
9-
10-
public event EventHandler DelayedTextChanged;
11-
12-
public DelayedOnChangedTextBox()
13-
: base()
14-
{
15-
this.DelayedTextChangedTimeout = 1 * 1000;
16-
}
17-
18-
public DelayedOnChangedTextBox(int secondsDelay)
19-
: base()
20-
{
21-
this.DelayedTextChangedTimeout = secondsDelay * 1000;
22-
}
23-
24-
protected override void Dispose(bool disposing)
25-
{
26-
if (m_delayedTextChangedTimer != null)
27-
{
28-
m_delayedTextChangedTimer.Stop();
29-
if (disposing)
30-
m_delayedTextChangedTimer.Dispose();
31-
}
32-
33-
base.Dispose(disposing);
34-
}
35-
36-
public int DelayedTextChangedTimeout { get; set; }
37-
38-
protected virtual void OnDelayedTextChanged(EventArgs e)
39-
{
40-
this.DelayedTextChanged?.Invoke(this, e);
41-
}
42-
43-
protected override void OnTextChanged(EventArgs e)
44-
{
45-
this.InitializeDelayedTextChangedEvent();
46-
base.OnTextChanged(e);
47-
}
48-
49-
private void InitializeDelayedTextChangedEvent()
50-
{
51-
if (m_delayedTextChangedTimer != null)
52-
m_delayedTextChangedTimer.Stop();
53-
54-
if (m_delayedTextChangedTimer == null || m_delayedTextChangedTimer.Interval != this.DelayedTextChangedTimeout)
55-
{
56-
m_delayedTextChangedTimer = new Timer();
57-
m_delayedTextChangedTimer.Tick += new EventHandler(HandleDelayedTextChangedTimerTick);
58-
m_delayedTextChangedTimer.Interval = this.DelayedTextChangedTimeout;
59-
}
60-
61-
m_delayedTextChangedTimer.Start();
62-
}
63-
64-
private void HandleDelayedTextChangedTimerTick(object sender, EventArgs e)
65-
{
66-
Timer timer = sender as Timer;
67-
timer.Stop();
68-
69-
this.OnDelayedTextChanged(EventArgs.Empty);
70-
}
71-
}
72-
}
1+
using System;
2+
using System.Windows.Forms;
3+
4+
namespace ParquetFileViewer.Controls
5+
{
6+
public class DelayedOnChangedTextBox : TextBox
7+
{
8+
private Timer m_delayedTextChangedTimer;
9+
10+
public event EventHandler DelayedTextChanged;
11+
12+
public DelayedOnChangedTextBox()
13+
: base()
14+
{
15+
this.DelayedTextChangedTimeout = 1 * 1000;
16+
}
17+
18+
public DelayedOnChangedTextBox(int secondsDelay)
19+
: base()
20+
{
21+
this.DelayedTextChangedTimeout = secondsDelay * 1000;
22+
}
23+
24+
protected override void Dispose(bool disposing)
25+
{
26+
if (m_delayedTextChangedTimer != null)
27+
{
28+
m_delayedTextChangedTimer.Stop();
29+
if (disposing)
30+
m_delayedTextChangedTimer.Dispose();
31+
}
32+
33+
base.Dispose(disposing);
34+
}
35+
36+
public int DelayedTextChangedTimeout { get; set; }
37+
38+
protected virtual void OnDelayedTextChanged(EventArgs e)
39+
{
40+
this.DelayedTextChanged?.Invoke(this, e);
41+
}
42+
43+
protected override void OnTextChanged(EventArgs e)
44+
{
45+
this.InitializeDelayedTextChangedEvent();
46+
base.OnTextChanged(e);
47+
}
48+
49+
private void InitializeDelayedTextChangedEvent()
50+
{
51+
if (m_delayedTextChangedTimer != null)
52+
m_delayedTextChangedTimer.Stop();
53+
54+
if (m_delayedTextChangedTimer == null || m_delayedTextChangedTimer.Interval != this.DelayedTextChangedTimeout)
55+
{
56+
m_delayedTextChangedTimer = new Timer();
57+
m_delayedTextChangedTimer.Tick += new EventHandler(HandleDelayedTextChangedTimerTick);
58+
m_delayedTextChangedTimer.Interval = this.DelayedTextChangedTimeout;
59+
}
60+
61+
m_delayedTextChangedTimer.Start();
62+
}
63+
64+
private void HandleDelayedTextChangedTimerTick(object sender, EventArgs e)
65+
{
66+
Timer timer = sender as Timer;
67+
timer.Stop();
68+
69+
this.OnDelayedTextChanged(EventArgs.Empty);
70+
}
71+
}
72+
}

src/ParquetFileViewer/CustomScriptBasedSchemaAdapter.cs src/ParquetFileViewer/Helpers/CustomScriptBasedSchemaAdapter.cs

+3-3
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
using System.Text;
77
using System.Threading.Tasks;
88

9-
namespace ParquetFileViewer
9+
namespace ParquetFileViewer.Helpers
1010
{
1111
public class CustomScriptBasedSchemaAdapter
1212
{
@@ -135,11 +135,11 @@ private string MakeList(DataColumnCollection columns)
135135
{
136136
if (!flag)
137137
{
138-
stringBuilder.Append(", ");
138+
stringBuilder.Append(" , ");
139139
}
140140
string str = this.MakeSafe(column.ColumnName);
141141
string typeFor = this.GetTypeFor(column);
142-
stringBuilder.AppendFormat("{0} {1}", str, typeFor);
142+
stringBuilder.Append($"{Environment.NewLine} {str} {typeFor}");
143143
flag = false;
144144
}
145145
return stringBuilder.ToString();
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
using System.Collections.Generic;
2+
using System.Data;
3+
using System.Windows.Forms;
4+
5+
namespace ParquetFileViewer.Helpers
6+
{
7+
public static class ExtensionMethods
8+
{
9+
/// <summary>
10+
/// Returns a list of all column names within a given datatable
11+
/// </summary>
12+
/// <param name="datatable">The datatable to retrieve the column names from</param>
13+
/// <returns></returns>
14+
public static IList<string> GetColumnNames(this DataTable datatable)
15+
{
16+
List<string> columns = new List<string>(datatable.Columns.Count);
17+
foreach (DataColumn column in datatable.Columns)
18+
{
19+
columns.Add(column.ColumnName);
20+
}
21+
return columns;
22+
}
23+
}
24+
}

0 commit comments

Comments
 (0)