public void Copy2Paste3Cell() { DataTable table = CreateTableForCopyPaste(); Assert.AreEqual(0, table.Rows[0].ItemArray[1]); Assert.AreEqual(1, table.Rows[1].ItemArray[1]); Assert.AreEqual(2, table.Rows[2].ItemArray[1]); Assert.AreEqual(3, table.Rows[3].ItemArray[1]); Assert.AreEqual(4, table.Rows[4].ItemArray[1]); var tableView = new TableView { Data = table }; Action<Form> onShown = delegate { tableView.Focus(); SendKeys.SendWait("{RIGHT}"); // goto row 1 column 2 SendKeys.SendWait("+{DOWN}"); // also select cell below SendKeys.SendWait("^c"); // copy cells SendKeys.SendWait("{DOWN}"); // navigate to cell below SendKeys.SendWait("+{DOWN}+{DOWN}"); // also select 2 cells below SendKeys.SendWait("^v"); // paste Assert.AreEqual(0, table.Rows[0].ItemArray[1]); Assert.AreEqual(1, table.Rows[1].ItemArray[1]); Assert.AreEqual(0, table.Rows[2].ItemArray[1]); // paste 0 1 to 2 3 4 expects pattern 0 1 0 Assert.AreEqual(1, table.Rows[3].ItemArray[1]); Assert.AreEqual(0, table.Rows[4].ItemArray[1]); }; WindowsFormsTestHelper.ShowModal(tableView, onShown); }
public void PasteTextIntoFunctionBindingList() { IFunction function = new Function(); var argument = new Variable<string>("A"); function.Arguments.Add(argument); var component = new Variable<string>("B"); function.Components.Add(component); var view = new TableView(); IBindingList bindingList = new FunctionBindingList(function) { SynchronizeInvoke = view }; view.Data = bindingList; const string argumentvalue1 = "argumentvalue1"; const string componentvalue1 = "componentvalue1"; const string argumentvalue2 = "argumentvalue2"; string componentvalue2 = "componentvalue2" + (char)0x03A9; Clipboard.SetText(string.Format("{0}\t{1}" + Environment.NewLine + "{2}\t{3}", argumentvalue1, componentvalue1, argumentvalue2, componentvalue2)); //action! pasting the text should fill out the function view.PasteClipboardContents(); Thread.Sleep(2000); Assert.AreEqual(argumentvalue1, argument.Values[0]); Assert.AreEqual(componentvalue1, component.Values[0]); Assert.AreEqual(argumentvalue2, argument.Values[1]); Assert.AreEqual(componentvalue2, component.Values[1]); }
public void ShowReadOnlyTableView() { var x = new Variable<int>("x"); var y = new Variable<int>("y"); y.DefaultValue = -99; var f = new Function { Arguments = { x }, Components = { y } }; f[1] = 1; f[5] = 5; f[10] = 10; f[15] = 15; var tableView = new TableView { ReadOnly = true }; var bindingList = new FunctionBindingList(f) { SynchronizeInvoke = tableView}; tableView.Data = bindingList; WindowsFormsTestHelper.ShowModal(tableView); }
private static TableView GetTableViewWithTwoStringColumnsAndOneRow() { var tableView = new TableView(); var tableWithTwoStrings = new DataTable(); tableWithTwoStrings.Columns.Add("Name", typeof(string)); tableWithTwoStrings.Columns.Add("B", typeof(string)); tableWithTwoStrings.Rows.Add("a", "b"); tableView.Data = tableWithTwoStrings; return tableView; }
public void PastingIntoReadOnlyCellsDoesNotChangeTheValues() { var tableWithTwoStrings = new DataTable(); tableWithTwoStrings.Columns.Add("A", typeof(string)); tableWithTwoStrings.Columns.Add("B", typeof(string)); tableWithTwoStrings.Rows.Add("a", "b"); var tableView = new TableView { Data = tableWithTwoStrings }; //values in the first column are read only tableView.ReadOnlyCellFilter = delegate (TableViewCell cell) { return cell.ColumnIndex== 0; }; //select top row tableView.SelectCells(0, 0, 0, 1); var tableViewCopyPasteController = new TableViewPasteController(tableView); //paste some non sense. tableViewCopyPasteController.PasteLines(new[] { "c\td" }); //only column b should have changed Assert.AreEqual("a", tableWithTwoStrings.Rows[0][0]); Assert.AreEqual("d", tableWithTwoStrings.Rows[0][1]); }
public void PasteTakesInvisibleColumnsIntoAccount() { //if a possible paste is too big it is important to not exceed the visiblecolcount - 1 var list = new BindingList<Person>() { new Person {Name = "jan", Age = 25}, new Person {Name = "fon", Age = 33}, new Person {Name = "peer", Age = 25}, new Person {Name = "fo", Age = 33} }; var tableView = new TableView {Data = list}; //hide the age column tableView.Columns[1].Visible = false; //select top left tableView.SelectCells(0, 0, 0, 0); var tableViewCopyPasteController = new TableViewPasteController(tableView); //paste some non sense tableViewCopyPasteController.PasteLines(new[] {"kees\tkan\twel"}); //first person should be kees now Assert.AreEqual("kees", list[0].Name); }
public void PasteFailsIntoNonSquareSelection() { var list = new BindingList<Person>() { new Person {Name = "jan", Age = 25}, new Person {Name = "fon", Age = 33}, new Person {Name = "peer", Age = 25}, new Person {Name = "fo", Age = 33} }; var tableView = new TableView { Data = list }; //make a diagonal selection tableView.SelectedCells.Add(new TableViewCell(0,0)); tableView.SelectedCells.Add(new TableViewCell(1, 1)); var tableViewCopyPasteController = new TableViewPasteController(tableView); int callCount = 0; tableViewCopyPasteController.PasteFailed += (s, e) => { callCount++; Assert.AreEqual( "Cannot paste into non rectangular selection", e.Value); }; //this should a paste failed event tableViewCopyPasteController.PasteLines(new[] { "kees", "anton" }); Assert.AreEqual(1,callCount); }
public TableRowCollection(TableView table) { owner = table; }
public void DeleteSelectionOnReadOnlyColumnDoesNothing() { var persons = new List<Person> {new Person {Name = "Aaltje",Age = 12 }, new Person {Name = "Berend",Age = 11 }}; var tableView = new TableView { Data = persons }; //select the top row tableView.SelectCells(0, 1, 0, 1); tableView.Columns[1].ReadOnly = true; //action! try to delete something tableView.DeleteCurrentSelection(); //assert all is well Assert.AreEqual(12, persons[0].Age); Assert.AreEqual(2, persons.Count); }
public void SortTableViewWhenSettingSortOrder() { var person = new List<Person> {new Person {Age = 12, Name = "Aaltje"}, new Person {Age = 11, Name = "Berend"}}; var tableView = new TableView { Data = person }; //first sort descending..the first value should be berend tableView.Columns[0].SortOrder = SortOrder.Descending; Assert.AreEqual("Berend", tableView.GetRowCellValue(0, 0)); //sort ascending..the first value should be aaltje tableView.Columns[0].SortOrder = SortOrder.Ascending; Assert.AreEqual("Aaltje", tableView.GetRowCellValue(0, 0)); }
public void AddNewRowToDataSource() { var persons = new BindingList<Person>(); var tableView = new TableView { Data = persons }; tableView.AddNewRowToDataSource(); Assert.AreEqual(1, persons.Count); }
public void ChangeSelection() { //empty tableview should have 0 rowcount var persons = new BindingList<Person>(); for (int i = 0; i < 10; i++) { persons.Add(new Person()); } var tableView = new TableView { Data = persons }; var selectionChangedcount = 0; var selectedRowChanged = 0; tableView.SelectedRowChanged += delegate { selectedRowChanged++; }; tableView.SelectionChanged += delegate { selectionChangedcount++; }; //select cells tableView.SelectCells(5, 0, 9, 1); Assert.AreEqual(10, selectionChangedcount); var currentOld = tableView.CurrentRowObject; tableView.SelectedDisplayRowIndex = 1; var currentnew = tableView.CurrentRowObject; Assert.AreEqual(1, selectedRowChanged); Assert.AreNotEqual(currentOld, currentnew); }
public void SelectCells() { //empty tableview should have 0 rowcount var persons = new BindingList<Person>(); for (int i = 0; i < 10; i++) { persons.Add(new Person()); } var tableView = new TableView { Data = persons }; //select cells tableView.SelectCells(5, 0, 9, 1); //check the bottom cells are all selected Assert.AreEqual(10, tableView.SelectedCells.Count); }
public void RowCount() { //empty tableview should have 0 rowcount var persons = new BindingList<Person>(); var tableView = new TableView { Data = persons }; Assert.AreEqual(0, tableView.RowCount); //1 person one row right? persons = new BindingList<Person> { new Person { Age = 22, Name = "Jan" } }; tableView = new TableView { Data = persons }; Assert.AreEqual(1, tableView.RowCount); }
public void SetRowCellValueDoesNotWorkOnReadOnlyCell() { var table = new DataTable(); table.Columns.Add("readonlycolumn", typeof(string)); table.Rows.Add(new object[] { "1" }); var tableView = new TableView { Data = table }; //read only cell tableView.ReadOnlyCellFilter += delegate { return true; }; tableView.SetRowCellValue(0, 0, "2"); Assert.AreEqual("1", tableView.GetRowCellValue(0, 0)); }
public void DeleteSelectionTakesAllowDeleteRowsIntoAccount() { var persons = new List<Person> {new Person {Name = "Aaltje",Age = 12 }, new Person {Name = "Berend",Age = 11 }}; var tableView = new TableView { Data = persons }; //select the top row tableView.SelectCells(0, 0, 0, 1); //action! delete the row tableView.AllowDeleteRow = false; tableView.DeleteCurrentSelection(); //assert aaltje got 'reset' Assert.AreEqual(new[] {"", "Berend" }, persons.Select(p => p.Name).ToArray()); Assert.AreEqual(new[] { 0, 11 }, persons.Select(p => p.Age).ToArray()); }
public void InsertingValuesinTableAreSortedAutomatically() { var x = new Variable<int>("x"); var y = new Variable<int>("y"); y.DefaultValue = -99; var f = new Function { Arguments = { x }, Components = { y } }; f[1] = 1; f[5] = 5; f[10] = 10; f[15] = 15; var tableView = new TableView(); var bindingList = new FunctionBindingList(f) { SynchronizeInvoke = tableView }; tableView.Data = bindingList; WindowsFormsTestHelper.ShowModal(tableView); }
public void ShowRowNumbers() { var person = new List<Person> {new Person {Age = 12, Name = "Aaltje"}, new Person {Age = 11, Name = "Berend"}}; for (var i = 0; i < 10; i++) { person.Add(new Person {Age = 11, Name = "Berend"}); } var tableView = new TableView { Data = person, ShowRowNumbers = true }; WindowsFormsTestHelper.ShowModal(tableView); }
public TableColumnButton(TableView t, TableButtonStyle style) { BackColor = style.BackColor; HoverColor = style.HoverColor; BorderColor = style.BorderColor; BorderHoverColor = style.BorderHoverColor; BorderSelectColor = style.BorderSelectColor; Padding = new Padding(8, 0, 8, 0); ResizeWidth = 8; Size = new Size(t.ColumnsDefaultWidth, 20); TextAlign = ContentAlignment.MiddleLeft; Owner.UpClick += Owner_UpClick; }
public void FilterTableOnSettingFilterText() { var person = new List<Person> {new Person {Age = 12, Name = "Aaltje"}, new Person {Age = 11, Name = "Berend"}}; var tableView = new TableView { Data = person }; //action! set a filter tableView.Columns[0].FilterString = "[Name] Like 'Jaap%'"; //no row should be visible Assert.AreEqual(0, tableView.RowCount); }
public TableColumnCollection(TableView table) { owner = table; }
public void IsSorted() { var person = new List<Person>(); var tableView = new TableView { Data = person }; //should be false first Assert.IsFalse(tableView.IsSorted); //action! set a sort tableView.Columns[0].SortOrder = SortOrder.Descending; Assert.IsTrue(tableView.IsSorted); }
public void CopyPasteEnumInBindingList() { var list = new BindingList<ClassWithEnum> { new ClassWithEnum{Type = FruitType.Banaan}, new ClassWithEnum{Type = FruitType.Peer} }; var tableView = new TableView { Data = list }; tableView.SetEnumComboboxEditor(typeof(FruitType),0); var tableViewCopyPasteController = new TableViewPasteController(tableView); //select 2nd row tableView.SelectCells(1,0,1,0); //paste twee bananen en een peer ;) tableViewCopyPasteController.PasteLines(new[]{"Banaan","Banaan","Peer" }); //we should have 3 bananas and a pear Assert.AreEqual("Banaan","Banaan","Banaan","Peer",list.Select(c=>c.Type).ToArray()); }
public void ShowTableViewWithListEnumType() { //demonstrates how easy it is to add custom editor to tableview for bindinglist<T> :) //In this case (BindingList<T> you don't need //a typeconverter or comboboxhelper :) var tableView = new TableView(); var list = new BindingList<ClassWithEnum> { new ClassWithEnum { Type = FruitType.Appel } }; tableView.Data = list; var comboBox = new RepositoryItemImageComboBox(); comboBox.Items.AddEnum(typeof(FruitType)); tableView.SetColumnEditor(comboBox, 0); WindowsFormsTestHelper.ShowModal(tableView); }
public void PasteIntoGridBoundToDataTable() { var tableWithTwoStrings = new DataTable(); tableWithTwoStrings.Columns.Add("A", typeof(string)); tableWithTwoStrings.Columns.Add("B", typeof(string)); tableWithTwoStrings.Rows.Add("a", "b"); var tableView = new TableView { Data = tableWithTwoStrings }; Clipboard.SetText(string.Format("{0}\t{1}" + Environment.NewLine + "{0}\t{1}", "oe", "oe1")); tableView.PasteClipboardContents(); //WindowsFormsTestHelper.ShowModal(tableView); //should overwrite existing row and add another one Assert.AreEqual(2, tableWithTwoStrings.Rows.Count); Assert.AreEqual("oe", tableWithTwoStrings.Rows[0][0]); Assert.AreEqual("oe1", tableWithTwoStrings.Rows[0][1]); Assert.AreEqual("oe", tableWithTwoStrings.Rows[1][0]); Assert.AreEqual("oe1", tableWithTwoStrings.Rows[1][1]); }
public void ShowTableViewWithDatatableEnumType() { //demonstrates how hard it is to add custom editor to tableview for datatable //In this case you need //a typeconverter and comboboxhelper :( //TODO: look into the differences and abstract away from it var dataTable = new DataTable(); dataTable.Columns.Add("Code", typeof(string)); dataTable.Columns.Add("SomeEnum", typeof(FruitType)); for (int i = 0; i < 10; i++) { dataTable.Rows.Add(new object[] { String.Format("Item{0:000}", i), FruitType.Appel }); } dataTable.AcceptChanges(); var tableView = new TableView {Data = dataTable}; var comboBox = new RepositoryItemImageComboBox(); XtraGridComboBoxHelper.Populate(comboBox, typeof(FruitType)); tableView.SetColumnEditor(comboBox, 1); WindowsFormsTestHelper.ShowModal(tableView); }
public void PasteIntoARowSelection() { var tableWithTwoStrings = new DataTable(); tableWithTwoStrings.Columns.Add("A", typeof(string)); tableWithTwoStrings.Columns.Add("B", typeof(string)); tableWithTwoStrings.Rows.Add("a", "b"); var tableView = new TableView { Data = tableWithTwoStrings }; var tableViewCopyPasteController = new TableViewPasteController(tableView); //select top row tableView.SelectCells(0, 0, 0, 1); //paste some non sense. tableViewCopyPasteController.PasteLines(new[] { "c" }); //first line should now be [c c] Assert.AreEqual("c", tableWithTwoStrings.Rows[0][0]); Assert.AreEqual("c", tableWithTwoStrings.Rows[0][1]); }
public void DeleteSelectionRemovesValueIfCellWasSelect() { var persons = new List<Person> {new Person {Name = "Aaltje",Age = 12 }, new Person {Name = "Berend",Age = 11 }}; var tableView = new TableView { Data = persons }; //select the twelve tableView.SelectCells(0, 1, 0, 1); //action! delete the row tableView.DeleteCurrentSelection(); //assert we 'deleted' the age Assert.AreEqual(0,persons[0].Age); }
public void PasteFillsSelection() { var list = new BindingList<Person>() { new Person {Name = "jan", Age = 25}, new Person {Name = "fon", Age = 33}, new Person {Name = "peer", Age = 25}, new Person {Name = "fo", Age = 33} }; var tableView = new TableView {Data = list}; //select all cells in first column tableView.SelectCells(0, 0, 3, 0); //hook up a copy paste controller var tableViewCopyPasteController = new TableViewPasteController(tableView); //this should set the first column to kees,anton,kees,anton tableViewCopyPasteController.PasteLines(new[] {"kees", "anton"}); //asert the names are now like this Assert.AreEqual(new[] {"kees", "anton", "kees", "anton"}, list.Select(p => p.Name).ToArray()); }
public void DeleteSelectionRemovesRowIfAllCellsInARowAreSelected() { var persons = new List<Person> {new Person {Name = "Aaltje",Age = 12}, new Person {Name = "Berend",Age = 11 }}; var tableView = new TableView { Data = persons }; //select the top row tableView.SelectCells(0, 0, 0, 1); //action! delete the row tableView.DeleteCurrentSelection(); //assert we only have berend now Assert.AreEqual(new[] { "Berend" }, persons.Select(p => p.Name).ToArray()); }