/// <summary>Handle double clicks on cells</summary> private void CellDoubleClick(object sender, DataGridViewCellEventArgs e) { var grid = (DataGridView)sender; if (e.RowIndex < 0 || e.RowIndex >= Pattern.Subs.Count) { return; } if (e.ColumnIndex < 0 || e.ColumnIndex >= grid.ColumnCount) { return; } var cap = m_caps[e.RowIndex]; ITransformSubstitution sub = Pattern.Subs.TryGetValue(cap.Key, out sub) ? sub : null; switch (grid.Columns[e.ColumnIndex].Name) { default: return; case ColumnNames.Tag: if (sub != null) { m_edit_replace.SelectedText = "{" + cap.Key + "}"; } break; } }
/// <summary>Handle cell values changed</summary> private void CellValuePushed(object sender, DataGridViewCellValueEventArgs e) { var grid = (DataGridView)sender; if (e.RowIndex < 0 || e.RowIndex >= m_caps.Count) { return; } var col = grid.Columns[e.ColumnIndex]; var cap = m_caps[e.RowIndex]; ITransformSubstitution sub_cur = Pattern.Subs.TryGetValue(cap.Key, out sub_cur) ? sub_cur : null; switch (col.Name) { case ColumnNames.Type: { var cur = (TransSubWrapper)((BindingSource)((DataGridViewComboBoxColumn)col).DataSource).Current; var sub_new = cur != null ? cur.Sub : null; if (sub_new != null && (sub_cur == null || !sub_new.Guid.Equals(sub_cur.Guid))) { Pattern.Subs[cap.Key] = (ITransformSubstitution)Activator.CreateInstance(sub_new.GetType()); grid.Invalidate(); } } break; } UpdateUI(); }
/// <summary>Handle clicks on cells</summary> private void CellClick(object sender, DataGridViewCellEventArgs e) { var grid = (DataGridView)sender; if (e.RowIndex < 0 || e.RowIndex >= Pattern.Subs.Count) { return; } if (e.ColumnIndex < 0 || e.ColumnIndex >= grid.ColumnCount) { return; } var cap = m_caps[e.RowIndex]; ITransformSubstitution sub = Pattern.Subs.TryGetValue(cap.Key, out sub) ? sub : null; switch (grid.Columns[e.ColumnIndex].Name) { default: return; case ColumnNames.Cfg: if (sub != null) { sub.ShowConfigUI(ParentForm); } UpdateUI(); break; } }
/// <summary>Get the cell value from the transform</summary> private void CellValueNeeded(object sender, DataGridViewCellValueEventArgs e) { e.Value = string.Empty; var grid = (DataGridView)sender; if (e.RowIndex < 0 || e.RowIndex >= m_caps.Count) { return; } var col = grid.Columns[e.ColumnIndex]; var cap = m_caps[e.RowIndex]; ITransformSubstitution sub = Pattern.Subs.TryGetValue(cap.Key, out sub) ? sub : null; switch (col.Name) { default: Debug.Assert(false, "Unknown column name"); break; case ColumnNames.Tag: e.Value = cap.Key; break; case ColumnNames.Value: e.Value = cap.Value; break; case ColumnNames.Type: if (sub != null) { var subs = ((BindingSource)((DataGridViewComboBoxColumn)col).DataSource).List.Cast <TransSubWrapper>(); e.Value = subs.FirstOrDefault(x => x.Sub.Guid == sub.Guid); grid[e.ColumnIndex, e.RowIndex].ToolTipText = sub.ConfigSummary; } else { e.Value = null; grid[e.ColumnIndex, e.RowIndex].ToolTipText = null; } break; case ColumnNames.Cfg: e.Value = sub != null && sub.Configurable ? Resources.pencil : NullImage; break; } }
public TransSubWrapper(ITransformSubstitution sub) { Sub = sub; }