예제 #1
0
        //public IEasyGridCell getVariousCell(EasyGridVariousTypeCellInfo info, String tooltip = null)
        public IEasyGridCell SetVariousCell(EasyGridCellInfo info, String tooltip = null)
        {
            IEasyGridCell cell;
            ItemTypes     itemType = info.ItemType;

            #region TextBox
            if (itemType == ItemTypes.TextBox)
            {
                cell = new EasyGridTextBoxCell(_view.ListView as EasyGridViewParent);
                (cell as EasyGridTextBoxCell).SetValue(info);//.Value = info;//.Text;
            }
            #endregion
            #region FileOpenBox
            else if (itemType == ItemTypes.FileOpenBox)
            {
                cell = new EasyGridFileOpenBoxCell(_view.ListView as EasyGridViewParent);
                (cell as EasyGridFileOpenBoxCell).SetValue(info);//.Value = info;//.Text;
            }
            #endregion
            #region KeyValue
            else if (itemType == ItemTypes.KeyValue)
            {
                cell = new EasyGridKeyValueCell(_view.ListView);

                cell.SetValue(info);
            }
            #endregion
            #region CheckBox
            else if (itemType == ItemTypes.CheckBox)
            {
                cell = new EasyGridCheckBoxCell(_view.ListView);
                cell.SetValue(info);
            }
            #endregion
            #region ImageCheckBox
            else if (itemType == ItemTypes.ImageCheckBox)
            {
                cell = new EasyGridImageCheckBoxCell();
                cell.SetValue(info);
            }
            #endregion
            #region ComboBox
            else if (itemType == ItemTypes.ComboBox)
            {
                cell = new EasyGridComboBoxCell(_view.ListView);
                cell.SetValue(info);
            }
            #endregion
            #region RadioButton
            else if (itemType == ItemTypes.RadioButton)
            {
                cell = new EasyGridRadioButtonCell(_view.ListView);
                cell.SetValue(info);
            }
            #endregion
            #region CheckBoxGroup
            else if (itemType == ItemTypes.CheckBoxGroup)
            {
                cell = new EasyGridCheckBoxGroupCell(_view.ListView);
                cell.SetValue(info);
            }
            #endregion
            #region Button
            else if (itemType == ItemTypes.Button)
            {
                cell = new EasyGridButtonCell(_view.ListView);
                cell.SetValue(info);
            }
            #endregion
            #region CloseButton
            else if (itemType == ItemTypes.CloseButton)
            {
                cell = new EasyGridCloseButtonCell(_view.ListView);
                cell.SetValue(info);
            }
            #endregion
            #region Image
            else if (itemType == ItemTypes.Image)
            {
                cell = new EasyGridImageCell(_view.ListView);
                cell.SetValue(info);
            }
            #endregion
            #region ImageButton
            else if (itemType == ItemTypes.ImageButton)
            {
                cell = new EasyGridImageButtonCell(_view.ListView);
                if (info.Images == null)
                {
                    IEasyGridColumn col = _view.Column(this.Cells.Count);
                    if (col is EasyGridImageButtonColumn)
                    {
                        info.Images = (col as EasyGridImageButtonColumn).Images;
                    }
                    else if (col is EasyGridImageColumn)
                    {
                        info.Images = (col as EasyGridImageColumn).Images;
                    }

                    cell.SetValue(info);
                }
                else
                {
                    cell.SetValue(info);
                }
            }
            #endregion
            else//default
            {
                cell = new EasyGridTextBoxCell(_view.ListView as EasyGridViewParent);
                cell.SetValue(info);
            }

            return(cell);
        }
예제 #2
0
        /// <summary>
        /// 대상 row에 cell을 추가합니다. 주로 새로이 row를 만들어 추가할 때 사용됩니다.
        /// </summary>
        /// <param name="row">대상이 되는 DataGridViewRow</param>
        /// <param name="value">넣어 줄 값</param>
        public void AddItemInRow(DataGridViewRow row, object value, String tooltip = null)
        {
            int           colIndex = row.Cells.Count;
            ItemTypes     itemType = (_view.ListView.Columns[colIndex] as IEasyGridColumn).ItemType;// _itemTypes[colIndex];
            IEasyGridCell cell;

            #region TextBox
            if (itemType == ItemTypes.TextBox)
            {
                cell = new EasyGridTextBoxCell(_view.ListView as EasyGridViewParent);
                EasyGridTextBoxCell   myCell = cell as EasyGridTextBoxCell;
                EasyGridTextBoxColumn col    = _view.ListView.Columns[colIndex] as EasyGridTextBoxColumn;
                if (value == null)
                {
                    myCell.Value = "";
                }
                else
                {
                    if ((value is EasyGridCellInfo) == false)
                    {
                        myCell.IsEditable = col.IsEditable;
                        if (col.CellTextAlignMode == TextAlignModes.None)
                        {
                            myCell.TextAlignMode = _view.TextAlignMode;
                        }
                        else
                        {
                            myCell.TextAlignMode = col.CellTextAlignMode;
                        }

                        if (col.TextViewMode == TextViewModes.Default)
                        {
                            myCell.TextViewMode = _view.TextViewMode;
                        }
                        else
                        {
                            myCell.TextViewMode = col.TextViewMode;
                        }
                    }

                    (cell as EasyGridTextBoxCell).Value = value.ToString();
                }
            }
            #endregion
            #region FileOPen
            else if (itemType == ItemTypes.FileOpenBox)
            {
                cell = new EasyGridFileOpenBoxCell(_view.ListView as EasyGridViewParent);
                EasyGridFileOpenBoxCell   myCell = cell as EasyGridFileOpenBoxCell;
                EasyGridFileOpenBoxColumn col    = _view.ListView.Columns[colIndex] as EasyGridFileOpenBoxColumn;
                if (value == null)
                {
                    myCell.Value = "";
                }
                else
                {
                    if ((value is EasyGridCellInfo) == false)
                    {
                        myCell.IsEditable    = col.IsEditable;
                        myCell.TextAlignMode = col.CellTextAlignMode;
                    }
                    (cell as EasyGridFileOpenBoxCell).Value = value.ToString();
                }
            }
            #endregion
            #region KeyValue
            else if (itemType == ItemTypes.KeyValue)
            {
                cell = new EasyGridKeyValueCell(_view.ListView);
                EasyGridKeyValueCell myCell = cell as EasyGridKeyValueCell;
                if (value == null)
                {
                    myCell.Value = "";
                }
                else
                {
                    myCell.Value = value;
                }
            }
            #endregion
            #region CheckBox
            else if (itemType == ItemTypes.CheckBox)
            {
                cell = new EasyGridCheckBoxCell(_view.ListView);
                EasyGridCheckBoxCell myCell = cell as EasyGridCheckBoxCell;
                if (value == null)
                {
                    myCell.Value = false;
                }
                else
                {
                    myCell.Value = value;
                }
            }
            #endregion
            #region ImageCheckBox
            else if (itemType == ItemTypes.ImageCheckBox)
            {
                cell = new EasyGridImageCheckBoxCell();
                EasyGridImageCheckBoxCell myCell = cell as EasyGridImageCheckBoxCell;

                EasyGridImageColumn col = _view.ListView.Columns[colIndex] as EasyGridImageColumn;
                if (col != null && col.Images != null && col.Images.Count > 0)
                {
                    ICollection <Image> imageList = col.Images;// _titleInitData[colIndex] as ICollection<Image>;
                    if (imageList.Count != 0)
                    {
                        myCell.Images = imageList;
                    }
                }
                if (value == null)
                {
                    myCell.Value = 0;
                }
                else if (value is string)
                {
                    int intval;
                    if (int.TryParse(value as String, out intval))
                    {
                        myCell.Value = intval;
                    }
                    else
                    {
                        myCell.Value = 0;
                    }
                }
                else
                {
                    myCell.Value = value;
                }
            }
            #endregion
            #region ComboBox
            else if (itemType == ItemTypes.ComboBox)
            {
                cell = new EasyGridComboBoxCell(_view.ListView);
                //ContextMenuStrip menu = cell.ContextMenuStrip;
                EasyGridComboBoxCell   myCell = cell as EasyGridComboBoxCell;
                EasyGridComboBoxColumn col    = _view.ListView.Columns[colIndex] as EasyGridComboBoxColumn;

                if (myCell.Items == null || myCell.Items.Count == 0)
                {
                    if (col.Items != null && col.Items.Count > 0)
                    {
                        myCell.Items         = col.Items;
                        myCell.SelectedIndex = col.SelectedIndex;
                    }
                }

                /*
                 * if (_titleInitData[colIndex] != null && _titleInitData[colIndex] is ICollection<String>)
                 * {
                 * if (myCell.Items.Count == 0) myCell.Items = _titleInitData[colIndex] as ICollection<String>;
                 * }
                 * EasyGridComboBoxColumn col = _view.ListView.Columns[colIndex] as EasyGridComboBoxColumn;
                 */
                if (value == null)
                {
                    myCell.Value = -1;
                }
                else if (value is string)
                {
                    int intval;
                    if (int.TryParse(value as String, out intval))
                    {
                        myCell.Value = intval;
                    }
                    else if (col.Items != null && col.Items.Count > 0 && col.Items.Contains(value as string))
                    {
                        myCell.Value = col.Items.ToList().IndexOf(value as string);
                    }
                    else
                    {
                        myCell.Value = -1;
                    }
                }
                else
                {
                    myCell.Value = value;
                }
            }
            #endregion
            #region RadioButton
            else if (itemType == ItemTypes.RadioButton)
            {
                cell = new EasyGridRadioButtonCell(_view.ListView);

                //ContextMenuStrip menu = cell.ContextMenuStrip;
                EasyGridRadioButtonCell   myCell = cell as EasyGridRadioButtonCell;
                EasyGridRadioButtonColumn col    = _view.ListView.Columns[colIndex] as EasyGridRadioButtonColumn;

                if (myCell.Items == null || myCell.Items.Count == 0)
                {
                    if (col.Items != null && col.Items.Count > 0)
                    {
                        myCell.Items.Add(col.Items);
                        myCell.SelectedIndex = col.SelectedIndex;
                    }
                }

                /*
                 * if (_titleInitData[colIndex] != null && _titleInitData[colIndex] is ICollection<String>)
                 * {
                 *  if (cCell.Items.Count == 0) cCell.Items.Add(_titleInitData[colIndex] as ICollection<String>);
                 * }
                 * int refCount = cCell.Items.RefCount;
                 */
                if (value == null)
                {
                    myCell.Value = myCell.StartIndex;
                }
                else if (value is string)
                {
                    int intval;
                    if (int.TryParse(value as String, out intval))
                    {
                        myCell.Value = intval;
                    }
                    else
                    {
                        myCell.Value = myCell.StartIndex;
                    }
                }
                else
                {
                    myCell.Value = value;
                }
            }
            #endregion
            #region CheckBoxGroup
            else if (itemType == ItemTypes.CheckBoxGroup)
            {
                cell = new EasyGridCheckBoxGroupCell(_view.ListView);

                //ContextMenuStrip menu = cell.ContextMenuStrip;
                EasyGridCheckBoxGroupCell   myCell = cell as EasyGridCheckBoxGroupCell;
                EasyGridCheckBoxGroupColumn col    = _view.ListView.Columns[colIndex] as EasyGridCheckBoxGroupColumn;

                if (myCell.Items == null || myCell.Items.Count == 0)
                {
                    if (col.Items != null && col.Items.Count > 0)
                    {
                        myCell.Items.Add(col.Items);
                        if (col.Items.Count > 0)
                        {
                            myCell.SetValue(col.Items.GetValue());
                        }
                    }
                }

                /*
                 * if (_titleInitData[colIndex] != null && _titleInitData[colIndex] is ICollection<String>)
                 * {
                 *  if(cCell.Items.Count == 0) cCell.Items.Add(_titleInitData[colIndex] as ICollection<String>);
                 * }
                 */
                if (value == null)
                {
                    //myCell.Value = "";
                }
                else if (value is string)
                {
                    int intval;
                    if (int.TryParse(value as String, out intval))
                    {
                        myCell.Value = intval;
                    }
                    else
                    {
                        myCell.Value = value;
                    }
                }
                else
                {
                    myCell.Value = value;
                }
            }
            #endregion
            #region Button
            else if (itemType == ItemTypes.Button)
            {
                cell = new EasyGridButtonCell(_view.ListView);
                EasyGridButtonCell   myCell = cell as EasyGridButtonCell;
                EasyGridButtonColumn col    = _view.ListView.Columns[colIndex] as EasyGridButtonColumn;

                myCell.BaseText = col.Text;
                if (value == null)
                {
                    myCell.Value = col.Text;
                }
                else
                {
                    myCell.Value = value;
                }
            }
            #endregion
            #region CloseButton
            else if (itemType == ItemTypes.CloseButton)
            {
                cell = new EasyGridCloseButtonCell(_view.ListView);
                EasyGridCloseButtonCell   myCell = cell as EasyGridCloseButtonCell;
                EasyGridCloseButtonColumn col    = _view.ListView.Columns[colIndex] as EasyGridCloseButtonColumn;

                myCell.BaseText = (col.Text == null)? "X" : col.Text;
                myCell.Value    = value;

                /*
                 * myCell.BaseText = _titleInitData[colIndex] as String;
                 * myCell.Value = value;
                 */
            }
            #endregion
            #region Image
            else if (itemType == ItemTypes.Image)
            {
                cell = new EasyGridImageCell(_view.ListView);
                EasyGridImageColumn col    = _view.ListView.Columns[colIndex] as EasyGridImageColumn;
                EasyGridImageCell   myCell = cell as EasyGridImageCell;
                if (myCell.Images == null || myCell.Images.Count == 0)
                {
                    if (col.Images != null && col.Images.Count > 0)
                    {
                        myCell.Images = col.Images;
                    }
                }
                //if (_titleInitData[colIndex] != null && _titleInitData[colIndex] is ICollection<Image>) myCell.Images = (_titleInitData as ICollection<Image>);

                if (value == null)
                {
                    if (myCell.Images != null && myCell.Images.Count > 0)
                    {
                        myCell.Value = 0;
                    }
                    //myCell.Value = "";
                }
                else if (value is string)
                {
                    int intval;
                    if (int.TryParse(value as String, out intval))
                    {
                        myCell.Value = intval;
                    }

                    else
                    {
                        if (myCell.Images != null && myCell.Images.Count > 0)
                        {
                            myCell.Value = 0;
                        }
                    }
                }
                else
                {
                    myCell.Value = value;
                }
            }
            #endregion
            #region ImageButton
            else if (itemType == ItemTypes.ImageButton)
            {
                cell = new EasyGridImageButtonCell(_view.ListView);
                EasyGridImageButtonColumn col    = _view.ListView.Columns[colIndex] as EasyGridImageButtonColumn;
                EasyGridImageButtonCell   myCell = cell as EasyGridImageButtonCell;
                if (myCell.Images == null || myCell.Images.Count == 0)
                {
                    if (col.Images != null && col.Images.Count > 0)
                    {
                        myCell.Images = col.Images;
                    }
                }
                //if (_titleInitData[colIndex] != null && _titleInitData[colIndex] is ICollection<Image>) myCell.Images = (_titleInitData as ICollection<Image>);
                if (value == null)
                {
                    //myCell.Value = "";
                    if (myCell.Images != null && myCell.Images.Count > 0)
                    {
                        myCell.Value = 0;
                    }
                }
                else if (value is string)
                {
                    int intval;
                    if (int.TryParse(value as String, out intval))
                    {
                        myCell.Value = intval;
                    }
                    else
                    {
                        myCell.Value = value;
                    }
                }
                else
                {
                    myCell.Value = value;
                }
            }
            #endregion
            else //Variables
            {
                /*
                 * if (value is EasyGridVariousTypeCellInfo)
                 * {
                 *  cell = getVariousCell(value as EasyGridVariousTypeCellInfo, tooltip);
                 * }
                 */
                if (value is EasyGridCellInfo)
                {
                    cell = SetVariousCell(value as EasyGridCellInfo, tooltip);
                }
                else
                {
                    EasyGridCellInfo info = new EasyGridCellInfo();
                    info.ItemType   = ItemTypes.TextBox;
                    info.Text       = (value != null)? value.ToString() : "";
                    info.IsEditable = true;
                    cell            = SetVariousCell(info, tooltip);
                    //throw new Exception("테이블 [" + _view.Name + "]의 입력 멤버타입이 틀립니다. row:" + row.Index + ", cell:" + colIndex + ", trying value:" + (value as String) + "/ 원래 타입:EasyGridVariousTypeCellInfo");
                }
            }
            if (tooltip != null && tooltip.Length > 0)
            {
                (cell as DataGridViewCell).ToolTipText = tooltip;
            }
            row.Cells.Add(cell as DataGridViewCell);
        }