|
@@ -80,15 +80,15 @@ namespace Terminal.Gui.ViewTests {
|
|
public void Redraw_EmptyTable ()
|
|
public void Redraw_EmptyTable ()
|
|
{
|
|
{
|
|
var tableView = new TableView ();
|
|
var tableView = new TableView ();
|
|
- tableView.ColorScheme = new ColorScheme();
|
|
|
|
|
|
+ tableView.ColorScheme = new ColorScheme ();
|
|
tableView.Bounds = new Rect (0, 0, 25, 10);
|
|
tableView.Bounds = new Rect (0, 0, 25, 10);
|
|
|
|
|
|
// Set a table with 1 column
|
|
// Set a table with 1 column
|
|
tableView.Table = BuildTable (1, 50);
|
|
tableView.Table = BuildTable (1, 50);
|
|
- tableView.Redraw(tableView.Bounds);
|
|
|
|
|
|
+ tableView.Redraw (tableView.Bounds);
|
|
|
|
|
|
- tableView.Table.Columns.Remove(tableView.Table.Columns[0]);
|
|
|
|
- tableView.Redraw(tableView.Bounds);
|
|
|
|
|
|
+ tableView.Table.Columns.Remove (tableView.Table.Columns [0]);
|
|
|
|
+ tableView.Redraw (tableView.Bounds);
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
@@ -100,7 +100,7 @@ namespace Terminal.Gui.ViewTests {
|
|
};
|
|
};
|
|
|
|
|
|
bool called = false;
|
|
bool called = false;
|
|
- tableView.SelectedCellChanged += (s,e) => { called = true; };
|
|
|
|
|
|
+ tableView.SelectedCellChanged += (s, e) => { called = true; };
|
|
|
|
|
|
Assert.Equal (0, tableView.SelectedColumn);
|
|
Assert.Equal (0, tableView.SelectedColumn);
|
|
Assert.False (called);
|
|
Assert.False (called);
|
|
@@ -124,7 +124,7 @@ namespace Terminal.Gui.ViewTests {
|
|
};
|
|
};
|
|
|
|
|
|
bool called = false;
|
|
bool called = false;
|
|
- tableView.SelectedCellChanged += (s,e) => {
|
|
|
|
|
|
+ tableView.SelectedCellChanged += (s, e) => {
|
|
called = true;
|
|
called = true;
|
|
Assert.Equal (0, e.OldCol);
|
|
Assert.Equal (0, e.OldCol);
|
|
Assert.Equal (10, e.NewCol);
|
|
Assert.Equal (10, e.NewCol);
|
|
@@ -142,7 +142,7 @@ namespace Terminal.Gui.ViewTests {
|
|
};
|
|
};
|
|
|
|
|
|
bool called = false;
|
|
bool called = false;
|
|
- tableView.SelectedCellChanged += (s,e) => {
|
|
|
|
|
|
+ tableView.SelectedCellChanged += (s, e) => {
|
|
called = true;
|
|
called = true;
|
|
Assert.Equal (0, e.OldRow);
|
|
Assert.Equal (0, e.OldRow);
|
|
Assert.Equal (10, e.NewRow);
|
|
Assert.Equal (10, e.NewRow);
|
|
@@ -321,7 +321,7 @@ namespace Terminal.Gui.ViewTests {
|
|
Bounds = new Rect (0, 0, 10, 5)
|
|
Bounds = new Rect (0, 0, 10, 5)
|
|
};
|
|
};
|
|
|
|
|
|
- tableView.ChangeSelectionToEndOfTable(false);
|
|
|
|
|
|
+ tableView.ChangeSelectionToEndOfTable (false);
|
|
|
|
|
|
// select the last row
|
|
// select the last row
|
|
tableView.MultiSelectedRegions.Clear ();
|
|
tableView.MultiSelectedRegions.Clear ();
|
|
@@ -516,18 +516,18 @@ namespace Terminal.Gui.ViewTests {
|
|
|
|
|
|
[Fact]
|
|
[Fact]
|
|
[AutoInitShutdown]
|
|
[AutoInitShutdown]
|
|
- public void TableView_Activate()
|
|
|
|
|
|
+ public void TableView_Activate ()
|
|
{
|
|
{
|
|
string activatedValue = null;
|
|
string activatedValue = null;
|
|
- var tv = new TableView (BuildTable(1,1));
|
|
|
|
- tv.CellActivated += (s,c) => activatedValue = c.Table.Rows[c.Row][c.Col].ToString();
|
|
|
|
|
|
+ var tv = new TableView (BuildTable (1, 1));
|
|
|
|
+ tv.CellActivated += (s, c) => activatedValue = c.Table.Rows [c.Row] [c.Col].ToString ();
|
|
|
|
|
|
Application.Top.Add (tv);
|
|
Application.Top.Add (tv);
|
|
Application.Begin (Application.Top);
|
|
Application.Begin (Application.Top);
|
|
|
|
|
|
// pressing enter should activate the first cell (selected cell)
|
|
// pressing enter should activate the first cell (selected cell)
|
|
tv.ProcessKey (new KeyEvent (Key.Enter, new KeyModifiers ()));
|
|
tv.ProcessKey (new KeyEvent (Key.Enter, new KeyModifiers ()));
|
|
- Assert.Equal ("R0C0",activatedValue);
|
|
|
|
|
|
+ Assert.Equal ("R0C0", activatedValue);
|
|
|
|
|
|
// reset the test
|
|
// reset the test
|
|
activatedValue = null;
|
|
activatedValue = null;
|
|
@@ -535,7 +535,7 @@ namespace Terminal.Gui.ViewTests {
|
|
// clear keybindings and ensure that Enter does not trigger the event anymore
|
|
// clear keybindings and ensure that Enter does not trigger the event anymore
|
|
tv.ClearKeybindings ();
|
|
tv.ClearKeybindings ();
|
|
tv.ProcessKey (new KeyEvent (Key.Enter, new KeyModifiers ()));
|
|
tv.ProcessKey (new KeyEvent (Key.Enter, new KeyModifiers ()));
|
|
- Assert.Null(activatedValue);
|
|
|
|
|
|
+ Assert.Null (activatedValue);
|
|
|
|
|
|
// New method for changing the activation key
|
|
// New method for changing the activation key
|
|
tv.AddKeyBinding (Key.z, Command.Accept);
|
|
tv.AddKeyBinding (Key.z, Command.Accept);
|
|
@@ -553,7 +553,7 @@ namespace Terminal.Gui.ViewTests {
|
|
}
|
|
}
|
|
|
|
|
|
[Fact]
|
|
[Fact]
|
|
- public void TableViewMultiSelect_CannotFallOffLeft()
|
|
|
|
|
|
+ public void TableViewMultiSelect_CannotFallOffLeft ()
|
|
{
|
|
{
|
|
var tv = SetUpMiniTable ();
|
|
var tv = SetUpMiniTable ();
|
|
tv.Table.Rows.Add (1, 2); // add another row (brings us to 2 rows)
|
|
tv.Table.Rows.Add (1, 2); // add another row (brings us to 2 rows)
|
|
@@ -563,7 +563,7 @@ namespace Terminal.Gui.ViewTests {
|
|
tv.SelectedRow = 1;
|
|
tv.SelectedRow = 1;
|
|
tv.ProcessKey (new KeyEvent (Key.CursorLeft | Key.ShiftMask, new KeyModifiers { Shift = true }));
|
|
tv.ProcessKey (new KeyEvent (Key.CursorLeft | Key.ShiftMask, new KeyModifiers { Shift = true }));
|
|
|
|
|
|
- Assert.Equal (new Rect (0, 1, 2, 1), tv.MultiSelectedRegions.Single().Rect);
|
|
|
|
|
|
+ Assert.Equal (new Rect (0, 1, 2, 1), tv.MultiSelectedRegions.Single ().Rect);
|
|
|
|
|
|
// this next shift left should be ignored because we are already at the bounds
|
|
// this next shift left should be ignored because we are already at the bounds
|
|
tv.ProcessKey (new KeyEvent (Key.CursorLeft | Key.ShiftMask, new KeyModifiers { Shift = true }));
|
|
tv.ProcessKey (new KeyEvent (Key.CursorLeft | Key.ShiftMask, new KeyModifiers { Shift = true }));
|
|
@@ -576,7 +576,7 @@ namespace Terminal.Gui.ViewTests {
|
|
Application.Shutdown ();
|
|
Application.Shutdown ();
|
|
}
|
|
}
|
|
[Fact]
|
|
[Fact]
|
|
- public void TableViewMultiSelect_CannotFallOffRight()
|
|
|
|
|
|
+ public void TableViewMultiSelect_CannotFallOffRight ()
|
|
{
|
|
{
|
|
var tv = SetUpMiniTable ();
|
|
var tv = SetUpMiniTable ();
|
|
tv.Table.Rows.Add (1, 2); // add another row (brings us to 2 rows)
|
|
tv.Table.Rows.Add (1, 2); // add another row (brings us to 2 rows)
|
|
@@ -624,7 +624,7 @@ namespace Terminal.Gui.ViewTests {
|
|
}
|
|
}
|
|
|
|
|
|
[Fact]
|
|
[Fact]
|
|
- public void TableViewMultiSelect_CannotFallOffTop()
|
|
|
|
|
|
+ public void TableViewMultiSelect_CannotFallOffTop ()
|
|
{
|
|
{
|
|
var tv = SetUpMiniTable ();
|
|
var tv = SetUpMiniTable ();
|
|
tv.Table.Rows.Add (1, 2); // add another row (brings us to 2 rows)
|
|
tv.Table.Rows.Add (1, 2); // add another row (brings us to 2 rows)
|
|
@@ -649,12 +649,12 @@ namespace Terminal.Gui.ViewTests {
|
|
}
|
|
}
|
|
|
|
|
|
[Fact, AutoInitShutdown]
|
|
[Fact, AutoInitShutdown]
|
|
- public void TestShiftClick_MultiSelect_TwoRowTable_FullRowSelect()
|
|
|
|
|
|
+ public void TestShiftClick_MultiSelect_TwoRowTable_FullRowSelect ()
|
|
{
|
|
{
|
|
var tv = GetTwoRowSixColumnTable ();
|
|
var tv = GetTwoRowSixColumnTable ();
|
|
|
|
|
|
tv.MultiSelect = true;
|
|
tv.MultiSelect = true;
|
|
-
|
|
|
|
|
|
+
|
|
// Clicking in bottom row
|
|
// Clicking in bottom row
|
|
tv.MouseEvent (new MouseEvent {
|
|
tv.MouseEvent (new MouseEvent {
|
|
X = 1,
|
|
X = 1,
|
|
@@ -675,9 +675,9 @@ namespace Terminal.Gui.ViewTests {
|
|
// should extend the selection
|
|
// should extend the selection
|
|
Assert.Equal (0, tv.SelectedRow);
|
|
Assert.Equal (0, tv.SelectedRow);
|
|
|
|
|
|
- var selected = tv.GetAllSelectedCells ().ToArray();
|
|
|
|
|
|
+ var selected = tv.GetAllSelectedCells ().ToArray ();
|
|
|
|
|
|
- Assert.Contains (new Point(0,0), selected);
|
|
|
|
|
|
+ Assert.Contains (new Point (0, 0), selected);
|
|
Assert.Contains (new Point (0, 1), selected);
|
|
Assert.Contains (new Point (0, 1), selected);
|
|
}
|
|
}
|
|
|
|
|
|
@@ -750,14 +750,14 @@ namespace Terminal.Gui.ViewTests {
|
|
00000
|
|
00000
|
|
01000
|
|
01000
|
|
";
|
|
";
|
|
-
|
|
|
|
|
|
+
|
|
TestHelpers.AssertDriverColorsAre (expectedColors, new Attribute [] {
|
|
TestHelpers.AssertDriverColorsAre (expectedColors, new Attribute [] {
|
|
// 0
|
|
// 0
|
|
tv.ColorScheme.Normal,
|
|
tv.ColorScheme.Normal,
|
|
// 1
|
|
// 1
|
|
focused ? tv.ColorScheme.HotFocus : tv.ColorScheme.HotNormal});
|
|
focused ? tv.ColorScheme.HotFocus : tv.ColorScheme.HotNormal});
|
|
|
|
|
|
- Application.Shutdown();
|
|
|
|
|
|
+ Application.Shutdown ();
|
|
}
|
|
}
|
|
|
|
|
|
[Theory]
|
|
[Theory]
|
|
@@ -794,17 +794,17 @@ namespace Terminal.Gui.ViewTests {
|
|
00000
|
|
00000
|
|
01000
|
|
01000
|
|
";
|
|
";
|
|
-
|
|
|
|
- var invertHotFocus = new Attribute(tv.ColorScheme.HotFocus.Background,tv.ColorScheme.HotFocus.Foreground);
|
|
|
|
- var invertHotNormal = new Attribute(tv.ColorScheme.HotNormal.Background,tv.ColorScheme.HotNormal.Foreground);
|
|
|
|
|
|
+
|
|
|
|
+ var invertHotFocus = new Attribute (tv.ColorScheme.HotFocus.Background, tv.ColorScheme.HotFocus.Foreground);
|
|
|
|
+ var invertHotNormal = new Attribute (tv.ColorScheme.HotNormal.Background, tv.ColorScheme.HotNormal.Foreground);
|
|
|
|
|
|
TestHelpers.AssertDriverColorsAre (expectedColors, new Attribute [] {
|
|
TestHelpers.AssertDriverColorsAre (expectedColors, new Attribute [] {
|
|
// 0
|
|
// 0
|
|
tv.ColorScheme.Normal,
|
|
tv.ColorScheme.Normal,
|
|
// 1
|
|
// 1
|
|
focused ? invertHotFocus : invertHotNormal});
|
|
focused ? invertHotFocus : invertHotNormal});
|
|
-
|
|
|
|
- Application.Shutdown();
|
|
|
|
|
|
+
|
|
|
|
+ Application.Shutdown ();
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
@@ -826,7 +826,7 @@ namespace Terminal.Gui.ViewTests {
|
|
};
|
|
};
|
|
|
|
|
|
// when B is 2 use the custom highlight colour for the row
|
|
// when B is 2 use the custom highlight colour for the row
|
|
- tv.Style.RowColorGetter += (e)=>Convert.ToInt32(e.Table.Rows[e.RowIndex][1]) == 2 ? rowHighlight : null;
|
|
|
|
|
|
+ tv.Style.RowColorGetter += (e) => Convert.ToInt32 (e.Table.Rows [e.RowIndex] [1]) == 2 ? rowHighlight : null;
|
|
|
|
|
|
// private method for forcing the view to be focused/not focused
|
|
// private method for forcing the view to be focused/not focused
|
|
var setFocusMethod = typeof (View).GetMethod ("SetHasFocus", BindingFlags.Instance | BindingFlags.NonPublic);
|
|
var setFocusMethod = typeof (View).GetMethod ("SetHasFocus", BindingFlags.Instance | BindingFlags.NonPublic);
|
|
@@ -851,7 +851,7 @@ namespace Terminal.Gui.ViewTests {
|
|
00000
|
|
00000
|
|
21222
|
|
21222
|
|
";
|
|
";
|
|
-
|
|
|
|
|
|
+
|
|
TestHelpers.AssertDriverColorsAre (expectedColors, new Attribute [] {
|
|
TestHelpers.AssertDriverColorsAre (expectedColors, new Attribute [] {
|
|
// 0
|
|
// 0
|
|
tv.ColorScheme.Normal,
|
|
tv.ColorScheme.Normal,
|
|
@@ -865,7 +865,7 @@ namespace Terminal.Gui.ViewTests {
|
|
// it no longer matches the RowColorGetter
|
|
// it no longer matches the RowColorGetter
|
|
// delegate conditional ( which checks for
|
|
// delegate conditional ( which checks for
|
|
// the value 2)
|
|
// the value 2)
|
|
- tv.Table.Rows[0][1] = 5;
|
|
|
|
|
|
+ tv.Table.Rows [0] [1] = 5;
|
|
|
|
|
|
tv.Redraw (tv.Bounds);
|
|
tv.Redraw (tv.Bounds);
|
|
expected = @"
|
|
expected = @"
|
|
@@ -919,7 +919,7 @@ namespace Terminal.Gui.ViewTests {
|
|
Focus = Attribute.Make (Color.Cyan, Color.Magenta),
|
|
Focus = Attribute.Make (Color.Cyan, Color.Magenta),
|
|
};
|
|
};
|
|
|
|
|
|
- bStyle.ColorGetter = (a) => Convert.ToInt32(a.CellValue) == 2 ? cellHighlight : null;
|
|
|
|
|
|
+ bStyle.ColorGetter = (a) => Convert.ToInt32 (a.CellValue) == 2 ? cellHighlight : null;
|
|
|
|
|
|
// private method for forcing the view to be focused/not focused
|
|
// private method for forcing the view to be focused/not focused
|
|
var setFocusMethod = typeof (View).GetMethod ("SetHasFocus", BindingFlags.Instance | BindingFlags.NonPublic);
|
|
var setFocusMethod = typeof (View).GetMethod ("SetHasFocus", BindingFlags.Instance | BindingFlags.NonPublic);
|
|
@@ -944,7 +944,7 @@ namespace Terminal.Gui.ViewTests {
|
|
00000
|
|
00000
|
|
01020
|
|
01020
|
|
";
|
|
";
|
|
-
|
|
|
|
|
|
+
|
|
TestHelpers.AssertDriverColorsAre (expectedColors, new Attribute [] {
|
|
TestHelpers.AssertDriverColorsAre (expectedColors, new Attribute [] {
|
|
// 0
|
|
// 0
|
|
tv.ColorScheme.Normal,
|
|
tv.ColorScheme.Normal,
|
|
@@ -958,7 +958,7 @@ namespace Terminal.Gui.ViewTests {
|
|
// it no longer matches the ColorGetter
|
|
// it no longer matches the ColorGetter
|
|
// delegate conditional ( which checks for
|
|
// delegate conditional ( which checks for
|
|
// the value 2)
|
|
// the value 2)
|
|
- tv.Table.Rows[0][1] = 5;
|
|
|
|
|
|
+ tv.Table.Rows [0] [1] = 5;
|
|
|
|
|
|
tv.Redraw (tv.Bounds);
|
|
tv.Redraw (tv.Bounds);
|
|
expected = @"
|
|
expected = @"
|
|
@@ -1035,7 +1035,7 @@ namespace Terminal.Gui.ViewTests {
|
|
tableView.ProcessKey (new KeyEvent () { Key = Key.CursorDown });
|
|
tableView.ProcessKey (new KeyEvent () { Key = Key.CursorDown });
|
|
|
|
|
|
// Scrolled off the page by 1 row so it should only have moved down 1 line of RowOffset
|
|
// Scrolled off the page by 1 row so it should only have moved down 1 line of RowOffset
|
|
- Assert.Equal(4,tableView.SelectedRow);
|
|
|
|
|
|
+ Assert.Equal (4, tableView.SelectedRow);
|
|
Assert.Equal (1, tableView.RowOffset);
|
|
Assert.Equal (1, tableView.RowOffset);
|
|
}
|
|
}
|
|
|
|
|
|
@@ -1071,7 +1071,7 @@ namespace Terminal.Gui.ViewTests {
|
|
|
|
|
|
tableView.Redraw (tableView.Bounds);
|
|
tableView.Redraw (tableView.Bounds);
|
|
|
|
|
|
- string expected =
|
|
|
|
|
|
+ string expected =
|
|
@"
|
|
@"
|
|
│A│B│C│
|
|
│A│B│C│
|
|
│1│2│3│";
|
|
│1│2│3│";
|
|
@@ -1197,7 +1197,7 @@ namespace Terminal.Gui.ViewTests {
|
|
}
|
|
}
|
|
|
|
|
|
[Fact, AutoInitShutdown]
|
|
[Fact, AutoInitShutdown]
|
|
- public void TestColumnStyle_VisibleFalse_IsNotRendered()
|
|
|
|
|
|
+ public void TestColumnStyle_VisibleFalse_IsNotRendered ()
|
|
{
|
|
{
|
|
var tableView = GetABCDEFTableView (out DataTable dt);
|
|
var tableView = GetABCDEFTableView (out DataTable dt);
|
|
|
|
|
|
@@ -1343,14 +1343,14 @@ namespace Terminal.Gui.ViewTests {
|
|
public void TestColumnStyle_VisibleFalse_CursorStepsOverInvisibleColumns ()
|
|
public void TestColumnStyle_VisibleFalse_CursorStepsOverInvisibleColumns ()
|
|
{
|
|
{
|
|
var tableView = GetABCDEFTableView (out var dt);
|
|
var tableView = GetABCDEFTableView (out var dt);
|
|
-
|
|
|
|
|
|
+
|
|
tableView.Style.GetOrCreateColumnStyle (dt.Columns ["B"]).Visible = false;
|
|
tableView.Style.GetOrCreateColumnStyle (dt.Columns ["B"]).Visible = false;
|
|
tableView.SelectedColumn = 0;
|
|
tableView.SelectedColumn = 0;
|
|
|
|
|
|
tableView.ProcessKey (new KeyEvent { Key = Key.CursorRight });
|
|
tableView.ProcessKey (new KeyEvent { Key = Key.CursorRight });
|
|
|
|
|
|
// Expect the cursor navigation to skip over the invisible column(s)
|
|
// Expect the cursor navigation to skip over the invisible column(s)
|
|
- Assert.Equal(2,tableView.SelectedColumn);
|
|
|
|
|
|
+ Assert.Equal (2, tableView.SelectedColumn);
|
|
|
|
|
|
tableView.ProcessKey (new KeyEvent { Key = Key.CursorLeft });
|
|
tableView.ProcessKey (new KeyEvent { Key = Key.CursorLeft });
|
|
|
|
|
|
@@ -1358,10 +1358,10 @@ namespace Terminal.Gui.ViewTests {
|
|
Assert.Equal (0, tableView.SelectedColumn);
|
|
Assert.Equal (0, tableView.SelectedColumn);
|
|
}
|
|
}
|
|
|
|
|
|
- [InlineData(true)]
|
|
|
|
|
|
+ [InlineData (true)]
|
|
[InlineData (false)]
|
|
[InlineData (false)]
|
|
[Theory, AutoInitShutdown]
|
|
[Theory, AutoInitShutdown]
|
|
- public void TestColumnStyle_FirstColumnVisibleFalse_CursorStaysAt1(bool useHome)
|
|
|
|
|
|
+ public void TestColumnStyle_FirstColumnVisibleFalse_CursorStaysAt1 (bool useHome)
|
|
{
|
|
{
|
|
var tableView = GetABCDEFTableView (out var dt);
|
|
var tableView = GetABCDEFTableView (out var dt);
|
|
|
|
|
|
@@ -1371,12 +1371,11 @@ namespace Terminal.Gui.ViewTests {
|
|
Assert.Equal (0, tableView.SelectedColumn);
|
|
Assert.Equal (0, tableView.SelectedColumn);
|
|
|
|
|
|
// column 0 is invisible so this method should move to 1
|
|
// column 0 is invisible so this method should move to 1
|
|
- tableView.EnsureValidSelection();
|
|
|
|
|
|
+ tableView.EnsureValidSelection ();
|
|
Assert.Equal (1, tableView.SelectedColumn);
|
|
Assert.Equal (1, tableView.SelectedColumn);
|
|
|
|
|
|
- tableView.ProcessKey (new KeyEvent
|
|
|
|
- {
|
|
|
|
- Key = useHome ? Key.Home : Key.CursorLeft
|
|
|
|
|
|
+ tableView.ProcessKey (new KeyEvent {
|
|
|
|
+ Key = useHome ? Key.Home : Key.CursorLeft
|
|
});
|
|
});
|
|
|
|
|
|
// Expect the cursor to stay at 1
|
|
// Expect the cursor to stay at 1
|
|
@@ -1384,10 +1383,10 @@ namespace Terminal.Gui.ViewTests {
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
- [InlineData(true)]
|
|
|
|
|
|
+ [InlineData (true)]
|
|
[InlineData (false)]
|
|
[InlineData (false)]
|
|
[Theory, AutoInitShutdown]
|
|
[Theory, AutoInitShutdown]
|
|
- public void TestMoveStartEnd_WithFullRowSelect(bool withFullRowSelect)
|
|
|
|
|
|
+ public void TestMoveStartEnd_WithFullRowSelect (bool withFullRowSelect)
|
|
{
|
|
{
|
|
var tableView = GetTwoRowSixColumnTable ();
|
|
var tableView = GetTwoRowSixColumnTable ();
|
|
tableView.FullRowSelect = withFullRowSelect;
|
|
tableView.FullRowSelect = withFullRowSelect;
|
|
@@ -1395,36 +1394,28 @@ namespace Terminal.Gui.ViewTests {
|
|
tableView.SelectedRow = 1;
|
|
tableView.SelectedRow = 1;
|
|
tableView.SelectedColumn = 1;
|
|
tableView.SelectedColumn = 1;
|
|
|
|
|
|
- tableView.ProcessKey (new KeyEvent
|
|
|
|
- {
|
|
|
|
- Key = Key.Home | Key.CtrlMask
|
|
|
|
|
|
+ tableView.ProcessKey (new KeyEvent {
|
|
|
|
+ Key = Key.Home | Key.CtrlMask
|
|
});
|
|
});
|
|
|
|
|
|
- if(withFullRowSelect)
|
|
|
|
- {
|
|
|
|
|
|
+ if (withFullRowSelect) {
|
|
// Should not be any horizontal movement when
|
|
// Should not be any horizontal movement when
|
|
// using navigate to Start/End and FullRowSelect
|
|
// using navigate to Start/End and FullRowSelect
|
|
Assert.Equal (1, tableView.SelectedColumn);
|
|
Assert.Equal (1, tableView.SelectedColumn);
|
|
Assert.Equal (0, tableView.SelectedRow);
|
|
Assert.Equal (0, tableView.SelectedRow);
|
|
- }
|
|
|
|
- else
|
|
|
|
- {
|
|
|
|
|
|
+ } else {
|
|
Assert.Equal (0, tableView.SelectedColumn);
|
|
Assert.Equal (0, tableView.SelectedColumn);
|
|
Assert.Equal (0, tableView.SelectedRow);
|
|
Assert.Equal (0, tableView.SelectedRow);
|
|
}
|
|
}
|
|
|
|
|
|
- tableView.ProcessKey (new KeyEvent
|
|
|
|
- {
|
|
|
|
- Key = Key.End | Key.CtrlMask
|
|
|
|
|
|
+ tableView.ProcessKey (new KeyEvent {
|
|
|
|
+ Key = Key.End | Key.CtrlMask
|
|
});
|
|
});
|
|
|
|
|
|
- if(withFullRowSelect)
|
|
|
|
- {
|
|
|
|
|
|
+ if (withFullRowSelect) {
|
|
Assert.Equal (1, tableView.SelectedColumn);
|
|
Assert.Equal (1, tableView.SelectedColumn);
|
|
Assert.Equal (1, tableView.SelectedRow);
|
|
Assert.Equal (1, tableView.SelectedRow);
|
|
- }
|
|
|
|
- else
|
|
|
|
- {
|
|
|
|
|
|
+ } else {
|
|
Assert.Equal (5, tableView.SelectedColumn);
|
|
Assert.Equal (5, tableView.SelectedColumn);
|
|
Assert.Equal (1, tableView.SelectedRow);
|
|
Assert.Equal (1, tableView.SelectedRow);
|
|
}
|
|
}
|
|
@@ -1437,7 +1428,7 @@ namespace Terminal.Gui.ViewTests {
|
|
public void TestColumnStyle_LastColumnVisibleFalse_CursorStaysAt2 (bool useEnd)
|
|
public void TestColumnStyle_LastColumnVisibleFalse_CursorStaysAt2 (bool useEnd)
|
|
{
|
|
{
|
|
var tableView = GetABCDEFTableView (out var dt);
|
|
var tableView = GetABCDEFTableView (out var dt);
|
|
-
|
|
|
|
|
|
+
|
|
// select D
|
|
// select D
|
|
tableView.SelectedColumn = 3;
|
|
tableView.SelectedColumn = 3;
|
|
Assert.Equal (3, tableView.SelectedColumn);
|
|
Assert.Equal (3, tableView.SelectedColumn);
|
|
@@ -1465,12 +1456,12 @@ namespace Terminal.Gui.ViewTests {
|
|
|
|
|
|
// user has rectangular selection
|
|
// user has rectangular selection
|
|
tableView.MultiSelectedRegions.Push (
|
|
tableView.MultiSelectedRegions.Push (
|
|
- new TableView.TableSelection(
|
|
|
|
- new Point(0,0),
|
|
|
|
- new Rect(0, 0, 3, 1))
|
|
|
|
|
|
+ new TableView.TableSelection (
|
|
|
|
+ new Point (0, 0),
|
|
|
|
+ new Rect (0, 0, 3, 1))
|
|
);
|
|
);
|
|
|
|
|
|
- Assert.Equal (3, tableView.GetAllSelectedCells ().Count());
|
|
|
|
|
|
+ Assert.Equal (3, tableView.GetAllSelectedCells ().Count ());
|
|
Assert.True (tableView.IsSelected (0, 0));
|
|
Assert.True (tableView.IsSelected (0, 0));
|
|
Assert.True (tableView.IsSelected (1, 0));
|
|
Assert.True (tableView.IsSelected (1, 0));
|
|
Assert.True (tableView.IsSelected (2, 0));
|
|
Assert.True (tableView.IsSelected (2, 0));
|
|
@@ -1486,7 +1477,7 @@ namespace Terminal.Gui.ViewTests {
|
|
Assert.True (tableView.IsSelected (2, 0));
|
|
Assert.True (tableView.IsSelected (2, 0));
|
|
Assert.False (tableView.IsSelected (3, 0));
|
|
Assert.False (tableView.IsSelected (3, 0));
|
|
|
|
|
|
- Assert.DoesNotContain(new Point(1,0),tableView.GetAllSelectedCells ());
|
|
|
|
|
|
+ Assert.DoesNotContain (new Point (1, 0), tableView.GetAllSelectedCells ());
|
|
}
|
|
}
|
|
|
|
|
|
[Fact, AutoInitShutdown]
|
|
[Fact, AutoInitShutdown]
|
|
@@ -1517,68 +1508,68 @@ namespace Terminal.Gui.ViewTests {
|
|
dt.Rows.Add (1, 2, 3, 4, 5, 6);
|
|
dt.Rows.Add (1, 2, 3, 4, 5, 6);
|
|
|
|
|
|
tableView.MultiSelect = true;
|
|
tableView.MultiSelect = true;
|
|
- tableView.AddKeyBinding(Key.Space,Command.ToggleChecked);
|
|
|
|
|
|
+ tableView.AddKeyBinding (Key.Space, Command.ToggleChecked);
|
|
|
|
|
|
- var selectedCell = tableView.GetAllSelectedCells().Single();
|
|
|
|
- Assert.Equal(0,selectedCell.X);
|
|
|
|
- Assert.Equal(0,selectedCell.Y);
|
|
|
|
|
|
+ var selectedCell = tableView.GetAllSelectedCells ().Single ();
|
|
|
|
+ Assert.Equal (0, selectedCell.X);
|
|
|
|
+ Assert.Equal (0, selectedCell.Y);
|
|
|
|
|
|
// Go Right
|
|
// Go Right
|
|
tableView.ProcessKey (new KeyEvent { Key = Key.CursorRight });
|
|
tableView.ProcessKey (new KeyEvent { Key = Key.CursorRight });
|
|
|
|
|
|
- selectedCell = tableView.GetAllSelectedCells().Single();
|
|
|
|
- Assert.Equal(1,selectedCell.X);
|
|
|
|
- Assert.Equal(0,selectedCell.Y);
|
|
|
|
|
|
+ selectedCell = tableView.GetAllSelectedCells ().Single ();
|
|
|
|
+ Assert.Equal (1, selectedCell.X);
|
|
|
|
+ Assert.Equal (0, selectedCell.Y);
|
|
|
|
|
|
// Toggle Select
|
|
// Toggle Select
|
|
- tableView.ProcessKey (new KeyEvent { Key = Key.Space});
|
|
|
|
- var m = tableView.MultiSelectedRegions.Single();
|
|
|
|
- Assert.True(m.IsToggled);
|
|
|
|
- Assert.Equal(1,m.Origin.X);
|
|
|
|
- Assert.Equal(0,m.Origin.Y);
|
|
|
|
- selectedCell = tableView.GetAllSelectedCells().Single();
|
|
|
|
- Assert.Equal(1,selectedCell.X);
|
|
|
|
- Assert.Equal(0,selectedCell.Y);
|
|
|
|
|
|
+ tableView.ProcessKey (new KeyEvent { Key = Key.Space });
|
|
|
|
+ var m = tableView.MultiSelectedRegions.Single ();
|
|
|
|
+ Assert.True (m.IsToggled);
|
|
|
|
+ Assert.Equal (1, m.Origin.X);
|
|
|
|
+ Assert.Equal (0, m.Origin.Y);
|
|
|
|
+ selectedCell = tableView.GetAllSelectedCells ().Single ();
|
|
|
|
+ Assert.Equal (1, selectedCell.X);
|
|
|
|
+ Assert.Equal (0, selectedCell.Y);
|
|
|
|
|
|
// Go Left
|
|
// Go Left
|
|
tableView.ProcessKey (new KeyEvent { Key = Key.CursorLeft });
|
|
tableView.ProcessKey (new KeyEvent { Key = Key.CursorLeft });
|
|
|
|
|
|
// Both Toggled and Moved to should be selected
|
|
// Both Toggled and Moved to should be selected
|
|
- Assert.Equal(2,tableView.GetAllSelectedCells().Count());
|
|
|
|
- var s1 = tableView.GetAllSelectedCells().ElementAt(0);
|
|
|
|
- var s2 = tableView.GetAllSelectedCells().ElementAt(1);
|
|
|
|
- Assert.Equal(1,s1.X);
|
|
|
|
- Assert.Equal(0,s1.Y);
|
|
|
|
- Assert.Equal(0,s2.X);
|
|
|
|
- Assert.Equal(0,s2.Y);
|
|
|
|
|
|
+ Assert.Equal (2, tableView.GetAllSelectedCells ().Count ());
|
|
|
|
+ var s1 = tableView.GetAllSelectedCells ().ElementAt (0);
|
|
|
|
+ var s2 = tableView.GetAllSelectedCells ().ElementAt (1);
|
|
|
|
+ Assert.Equal (1, s1.X);
|
|
|
|
+ Assert.Equal (0, s1.Y);
|
|
|
|
+ Assert.Equal (0, s2.X);
|
|
|
|
+ Assert.Equal (0, s2.Y);
|
|
|
|
|
|
// Go Down
|
|
// Go Down
|
|
tableView.ProcessKey (new KeyEvent { Key = Key.CursorDown });
|
|
tableView.ProcessKey (new KeyEvent { Key = Key.CursorDown });
|
|
|
|
|
|
// Both Toggled and Moved to should be selected but not 0,0
|
|
// Both Toggled and Moved to should be selected but not 0,0
|
|
// which we moved down from
|
|
// which we moved down from
|
|
- Assert.Equal(2,tableView.GetAllSelectedCells().Count());
|
|
|
|
- s1 = tableView.GetAllSelectedCells().ElementAt(0);
|
|
|
|
- s2 = tableView.GetAllSelectedCells().ElementAt(1);
|
|
|
|
- Assert.Equal(1,s1.X);
|
|
|
|
- Assert.Equal(0,s1.Y);
|
|
|
|
- Assert.Equal(0,s2.X);
|
|
|
|
- Assert.Equal(1,s2.Y);
|
|
|
|
|
|
+ Assert.Equal (2, tableView.GetAllSelectedCells ().Count ());
|
|
|
|
+ s1 = tableView.GetAllSelectedCells ().ElementAt (0);
|
|
|
|
+ s2 = tableView.GetAllSelectedCells ().ElementAt (1);
|
|
|
|
+ Assert.Equal (1, s1.X);
|
|
|
|
+ Assert.Equal (0, s1.Y);
|
|
|
|
+ Assert.Equal (0, s2.X);
|
|
|
|
+ Assert.Equal (1, s2.Y);
|
|
|
|
|
|
|
|
|
|
// Go back to the toggled cell
|
|
// Go back to the toggled cell
|
|
- tableView.ProcessKey (new KeyEvent { Key = Key.CursorRight});
|
|
|
|
- tableView.ProcessKey (new KeyEvent { Key = Key.CursorUp});
|
|
|
|
|
|
+ tableView.ProcessKey (new KeyEvent { Key = Key.CursorRight });
|
|
|
|
+ tableView.ProcessKey (new KeyEvent { Key = Key.CursorUp });
|
|
|
|
|
|
// Toggle off
|
|
// Toggle off
|
|
- tableView.ProcessKey (new KeyEvent { Key = Key.Space});
|
|
|
|
|
|
+ tableView.ProcessKey (new KeyEvent { Key = Key.Space });
|
|
|
|
|
|
// Go Left
|
|
// Go Left
|
|
- tableView.ProcessKey (new KeyEvent { Key = Key.CursorLeft});
|
|
|
|
|
|
+ tableView.ProcessKey (new KeyEvent { Key = Key.CursorLeft });
|
|
|
|
|
|
- selectedCell = tableView.GetAllSelectedCells().Single();
|
|
|
|
- Assert.Equal(0,selectedCell.X);
|
|
|
|
- Assert.Equal(0,selectedCell.Y);
|
|
|
|
|
|
+ selectedCell = tableView.GetAllSelectedCells ().Single ();
|
|
|
|
+ Assert.Equal (0, selectedCell.X);
|
|
|
|
+ Assert.Equal (0, selectedCell.Y);
|
|
}
|
|
}
|
|
|
|
|
|
[Fact, AutoInitShutdown]
|
|
[Fact, AutoInitShutdown]
|
|
@@ -1589,31 +1580,31 @@ namespace Terminal.Gui.ViewTests {
|
|
dt.Rows.Add (1, 2, 3, 4, 5, 6);
|
|
dt.Rows.Add (1, 2, 3, 4, 5, 6);
|
|
tableView.FullRowSelect = true;
|
|
tableView.FullRowSelect = true;
|
|
tableView.MultiSelect = true;
|
|
tableView.MultiSelect = true;
|
|
- tableView.AddKeyBinding(Key.Space,Command.ToggleChecked);
|
|
|
|
|
|
+ tableView.AddKeyBinding (Key.Space, Command.ToggleChecked);
|
|
|
|
|
|
// Toggle Select Cell 0,0
|
|
// Toggle Select Cell 0,0
|
|
- tableView.ProcessKey (new KeyEvent { Key = Key.Space});
|
|
|
|
|
|
+ tableView.ProcessKey (new KeyEvent { Key = Key.Space });
|
|
|
|
|
|
// Go Down
|
|
// Go Down
|
|
tableView.ProcessKey (new KeyEvent { Key = Key.CursorDown });
|
|
tableView.ProcessKey (new KeyEvent { Key = Key.CursorDown });
|
|
|
|
|
|
- var m = tableView.MultiSelectedRegions.Single();
|
|
|
|
- Assert.True(m.IsToggled);
|
|
|
|
- Assert.Equal(0,m.Origin.X);
|
|
|
|
- Assert.Equal(0,m.Origin.Y);
|
|
|
|
|
|
+ var m = tableView.MultiSelectedRegions.Single ();
|
|
|
|
+ Assert.True (m.IsToggled);
|
|
|
|
+ Assert.Equal (0, m.Origin.X);
|
|
|
|
+ Assert.Equal (0, m.Origin.Y);
|
|
|
|
|
|
//First row toggled and Second row active = 12 selected cells
|
|
//First row toggled and Second row active = 12 selected cells
|
|
- Assert.Equal(12,tableView.GetAllSelectedCells().Count());
|
|
|
|
|
|
+ Assert.Equal (12, tableView.GetAllSelectedCells ().Count ());
|
|
|
|
|
|
tableView.ProcessKey (new KeyEvent { Key = Key.CursorRight });
|
|
tableView.ProcessKey (new KeyEvent { Key = Key.CursorRight });
|
|
tableView.ProcessKey (new KeyEvent { Key = Key.CursorUp });
|
|
tableView.ProcessKey (new KeyEvent { Key = Key.CursorUp });
|
|
-
|
|
|
|
- Assert.Single(tableView.MultiSelectedRegions.Where(r=>r.IsToggled));
|
|
|
|
|
|
+
|
|
|
|
+ Assert.Single (tableView.MultiSelectedRegions.Where (r => r.IsToggled));
|
|
|
|
|
|
// Can untoggle at 1,0 even though 0,0 was initial toggle because FullRowSelect is on
|
|
// Can untoggle at 1,0 even though 0,0 was initial toggle because FullRowSelect is on
|
|
- tableView.ProcessKey (new KeyEvent { Key = Key.Space});
|
|
|
|
|
|
+ tableView.ProcessKey (new KeyEvent { Key = Key.Space });
|
|
|
|
|
|
- Assert.Empty(tableView.MultiSelectedRegions.Where(r=>r.IsToggled));
|
|
|
|
|
|
+ Assert.Empty (tableView.MultiSelectedRegions.Where (r => r.IsToggled));
|
|
|
|
|
|
}
|
|
}
|
|
|
|
|
|
@@ -1626,33 +1617,33 @@ namespace Terminal.Gui.ViewTests {
|
|
dt.Rows.Add (1, 2, 3, 4, 5, 6);
|
|
dt.Rows.Add (1, 2, 3, 4, 5, 6);
|
|
dt.Rows.Add (1, 2, 3, 4, 5, 6);
|
|
dt.Rows.Add (1, 2, 3, 4, 5, 6);
|
|
tableView.MultiSelect = true;
|
|
tableView.MultiSelect = true;
|
|
- tableView.AddKeyBinding(Key.Space,Command.ToggleChecked);
|
|
|
|
|
|
+ tableView.AddKeyBinding (Key.Space, Command.ToggleChecked);
|
|
|
|
|
|
// Make a square selection
|
|
// Make a square selection
|
|
- tableView.ProcessKey (new KeyEvent { Key = Key.ShiftMask | Key.CursorDown});
|
|
|
|
- tableView.ProcessKey (new KeyEvent { Key = Key.ShiftMask | Key.CursorRight});
|
|
|
|
|
|
+ tableView.ProcessKey (new KeyEvent { Key = Key.ShiftMask | Key.CursorDown });
|
|
|
|
+ tableView.ProcessKey (new KeyEvent { Key = Key.ShiftMask | Key.CursorRight });
|
|
|
|
|
|
- Assert.Equal(4,tableView.GetAllSelectedCells().Count());
|
|
|
|
|
|
+ Assert.Equal (4, tableView.GetAllSelectedCells ().Count ());
|
|
|
|
|
|
// Toggle the square selected region on
|
|
// Toggle the square selected region on
|
|
- tableView.ProcessKey (new KeyEvent { Key = Key.Space});
|
|
|
|
|
|
+ tableView.ProcessKey (new KeyEvent { Key = Key.Space });
|
|
|
|
|
|
// Go Right
|
|
// Go Right
|
|
tableView.ProcessKey (new KeyEvent { Key = Key.CursorRight });
|
|
tableView.ProcessKey (new KeyEvent { Key = Key.CursorRight });
|
|
|
|
|
|
//Toggled on square + the active cell (x=2,y=1)
|
|
//Toggled on square + the active cell (x=2,y=1)
|
|
- Assert.Equal(5,tableView.GetAllSelectedCells().Count());
|
|
|
|
- Assert.Equal(2,tableView.SelectedColumn);
|
|
|
|
- Assert.Equal(1,tableView.SelectedRow);
|
|
|
|
|
|
+ Assert.Equal (5, tableView.GetAllSelectedCells ().Count ());
|
|
|
|
+ Assert.Equal (2, tableView.SelectedColumn);
|
|
|
|
+ Assert.Equal (1, tableView.SelectedRow);
|
|
|
|
|
|
// Untoggle the rectangular region by hitting toggle in
|
|
// Untoggle the rectangular region by hitting toggle in
|
|
// any cell in that rect
|
|
// any cell in that rect
|
|
tableView.ProcessKey (new KeyEvent { Key = Key.CursorUp });
|
|
tableView.ProcessKey (new KeyEvent { Key = Key.CursorUp });
|
|
tableView.ProcessKey (new KeyEvent { Key = Key.CursorLeft });
|
|
tableView.ProcessKey (new KeyEvent { Key = Key.CursorLeft });
|
|
|
|
|
|
- Assert.Equal(4,tableView.GetAllSelectedCells().Count());
|
|
|
|
|
|
+ Assert.Equal (4, tableView.GetAllSelectedCells ().Count ());
|
|
tableView.ProcessKey (new KeyEvent { Key = Key.Space });
|
|
tableView.ProcessKey (new KeyEvent { Key = Key.Space });
|
|
- Assert.Single(tableView.GetAllSelectedCells());
|
|
|
|
|
|
+ Assert.Single (tableView.GetAllSelectedCells ());
|
|
}
|
|
}
|
|
|
|
|
|
[Fact, AutoInitShutdown]
|
|
[Fact, AutoInitShutdown]
|
|
@@ -1666,42 +1657,42 @@ namespace Terminal.Gui.ViewTests {
|
|
dt.Rows.Add (1, 2, 3, 4, 5, 6);
|
|
dt.Rows.Add (1, 2, 3, 4, 5, 6);
|
|
dt.Rows.Add (1, 2, 3, 4, 5, 6);
|
|
dt.Rows.Add (1, 2, 3, 4, 5, 6);
|
|
tableView.MultiSelect = true;
|
|
tableView.MultiSelect = true;
|
|
- tableView.AddKeyBinding(Key.Space,Command.ToggleChecked);
|
|
|
|
|
|
+ tableView.AddKeyBinding (Key.Space, Command.ToggleChecked);
|
|
|
|
|
|
// Make first square selection (0,0 to 1,1)
|
|
// Make first square selection (0,0 to 1,1)
|
|
- tableView.ProcessKey (new KeyEvent { Key = Key.ShiftMask | Key.CursorDown});
|
|
|
|
- tableView.ProcessKey (new KeyEvent { Key = Key.ShiftMask | Key.CursorRight});
|
|
|
|
- tableView.ProcessKey (new KeyEvent { Key = Key.Space});
|
|
|
|
- Assert.Equal(4,tableView.GetAllSelectedCells().Count());
|
|
|
|
|
|
+ tableView.ProcessKey (new KeyEvent { Key = Key.ShiftMask | Key.CursorDown });
|
|
|
|
+ tableView.ProcessKey (new KeyEvent { Key = Key.ShiftMask | Key.CursorRight });
|
|
|
|
+ tableView.ProcessKey (new KeyEvent { Key = Key.Space });
|
|
|
|
+ Assert.Equal (4, tableView.GetAllSelectedCells ().Count ());
|
|
|
|
|
|
// Make second square selection leaving 1 unselected line between them
|
|
// Make second square selection leaving 1 unselected line between them
|
|
tableView.ProcessKey (new KeyEvent { Key = Key.CursorLeft });
|
|
tableView.ProcessKey (new KeyEvent { Key = Key.CursorLeft });
|
|
tableView.ProcessKey (new KeyEvent { Key = Key.CursorDown });
|
|
tableView.ProcessKey (new KeyEvent { Key = Key.CursorDown });
|
|
tableView.ProcessKey (new KeyEvent { Key = Key.CursorDown });
|
|
tableView.ProcessKey (new KeyEvent { Key = Key.CursorDown });
|
|
- tableView.ProcessKey (new KeyEvent { Key = Key.ShiftMask | Key.CursorDown});
|
|
|
|
- tableView.ProcessKey (new KeyEvent { Key = Key.ShiftMask | Key.CursorRight});
|
|
|
|
-
|
|
|
|
|
|
+ tableView.ProcessKey (new KeyEvent { Key = Key.ShiftMask | Key.CursorDown });
|
|
|
|
+ tableView.ProcessKey (new KeyEvent { Key = Key.ShiftMask | Key.CursorRight });
|
|
|
|
+
|
|
// 2 square selections
|
|
// 2 square selections
|
|
- Assert.Equal(8,tableView.GetAllSelectedCells().Count());
|
|
|
|
|
|
+ Assert.Equal (8, tableView.GetAllSelectedCells ().Count ());
|
|
}
|
|
}
|
|
|
|
|
|
-
|
|
|
|
|
|
+
|
|
[Theory, AutoInitShutdown]
|
|
[Theory, AutoInitShutdown]
|
|
- [InlineData(new object[] { true,true })]
|
|
|
|
- [InlineData (new object[] { false,true })]
|
|
|
|
- [InlineData (new object [] { true, false})]
|
|
|
|
- [InlineData (new object [] { false, false})]
|
|
|
|
|
|
+ [InlineData (new object [] { true, true })]
|
|
|
|
+ [InlineData (new object [] { false, true })]
|
|
|
|
+ [InlineData (new object [] { true, false })]
|
|
|
|
+ [InlineData (new object [] { false, false })]
|
|
public void TestColumnStyle_VisibleFalse_DoesNotEffect_EnsureSelectedCellIsVisible (bool smooth, bool invisibleCol)
|
|
public void TestColumnStyle_VisibleFalse_DoesNotEffect_EnsureSelectedCellIsVisible (bool smooth, bool invisibleCol)
|
|
{
|
|
{
|
|
var tableView = GetABCDEFTableView (out var dt);
|
|
var tableView = GetABCDEFTableView (out var dt);
|
|
tableView.Style.SmoothHorizontalScrolling = smooth;
|
|
tableView.Style.SmoothHorizontalScrolling = smooth;
|
|
-
|
|
|
|
- if(invisibleCol) {
|
|
|
|
|
|
+
|
|
|
|
+ if (invisibleCol) {
|
|
tableView.Style.GetOrCreateColumnStyle (dt.Columns ["D"]).Visible = false;
|
|
tableView.Style.GetOrCreateColumnStyle (dt.Columns ["D"]).Visible = false;
|
|
}
|
|
}
|
|
|
|
|
|
// New TableView should have first cell selected
|
|
// New TableView should have first cell selected
|
|
- Assert.Equal (0,tableView.SelectedColumn);
|
|
|
|
|
|
+ Assert.Equal (0, tableView.SelectedColumn);
|
|
// With no scrolling
|
|
// With no scrolling
|
|
Assert.Equal (0, tableView.ColumnOffset);
|
|
Assert.Equal (0, tableView.ColumnOffset);
|
|
|
|
|
|
@@ -1739,7 +1730,7 @@ namespace Terminal.Gui.ViewTests {
|
|
dt.Columns.Add ("B");
|
|
dt.Columns.Add ("B");
|
|
dt.Columns.Add ("Very Long Column");
|
|
dt.Columns.Add ("Very Long Column");
|
|
|
|
|
|
- dt.Rows.Add (1, 2, new string('a',500));
|
|
|
|
|
|
+ dt.Rows.Add (1, 2, new string ('a', 500));
|
|
dt.Rows.Add (1, 2, "aaa");
|
|
dt.Rows.Add (1, 2, "aaa");
|
|
|
|
|
|
tableView.Table = dt;
|
|
tableView.Table = dt;
|
|
@@ -1748,7 +1739,7 @@ namespace Terminal.Gui.ViewTests {
|
|
|
|
|
|
// default behaviour of TableView is not to render
|
|
// default behaviour of TableView is not to render
|
|
// columns unless there is sufficient space
|
|
// columns unless there is sufficient space
|
|
- string expected =
|
|
|
|
|
|
+ string expected =
|
|
@"
|
|
@"
|
|
│A│B │
|
|
│A│B │
|
|
├─┼─────────────────────►
|
|
├─┼─────────────────────►
|
|
@@ -1759,14 +1750,14 @@ namespace Terminal.Gui.ViewTests {
|
|
TestHelpers.AssertDriverContentsAre (expected, output);
|
|
TestHelpers.AssertDriverContentsAre (expected, output);
|
|
|
|
|
|
// get a style for the long column
|
|
// get a style for the long column
|
|
- var style = tableView.Style.GetOrCreateColumnStyle(dt.Columns[2]);
|
|
|
|
-
|
|
|
|
|
|
+ var style = tableView.Style.GetOrCreateColumnStyle (dt.Columns [2]);
|
|
|
|
+
|
|
// one way the API user can fix this for long columns
|
|
// one way the API user can fix this for long columns
|
|
// is to specify a max width for the column
|
|
// is to specify a max width for the column
|
|
style.MaxWidth = 10;
|
|
style.MaxWidth = 10;
|
|
|
|
|
|
tableView.Redraw (tableView.Bounds);
|
|
tableView.Redraw (tableView.Bounds);
|
|
- expected =
|
|
|
|
|
|
+ expected =
|
|
@"
|
|
@"
|
|
│A│B│Very Long │
|
|
│A│B│Very Long │
|
|
├─┼─┼───────────────────┤
|
|
├─┼─┼───────────────────┤
|
|
@@ -1781,12 +1772,12 @@ namespace Terminal.Gui.ViewTests {
|
|
// another way API user can fix problem is to implement
|
|
// another way API user can fix problem is to implement
|
|
// RepresentationGetter and apply max length there
|
|
// RepresentationGetter and apply max length there
|
|
|
|
|
|
- style.RepresentationGetter = (s)=>{
|
|
|
|
- return s.ToString().Length < 15 ? s.ToString() : s.ToString().Substring(0,13)+"...";
|
|
|
|
|
|
+ style.RepresentationGetter = (s) => {
|
|
|
|
+ return s.ToString ().Length < 15 ? s.ToString () : s.ToString ().Substring (0, 13) + "...";
|
|
};
|
|
};
|
|
|
|
|
|
tableView.Redraw (tableView.Bounds);
|
|
tableView.Redraw (tableView.Bounds);
|
|
- expected =
|
|
|
|
|
|
+ expected =
|
|
@"
|
|
@"
|
|
│A│B│Very Long Column │
|
|
│A│B│Very Long Column │
|
|
├─┼─┼───────────────────┤
|
|
├─┼─┼───────────────────┤
|
|
@@ -1811,7 +1802,7 @@ namespace Terminal.Gui.ViewTests {
|
|
style.MinAcceptableWidth = 5;
|
|
style.MinAcceptableWidth = 5;
|
|
|
|
|
|
tableView.Redraw (tableView.Bounds);
|
|
tableView.Redraw (tableView.Bounds);
|
|
- expected =
|
|
|
|
|
|
+ expected =
|
|
@"
|
|
@"
|
|
│A│B│Very Long Column │
|
|
│A│B│Very Long Column │
|
|
├─┼─┼───────────────────┤
|
|
├─┼─┼───────────────────┤
|
|
@@ -1825,7 +1816,7 @@ namespace Terminal.Gui.ViewTests {
|
|
Application.Shutdown ();
|
|
Application.Shutdown ();
|
|
GraphViewTests.InitFakeDriver ();
|
|
GraphViewTests.InitFakeDriver ();
|
|
|
|
|
|
- tableView.Bounds = new Rect(0,0,9,5);
|
|
|
|
|
|
+ tableView.Bounds = new Rect (0, 0, 9, 5);
|
|
tableView.Redraw (tableView.Bounds);
|
|
tableView.Redraw (tableView.Bounds);
|
|
expected =
|
|
expected =
|
|
@"
|
|
@"
|
|
@@ -1889,7 +1880,7 @@ namespace Terminal.Gui.ViewTests {
|
|
|
|
|
|
// user can only scroll right so sees right indicator
|
|
// user can only scroll right so sees right indicator
|
|
// Because first column in table is A
|
|
// Because first column in table is A
|
|
- string expected =
|
|
|
|
|
|
+ string expected =
|
|
@"
|
|
@"
|
|
│A│B│C│
|
|
│A│B│C│
|
|
├─┼─┼─►
|
|
├─┼─┼─►
|
|
@@ -1933,6 +1924,74 @@ namespace Terminal.Gui.ViewTests {
|
|
Application.Shutdown ();
|
|
Application.Shutdown ();
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ [Fact, AutoInitShutdown]
|
|
|
|
+ public void CellEventsBackgroundFill ()
|
|
|
|
+ {
|
|
|
|
+ var tv = new TableView () {
|
|
|
|
+ Width = 20,
|
|
|
|
+ Height = 4
|
|
|
|
+ };
|
|
|
|
+
|
|
|
|
+ var dt = new DataTable ();
|
|
|
|
+ dt.Columns.Add ("C1");
|
|
|
|
+ dt.Columns.Add ("C2");
|
|
|
|
+ dt.Columns.Add ("C3");
|
|
|
|
+
|
|
|
|
+ dt.Rows.Add ("Hello", DBNull.Value, "f");
|
|
|
|
+
|
|
|
|
+ tv.Table = dt;
|
|
|
|
+ tv.NullSymbol = string.Empty;
|
|
|
|
+
|
|
|
|
+ Application.Top.Add (tv);
|
|
|
|
+ Application.Begin (Application.Top);
|
|
|
|
+
|
|
|
|
+ tv.Redraw (tv.Bounds);
|
|
|
|
+
|
|
|
|
+ var expected =
|
|
|
|
+ @"
|
|
|
|
+┌─────┬──┬─────────┐
|
|
|
|
+│C1 │C2│C3 │
|
|
|
|
+├─────┼──┼─────────┤
|
|
|
|
+│Hello│ │f │
|
|
|
|
+";
|
|
|
|
+
|
|
|
|
+ TestHelpers.AssertDriverContentsAre (expected, output);
|
|
|
|
+
|
|
|
|
+ var color = new Attribute (Color.Magenta, Color.BrightBlue);
|
|
|
|
+
|
|
|
|
+ var scheme = new ColorScheme {
|
|
|
|
+ Normal = color,
|
|
|
|
+ HotFocus = color,
|
|
|
|
+ Focus = color,
|
|
|
|
+ Disabled = color,
|
|
|
|
+ HotNormal = color,
|
|
|
|
+ };
|
|
|
|
+
|
|
|
|
+ // Now the thing we really want to test is the styles!
|
|
|
|
+ // All cells in the column have a column style that says
|
|
|
|
+ // the cell is pink!
|
|
|
|
+ foreach (DataColumn col in dt.Columns) {
|
|
|
|
+ var style = tv.Style.GetOrCreateColumnStyle (col);
|
|
|
|
+ style.ColorGetter = (e) => {
|
|
|
|
+ return scheme;
|
|
|
|
+ };
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ tv.Redraw (tv.Bounds);
|
|
|
|
+ expected =
|
|
|
|
+ @"
|
|
|
|
+00000000000000000000
|
|
|
|
+00000000000000000000
|
|
|
|
+00000000000000000000
|
|
|
|
+01111101101111111110
|
|
|
|
+";
|
|
|
|
+ TestHelpers.AssertDriverColorsAre (expected,new Attribute [] { tv.ColorScheme.Normal, color });
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+
|
|
/// <summary>
|
|
/// <summary>
|
|
/// Builds a simple table of string columns with the requested number of columns and rows
|
|
/// Builds a simple table of string columns with the requested number of columns and rows
|
|
/// </summary>
|
|
/// </summary>
|
|
@@ -1992,7 +2051,7 @@ namespace Terminal.Gui.ViewTests {
|
|
// click in header row line
|
|
// click in header row line
|
|
Assert.Null (tableView.ScreenToCell (1, 1));
|
|
Assert.Null (tableView.ScreenToCell (1, 1));
|
|
// click in cell 0,0
|
|
// click in cell 0,0
|
|
- Assert.Equal (new Point(0,0),tableView.ScreenToCell (1, 2));
|
|
|
|
|
|
+ Assert.Equal (new Point (0, 0), tableView.ScreenToCell (1, 2));
|
|
// click in cell 0,1
|
|
// click in cell 0,1
|
|
Assert.Equal (new Point (0, 1), tableView.ScreenToCell (1, 3));
|
|
Assert.Equal (new Point (0, 1), tableView.ScreenToCell (1, 3));
|
|
// after last row
|
|
// after last row
|
|
@@ -2047,15 +2106,15 @@ namespace Terminal.Gui.ViewTests {
|
|
|
|
|
|
// ---------------- X=0 -----------------------
|
|
// ---------------- X=0 -----------------------
|
|
// click is before first cell
|
|
// click is before first cell
|
|
- Assert.Null (tableView.ScreenToCell (0, 0,out col));
|
|
|
|
|
|
+ Assert.Null (tableView.ScreenToCell (0, 0, out col));
|
|
Assert.Null (col);
|
|
Assert.Null (col);
|
|
- Assert.Null (tableView.ScreenToCell (0, 1,out col));
|
|
|
|
|
|
+ Assert.Null (tableView.ScreenToCell (0, 1, out col));
|
|
Assert.Null (col);
|
|
Assert.Null (col);
|
|
- Assert.Null (tableView.ScreenToCell (0, 2,out col));
|
|
|
|
|
|
+ Assert.Null (tableView.ScreenToCell (0, 2, out col));
|
|
Assert.Null (col);
|
|
Assert.Null (col);
|
|
- Assert.Null (tableView.ScreenToCell (0, 3,out col));
|
|
|
|
|
|
+ Assert.Null (tableView.ScreenToCell (0, 3, out col));
|
|
Assert.Null (col);
|
|
Assert.Null (col);
|
|
- Assert.Null (tableView.ScreenToCell (0, 4,out col));
|
|
|
|
|
|
+ Assert.Null (tableView.ScreenToCell (0, 4, out col));
|
|
Assert.Null (col);
|
|
Assert.Null (col);
|
|
|
|
|
|
// ---------------- X=1 -----------------------
|
|
// ---------------- X=1 -----------------------
|