123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222 |
- using System;
- using System.Collections.Generic;
- using System.Windows.Forms;
- using FastReport.Utils;
- using FastReport.Dialog;
- using FastReport.Data;
- namespace FastReport.Forms
- {
- internal partial class GridControlColumnsEditorForm : BaseDialogForm
- {
- private GridControl grid;
- private GridControl saveGrid;
- private Timer timer;
- public GridControl Grid
- {
- get { return grid; }
- set
- {
- grid = value;
- saveGrid = new GridControl();
- saveGrid.Assign(value);
- PopulateColumns();
- btnAddAll.Enabled = grid.DataSource != null;
- }
- }
- private GridControlColumnCollection Columns
- {
- get { return grid.Columns; }
- }
- private GridControlColumn CurrentColumn
- {
- get
- {
- if (lvColumns.SelectedItems.Count == 0)
- return null;
- return lvColumns.SelectedItems[0].Tag as GridControlColumn;
- }
- }
- private void PopulateColumns()
- {
- lvColumns.Items.Clear();
- foreach (GridControlColumn c in Columns)
- {
- ListViewItem li = lvColumns.Items.Add(c.HeaderText, 113);
- li.Tag = c;
- }
- if (lvColumns.Items.Count > 0)
- lvColumns.Items[0].Selected = true;
- UpdateControls();
- lvColumns.Focus();
- }
- private void UpdateControls()
- {
- bool enabled = CurrentColumn != null;
- btnRemove.Enabled = enabled;
- btnUp.Enabled = enabled;
- btnDown.Enabled = enabled;
- gbProperties.Enabled = enabled;
- List<object> selectedObjects = new List<object>();
- foreach (ListViewItem li in lvColumns.SelectedItems)
- {
- selectedObjects.Add(li.Tag);
- }
- frPropertyGrid1.SelectedObjects = selectedObjects.ToArray();
- }
- private void btnAdd_Click(object sender, EventArgs e)
- {
- GridControlColumn column = new GridControlColumn();
- column.HeaderText = "Column";
- Columns.Add(column);
- ListViewItem li = lvColumns.Items.Add(column.HeaderText, 113);
- li.Tag = column;
- li.BeginEdit();
- UpdateControls();
- }
- private void btnRemove_Click(object sender, EventArgs e)
- {
- while (lvColumns.SelectedItems.Count > 0)
- {
- GridControlColumn c = lvColumns.SelectedItems[0].Tag as GridControlColumn;
- Columns.Remove(c);
- lvColumns.Items.Remove(lvColumns.SelectedItems[0]);
- }
- }
- private void btnAddAll_Click(object sender, EventArgs e)
- {
- grid.Columns.Clear();
- foreach (Column column in grid.DataSource.Columns)
- {
- GridControlColumn gridColumn = new GridControlColumn();
- gridColumn.HeaderText = column.Alias;
- gridColumn.DataColumn = grid.DataSource.Alias + "." + column.Alias;
- grid.Columns.Add(gridColumn);
- }
- PopulateColumns();
- }
- private void btnUp_Click(object sender, EventArgs e)
- {
- if (lvColumns.SelectedItems.Count != 1)
- return;
- int index = lvColumns.SelectedIndices[0];
- if (index > 0)
- {
- ListViewItem li = lvColumns.SelectedItems[0];
- lvColumns.Items.Remove(li);
- lvColumns.Items.Insert(index - 1, li);
- GridControlColumn c = Columns[index];
- Columns.Remove(c);
- Columns.Insert(index - 1, c);
- grid.Assign(grid);
- }
- }
- private void btnDown_Click(object sender, EventArgs e)
- {
- if (lvColumns.SelectedItems.Count != 1)
- return;
- int index = lvColumns.SelectedIndices[0];
- if (index < lvColumns.Items.Count - 1)
- {
- ListViewItem li = lvColumns.SelectedItems[0];
- lvColumns.Items.Remove(li);
- lvColumns.Items.Insert(index + 1, li);
- GridControlColumn c = Columns[index];
- Columns.Remove(c);
- Columns.Insert(index + 1, c);
- grid.Assign(grid);
- }
- }
- private void lvColumns_SelectedIndexChanged(object sender, EventArgs e)
- {
- timer.Start();
- }
- private void FTimer_Tick(object sender, EventArgs e)
- {
- UpdateControls();
- timer.Stop();
- }
- private void lvColumns_AfterLabelEdit(object sender, LabelEditEventArgs e)
- {
- if (e.Label == null)
- return;
- if (e.Label == "")
- {
- e.CancelEdit = true;
- return;
- }
- GridControlColumn c = lvColumns.Items[e.Item].Tag as GridControlColumn;
- c.HeaderText = e.Label;
- UpdateControls();
- }
- private void frPropertyGrid1_PropertyValueChanged(object s, PropertyValueChangedEventArgs e)
- {
- List<object> selectedObjects = new List<object>();
- selectedObjects.AddRange(frPropertyGrid1.SelectedObjects);
- foreach (ListViewItem li in lvColumns.Items)
- {
- GridControlColumn column = li.Tag as GridControlColumn;
- if (selectedObjects.Contains(column))
- li.Text = column.HeaderText;
- }
- }
- private void GridControlColumnsEditorForm_FormClosed(object sender, FormClosedEventArgs e)
- {
- if (DialogResult != DialogResult.OK)
- {
- grid.Clear();
- grid.Assign(saveGrid);
- }
- timer.Dispose();
- }
- public override void Localize()
- {
- base.Localize();
- MyRes res = new MyRes("Forms,GridControlColumnsEditor");
- Text = res.Get("");
- gbColumns.Text = res.Get("Columns");
- gbProperties.Text = res.Get("Properties");
- btnAdd.Text = res.Get("Add");
- btnRemove.Text = res.Get("Remove");
- btnAddAll.Text = res.Get("AddAll");
- }
- public override void UpdateDpiDependencies()
- {
- base.UpdateDpiDependencies();
- btnUp.Image = GetImage(208);
- btnDown.Image = GetImage(209);
- lvColumns.SmallImageList = GetImages();
- }
- public GridControlColumnsEditorForm()
- {
- InitializeComponent();
- Localize();
- timer = new Timer();
- timer.Interval = 50;
- timer.Tick += new EventHandler(FTimer_Tick);
- UIUtils.CheckRTL(this);
- UpdateDpiDependencies();
- }
- }
- }
|