Пример #1
0
        /// <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);
        }
Пример #2
0
        /// <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());
        }
Пример #3
0
        /// <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);
                }
            }
        }
Пример #4
0
        /// <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);
        }
Пример #5
0
 /// <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);
     }
 }
Пример #6
0
        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
                {
                    ;
                }
            }
        }
Пример #7
0
        /// <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);
        }
Пример #8
0
        /// <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());
        }
Пример #9
0
        /// <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);
        }