public async void ManageQueueTabs() { while (!CanManageQueue) { await Task.Delay(20); } if (CanManageQueue) { CanManageQueue = false; try { if (GlobalVariables.CurrentIDs.ID_Tab != 0) { //Code content string content = await ContentViewer.GetCode(); SerrisModulesServer.Manager.AsyncHelpers.RunSync(() => TabsWriteManager.PushTabContentViaIDAsync(GlobalVariables.CurrentIDs, content, false)); //Cursor position PositionSCEE CursorPosition = await ContentViewer.GetCursorPosition(); InfosTab Tab = TabsAccessManager.GetTabViaID(GlobalVariables.CurrentIDs); Tab.TabCursorPosition = new CursorPosition { column = CursorPosition.column, row = CursorPosition.row }; await TabsWriteManager.PushUpdateTabAsync(Tab, GlobalVariables.CurrentIDs.ID_TabsList, false); } } catch { } foreach (CoreApplicationView view in CoreApplication.Views) { if (Dispatcher != view.Dispatcher) { await view.Dispatcher.RunAsync(CoreDispatcherPriority.Normal, () => { Messenger.Default.Send(new STSNotification { Type = TypeUpdateTab.TabUpdated, ID = GlobalVariables.CurrentIDs }); }); } } GlobalVariables.CurrentIDs = new TabID { ID_Tab = Queue_Tabs[0].tabID, ID_TabsList = Queue_Tabs[0].tabsListID }; ContentViewer.MonacoModelID = Queue_Tabs[0].monacoModelID; ContentViewer.CursorPositionColumn = Queue_Tabs[0].cursorPositionColumn; ContentViewer.CursorPositionRow = Queue_Tabs[0].cursorPositionLineNumber; ContentViewer.CodeLanguage = Queue_Tabs[0].typeLanguage; ContentViewer.Code = Queue_Tabs[0].code; ChangePushed = false; Queue_Tabs.RemoveAt(0); CanManageQueue = true; } }
private async void Current_Suspending(object sender, Windows.ApplicationModel.SuspendingEventArgs e) { var deferral = e.SuspendingOperation.GetDeferral(); try { if (GlobalVariables.CurrentIDs.ID_Tab != 0) { //Code content string content = await ContentViewer.GetCode(); await TabsWriteManager.PushTabContentViaIDAsync(GlobalVariables.CurrentIDs, content, false); //Cursor position PositionSCEE CursorPosition = await ContentViewer.GetCursorPosition(); InfosTab Tab = TabsAccessManager.GetTabViaID(GlobalVariables.CurrentIDs); Tab.TabCursorPosition = new CursorPosition { column = CursorPosition.column, row = CursorPosition.row }; await TabsWriteManager.PushUpdateTabAsync(Tab, GlobalVariables.CurrentIDs.ID_TabsList, false); deferral.Complete(); } else { deferral.Complete(); } } catch { deferral.Complete(); } }
private void CreateTab() { EncodingType SelectedEncoding = (EncodingType)EncodingList.SelectedItem; if (CurrentSelectedIDs.ID_Tab != 0) { StorageListTypes SelectedType = ((StorageTypeDefinition)TabStorageType.SelectedValue).Type; switch (TabsAccessManager.GetTabViaID(GlobalVariables.CurrentIDs).TabContentType) { case ContentType.File: TabsCreatorAssistant.CreateNewTab(CurrentSelectedIDs.ID_TabsList, TextBoxNewFileProject.Text, Encoding.GetEncoding(SelectedEncoding.EncodingCodepage), SelectedEncoding.EncodingBOM, SelectedType, TabTemplateContent); break; //Create file in the selected folder ! case ContentType.Folder: TabsCreatorAssistant.CreateNewTabInFolder(GlobalVariables.CurrentIDs.ID_TabsList, CurrentSelectedIDs, TextBoxNewFileProject.Text, Encoding.GetEncoding(SelectedEncoding.EncodingCodepage), SelectedEncoding.EncodingBOM, SelectedType, TabTemplateContent); break; } } else { TabsCreatorAssistant.CreateNewTab(CurrentSelectedIDs.ID_TabsList, TextBoxNewFileProject.Text, Encoding.GetEncoding(SelectedEncoding.EncodingCodepage), SelectedEncoding.EncodingBOM, StorageListTypes.LocalStorage, TabTemplateContent); } TextBoxNewFileProject.Text = ""; }
/* ============= * = FUNCTIONS = * ============= */ private void Current_Activated(object sender, Windows.UI.Core.WindowActivatedEventArgs e) { if (e.WindowActivationState != CoreWindowActivationState.Deactivated) { CheckIfTabHaveNewOutsideUpdate(TabsAccessManager.GetTabViaID(GlobalVariables.CurrentIDs)); } }
private void Box_Search_TextChanged(object sender, TextChangedEventArgs e) { if (string.IsNullOrWhiteSpace(Box_Search.Text)) { TabsResult.Visibility = Visibility.Collapsed; Tabs.Visibility = Visibility.Visible; TabsResult.Items.Clear(); } else { TabsResult.Visibility = Visibility.Visible; Tabs.Visibility = Visibility.Collapsed; TabsResult.Items.Clear(); foreach (InfosTab Tab in TabsAccessManager.GetTabs(GlobalVariables.CurrentIDs.ID_TabsList)) { if (Tab.TabName.Contains(Box_Search.Text)) { TabsResult.Items.Add(new TabID { ID_Tab = Tab.ID, ID_TabsList = GlobalVariables.CurrentIDs.ID_TabsList }); } else if (!string.IsNullOrWhiteSpace(Tab.TabOriginalPathContent)) { if (Tab.TabOriginalPathContent.Contains(Box_Search.Text)) { TabsResult.Items.Add(new TabID { ID_Tab = Tab.ID, ID_TabsList = GlobalVariables.CurrentIDs.ID_TabsList }); } } } } }
public async Task WriteFile() { await DispatcherHelper.ExecuteOnUIThreadAsync(async() => { try { StorageFile file = await StorageFile.GetFileFromPathAsync(Tab.PathContent); if (file != null) { await FileIO.WriteTextAsync(file, string.Empty); using (var rd = new StreamWriter(await file.OpenStreamForWriteAsync(), Encoding.GetEncoding(Tab.TabEncoding))) { rd.Write(await TabsAccessManager.GetTabContentViaIDAsync(new TabID { ID_Tab = Tab.ID, ID_TabsList = ListTabsID })); rd.Flush(); rd.Dispose(); } } } catch { await CreateFile().ContinueWith(async(e) => { await WriteFile(); }); } }); }
public async Task WriteFile() { await DispatcherHelper.ExecuteOnUIThreadAsync(async() => { if (string.IsNullOrWhiteSpace(Tab.TabOriginalPathContent)) { await CreateFile().ContinueWith((e) => { //await WriteFile(); }); } else { try { await OneDriveAuthHelper.OneDriveAuthentification(); MemoryStream stream = new MemoryStream(); StreamWriter writer = new StreamWriter(stream, Encoding.GetEncoding(Tab.TabEncoding)); writer.Write(await TabsAccessManager.GetTabContentViaIDAsync(new TabID { ID_Tab = Tab.ID, ID_TabsList = ListTabsID })); writer.Flush(); stream.Position = 0; var item = await TabsDataCache.OneDriveClient.Drive.Items[Tab.TabOriginalPathContent].Content.Request().PutAsync <Item>(stream); } catch { await new MessageDialog("Please verify your internet connection or verify if the file still exist in your OneDrive or if you have enough stockage for saving the file.", "OneDrive error").ShowAsync(); } } }); }
private async void UpdateTabInformations() { //Set temp tab + tabs list ID try { current_tab = await TabsAccessManager.GetTabViaIDAsync(new TabID { ID_Tab = current_tab.ID, ID_TabsList = current_list }); foreach (CoreApplicationView view in CoreApplication.Views) { if (current_tab.TabName.Length >= 4) { Extension_tab.Text = current_tab.TabName.Substring(0, 4); } else { Extension_tab.Text = current_tab.TabType.ToUpper(); } name_tab.Text = current_tab.TabName; if (!string.IsNullOrEmpty(current_tab.PathContent)) { path_tab.Text = current_tab.PathContent; encoding_file.Text = Encoding.GetEncoding(current_tab.TabEncoding).EncodingName; More_Tab.Visibility = Visibility.Visible; } else { More_Tab.Visibility = Visibility.Collapsed; } } } catch { } }
public string getContent() { try { return(TabsAccessManager.GetTabContentViaID(new TabID { ID_Tab = id.tabID, ID_TabsList = id.listID })); } catch { return(""); } }
private async void Tabs_SelectionChanged(object sender, SelectionChangedEventArgs e) { ListView List = sender as ListView; if (List.SelectedItem != null) { if (((TabID)List.SelectedItem).ID_Tab != GlobalVariables.CurrentIDs.ID_Tab) { CurrentSelectedIDs = (TabID)List.SelectedItem; var tab = TabsAccessManager.GetTabViaID(CurrentSelectedIDs); string MonacoID; if (string.IsNullOrEmpty(tab.TabMonacoModelID)) { MonacoID = Guid.NewGuid().ToString(); } else { MonacoID = tab.TabMonacoModelID; } if (tab.TabContentType == ContentType.File) { int EncodingType = tab.TabEncoding; string TabType = ""; if (EncodingType == 0) { EncodingType = Encoding.UTF8.CodePage; } if (string.IsNullOrEmpty(tab.TabType)) { TabType = "TXT"; } else { TabType = tab.TabType.ToUpper(); } if (tab != null) { Messenger.Default.Send(new TabSelectedNotification { tabID = CurrentSelectedIDs.ID_Tab, tabsListID = CurrentSelectedIDs.ID_TabsList, code = await TabsAccessManager.GetTabContentViaIDAsync(CurrentSelectedIDs), contactType = ContactTypeSCEE.SetCodeForEditor, typeLanguage = TabType, typeCode = Encoding.GetEncoding(EncodingType).EncodingName, cursorPositionColumn = tab.TabCursorPosition.column, cursorPositionLineNumber = tab.TabCursorPosition.row, tabName = tab.TabName, monacoModelID = MonacoID }); } AppSettings.Values["Tabs_tab-selected-index"] = ((TabID)List.SelectedItem).ID_Tab; AppSettings.Values["Tabs_list-selected-index"] = ((TabID)List.SelectedItem).ID_TabsList; CheckIfTabHaveNewOutsideUpdate(tab); } } } }
public IList <TabIDs> getTabsIDOfTheCurrentList() { int currentList = getCurrentSelectedTabAndTabsListID().listID; List <int> ids = TabsAccessManager.GetTabsID(currentList); IList <TabIDs> list_ids = new List <TabIDs>(); foreach (int id in ids) { list_ids.Add(new TabIDs { listID = currentList, tabID = id }); } return(list_ids); }
private void CreateTab() { switch (TabsAccessManager.GetTabViaID(CurrentSelectedIDs).TabContentType) { case ContentType.File: TabsCreatorAssistant.CreateNewTab(CurrentSelectedIDs.ID_TabsList, TextBoxNewFileProject.Text, Encoding.UTF8, StorageListTypes.LocalStorage, TabTemplateContent); break; //Create file in the selected folder ! case ContentType.Folder: TabsCreatorAssistant.CreateNewTabInFolder(CurrentSelectedIDs.ID_TabsList, CurrentSelectedIDs, TextBoxNewFileProject.Text, Encoding.UTF8, StorageListTypes.LocalStorage, TabTemplateContent); break; } TextBoxNewFileProject.Text = ""; }
private async void ListTabs_SelectionChanged(object sender, SelectionChangedEventArgs e) { if (ListTabs.SelectedItem != null) { if (((TabID)ListTabs.SelectedItem).ID_Tab != GlobalVariables.CurrentIDs.ID_Tab) { CurrentSelectedIDs = (TabID)ListTabs.SelectedItem; var tab = TabsAccessManager.GetTabViaID(CurrentSelectedIDs); if (tab.TabContentType == ContentType.File) { int EncodingType = tab.TabEncoding; string TabType = ""; if (EncodingType == 0) { EncodingType = Encoding.UTF8.CodePage; } if (string.IsNullOrEmpty(tab.TabType)) { TabType = "TXT"; } else { TabType = tab.TabType.ToUpper(); } if (tab != null) { Messenger.Default.Send(new TabSelectedNotification { tabID = CurrentSelectedIDs.ID_Tab, tabsListID = CurrentSelectedIDs.ID_TabsList, code = await TabsAccessManager.GetTabContentViaIDAsync(CurrentSelectedIDs), contactType = ContactTypeSCEE.SetCodeForEditor, typeLanguage = TabType, typeCode = Encoding.GetEncoding(EncodingType).EncodingName }); } AppSettings.Values["Tabs_tab-selected-index"] = ((TabID)ListTabs.SelectedItem).ID_Tab; AppSettings.Values["Tabs_list-selected-index"] = ((TabID)ListTabs.SelectedItem).ID_TabsList; ListTabSelectionChanged?.Invoke(this, new EventArgs()); } } } }
private async void Accept_Click(object sender, RoutedEventArgs e) { OneDriveLoadStart(); InfosTab RequestedTab = TabsAccessManager.GetTabViaID(TabIDRequest); switch (CurrentExplorerMode) { case OnedriveExplorerMode.CreateFile: MemoryStream stream = new MemoryStream(); var file = await TabsDataCache.OneDriveClient.Drive.Items[CurrentTab.TabOriginalPathContent].ItemWithPath(RequestedTab.TabName).Content.Request().PutAsync <Item>(stream); RequestedTab.TabOriginalPathContent = file.Id; RequestedTab.TabDateModified = file.LastModifiedDateTime.ToString(); await TabsWriteManager.PushUpdateTabAsync(RequestedTab, TabIDRequest.ID_TabsList, false); break; case OnedriveExplorerMode.SelectFile: var tab = new InfosTab { TabName = CurrentTab.TabName, TabStorageMode = Storage.StorageListTypes.OneDrive, TabContentType = ContentType.File, CanBeDeleted = true, CanBeModified = true, TabOriginalPathContent = CurrentTab.TabOriginalPathContent, TabInvisibleByDefault = false, TabType = LanguagesHelper.GetLanguageType(CurrentTab.TabName) }; int id_tab = await TabsWriteManager.CreateTabAsync(tab, TabIDRequest.ID_TabsList, false); if (await new StorageRouter(TabsAccessManager.GetTabViaID(new TabID { ID_Tab = id_tab, ID_TabsList = TabIDRequest.ID_TabsList }), TabIDRequest.ID_TabsList).ReadFile(true)) { Messenger.Default.Send(new STSNotification { Type = TypeUpdateTab.NewTab, ID = new TabID { ID_Tab = id_tab, ID_TabsList = TabIDRequest.ID_TabsList } }); } break; } OnedriveLoadFinished(); try { Window.Current.Close(); } catch { } }
private void ChangeSelectedList(int id_list) { Tabs.Items.Clear(); CurrentSelectedIDs.ID_TabsList = id_list; List <int> list_ids = TabsAccessManager.GetTabsID(id_list); if (list_ids.Count == 0) { CreateDefaultTab(); } else { foreach (int id in list_ids) { Tabs.Items.Add(new TabID { ID_Tab = id, ID_TabsList = id_list }); if (GlobalVariables.CurrentIDs.ID_TabsList == CurrentSelectedIDs.ID_TabsList && GlobalVariables.CurrentIDs.ID_Tab == id) { Tabs.SelectedIndex = Tabs.Items.Count - 1; } //Select the last selected tab when TabsViewer is initialized if (AppSettings.Values.ContainsKey("Tabs_tab-selected-index")) { if (!LastTabLoaded && (int)AppSettings.Values["Tabs_tab-selected-index"] == id && (int)AppSettings.Values["Tabs_list-selected-index"] == id_list) { Tabs.SelectedIndex = Tabs.Items.Count - 1; LastTabLoaded = true; } } else { LastTabLoaded = true; } } } }
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; } }
public Tab getTabViaID(TabIDs id) { var tab = TabsAccessManager.GetTabViaID(new TabID { ID_Tab = id.tabID, ID_TabsList = id.listID }); Tab newTab = new Tab(); //Convert InfosTab (.NET Lib) to Tab (WinRT Component) newTab.id = id; newTab.dateTabContentUpdated = tab.DateTabContentUpdated; if (tab.TabOriginalPathContent == null) { newTab.pathContent = ""; } else { newTab.pathContent = tab.TabOriginalPathContent; } switch (tab.TabContentType) { case ContentType.File: newTab.tabContentType = ContentTypeInfos.File; break; case ContentType.Folder: newTab.tabContentType = ContentTypeInfos.Folder; break; } newTab.tabDateModified = tab.TabDateModified; newTab.tabName = tab.TabName; newTab.tabNewModifications = tab.TabNewModifications; newTab.tabType = tab.TabType; newTab.encoding = EncodingsHelper.EncodingName(tab.TabEncoding, tab.TabEncodingWithBOM); return(newTab); }
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(GlobalVariables.GlobalizationRessources.GetString("tabslist-defaultlistname")); } else { if (!AppSettings.Values.ContainsKey("Tabs_list-selected-index")) { Lists.SelectedIndex = 0; } } isLoaded = true; } }
public async Task WriteFile() { await DispatcherHelper.ExecuteOnUIThreadAsync(async() => { try { StorageFile file = await StorageFile.GetFileFromPathAsync(Tab.TabOriginalPathContent); if (file != null) { await FileIO.WriteTextAsync(file, string.Empty); Encoding TempEncoding = Encoding.GetEncoding(Tab.TabEncoding); if (TempEncoding == Encoding.UTF8 && !Tab.TabEncodingWithBOM) { TempEncoding = new UTF8Encoding(false); } string Content = await TabsAccessManager.GetTabContentViaIDAsync(new TabID { ID_Tab = Tab.ID, ID_TabsList = ListTabsID }); using (var rd = new StreamWriter(await file.OpenStreamForWriteAsync(), TempEncoding)) { rd.Write(Content); rd.Flush(); rd.Dispose(); } //Update DateModified (updated push with "PushUpdateTabAsync" in StorageRouter.WriteFile()) BasicProperties properties = await file.GetBasicPropertiesAsync(); Tab.TabDateModified = properties.DateModified.ToString(); if (TempEncoding.CodePage == Encoding.ASCII.CodePage && Tab.TabEncodingReplacingRequest != EncodingReplacingRequest.Never) { var stream = new MemoryStream(); var writer = new StreamWriter(stream); writer.Write(Content); writer.Flush(); stream.Position = 0; using (MemoryStream str = stream) { var cdet = new Ude.CharsetDetector(); cdet.Reset(); cdet.Feed(str); cdet.DataEnd(); if (cdet.Charset != null) { if (Encoding.GetEncoding(cdet.Charset).CodePage == Encoding.UTF8.CodePage) { await DispatcherHelper.ExecuteOnUIThreadAsync(async() => { MessageDialog Dialog = new MessageDialog(new ResourceLoader().GetString("popup-changeencodingcontent"), string.Format(new ResourceLoader().GetString("popup-changeencodingtitle"), TempEncoding.EncodingName, cdet.Charset)); Dialog.Commands.Add(new UICommand { Label = new ResourceLoader().GetString("popup-changeencodingaccept"), Invoked = async(e) => { Tab.TabEncoding = Encoding.GetEncoding(cdet.Charset).CodePage; Tab.TabEncodingWithBOM = false; Tab.TabEncodingReplacingRequest = EncodingReplacingRequest.NotRequested; await TabsWriteManager.PushUpdateTabAsync(Tab, ListTabsID, false); } }); Dialog.Commands.Add(new UICommand { Label = new ResourceLoader().GetString("popup-changeencodinglater"), Invoked = async(e) => { Tab.TabEncodingReplacingRequest = EncodingReplacingRequest.MaybeLater; await TabsWriteManager.PushUpdateTabAsync(Tab, ListTabsID, false); } }); Dialog.Commands.Add(new UICommand { Label = new ResourceLoader().GetString("popup-changeencodingno"), Invoked = async(e) => { Tab.TabEncodingReplacingRequest = EncodingReplacingRequest.Never; await TabsWriteManager.PushUpdateTabAsync(Tab, ListTabsID, false); } }); await Dialog.ShowAsync(); }); } } } } } } catch { await CreateFile().ContinueWith(async(e) => { if (e.Result) { await WriteFile(); } }); } }); }
private async void UpdateTabInformations() { //Set temp tab + tabs list ID try { current_tab = TabsAccessManager.GetTabViaID(new TabID { ID_Tab = current_tab.ID, ID_TabsList = current_list }); name_tab.Text = current_tab.TabName; switch (current_tab.TabContentType) { case ContentType.File: int ModuleIDIcon = LanguagesHelper.GetModuleIDOfLangageType(current_tab.TabType); TabIcon.Source = await ModulesAccessManager.GetModuleIconViaIDAsync(ModuleIDIcon, ModulesAccessManager.GetModuleViaID(ModuleIDIcon).ModuleSystem); if (!string.IsNullOrEmpty(current_tab.PathContent)) { path_tab.Text = current_tab.PathContent; encoding_file.Text = Encoding.GetEncoding(current_tab.TabEncoding).EncodingName; More_Tab.Visibility = Visibility.Visible; } else { More_Tab.Visibility = Visibility.Collapsed; } TabsListGrid.Visibility = Visibility.Collapsed; TabIcon.Visibility = Visibility.Visible; FolderIcon.Visibility = Visibility.Collapsed; StackInfos.Visibility = Visibility.Visible; break; case ContentType.Folder: More_Tab.Visibility = Visibility.Visible; TabsListGrid.Visibility = Visibility.Visible; StackInfos.Visibility = Visibility.Collapsed; TabIcon.Visibility = Visibility.Collapsed; FolderIcon.Visibility = Visibility.Visible; if (TempTabID != current_tab.ID && TabsList.ListID != current_list) { ShowInfos.Begin(); TabsList.ListTabs.Items.Clear(); TempTabID = current_tab.ID; TabsList.ListID = current_list; foreach (int ID in current_tab.FolderContent) { try { if (TabsAccessManager.GetTabViaID(new TabID { ID_Tab = ID, ID_TabsList = current_list }) != null) { TabsList.ListTabs.Items.Add(new TabID { ID_Tab = ID, ID_TabsList = current_list }); if ((int)AppSettings.Values["Tabs_tab-selected-index"] == ID && (int)AppSettings.Values["Tabs_list-selected-index"] == current_list) { TabsList.ListTabs.SelectedIndex = TabsList.ListTabs.Items.Count - 1; } } } catch { } } } break; } } catch { } }
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 { } }); }); }
/* ============= * = FUNCTIONS = * ============= */ public async void createTabFile() { await new StorageRouter(TabsAccessManager.GetTabViaID(new TabID { ID_Tab = id.tabID, ID_TabsList = id.listID }), id.listID).CreateFile(); }
public IAsyncOperation <string> getContent() { return(TabsAccessManager.GetTabContentViaIDAsync(new TabID { ID_Tab = id.tabID, ID_TabsList = id.listID }).AsAsyncOperation()); }
public async void saveContentToFile() { await new StorageRouter(TabsAccessManager.GetTabViaID(new TabID { ID_Tab = id.tabID, ID_TabsList = id.listID }), id.listID).WriteFile(); }
private async void UpdateTabInformations() { //Set temp tab + tabs list ID try { current_tab = TabsAccessManager.GetTabViaID(new TabID { ID_Tab = current_tab.ID, ID_TabsList = current_list }); name_tab.Text = current_tab.TabName; //Tooltip name ToolTip ButtonTooltip = new ToolTip(); ButtonTooltip.Content = current_tab.TabName; ToolTipService.SetToolTip(IconAndTabNameGrid, ButtonTooltip); switch (current_tab.TabContentType) { case ContentType.File: string ModuleIDIcon = LanguagesHelper.GetModuleIDOfLangageType(current_tab.TabType); TabIcon.Source = await ModulesAccessManager.GetModuleIconViaIDAsync(ModuleIDIcon, ModulesAccessManager.GetModuleViaID(ModuleIDIcon).ModuleSystem); if (!string.IsNullOrEmpty(current_tab.TabOriginalPathContent)) { switch (current_tab.TabStorageMode) { case StorageListTypes.LocalStorage: path_tab.Text = current_tab.TabOriginalPathContent; break; case StorageListTypes.OneDrive: path_tab.Text = "OneDrive file"; break; } Size_Stackpanel.Visibility = Visibility.Visible; Modified_Stackpanel.Visibility = Visibility.Visible; Created_Stackpanel.Visibility = Visibility.Visible; Rename_Tab.IsEnabled = false; } else { Size_Stackpanel.Visibility = Visibility.Collapsed; Modified_Stackpanel.Visibility = Visibility.Collapsed; Created_Stackpanel.Visibility = Visibility.Collapsed; Rename_Tab.IsEnabled = true; } Notification.ShowBadge = current_tab.TabNewModifications; TabsListGrid.Visibility = Visibility.Collapsed; TabIcon.Visibility = Visibility.Visible; FolderIcon.Visibility = Visibility.Collapsed; StackInfos.Visibility = Visibility.Visible; MaxHeightAnimShow.Value = 200; MaxHeightAnimRemove.Value = 200; break; case ContentType.Folder: Notification.ShowBadge = false; Rename_Tab.IsEnabled = false; More_Tab.Visibility = Visibility.Visible; TabsListGrid.Visibility = Visibility.Visible; StackInfos.Visibility = Visibility.Collapsed; TabIcon.Visibility = Visibility.Collapsed; FolderIcon.Visibility = Visibility.Visible; if (TempTabID != current_tab.ID && TabsList.ListID != current_list) { if (current_tab.FolderOpened) { ShowInfos.Begin(); infos_opened = true; } else { infos_opened = false; } TabsList.ListTabs.Items.Clear(); TempTabID = current_tab.ID; TabsList.ListID = current_list; foreach (int ID in current_tab.FolderContent) { try { if (TabsAccessManager.GetTabViaID(new TabID { ID_Tab = ID, ID_TabsList = current_list }) != null) { TabsList.ListTabs.Items.Add(new TabID { ID_Tab = ID, ID_TabsList = current_list }); if ((int)AppSettings.Values["Tabs_tab-selected-index"] == ID && (int)AppSettings.Values["Tabs_list-selected-index"] == current_list) { TabsList.ListTabs.SelectedIndex = TabsList.ListTabs.Items.Count - 1; } } } catch { } } } MaxHeightAnimShow.Value = 1500; MaxHeightAnimRemove.Value = 1500; break; } } catch { } }
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 { } }); }); }