private async void Lists_Loaded(object sender, RoutedEventArgs e) { if (!isLoaded) { TabsViewerControls.Visibility = Visibility.Collapsed; foreach (int id in TabsAccessManager.GetTabsListID()) { var list = TabsAccessManager.GetTabsListViaID(id); Lists.Items.Add(new ListItem { ListID = list.ID, ListName = list.name, ListIcon = await ModulesAccessManager.GetModuleIconViaIDAsync(list.TabsListProjectTypeID, true) }); 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; ShowCreatorGrid(false); if (!string.IsNullOrWhiteSpace(Box_Search.Text)) { Tabs.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.RefreshCurrentList: ChangeSelectedList(CurrentSelectedIDs.ID_TabsList); break; case TypeUpdateTab.NewTab: if (!TabsAccessManager.GetTabViaID(notification.ID).TabInvisibleByDefault) { Tabs.Items.Add(notification.ID); //Auto selection Tabs.SelectedIndex = Tabs.Items.Count - 1; } break; case TypeUpdateTab.SelectTab: int Position = 0; foreach (TabID CurrId in Tabs.Items) { if (CurrId.ID_Tab == notification.ID.ID_Tab && CurrId.ID_TabsList == notification.ID.ID_TabsList) { Tabs.SelectedIndex = Position; break; } Position++; } break; case TypeUpdateTab.SelectTabViaNumber: if (Tabs.Items.Count >= notification.TabNumber) { Tabs.SelectedIndex = (notification.TabNumber - 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 = TabsAccessManager.GetTabsListViaID(notification.ID.ID_TabsList); Lists.Items.Add(new ListItem { ListID = list.ID, ListName = list.name, ListIcon = await ModulesAccessManager.GetModuleIconViaIDAsync(list.TabsListProjectTypeID, true) }); Lists.SelectedIndex = Lists.Items.Count - 1; break; case TypeUpdateTab.ListDeleted: Lists.Items.RemoveAt(Lists.SelectedIndex); break; case TypeUpdateTab.OpenTabsCreator: ShowCreatorGrid(true); break; case TypeUpdateTab.OpenNewFiles: OpenFiles(); break; } } else { switch (notification.Type) { case TypeUpdateTab.NewList: var list = TabsAccessManager.GetTabsListViaID(notification.ID.ID_TabsList); Lists.Items.Add(new ListItem { ListID = list.ID, ListName = list.name, ListIcon = await ModulesAccessManager.GetModuleIconViaIDAsync(list.TabsListProjectTypeID, true) }); Lists.SelectedIndex = Lists.Items.Count - 1; break; case TypeUpdateTab.ListDeleted: Lists.Items.RemoveAt(Lists.SelectedIndex); break; case TypeUpdateTab.OpenTabsCreator: ShowCreatorGrid(true); break; case TypeUpdateTab.OpenNewFiles: OpenFiles(); break; } } } catch { } }); }); }