public void addChildRow(VirtualGridRow row) { if (!ChildRows.Contains(row)) { ChildRows.Add(row); row.ParentRow = this; } }
public VirtualGridCell(VirtualTreeList grid, VirtualGridRow row, VirtualGridHeaderColumn headercolumn, object data) { HeaderColumn = headercolumn; Row = row; Grid = grid; Data = data; Changed = false; CustomOption = String.Empty; }
/// <summary> /// load data from inputdocumet /// </summary> /// <param name="inputdocument"></param> public virtual void loadData(XmlDocument inputdocument) { XmlNodeList rows = inputdocument.SelectNodes("//row"); foreach (XmlNode nd in rows) { VirtualGridRow row = this.newRow(); //TODO rename to NewRow ? if ((nd.Attributes["customoption"] != null) && (!String.IsNullOrEmpty(nd.Attributes["customoption"].Value))) { row.CustomOption = nd.Attributes["customoption"].Value; } XmlNodeList columns = nd.SelectNodes(".//column"); foreach (XmlNode nd2 in columns) { object data = null; String columnname = nd2.SelectSingleNode("name").InnerText; String columndata = nd2.SelectSingleNode("data").InnerText; if (columnname == null) { throw new Exception("columnname is null"); } //Console.WriteLine("col" + columnname); VirtualGridHeaderColumn header = getHeaderByName(columnname); if ((OnGetData == null) && (header != null) && (!String.IsNullOrEmpty(header.ColumnType))) { Type tp = Type.GetType(header.ColumnType); data = Convert.ChangeType(columndata, tp); } else { if (OnGetData != null) { OnGetData(columnname, columndata, out data); } else { data = columndata; } } if (data == null) //TODO correct ?? { throw new Exception("data is null"); } VirtualGridCell cell = row.addGridColumn(columnname, data); if (cell != null) { cell.CustomOption = XmlHelper.getAttributeValue(nd2, "customoption"); } } } }
/// <summary> /// creates a new row and add's it to the grid /// </summary> /// <returns> /// The row. /// </returns> public virtual VirtualGridRow newRow() { if (Rows == null) { Rows = new List <VirtualGridRow>(1000); } VirtualGridRow row = new VirtualGridRow(this); addRow(row); return(row); }
/// <summary> /// Adds a row to the grid /// </summary> /// <param name='row'> /// Row. /// </param> protected virtual void addRow(VirtualGridRow row) { Rows.Add(row); }
private int getColumnIndex(VirtualGridRow row, string columnName) { int i = 0; foreach (VirtualGridHeaderColumn hc in row.Grid.HeaderColumns) { if (hc.ColumnName.Equals(columnName,StringComparison.OrdinalIgnoreCase)) { return i; } i++; } // foreach (VirtualGridCell c in row.Cells) // { // if (c.HeaderColumn.ColumnName.Equals(columnName,StringComparison.OrdinalIgnoreCase)) // { // return i; // } // i++; // } return -1; }
protected override void addRow(Sharpend.Utils.VirtualGridRow row) { base.addRow(row); }
/* public void addChild(VirtualTreeRow row) { Children.Add(row); row.Parent = this; } */ /* private bool containsItem(String nodevalue) { foreach(VirtualTreeRow row in Children) { if (row.NodeValue == nodevalue) { return true; } } return false; } */ private void addData(String nodename, String nodevalue, VirtualGridHeaderColumn headercolumn,VirtualGridRow baserow) { if ((!String.IsNullOrEmpty(nodevalue)) && (!children.ContainsKey(nodevalue))) { VirtualTreeRow tr = new VirtualTreeRow(Grid, headercolumn.ColumnName, nodevalue); tr.HeaderColumn = headercolumn; //TODO in constructor tr.Parent = this; tr.BaseRow = baserow; Children.Add(nodevalue,tr); } }
/// <summary> /// called after row.setData to inform a derived grid about changes /// </summary> /// <param name='row'> /// Row. /// </param> /// <param name='columnName'> /// Column name. /// </param> /// <param name='data'> /// Data. /// </param> public virtual void afterSetData(VirtualGridRow row, String columnName, object data) { }
/// <summary> /// only used to override it in a derived class /// </summary> /// <param name="row"></param> /// <param name="columnName"></param> /// <param name="data"></param> public virtual void setData(VirtualGridRow row, String columnName, String data) { row.setData(columnName, data); }
public virtual void selectRow(VirtualGridRow row) { }
public virtual bool removeRow(VirtualGridRow row) { return Rows.Remove(row); }
/// <summary> /// creates a new row and add's it to the grid /// </summary> /// <returns> /// The row. /// </returns> public virtual VirtualGridRow newRow() { if (Rows == null) { Rows = new List<VirtualGridRow>(1000); } VirtualGridRow row = new VirtualGridRow(this); addRow(row); return row; }
public override void setData(Sharpend.Utils.VirtualGridRow row, string columnName, string data) { base.setData(row, columnName, data); }
public virtual bool removeRow(VirtualGridRow row) { return(Rows.Remove(row)); }
// public override void setData(VirtualGridRow row, string columnName, string data) // { // base.setData(row, columnName, data); // //// Gtk.TreeIter iter; //// if (getIter(row, out iter)) //// { //// int cnt = getColumnIndex(row, columnName); //// if (cnt > -1) //// { //// Tree.Model.SetValue(iter, cnt, data); //// } //// } else //// { //// //ts.AppendValues(row.Datas); //// (Tree.Model as Gtk.TreeStore).AppendValues(row.Datas); //// } // } /// <summary> /// called after row.setData to inform a derived grid about changes /// </summary> /// <param name='row'> /// Row. /// </param> /// <param name='columnName'> /// Column name. /// </param> /// <param name='data'> /// Data. /// </param> public override void afterSetData(VirtualGridRow row, string columnName, object data) { base.afterSetData (row, columnName, data); if (data == null) { throw new Exception("data is null"); } Gtk.TreeIter iter; if (getIter(row, out iter)) { int cnt = getColumnIndex(row, columnName); if (cnt > -1) { Tree.Model.SetValue(iter, cnt, data); } } else { //ts.AppendValues(row.Datas); if (Tree.Model == null) { Tree.Model = getTreeStore(); } (Tree.Model as Gtk.TreeStore).AppendValues(row.Datas); } }
/// <summary> /// removes the row from the grid and the treemodel /// </summary> /// <param name="row"></param> /// <returns></returns> public override bool removeRow(VirtualGridRow row) { Gtk.TreeStore ts = Tree.Model as Gtk.TreeStore; if (ts != null) { Gtk.TreeIter iter; if (getIter(row, out iter)) { ts.Remove(ref iter); return base.removeRow(row); } } return false; }
/* * public void addChild(VirtualTreeRow row) * { * Children.Add(row); * row.Parent = this; * } */ /* * private bool containsItem(String nodevalue) * { * foreach(VirtualTreeRow row in Children) * { * if (row.NodeValue == nodevalue) * { * return true; * } * } * return false; * } */ private void addData(String nodename, String nodevalue, VirtualGridHeaderColumn headercolumn, VirtualGridRow baserow) { if ((!String.IsNullOrEmpty(nodevalue)) && (!children.ContainsKey(nodevalue))) { VirtualTreeRow tr = new VirtualTreeRow(Grid, headercolumn.ColumnName, nodevalue); tr.HeaderColumn = headercolumn; //TODO in constructor tr.Parent = this; tr.BaseRow = baserow; Children.Add(nodevalue, tr); } }
public bool getIter(VirtualGridRow row, out Gtk.TreeIter iter) { if (TreeIterators != null) { if (TreeIterators.ContainsKey(row)) { iter = TreeIterators[row]; return true; } } TreeIterators = new Dictionary<VirtualGridRow, Gtk.TreeIter>(1000); if (Tree.Model == null) { return false; } Tree.Model.Foreach(new Gtk.TreeModelForeachFunc(foreachItem)); if (TreeIterators != null) { if (TreeIterators.ContainsKey(row)) { iter = TreeIterators[row]; return true; } } iter = Gtk.TreeIter.Zero; return false; }
// void HandleButtonPressed (object sender, ButtonEventArgs e) // { // if (e.MultiplePress == 2) // { // TreeView tv = sender as TreeView; // // TreePosition tp = tv.SelectedRow; // TreeNavigator tn = DataStore.GetNavigatorAt (tp); // //SetValue(tn,new object[] { true },"System.Boolean"); // // //SetValue(tn, // // SetValue(tn,new object[] {Fields[2].Field,true},"System.Boolean"); // // // //Tree.Columns[0].Views[0] // } // // } public override void afterSetData(VirtualGridRow row, string columnName, object data) { base.afterSetData (row, columnName, data); if (data == null) { throw new Exception("data is null"); } TreeNavigator tn = GetNavigator(row); if (tn != null) { SetValue(tn,columnName,data); } }
public override void selectRow(VirtualGridRow row) { Tree.Selection.Mode = Gtk.SelectionMode.Single; Tree.Selection.UnselectAll(); Gtk.TreeIter iter; if (getIter(row,out iter)) { Tree.Selection.SelectIter(iter); Gtk.TreePath[] sel = Tree.Selection.GetSelectedRows(); if (sel.Length > 0) { Gdk.Rectangle rect = Tree.GetCellArea(sel[0], Tree.Columns[0]); Tree.ScrollToPoint(rect.X, rect.Y); } } }
private TreeNavigator GetNavigator(VirtualGridRow row,TreeNavigator parent=null) { TreeNavigator first = null; if (parent != null) { first = parent; } else { first = DataStore.GetFirstNode(); } if (first.CurrentPosition != null) { do { VirtualGridRow o = (VirtualGridRow)GetValue(first,"row"); if (o == row) { return first; } if (first.MoveToChild()) { TreeNavigator tn = GetNavigator(row,first); if (tn != null) { return tn; } first.MoveToParent(); } } while(first.MoveNext()); } return null; }
/// <summary> /// /// </summary> /// <param name="row"></param> public RowChangedEventArgs(VirtualGridRow row, String columnName) : base() { ChangedRow = row; ColumnName = columnName; }