/// <summary> /// Конструктор - основной (без параметров) public FormMain() : base() { InitializeComponent(); s_plugIns = new HPlugIns(FormMain_EvtDataAskedHost); s_fileConnSett = new FIleConnSett(@"connsett.ini", FIleConnSett.MODE.FILE); s_listFormConnectionSettings = new List <FormConnectionSettings> (); s_listFormConnectionSettings.Add(new FormConnectionSettings(-1, s_fileConnSett.ReadSettingsFile, s_fileConnSett.SaveSettingsFile)); int idListener = DbSources.Sources().Register(s_listFormConnectionSettings[(int)CONN_SETT_TYPE.MAIN_DB].getConnSett(), false, CONN_SETT_TYPE.MAIN_DB.ToString()); if (!(idListener < 0)) { try { using (HTepUsers users = new HTepUsers(idListener)) {; } } catch (Exception e) { Logging.Logg().Exception(e, @"FormMain::FormMain() - new HTepUsers (iListenerId=" + idListener + @") ...", Logging.INDEX_MESSAGE.NOT_SET); } ConnectionSettingsSource connSettSource = new ConnectionSettingsSource(idListener); s_listFormConnectionSettings.Add(new FormConnectionSettings(idListener, connSettSource.Read, connSettSource.Save)); } else { ; } DbSources.Sources().UnRegister(idListener); m_TabCtrl.EventHTabCtrlExClose += new HTabCtrlEx.DelegateHTabCtrlEx(onCloseTabPage); }
/// <summary> /// Обработчик выбора пункта меню 'Файл - Профиль - Автоматические загрузка/сохранение' /// </summary> /// <param name="sender">Объект, инициировавший событие (п. меню)</param> /// <param name="e">Аргумент события</param> private void профайлАвтоЗагрузитьСохранитьToolStripMenuItem_CheckedChanged(object sender, EventArgs e) { профайлЗагрузитьToolStripMenuItem.Enabled = профайлСохранитьToolStripMenuItem.Enabled = !(sender as ToolStripMenuItem).Checked; HTepUsers.SetAllowed((int)HTepUsers.ID_ALLOWED.AUTO_LOADSAVE_USERPROFILE_CHECKED, Convert.ToString((sender as ToolStripMenuItem).Checked == true ? 1 : 0), s_listFormConnectionSettings[(int)CONN_SETT_TYPE.MAIN_DB].getConnSett()); }
/// <summary> /// Загрузить вкладки, сохраненные в профиле пользователя /// </summary> private void loadProfile() { PlugInMenuItem plugIn; string ids = HTepUsers.GetAllowed((int)HTepUsers.ID_ALLOWED.USERPROFILE_PLUGINS) /*/*, strNameOwnerMenuItem = string.Empty, strNameMenuItem = string.Empty*/; string[] arIds = ids.Split(new char [] { ',' }, StringSplitOptions.RemoveEmptyEntries); ////Вариант №1 //ToolStripItem[] menuItems; //Вариант №2 ToolStripItem menuItem; int id = -1; foreach (string strId in arIds) { int key = -1; id = Convert.ToInt32(strId); key = s_plugIns.GetKeyOfIdFPanel(id); if (!(key < 0)) { plugIn = s_plugIns[key] as PlugInMenuItem; if (plugIn == null) { continue; } else { ; } ////strNameOwnerMenuItem = plugIn.GetNameOwnerMenuItem (id); //strNameMenuItem = plugIn.GetNameMenuItem (id); ////Вариант №1 //menuItems = this.MainMenuStrip.Items.Find(strNameMenuItem, true); //menuItem = menuItems[0]; ////Вариант №2 //menuItem = FindMainMenuItemOfText(strNameMenuItem); //Вариант №3 menuItem = findMainMenuItemOfTag(id); if ((menuItem as ToolStripMenuItem).Checked == false) { m_iAutoActionTabs++; menuItem.PerformClick(); } else { ; } } else { Logging.Logg().Warning(@"FormMain::loadProfile () - не удалось загрузить plugIn.Id=" + id + @" ...", Logging.INDEX_MESSAGE.NOT_SET); } } }
/// <summary> /// Сохранить профиль пользователя (открытые вкладки) /// </summary> private void saveProfile() { int iListenerId = DbSources.Sources().Register(s_listFormConnectionSettings[(int)CONN_SETT_TYPE.MAIN_DB].getConnSett(), false, CONN_SETT_TYPE.MAIN_DB.ToString()); string ids = m_TabCtrl.VisibleIDs; HTepUsers.SetAllowed(iListenerId, (int)HTepUsers.ID_ALLOWED.USERPROFILE_PLUGINS, ids); DbSources.Sources().UnRegister(iListenerId); }
/// <summary> /// Инициализация пользовательских настроек /// </summary> /// <param name="iListenerId">Идентификатор установленного соединения с БД</param> private void initProfiles(int iListenerId) { try { using (HTepUsers users = new HTepUsers(iListenerId)) {; } } catch (Exception e) { Logging.Logg().Exception(e, @"FormMain::initProfiles(iListenerId=" + iListenerId + @") - new HTepUsers () - ...", Logging.INDEX_MESSAGE.NOT_SET); } }
private void loadProfile() { PlugInMenuItem plugIn; string ids = HTepUsers.GetAllowed((int)HTepUsers.ID_ALLOWED.USERPROFILE_PLUGINS) , strNameOwnerMenuItem = string.Empty, strNameMenuItem = string.Empty; string[] arIds = ids.Split(new char [] { ',' }, StringSplitOptions.RemoveEmptyEntries); ////Вариант №1 //ToolStripItem[] menuItems; //Вариант №2 ToolStripItem menuItem; foreach (string id in arIds) { plugIn = s_plugIns[Convert.ToInt32(id)] as PlugInMenuItem; if (plugIn == null) { continue; } else { ; } strNameOwnerMenuItem = plugIn.NameOwnerMenuItem; strNameMenuItem = plugIn.NameMenuItem; ////Вариант №1 //menuItems = this.MainMenuStrip.Items.Find(strNameMenuItem, true); //menuItem = menuItems[0]; //Вариант №2 menuItem = FindMainMenuItemOfText(strNameMenuItem); if ((menuItem as ToolStripMenuItem).Checked == false) { m_iAutoActionTabs++; menuItem.PerformClick(); } else { ; } } }
/// <summary> /// Инициализация п.п. главного меню /// в ~ от разрешенных к загрузке плюгИнов /// </summary> /// <param name="strErr">Сообщение об ошибке</param> /// <returns>Результат инициализации меню</returns> private int initializeMenu(out string strErr) { int iRes = -1 , idListener = -1 , iKeyPlugIn = -1, iKeyFPanel = -1; strErr = string.Empty; string strUserDomainName = string.Empty; string [] arIdFPanels = null; idListener = DbSources.Sources().Register(s_listFormConnectionSettings[(int)CONN_SETT_TYPE.MAIN_DB].getConnSett(), false, @"MAIN_DB"); initializeLogging(); s_plugIns.Load(HTepUsers.GetPlugins(idListener, out iRes), out iRes); if (iRes == 0) { arIdFPanels = HTepUsers.GetIdIsUseFPanels(idListener, out iRes).Split(new char[] { ',' }, StringSplitOptions.None); //Проверить рез-т чтения наименования плюгина if (iRes == 0) { ToolStripMenuItem miOwner = null , miItem = null; string[] arHierarchyOwnerMenuItems; //Циклл по строкам - идентификатрам/разрешениям использовать плюгин foreach (string key in arIdFPanels) { iKeyFPanel = Int32.Parse(key); iKeyPlugIn = s_plugIns.GetKeyOfIdFPanel(iKeyFPanel); if (!(iKeyPlugIn < 0)) { arHierarchyOwnerMenuItems = s_plugIns[iKeyPlugIn].GetNameOwnerMenuItem(iKeyFPanel).Split(new char[] { '\\' }, StringSplitOptions.None); //Поиск пункта "родительского" пункта меню для плюг'ина miOwner = FindMainMenuItemOfText(arHierarchyOwnerMenuItems[0]); //Проверка найден ли "родительский" пункт меню для плюг'ина if (miOwner == null) { //НЕ найден - создаем int indx = -1; // индекс для добавляемого пункта if (arHierarchyOwnerMenuItems[0].Equals(@"Помощь") == false) { // индекс для всех пунктов кроме "Помощь" indx = this.MainMenuStrip.Items.Count - 1; } else { ; } if (indx < 0) { // для пункта "Помощь" - он всегда крайний // , и не имеет сложной иерархии this.MainMenuStrip.Items.Add(miOwner = new ToolStripMenuItem(arHierarchyOwnerMenuItems[0])); } else { // для всех пунктов кроме "Помощь" this.MainMenuStrip.Items.Insert(indx, miOwner = new ToolStripMenuItem(arHierarchyOwnerMenuItems[0])); } } else { ; } //Реализовать иерархию п.п. (признак наличия иерархии - длина массива) for (int i = 1; i < arHierarchyOwnerMenuItems.Length; i++) { //Найти п. меню очередного уровня miItem = FindMainMenuItemOfText(arHierarchyOwnerMenuItems[i]); if (miItem == null) { // в случае отсутствия добавить к ранее найденному miOwner.DropDownItems.Add(miItem = new ToolStripMenuItem(arHierarchyOwnerMenuItems[i])); } else { ; } miOwner = miItem; } //Добавить пункт меню для плюг'ина miItem = miOwner.DropDownItems.Add(s_plugIns[iKeyPlugIn].GetNameMenuItem(iKeyFPanel)) as ToolStripMenuItem; miItem.Tag = iKeyFPanel; //Обработку выбора пункта меню предоставить плюг'ину miItem.Click += s_plugIns[iKeyPlugIn].OnClickMenuItem; //postOnClickMenuItem; //Добавить обработчик запросов для плюг'ина от главной формы // только ОДИН раз if ((s_plugIns[iKeyPlugIn] as PlugInBase).IsEvtDataAskedHostHandled == false) { (s_plugIns[iKeyPlugIn] as PlugInBase).EvtDataAskedHost += new DelegateObjectFunc(s_plugIns.OnEvtDataAskedHost); } else { ; } initializePlugIn(s_plugIns[iKeyPlugIn]); } else { Logging.Logg().Error(@"FormMain::initializeMenu () - не найден плюгИн для вкладки (ID=" + iKeyFPanel + @")...", Logging.INDEX_MESSAGE.NOT_SET); } } if (iRes == 0) { профайлАвтоЗагрузитьСохранитьToolStripMenuItem.Checked = Convert.ToBoolean(HTepUsers.GetAllowed((int)HTepUsers.ID_ALLOWED.AUTO_LOADSAVE_USERPROFILE_CHECKED)); профайлАвтоЗагрузитьСохранитьToolStripMenuItem.Enabled = Convert.ToBoolean(HTepUsers.GetAllowed((int)HTepUsers.ID_ALLOWED.AUTO_LOADSAVE_USERPROFILE_ACCESS)); //Успешный запуск на выполнение приложения Start(); } else { switch (iRes) { case -2: strErr = @"Не удалось загрузить все разрешенные для использования модули из списка (несоответствие идентификатроов)"; break; case -1: default: strErr = @"Не удалось загрузить все разрешенные для использования модули из списка"; break; } } } else { if (iRes == 0) { iRes = -1; } else { ; } strErr = @"Не удалось сформировать список разрешенных для использования модулей"; } } else { if (iRes == 0) { iRes = -1; } else { ; } strErr = @"Ошибка при загрузке библиотек - см. лог-файл..."; } DbSources.Sources().UnRegister(idListener); return(iRes); }
/// <summary> /// Сохранить профиль пользователя (открытые вкладки) /// </summary> private void saveProfile() { string ids = m_TabCtrl.VisibleIDs; HTepUsers.SetAllowed((int)HTepUsers.ID_ALLOWED.USERPROFILE_PLUGINS, ids, s_listFormConnectionSettings[(int)CONN_SETT_TYPE.MAIN_DB].getConnSett()); }
/// <summary> /// Инициализация п.п. главного меню /// в ~ от разрешенных к загрузке плюгИнов /// </summary> /// <param name="strErr">Сообщение об ошибке</param> /// <returns>Результат инициализации меню</returns> private int initializeMenu(out string strErr) { int iRes = -1 , idListener = -1; strErr = string.Empty; string strUserDomainName = string.Empty; idListener = DbSources.Sources().Register(s_listFormConnectionSettings[(int)CONN_SETT_TYPE.MAIN_DB].getConnSett(), false, @"MAIN_DB"); try { using (HTepUsers users = new HTepUsers(idListener)) {; } iRes = 0; } catch (Exception e) { } if (iRes == 0) { initializeLogging(); s_plugIns.Load(HTepUsers.GetPlugins(idListener, out iRes)); if (iRes == 0) { //Проверить рез-т чтения наименования плюгина if (iRes == 0) { ToolStripMenuItem miOwner = null , miItem = null; string[] arHierarchyOwnerMenuItems; //Циклл по строкам - идентификатрам/разрешениям использовать плюгин foreach (IPlugIn plugIn in s_plugIns.Values) { arHierarchyOwnerMenuItems = (plugIn as PlugInMenuItem).NameOwnerMenuItem.Split(new char [] { '\\' }, StringSplitOptions.None);; //Поиск пункта "родительского" пункта меню для плюг'ина miOwner = FindMainMenuItemOfText(arHierarchyOwnerMenuItems[0]); //Проверка найден ли "родительский" пункт меню для плюг'ина if (miOwner == null) { //НЕ найден - создаем int indx = -1; // индекс для добавляемого пункта if (arHierarchyOwnerMenuItems[0].Equals(@"Помощь") == false) { // индекс для всех пунктов кроме "Помощь" indx = this.MainMenuStrip.Items.Count - 1; } else { ; } if (indx < 0) { // для пункта "Помощь" - он всегда крайний // , и не имеет сложной иерархии this.MainMenuStrip.Items.Add(miOwner = new ToolStripMenuItem(arHierarchyOwnerMenuItems[0])); } else { // для всех пунктов кроме "Помощь" this.MainMenuStrip.Items.Insert(indx, miOwner = new ToolStripMenuItem(arHierarchyOwnerMenuItems[0])); } } else { ; } //Реализовать иерархию п.п. (признак наличия иерархии - длина массива) for (int i = 1; i < arHierarchyOwnerMenuItems.Length; i++) { //Найти п. меню очередного уровня miItem = FindMainMenuItemOfText(arHierarchyOwnerMenuItems[i]); if (miItem == null) { // в случае отсутствия добавить к ранее найденному miOwner.DropDownItems.Add(miItem = new ToolStripMenuItem(arHierarchyOwnerMenuItems[i])); } else { ; } miOwner = miItem; } //Добавить пункт меню для плюг'ина miItem = miOwner.DropDownItems.Add((plugIn as PlugInMenuItem).NameMenuItem) as ToolStripMenuItem; //Обработку выбора пункта меню предоставить плюг'ину miItem.Click += (plugIn as PlugInMenuItem).OnClickMenuItem; //Добавить обработчик запросов для плюг'ина от главной формы (plugIn as PlugInBase).EvtDataAskedHost += new DelegateObjectFunc(s_plugIns.OnEvtDataAskedHost); initializePlugIn(plugIn); } if (iRes == 0) { профайлАвтоЗагрузитьСохранитьToolStripMenuItem.Checked = Convert.ToBoolean(HTepUsers.GetAllowed((int)HTepUsers.ID_ALLOWED.AUTO_LOADSAVE_USERPROFILE_CHECKED)); профайлАвтоЗагрузитьСохранитьToolStripMenuItem.Enabled = Convert.ToBoolean(HTepUsers.GetAllowed((int)HTepUsers.ID_ALLOWED.AUTO_LOADSAVE_USERPROFILE_ACCESS)); //Успешный запуск на выполнение приложения Start(); } else { switch (iRes) { case -2: strErr = @"Не удалось загрузить все разрешенные для использования модули из списка (несоответствие идентификатроов)"; break; case -1: default: strErr = @"Не удалось загрузить все разрешенные для использования модули из списка"; break; } } } else { if (iRes == 0) { iRes = -1; } else { ; } strErr = @"Не удалось сформировать список разрешенных для использования модулей"; } } else { if (iRes == 0) { iRes = -1; } else { ; } strErr = @"Не удалось сформировать правила для роли пользователя"; } } else { if (iRes == 0) { iRes = -1; } else { ; } strErr = @"Не удалось идентифицировать пользователя"; } DbSources.Sources().UnRegister(idListener); return(iRes); }