Ejemplo n.º 1
0
        public SettingsVm(IMediator mediator, IResourceProxy resource)
        {
            var database  = mediator.Send(new GetDatabaseQuery()).GetAwaiter().GetResult();
            var menuItems = new ObservableCollection <ListMenuItemVm>
            {
                new ListMenuItemVm
                {
                    Title      = resource.GetResourceValue("SettingsMenuItemNew"),
                    Group      = resource.GetResourceValue("SettingsMenuGroupApplication"),
                    SymbolIcon = Symbol.Add,
                    PageType   = typeof(SettingsNewDatabasePage),
                    IsSelected = true
                },
                new ListMenuItemVm
                {
                    Title      = resource.GetResourceValue("SettingsMenuItemGeneral"),
                    Group      = resource.GetResourceValue("SettingsMenuGroupApplication"),
                    SymbolIcon = Symbol.Setting,
                    PageType   = typeof(SettingsGeneralPage)
                },
                new ListMenuItemVm
                {
                    Title      = resource.GetResourceValue("SettingsMenuItemSecurity"),
                    Group      = resource.GetResourceValue("SettingsMenuGroupDatabase"),
                    SymbolIcon = Symbol.Permissions,
                    PageType   = typeof(SettingsSecurityPage),
                    IsEnabled  = database.IsOpen
                },
                new ListMenuItemVm
                {
                    Title      = resource.GetResourceValue("SettingsMenuItemHistory"),
                    Group      = resource.GetResourceValue("SettingsMenuGroupDatabase"),
                    SymbolIcon = Symbol.Undo,
                    PageType   = typeof(SettingsHistoryPage),
                    IsEnabled  = database.IsOpen
                },
                new ListMenuItemVm
                {
                    Title      = resource.GetResourceValue("SettingsMenuItemRecycleBin"),
                    Group      = resource.GetResourceValue("SettingsMenuGroupDatabase"),
                    SymbolIcon = Symbol.Delete,
                    PageType   = typeof(SettingsRecycleBinPage),
                    IsEnabled  = database.IsOpen
                },
                new ListMenuItemVm
                {
                    Title      = resource.GetResourceValue("SettingsMenuItemCredentials"),
                    Group      = resource.GetResourceValue("SettingsMenuGroupDatabase"),
                    SymbolIcon = Symbol.Account,
                    PageType   = typeof(SettingsCredentialsPage),
                    IsEnabled  = database.IsOpen
                }
            };

            SelectedItem = menuItems.FirstOrDefault(m => m.IsSelected);

            MenuItems = from item in menuItems group item by item.Group into grp orderby grp.Key select grp;
        }
Ejemplo n.º 2
0
        public async Task Initialize(Frame referenceFrame, Frame destinationFrame, FileInfo databaseFile = null)
        {
            var database = await _mediator.Send(new GetDatabaseQuery());

            var mainMenuItems = new ObservableCollection <MainMenuItemVm>
            {
                new MainMenuItemVm
                {
                    Title       = _resource.GetResourceValue("MainMenuItemOpen"),
                    PageType    = typeof(OpenDatabasePage),
                    Destination = destinationFrame,
                    Parameter   = databaseFile,
                    SymbolIcon  = Symbol.Page2,
                    IsSelected  = databaseFile != null
                },
                new MainMenuItemVm
                {
                    Title       = _resource.GetResourceValue("MainMenuItemNew"),
                    PageType    = typeof(NewDatabasePage),
                    Destination = destinationFrame,
                    SymbolIcon  = Symbol.Add
                },
                new MainMenuItemVm
                {
                    Title       = _resource.GetResourceValue("MainMenuItemSave"),
                    PageType    = typeof(SaveDatabasePage),
                    Destination = destinationFrame,
                    Parameter   = referenceFrame,
                    SymbolIcon  = Symbol.Save,
                    IsSelected  = database.IsOpen,
                    IsEnabled   = database.IsOpen
                },
                new MainMenuItemVm
                {
                    Title       = _resource.GetResourceValue("MainMenuItemRecent"),
                    PageType    = typeof(RecentDatabasesPage),
                    Destination = destinationFrame,
                    Parameter   = referenceFrame,
                    SymbolIcon  = Symbol.Copy,
                    IsSelected  = !database.IsOpen && _recent.EntryCount > 0,
                    IsEnabled   = _recent.EntryCount > 0
                },
                new MainMenuItemVm
                {
                    Title       = _resource.GetResourceValue("MainMenuItemSettings"),
                    PageType    = typeof(SettingsPage),
                    Destination = referenceFrame,
                    SymbolIcon  = Symbol.Setting
                },
                new MainMenuItemVm
                {
                    Title       = _resource.GetResourceValue("MainMenuItemAbout"),
                    PageType    = typeof(AboutPage),
                    Destination = destinationFrame,
                    SymbolIcon  = Symbol.Help
                },
                new MainMenuItemVm
                {
                    Title       = _resource.GetResourceValue("MainMenuItemDonate"),
                    PageType    = typeof(DonatePage),
                    Destination = destinationFrame,
                    SymbolIcon  = Symbol.Shop
                }
            };

            // Auto-select the Recent Items menu item if the conditions are met
            SelectedItem = mainMenuItems.FirstOrDefault(m => m.IsSelected);

            // Add currently opened database to the menu
            if (database.IsOpen)
            {
                mainMenuItems.Add(new MainMenuItemVm
                {
                    Title       = database.Name,
                    PageType    = typeof(GroupDetailPage),
                    Destination = referenceFrame,
                    Parameter   = new NavigationItem {
                        Id = database.RootGroupId
                    },
                    Group      = "Databases",
                    SymbolIcon = Symbol.ProtectedDocument
                });
            }

            MainMenuItems = from item in mainMenuItems group item by item.Group into grp orderby grp.Key select grp;
        }