Example #1
0
 /// <summary>
 /// Обработчик события - изменение состояния элемента 'CheckedListBox'
 /// </summary>
 /// <param name="obj">Объект, инициировавший событие</param>
 /// <param name="ev">Аргумент события, описывающий состояние элемента</param>
 protected override void panelManagement_onItemCheck(PanelManagementTaskTepValues.ItemCheckedParametersEventArgs ev)
 {
     //??? где сохраняются изменения. только на элементе управления?
     ;
     //??? Отправить сообщение главной форме об изменении/сохранении индивидуальных настроек
     // или в этом же плюгИне измененить/сохраннить индивидуальные настройки
     ;
     //Изменить структуру 'DataGridView'
     //m_dgvValues.UpdateStructure ();
     (m_dgvValues as DataGridViewTaskTepValues).UpdateStructure(ev);
 }
Example #2
0
            /// <summary>
            /// Обновить структуру таблицы (доступность(цвет)/видимость столбцов/строк)
            /// </summary>
            /// <param name="item">Аргумент события для обновления структуры представления</param>
            public /*override*/ void UpdateStructure(PanelManagementTaskTepValues.ItemCheckedParametersEventArgs item)
            {
                Color clrCell      = Color.Empty; //Цвет фона для ячеек, не участвующих в расчете
                int   indx         = -1;
                bool  bItemChecked = item.NewCheckState == CheckState.Checked ? true :
                                     item.NewCheckState == CheckState.Unchecked ? false :
                                     false;

                //Поиск индекса элемента отображения
                if (item.IsComponent == true)
                {
                    // найти индекс столбца (компонента) - по идентификатору
                    foreach (DataGridViewColumn c in Columns)
                    {
                        if (((TepCommon.HandlerDbTaskCalculate.TECComponent)c.Tag).m_Id == item.m_idComp)
                        {
                            indx = Columns.IndexOf(c);
                            break;
                        }
                        else
                        {
                            ;
                        }
                    }
                }
                else if (item.IsNAlg == true)
                {
                    // найти индекс строки (параметра) - по идентификатору
                    // вариант №1
                    indx = Rows.Cast <DataGridViewRow>().First(r => { return((int)r.Tag == item.m_idAlg); }).Index;
                    //// // вариант №2
                    //indx = (
                    //        from r in Rows.Cast<DataGridViewRow>()
                    //        where (int)r.Tag == item.m_idAlg
                    //        select new { r.Index }
                    //    ).Cast<int>().ElementAt<int>(0);
                    //// // вариант №3
                    //foreach (DataGridViewRow r in Rows)
                    //    if ((int)r.Tag == item.m_idAlg) {
                    //        indx = Rows.IndexOf(r);
                    //        break;
                    //    } else
                    //        ;
                }
                else
                {
                    ;
                }

                if (!(indx < 0))
                {
                    if (item.m_type == PanelManagementTaskTepValues.ItemCheckedParametersEventArgs.TYPE.ENABLE)
                    {
                        if (item.IsComponent == true)   // COMPONENT ENABLE
                        // для всех ячеек в столбце
                        {
                            foreach (DataGridViewRow r in Rows)
                            {
                                if (getColorCellToColumn(indx, r.Index, bItemChecked, out clrCell) == true)
                                {
                                    r.Cells[indx].Style.BackColor = clrCell;
                                }
                                else
                                {
                                    ;
                                }
                            }
                            ((TepCommon.HandlerDbTaskCalculate.TECComponent)Columns[indx].Tag).SetEnabled(bItemChecked);
                        }
                        else if (item.IsNAlg == true)     // NALG ENABLE
                        // для всех ячеек в строке
                        {
                            foreach (DataGridViewCell c in Rows[indx].Cells)
                            {
                                if (getColorCellToRow(c.ColumnIndex, indx, bItemChecked, out clrCell) == true)
                                {
                                    c.Style.BackColor = clrCell;
                                }
                                else
                                {
                                    ;
                                }

                                m_dictNAlgProperties.SetEnabled((int)Rows[indx].Tag, ((TepCommon.HandlerDbTaskCalculate.TECComponent)Columns[c.ColumnIndex].Tag).m_Id, bItemChecked);
                            }
                        }
                        else
                        {
                            ;
                        }
                    }
                    else if (item.m_type == PanelManagementTaskTepValues.ItemCheckedParametersEventArgs.TYPE.VISIBLE)
                    {
                        if (item.IsComponent == true)   // COMPONENT VISIBLE
                        // для всех ячеек в столбце
                        {
                            Columns[indx].Visible = bItemChecked;
                        }
                        else if (item.IsNAlg == true)      // NALG VISIBLE
                        // для всех ячеек в строке
                        {
                            Rows[indx].Visible = bItemChecked;
                        }
                        else
                        {
                            ;
                        }
                    }
                    else
                    {
                        ;
                    }
                }
                else
                {
                    // нет элемента для изменения стиля
                    ;
                }
            }