using System;
using System.Drawing;
using System.Collections;
using System.ComponentModel;
using System.Windows.Forms;
using Infragistics.Win.UltraWinGrid;
using System.Data;
using log4net;
namespace AyaNova
{
///
/// Summary description for UtilGridColumnSelector.
///
public class UtilGridColumnSelector : System.Windows.Forms.Form
{
// Create a logger for use in this class
//case 1039 private static readonly log4net.ILog log = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
///
/// Required designer variable.
///
private System.ComponentModel.Container components = null;
//attributes
private Infragistics.Win.UltraWinGrid.UltraGridBand mBand;
private Infragistics.Win.UltraWinGrid.UltraGrid gridColumns;
private System.Data.DataSet dsColumns;
public UtilGridColumnSelector()
{
//
// Required for Windows Form Designer support
//
InitializeComponent();
HideColumns.Add("REMOVE","REMOVE");
}
//columns that should not be even shown to be
//made visible
private Hashtable mHideColumns=new Hashtable();
public Hashtable HideColumns
{
get
{
return mHideColumns;
}
}
public Infragistics.Win.UltraWinGrid.UltraGridBand BandToEdit
{
set
{
mBand=value;
FillColumnList();
}
}
///
/// Clean up any resources being used.
///
protected override void Dispose( bool disposing )
{
if( disposing )
{
if(components != null)
{
components.Dispose();
}
}
base.Dispose( disposing );
}
#region Windows Form Designer generated code
///
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
///
private void InitializeComponent()
{
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(UtilGridColumnSelector));
this.gridColumns = new Infragistics.Win.UltraWinGrid.UltraGrid();
((System.ComponentModel.ISupportInitialize)(this.gridColumns)).BeginInit();
this.SuspendLayout();
//
// gridColumns
//
this.gridColumns.Cursor = System.Windows.Forms.Cursors.Default;
this.gridColumns.DisplayLayout.AutoFitStyle = Infragistics.Win.UltraWinGrid.AutoFitStyle.ResizeAllColumns;
this.gridColumns.DisplayLayout.Override.AllowAddNew = Infragistics.Win.UltraWinGrid.AllowAddNew.No;
this.gridColumns.DisplayLayout.Override.AllowColMoving = Infragistics.Win.UltraWinGrid.AllowColMoving.NotAllowed;
this.gridColumns.DisplayLayout.Override.AllowColSwapping = Infragistics.Win.UltraWinGrid.AllowColSwapping.NotAllowed;
this.gridColumns.DisplayLayout.Override.AllowDelete = Infragistics.Win.DefaultableBoolean.False;
this.gridColumns.DisplayLayout.Override.AllowRowFiltering = Infragistics.Win.DefaultableBoolean.False;
this.gridColumns.DisplayLayout.Override.AllowUpdate = Infragistics.Win.DefaultableBoolean.True;
this.gridColumns.DisplayLayout.Override.HeaderClickAction = Infragistics.Win.UltraWinGrid.HeaderClickAction.SortSingle;
this.gridColumns.DisplayLayout.Override.RowSelectors = Infragistics.Win.DefaultableBoolean.False;
this.gridColumns.DisplayLayout.Override.RowSizing = Infragistics.Win.UltraWinGrid.RowSizing.AutoFixed;
this.gridColumns.DisplayLayout.Override.SelectTypeCell = Infragistics.Win.UltraWinGrid.SelectType.None;
this.gridColumns.DisplayLayout.Override.SelectTypeCol = Infragistics.Win.UltraWinGrid.SelectType.None;
this.gridColumns.DisplayLayout.Override.SelectTypeRow = Infragistics.Win.UltraWinGrid.SelectType.None;
this.gridColumns.Dock = System.Windows.Forms.DockStyle.Fill;
this.gridColumns.Location = new System.Drawing.Point(0, 0);
this.gridColumns.Name = "gridColumns";
this.gridColumns.Size = new System.Drawing.Size(323, 699);
this.gridColumns.TabIndex = 0;
this.gridColumns.AfterCellUpdate += new Infragistics.Win.UltraWinGrid.CellEventHandler(this.gridColumns_AfterCellUpdate);
//
// UtilGridColumnSelector
//
this.AutoScaleBaseSize = new System.Drawing.Size(6, 15);
this.BackColor = System.Drawing.SystemColors.Window;
this.ClientSize = new System.Drawing.Size(323, 699);
this.Controls.Add(this.gridColumns);
this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
this.MaximizeBox = false;
this.MinimizeBox = false;
this.Name = "UtilGridColumnSelector";
this.ShowInTaskbar = false;
this.Closing += new System.ComponentModel.CancelEventHandler(this.UtilGridColumnSelector_Closing);
((System.ComponentModel.ISupportInitialize)(this.gridColumns)).EndInit();
this.ResumeLayout(false);
}
#endregion
private void FillColumnList()
{
//case 1039 //log.Debug("FillColumnList");
dsColumns=new DataSet();
dsColumns.Tables.Add();
dsColumns.Tables[0].Columns.Add("Column",typeof(string));
dsColumns.Tables[0].Columns.Add("Show",typeof(bool));
dsColumns.Tables[0].Columns.Add("Key",typeof(string));
DataRow dr;
foreach(UltraGridColumn c in mBand.Columns)
{
if(!Util.PrivateColumns.Contains(c.Key) &&
!mHideColumns.Contains(c.Key) &&
c.DataType.ToString()!="Infragistics.Win.UltraWinGrid.ChapteredColumnType")
{
dr=dsColumns.Tables[0].NewRow();
dr["Show"]=!c.Hidden;
dr["Column"]=c.Header.Caption;
dr["Key"]=c.Key;
dsColumns.Tables[0].Rows.Add(dr);
}
}
gridColumns.DataSource=dsColumns;
gridColumns.DisplayLayout.Bands[0].Columns["Key"].Hidden=true;
gridColumns.DisplayLayout.Bands[0].Columns["Column"].CellActivation=Activation.NoEdit;
}
///
/// Save changes back into grid
///
///
///
private void UtilGridColumnSelector_Closing(object sender, System.ComponentModel.CancelEventArgs e)
{
//case 1039 //log.Debug("UtilGridColumnSelector_Closing");
//Ensure all changes are committed in the grid
//required because clicking on close will not trigger the update since
//close X in corner of screen doesnt' take focus which means grid doesn't lose focus
//which means updates aren't committed
gridColumns.UpdateData();
DataRow dr;
//Case 197
bool bOneVisible = false;
foreach (DataRow r in dsColumns.Tables[0].Rows)
{
if ((bool)r["Show"] == true)
{
bOneVisible = true;
break;
}
}
if (!bOneVisible)
{
e.Cancel = true;
return;
}
for(int x=0;x