示例#1
0
        /// <summary>
        /// Devuelve un Boolean si se carga correctamente la configuración por defecto desde Variablesglobales.ribbontabdictionary,
        /// del RibbonTab recibido por params
        /// </summary>
        /// <param name="ribbontab"></param>
        /// <returns></returns>
        public static bool GetDefaultRibbonTabConfig(RibbonTab ribbontab)
        {
            bool result = false;

            try
            {
                if (ribbontab.Items.Count > 0)
                {   //Vacía los items del RibbonTab pasado por params. Este paso es necesario antes de añadir los RibbonGroups con el nuevo orden
                    ribbontab.Items.Clear();

                    //Se recuperan los RibbonGroups del Ribbontab pasado por params
                    List <RibbonGroup> ribbontabdic = ribbontabdictionary.Where(r => r.Key.ToString() == ribbontab.Name.ToString()).FirstOrDefault().Value.ribbongroup;

                    //Se recorren los RibbonGroups del Ribbontab pasado por params. Al Name del RibbonTab se le añade el índex ya que
                    //la es como se guardan las Key en app.exe.config. Se recupera el Name del RibbonGroup. Se guarda en el archivo
                    //app.exe.config la configuración personalizada del usuario (Key=RibbonTab.Name+Index, Value=RibbonGroup.Name)
                    int j = 0;
                    foreach (var item in ribbontabdic)
                    {
                        ribbontab.Items.Insert(j, item);
                        string ribbontabname   = string.Format("{0}{1}", ribbontab.Name.ToString(), j);
                        string ribbongroupname = item.Name.ToString();
                        SetSetting(ribbontabname, ribbongroupname);
                        j++;
                    }
                }
                result = true;
            }
            catch (Exception e)
            {
                ErrorsGeneric.MessageError(e);
            }
            return(result);
        }
示例#2
0
        /// <summary>
        /// Añade un UserControl al TabControl según la EOpcion que recibe por param. Si el TabItem ya está mostrado,
        /// no se carga de nuevo, simplemente se establece el foco en ese TabItem.
        /// Se añade el EOpcion y el nuevo TabItem al Dictionary de TabItems(tabitemdictionary) que almacena los TabItems activos.
        /// </summary>
        /// <param name="opcion"></param>
        public static void PrepareTabItemUserControl(EOpcion opcion)
        {
            try
            {
                if (tabitemdictionary.Where(p => p.Key == opcion).Count() == 0)
                {
                    CintaOpcionesUserControl cintaopcionesusercontrol = new CintaOpcionesUserControl();
                    //Se crea el Tabitem
                    TabItem tabitem = TabItemLogic.CreateTabItemDataGrid(opcion);

                    //Se añade un nuevo object CintaOpcionesUserControl al TabItem
                    tabitem.Content = cintaopcionesusercontrol;

                    //Se añade el EOpcion y el nuevo TabItem al Dictionary de TabItems(tabitemdictionary) que almacena los TabItems activos
                    tabitemdictionary.Add(opcion, new TemplateInfoTabItem(tabitem));

                    //Se habilitan/deshabilitan los Buttons del ToolBar según corresponda
                    ToolBarLogic.EnabledDisabledToolBarButtonsByEOpcion(opcion);
                }
                else
                {   //Si el TabItem ya está mostrado, no se carga de nuevo, simplemente se establece el foco en ese TabItem
                    tabitemdictionary.Where(z => z.Key == opcion).FirstOrDefault().Value.TabItem.Focus();
                }
            }
            catch (Exception ex)
            {
                ErrorsGeneric.MessageError(ex);
            }
        }
示例#3
0
        /// <summary>
        /// Carga la configuración personalizada del usuario de los RibbonTab. En caso de que no haya configuración personalizada del usuario,
        /// se carga la configuración por defecto según VariablesGlobales.ribbontabdictionary
        /// </summary>
        public static void LoadCurrentUserRibbonTabConfig()
        {
            try
            {
                //Carga el idioma de la app según esté guardado en app.exe.config
                GetLanguage();
                //Recorre los diferentes RibbonTab guardados en VariablesGlobales.ribbontabdictionary
                foreach (var item in ribbontabdictionary)
                {
                    if (item.Value.ribbontab != null)
                    {   //Para cada RibbonTab, se devuelve una List con los RibbonGroups que contiene. En caso que la List se reciba vacía, se cargarán
                        //los RibbonGroups de la configuración por defecto, en caso contrario, se habrán cargado los RibbonGroups personalizados del usuario
                        List <RibbonGroup> rbgroup = GetCurrentUserRibbonTabConfig(item.Value.ribbontab);

                        if (rbgroup == null || rbgroup.Count == 0)
                        {
                            GetDefaultRibbonTabConfig(item.Value.ribbontab);
                        }
                    }
                }
            }
            catch (Exception e)
            {
                ErrorsGeneric.MessageError(e);
            }
        }
示例#4
0
        /// <summary>
        /// Guarda en el archivo app.exe.config la configuración personalizada del usuario
        /// </summary>
        /// <param name="key"></param>
        /// <param name="value"></param>
        /// <returns></returns>
        private static bool SetSetting(string key, string value)
        {
            bool result = false;

            try
            {
                //La línea siguiente no funcionará bien en tiempo de diseño pues VC# usa el fichero
                //xxx.vshost.config en la depuración:
                //Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
                //Así pues utilizamos:
                Configuration config = ConfigurationManager.OpenExeConfiguration(System.Reflection.Assembly.GetExecutingAssembly().Location);

                //Eliminamos la key (si existe). Si no se elimina la key, los valores se irán acumulando separados por coma
                config.AppSettings.Settings.Remove(key);

                //Asignamos el valor en la clave indicada
                config.AppSettings.Settings.Add(key, value);

                //Guardamos los cambios definitivamente en el fichero de configuración
                config.Save(ConfigurationSaveMode.Modified);
            }
            catch (Exception e)
            {
                ErrorsGeneric.MessageError(e);
            }
            return(result);
        }
示例#5
0
 /// <summary>
 /// Guarda la configuración por defecto (Variablesglobales.Dictionary<ERibbonTab, RibbonTabAndGroup> ribbontabdictionary )
 /// de los RibbonGroups de los RibbonTab seleccionados
 /// </summary>
 /// <param name="cintaopcionesusercontrol"></param>
 public static void SetDefaultRibbonTabConfig(CintaOpcionesUserControl cintaopcionesusercontrol)
 {
     try
     {   //Boolean = true, Indica que se ha marcado algún Checkbox, y mostrará un mensaje de información para el usuario
         bool result = false;
         //Recorre los controles de la Grid que contiene los Checkbox. Si el Control es un CheckBox comprobará si está marcado, y en ese caso,
         //se reordenará a la configuración por defecto el RibbonTab según establecido en VariablesGlobales.ribbontabdictionary
         foreach (Control control in cintaopcionesusercontrol.grdCintaOpciones.Children)
         {
             if (control is CheckBox)
             {
                 CheckBox checkbox = control as CheckBox;
                 if (checkbox.IsChecked == true)
                 {
                     string    ribbontabname = ribbontabdictionary.Where(r => r.Value.checkbox.Equals(checkbox.Name.ToString())).FirstOrDefault().Key.ToString();
                     RibbonTab ribbontab     = ribbontabdictionary.Where(r => r.Key.ToString().Equals(ribbontabname)).FirstOrDefault().Value.ribbontab;
                     if (GetDefaultRibbonTabConfig(ribbontab))
                     {
                         result = true;
                     }
                 }
             }
         }
         if (result)
         {
             MessageBox.Show(Resources.msgSaveCintaOpcionesOK, Resources.lrbtnCinta, MessageBoxButton.OK, MessageBoxImage.Information);
         }
     }
     catch (Exception e)
     {
         ErrorsGeneric.MessageError(e);
     }
 }
示例#6
0
        /// <summary>
        /// Guarda la configuración por defecto (Variablesglobales.Dictionary<ERibbonTab, RibbonTabAndGroup> ribbontabdictionary )
        /// de los RibbonGroups de los RibbonTab seleccionados
        /// </summary>
        /// <param name="opcion"></param>
        public static void GuardarCintaOpciones(EOpcion opcion)
        {
            try
            {
                TabItem tabitem = tabitemdictionary.Where(c => c.Key == opcion).FirstOrDefault().Value.TabItem;
                CintaOpcionesUserControl cintaopcionesusercontrol = tabitem.Content as CintaOpcionesUserControl;

                UserAndDefaultConfig.SetDefaultRibbonTabConfig(cintaopcionesusercontrol);
            }
            catch (Exception ex)
            {
                ErrorsGeneric.MessageError(ex);
            }
        }
 /// <summary>
 /// Cierra la aplicación. Llamada desde (Ribbon.ApplicationMenu)Inicio/Salir
 /// </summary>
 public static void CloseWindowFromCommand()
 {
     try
     {
         if (MessageBox.Show(Resources.msgSalir, Resources.lrapmnitSalir, MessageBoxButton.YesNo, MessageBoxImage.Warning) == MessageBoxResult.Yes)
         {
             ((MainWindow)Application.Current.MainWindow).Close();
         }
     }
     catch (Exception ex)
     {
         ErrorsGeneric.MessageError(ex);
     }
 }
示例#8
0
 /// <summary>
 /// Establece el idioma de la app según esté guardado en app.exe.config.
 /// </summary>
 public static void GetLanguage()
 {
     try
     {   //Recupera el idioma desde el archivo app.exe.config con la Key "Language", y se lo pasa al
         //SetLanguagesViewModel.SetLanguages para que cargue el idioma deseado
         string lang = GetSetting("Language");
         if (!lang.Equals(string.Empty))
         {
             SetLanguagesViewModel slvm = new SetLanguagesViewModel();
             slvm.SetLanguages(lang);
         }
     }
     catch (Exception e)
     {
         ErrorsGeneric.MessageError(e);
     }
 }
 /// <summary>
 /// Cierra la aplicación. Llamada desde Alt+F4 o desde el botón de cerrar ventana
 /// </summary>
 /// <param name="sender"></param>
 /// <param name="e"></param>
 public static void CloseWindowFromWindow(object sender, CancelEventArgs e)
 {
     try
     {
         if (MessageBox.Show(Resources.msgSalir, Resources.lrapmnitSalir, MessageBoxButton.YesNo, MessageBoxImage.Warning) == MessageBoxResult.No)
         {
             e.Cancel = true;
         }
         else
         {
             e.Cancel = false;
         }
     }
     catch (Exception ex)
     {
         ErrorsGeneric.MessageError(ex);
     }
 }
示例#10
0
 /// <summary>
 /// Carga la configuración por defecto de los RibbonTab
 /// </summary>
 public static void LoadDefaultRibbonTabConfig()
 {
     try
     {
         //Carga el idioma de la app según esté guardado en app.exe.config
         GetLanguage();
         //Recorre los diferentes RibbonTab guardados en VariablesGlobales.ribbontabdictionary
         foreach (var item in ribbontabdictionary)
         {   //Para cada RibbonTab, se cargan los RibbonGroups de la configuración por defecto según VariablesGlobales.ribbontabdictionary
             if (item.Value.ribbontab != null)
             {
                 GetDefaultRibbonTabConfig(item.Value.ribbontab);
             }
         }
     }
     catch (Exception e)
     {
         ErrorsGeneric.MessageError(e);
     }
 }
示例#11
0
        /// <summary>
        /// Desmarca todos los CheckBox
        /// </summary>
        /// <param name="opcion"></param>
        public static void CancelarCintaOpciones(EOpcion opcion)
        {
            try
            {
                TabItem tabitem = tabitemdictionary.Where(c => c.Key == opcion).FirstOrDefault().Value.TabItem;
                CintaOpcionesUserControl cintaopcionesusercontrol = tabitem.Content as CintaOpcionesUserControl;

                foreach (Control control in cintaopcionesusercontrol.grdCintaOpciones.Children)
                {
                    if (control is CheckBox)
                    {
                        CheckBox checkbox = control as CheckBox;
                        checkbox.IsChecked = false;
                    }
                }
            }
            catch (Exception ex)
            {
                ErrorsGeneric.MessageError(ex);
            }
        }
示例#12
0
        /// <summary>
        /// Devuelve la configuración personalizada de los RibbonGroups del RibbonTab recibido por params
        /// </summary>
        /// <param name="ribbontab"></param>
        public static List <RibbonGroup> GetCurrentUserRibbonTabConfig(RibbonTab ribbontab)
        {
            List <RibbonGroup> rbgroup = new List <RibbonGroup>();

            try
            {
                if (ribbontab.Items.Count > 0)
                {
                    int ribbontabcount = ribbontab.Items.Count;
                    //Vacía los items del RibbonTab pasado por params. Este paso es necesario antes de añadir los RibbonGroups con el nuevo orden
                    ribbontab.Items.Clear();

                    //Se recorre el RibbonTab pasado por params. Al Name del RibbonTab se le añade el índex ya que la es como se guardan las Key
                    //en app.exe.config. Se recuperan los RibbonGroups del Ribbontab pasado por params, y después se recupera concretamente el
                    //RibbonGroup con el Name según la Key RibbonTab+Index. Se añade el RibbonGroup al RibbonTab
                    for (int i = 0; i < ribbontabcount; i++)
                    {
                        string ribbontabname   = string.Format("{0}{1}", ribbontab.Name.ToString(), i);
                        string ribbongroupname = GetSetting(ribbontabname);

                        List <RibbonGroup> ribbontablist = ribbontabdictionary.Where(r => r.Key.ToString() == ribbontab.Name.ToString()).FirstOrDefault().Value.ribbongroup;
                        RibbonGroup        ribbongroup   = ribbontablist.Where(r => r.Name.ToString() == ribbongroupname).FirstOrDefault();

                        ribbontab.Items.Insert(i, ribbongroup);
                        if (ribbongroup != null)
                        {
                            rbgroup.Add(ribbongroup);
                        }
                    }
                }
                return(rbgroup);
            }
            catch (Exception e)
            {
                ErrorsGeneric.MessageError(e);
            }
            return(null);
        }
        /// <summary>
        /// Convierte el object pasado por params en un string.ToUpper() como el ejemplo: [key1, value1];[ke2, value2]...
        /// </summary>
        /// <param name="obj"></param>
        /// <returns></returns>
        public static string PropertyConvertToDictionary(object obj)
        {
            Dictionary <string, object> dic = new Dictionary <string, object>();

            try
            {
                Type tipo = obj.GetType();

                foreach (PropertyInfo info in tipo.GetProperties())
                {
                    if (!info.Name.ToString().Equals("ControlCambioDataGrid"))
                    {
                        dic.Add(info.Name.ToString(), PropertyGetValue(obj, info.Name.ToString()));
                    }
                }
            }
            catch (Exception e)
            {
                ErrorsGeneric.MessageError(e);
            }
            string ret = string.Join(";", dic);

            return(ret.ToUpper());
        }
示例#14
0
 /// <summary>
 /// Guarda la configuración personalizada de los RibbonGroups del RibbonTab en el cual se está utilizando
 /// </summary>
 /// <param name="ribbontab"></param>
 public static void SetCurrentUserRibbonTabConfig(RibbonTab ribbontab)
 {
     try
     {
         if (ribbontab.Items.Count > 0)
         {   //Se recorre el RibbonTab pasado por params. Al Name del RibbonTab se le añade el índex ya que la es como se guardan
             //las Key en app.exe.config. Se recupera el Name del RibbonGroup. Se guarda en el archivo app.exe.config la configuración
             //personalizada del usuario (Key=RibbonTab.Name+Index, Value=RibbonGroup.Name)
             int j = 0;
             foreach (var item in ribbontab.Items)
             {
                 RibbonGroup rbgroup         = (RibbonGroup)item;
                 string      ribbontabname   = string.Format("{0}{1}", ribbontab.Name.ToString(), j);
                 string      ribbongroupname = rbgroup.Name.ToString();
                 SetSetting(ribbontabname, ribbongroupname);
                 j++;
             }
         }
     }
     catch (Exception e)
     {
         ErrorsGeneric.MessageError(e);
     }
 }