private async void Lists_Loaded(object sender, RoutedEventArgs e) { if (!isLoaded) { TabsViewerControls.Visibility = Visibility.Collapsed; foreach (int id in await TabsAccessManager.GetTabsListIDAsync()) { var list = await TabsAccessManager.GetTabsListViaIDAsync(id); Lists.Items.Add(new ListItem { ListID = list.ID, ListName = list.name }); if (AppSettings.Values.ContainsKey("Tabs_list-selected-index")) { if ((int)AppSettings.Values["Tabs_list-selected-index"] == id) { Lists.SelectedIndex = Lists.Items.Count - 1; } } } if (Lists.Items.Count == 0) { await TabsWriteManager.CreateTabsListAsync("Default list"); } else { if (!AppSettings.Values.ContainsKey("Tabs_list-selected-index")) { Lists.SelectedIndex = 0; } } isLoaded = true; } }
private void SetMessenger() { Messenger.Default.Register <EditorViewNotification>(this, async(notification_ui) => { await DispatcherHelper.ExecuteOnUIThreadAsync(() => { try { SetTheme(); } catch { } }); }); Messenger.Default.Register <SheetViewMode>(this, async(notification_sheetview) => { await DispatcherHelper.ExecuteOnUIThreadAsync(() => { try { switch (notification_sheetview) { case SheetViewMode.Deployed: TabsViewerControls.Visibility = Visibility.Visible; break; case SheetViewMode.Minimized: TabsViewerControls.Visibility = Visibility.Collapsed; break; } } catch { } }); }); Messenger.Default.Register <STSNotification>(this, async(notification) => { await DispatcherHelper.ExecuteOnUIThreadAsync(async() => { try { if (CurrentSelectedIDs.ID_TabsList == notification.ID.ID_TabsList) { switch (notification.Type) { case TypeUpdateTab.NewTab: Tabs.Items.Add(notification.ID); //Auto selection Tabs.SelectedIndex = Tabs.Items.Count - 1; break; case TypeUpdateTab.TabDeleted: if (await TabsWriteManager.DeleteTabAsync(notification.ID)) { object FindItem = Tabs.Items.SingleOrDefault(o => o.Equals(notification.ID)); if (FindItem != null) { Tabs.Items.Remove(FindItem); //Auto selection if (CurrentSelectedIDs.ID_Tab == notification.ID.ID_Tab && Tabs.Items.Count - 1 >= 0) { Tabs.SelectedIndex = Tabs.Items.Count - 1; } } if (Tabs.Items.Count == 0) { CreateDefaultTab(); } } break; case TypeUpdateTab.NewList: var list = await TabsAccessManager.GetTabsListViaIDAsync(notification.ID.ID_TabsList); Lists.Items.Add(new ListItem { ListID = list.ID, ListName = list.name }); Lists.SelectedIndex = Lists.Items.Count - 1; break; case TypeUpdateTab.ListDeleted: Lists.Items.RemoveAt(Lists.SelectedIndex); break; } } else { switch (notification.Type) { case TypeUpdateTab.NewList: var list = await TabsAccessManager.GetTabsListViaIDAsync(notification.ID.ID_TabsList); Lists.Items.Add(new ListItem { ListID = list.ID, ListName = list.name }); Lists.SelectedIndex = Lists.Items.Count - 1; break; case TypeUpdateTab.ListDeleted: Lists.Items.RemoveAt(Lists.SelectedIndex); break; } } } catch { } }); }); }