Example #1
0
 /// <summary>
 ///		Trata el mensaje de último archivo utilizado
 /// </summary>
 private void TreatMessageRecentFileUsed(MessageRecentFileUsed message)
 {
     if (message?.Type == MessageRecentFileUsed.ActionType.Open)
     {
         // Añade el archivo
         RecentFilesUsed.Add(message.Source, message.FileName, message.Text);
         // Graba el archivo
         new Classess.MRU.MRUFileRepository().Save(RecentFilesUsed);
         // Actualiza el menú
         ShowMenuMRUFiles();
     }
 }
Example #2
0
        /// <summary>
        ///		Muestra el menú de archivos abiertos
        /// </summary>
        private void ShowMenuMRUFiles()
        {
            System.Collections.Generic.List <string> applications = RecentFilesUsed.GetApplications();

            // Borra los últimos menús
            mnuFileLastFiles.Items.Clear();
            // Recorre las aplicaciones en la colección mostrándolas en el menú
            foreach (string application in applications)
            {
                MenuItem mnuApplication = CreateMenu(application, null, null, null);

                // Añade los archivos al menú de aplicación
                for (int index = RecentFilesUsed.Count - 1; index >= 0; index--)
                {
                    if (RecentFilesUsed[index].Source.EqualsIgnoreCase(application))
                    {
                        MenuItem mnuMru = CreateMenu($"{RecentFilesUsed.Count - index} {RecentFilesUsed[index].Name}",
                                                     null, null, RecentFilesUsed[index]);

                        // Añade el menú al menú de aplicación
                        mnuApplication.Items.Add(mnuMru);
                        // Añade el manejador de menús
                        mnuMru.Click += (sender, evntArgs) =>
                        {
                            Classess.MRU.MRUFileModel file = (sender as MenuItem).Tag as Classess.MRU.MRUFileModel;

                            if (file != null && !file.FileName.IsEmpty())
                            {
                                if (!System.IO.File.Exists(file.FileName))
                                {
                                    Globals.HostController.ControllerWindow.ShowMessage("No se encuentra el archivo");
                                }
                                else
                                {
                                    Globals.HostController.HostViewModelController.Messenger.SendRecentFileClicked(file.Source, file.FileName);
                                }
                            }
                        };
                    }
                }
                // Añade el menú de aplicación a la opción principal
                mnuFileLastFiles.Items.Add(mnuApplication);
            }
            // Desactiva el menú si no hay ningún archivo
            mnuFileLastFiles.IsEnabled = mnuFileLastFiles.Items.Count > 0;
        }