public ItemCheckedParametersEventArgs(int idItem, INDEX_ID indxIdDeny, CheckState newCheckState) : base() { m_idItem = idItem; m_indxIdDeny = indxIdDeny; m_newCheckState = newCheckState; }
protected override void activateCheckedHandler(bool bActive, INDEX_ID idToActivate) { INDEX_CONTROL indxCtrl = INDEX_CONTROL.UNKNOWN; TreeViewTaskTepCalcParameters tv = null; indxCtrl = getIndexControlOfIndexID(idToActivate); if (indxCtrl == INDEX_CONTROL.CLBX_PARAMETER_CALCULATED) { tv = (Controls.Find(indxCtrl.ToString(), true)[0] as TreeViewTaskTepCalcParameters); tv.ActivateCheckedHandler(bActive); if (bActive == true) { //tv.NodeSelect += new DelegateIntFunc (onNodeSelect); tv.ItemCheck += new DelegateIntIntFunc(onItemCheck); } else { //tv.NodeSelect -= onNodeSelect; tv.ItemCheck -= onItemCheck; } } else { base.activateCheckedHandler(bActive, idToActivate); } }
/// <summary> /// Получение ИД контрола /// </summary> /// <param name="ctrl">контрол</param> /// <returns>индекс</returns> protected INDEX_ID getIndexIdOfControl(Control ctrl) { INDEX_CONTROL_BASE id = INDEX_CONTROL_BASE.UNKNOWN; //Индекс (по сути - идентификатор) элемента управления, инициировавшего событие INDEX_ID indxRes = INDEX_ID.UNKNOWN; try { //Определить идентификатор id = getIndexControl(ctrl); // , соответствующий изменившему состояние элементу 'CheckedListBox' switch (id) { case INDEX_CONTROL_BASE.CLBX_COMP_VISIBLED: indxRes = id == INDEX_CONTROL_BASE.CLBX_COMP_VISIBLED ? INDEX_ID.DENY_COMP_VISIBLED : INDEX_ID.UNKNOWN; break; default: break; } } catch (Exception e) { Logging.Logg().Exception(e, @"PanelManagementTaskTepValues::onItemCheck () - ...", Logging.INDEX_MESSAGE.NOT_SET); } return(indxRes); }
/// <summary> /// Очистить /// </summary> public void Clear() { INDEX_ID[] arIndxIdToClear = new INDEX_ID[] { INDEX_ID.DENY_COMP_VISIBLED }; ActivateCheckedHandler(false, arIndxIdToClear); Clear(arIndxIdToClear); }
/// <summary> /// Найти элемент управления на панели по индексу идентификатора /// </summary> /// <param name="id">Индекс идентификатора, используемого для заполнения элемента управления</param> /// <returns>Дочерний элемент управления</returns> protected Control find(INDEX_ID id) { Control ctrlRes = null; ctrlRes = find(getIndexControlOfIndexID(id)); return(ctrlRes); }
protected override void addItem(INDEX_ID indxId, Control ctrl, int id, string text, bool bChecked) { if (indxId == INDEX_ID.DENY_PARAMETER_CALCULATED) { (ctrl as TreeViewTaskTepCalcParameters).AddItem(id, text, bChecked); } else { base.addItem(indxId, ctrl, id, text, bChecked); } }
private void InitializeComponents() { #region Код, не относящийся к инициализации элементов управления m_arListIds = new List <int> [(int)INDEX_ID.COUNT_INDEX_ID]; for (INDEX_ID i = INDEX_ID.PERIOD; i < INDEX_ID.COUNT_INDEX_ID; i++) { if (i == INDEX_ID.PERIOD) { m_arListIds[(int)i] = new List <int> { (int)ID_TIME.HOUR, (int)ID_TIME.SHIFTS, (int)ID_TIME.DAY, (int)ID_TIME.MONTH } } } ;
/// <summary> /// Возвратить идентификатор элемента управления по идентификатору /// , используемого для его заполнения /// </summary> /// <param name="indxId"></param> /// <returns>индекс элемента панели</returns> protected INDEX_CONTROL_BASE getIndexControlOfIndexID(INDEX_ID indxId) { INDEX_CONTROL_BASE indxRes = INDEX_CONTROL_BASE.UNKNOWN; switch (indxId) { case INDEX_ID.DENY_COMP_VISIBLED: indxRes = INDEX_CONTROL_BASE.CLBX_COMP_VISIBLED; break; default: break; } return(indxRes); }
/// <summary> /// /// </summary> /// <param name="bActive"></param> /// <param name="idToActivate"></param> protected virtual void activateCheckedHandler(bool bActive, INDEX_ID idToActivate) { INDEX_CONTROL_BASE indxCtrl = INDEX_CONTROL_BASE.UNKNOWN; CheckedListBox clbx = null; indxCtrl = getIndexControlOfIndexID(idToActivate); if (!(indxCtrl == INDEX_CONTROL_BASE.UNKNOWN)) { clbx = (Controls.Find(indxCtrl.ToString(), true)[0] as CheckedListBox); if (bActive == true) { clbx.ItemCheck += new ItemCheckEventHandler(onItemCheck); } else { clbx.ItemCheck -= onItemCheck; } } }
protected override void initialize(out int err, out string errMsg) { err = 0; errMsg = string.Empty; m_arListIds = new List <int> [(int)INDEX_ID.COUNT]; for (INDEX_ID id = INDEX_ID.PERIOD; id < INDEX_ID.COUNT; id++) { switch (id) { case INDEX_ID.PERIOD: m_arListIds[(int)id] = new List <int> { (int)ID_PERIOD.HOUR /*, (int)ID_PERIOD.SHIFTS*/, (int)ID_PERIOD.DAY, (int)ID_PERIOD.MONTH }; break; case INDEX_ID.TIMEZONE: m_arListIds[(int)id] = new List <int> { (int)ID_TIMEZONE.UTC, (int)ID_TIMEZONE.MSK, (int)ID_TIMEZONE.NSK }; break; default: //??? где получить запрещенные для расчета/отображения идентификаторы компонентов ТЭЦ\параметров алгоритма m_arListIds[(int)id] = new List <int>(); break; } } m_arTableDictPrjs = new DataTable[(int)INDEX_TABLE_DICTPRJ.COUNT]; HTepUsers.ID_ROLES role = (HTepUsers.ID_ROLES)HTepUsers.Role; Control ctrl = null; string strItem = string.Empty; int i = -1; //Заполнить таблицы со словарными, проектными величинами string[] arQueryDictPrj = getQueryDictPrj(); for (i = (int)INDEX_TABLE_DICTPRJ.PERIOD; i < (int)INDEX_TABLE_DICTPRJ.COUNT; i++) { m_arTableDictPrjs[i] = m_handlerDb.Select(arQueryDictPrj[i], out err); if (!(err == 0)) { break; } else { ; } } if (err == 0) { try { m_arListIds[(int)INDEX_ID.ALL_COMPONENT].Clear(); initialize(); //Заполнить элемент управления с часовыми поясами ctrl = Controls.Find(TepCommon.PanelTaskTepCalculate.PanelManagementTaskTepCalculate.INDEX_CONTROL_BASE.CBX_TIMEZONE.ToString(), true)[0]; foreach (DataRow r in m_arTableDictPrjs[(int)INDEX_TABLE_DICTPRJ.TIMEZONE].Rows) { (ctrl as ComboBox).Items.Add(r[@"NAME_SHR"]); } // порядок именно такой (установить 0, назначить обработчик) //, чтобы исключить повторное обновление отображения (ctrl as ComboBox).SelectedIndex = 2; //??? требуется прочитать из [profile] (ctrl as ComboBox).SelectedIndexChanged += new EventHandler(cbxTimezone_SelectedIndexChanged); setCurrentTimeZone(ctrl as ComboBox); //Заполнить элемент управления с периодами расчета ctrl = Controls.Find(PanelManagementTaskTepCalculate.INDEX_CONTROL_BASE.CBX_PERIOD.ToString(), true)[0]; foreach (DataRow r in m_arTableDictPrjs[(int)INDEX_TABLE_DICTPRJ.PERIOD].Rows) { (ctrl as ComboBox).Items.Add(r[@"DESCRIPTION"]); } (ctrl as ComboBox).SelectedIndexChanged += new EventHandler(cbxPeriod_SelectedIndexChanged); (ctrl as ComboBox).SelectedIndex = 0; //??? требуется прочитать из [profile] //// отобразить значения //updateDataValues(); } catch (Exception e) { Logging.Logg().Exception(e, @"PanelTaskTepValues::initialize () - ...", Logging.INDEX_MESSAGE.NOT_SET); } } else { switch ((INDEX_TABLE_DICTPRJ)i) { case INDEX_TABLE_DICTPRJ.PERIOD: errMsg = @"Получение интервалов времени для периода расчета"; break; case INDEX_TABLE_DICTPRJ.TIMEZONE: errMsg = @"Получение списка часовых поясов"; break; case INDEX_TABLE_DICTPRJ.COMPONENT: errMsg = @"Получение списка компонентов станции"; break; case INDEX_TABLE_DICTPRJ.PARAMETER: errMsg = @"Получение строковых идентификаторов параметров в алгоритме расчета"; break; case INDEX_TABLE_DICTPRJ.MODE_DEV: errMsg = @"Получение идентификаторов режимов работы оборудования"; break; //case INDEX_TABLE_DICTPRJ.MEASURE: // errMsg = @"Получение информации по единицам измерения"; // break; default: errMsg = @"Неизвестная ошибка"; break; } } }
/// <summary> /// Инициировать событие - изменение признака элемента /// </summary> /// <param name="address">Адрес элемента</param> /// <param name="checkState">Значение признака элемента</param> protected void itemCheck(int idItem, INDEX_ID indxIdDeny, CheckState checkState) { ItemCheck(new ItemCheckedParametersEventArgs(idItem, indxIdDeny, checkState)); }
/// <summary> /// /// </summary> /// <param name="idToClear"></param> private void clear(INDEX_ID idToClear) { (find(idToClear) as IControl).ClearItems(); }