/// <summary> /// Display the page and call /// </summary> /// <param name="page"></param> protected OperationState openPage(Controllable page) { FunctionalityType functionalityType = page.NavigationToken != null ? page.NavigationToken.FunctionalityType : FunctionalityType.MAIN_FONCTIONALITY; bool isSubFonctionality = functionalityType == FunctionalityType.SUB_FONCTIONALITY; if (page == null) { return(OperationState.CONTINUE); } if (ActivePage != null && ActivePage is FileController) { page.ParentController = ActivePage; } if (ActivePage == null || (!page.Equals(ActivePage) || !page.FunctionalityCode.Equals(ActivePage.FunctionalityCode))) { if (isSubFonctionality) { page.ParentController = ActivePage; } ActivePage = page; ApplicationManager.MainWindow.displayPage(page); if (!OpenedPages.Contains(page)) { OpenedPages.Add(page); } } return(OperationState.CONTINUE); }
/// <summary> /// Open the Search view for a functionality in creation mode /// </summary> /// <param name="token">NavigationToken</param> protected OperationState openSearchPage(NavigationToken token) { String functionality = token.Functionality; Controllable page = searchInOpenedPages(functionality); if (page == null) { page = ApplicationManager.ControllerFactory.GetController(functionality, token.ViewType, token.EditionMode); if (page == null) { return(openHomePage()); } OpenedPages.Add(page); page.NavigationToken = token; page.Initialize(); } openPage(page); page.Search(); if (token.ItemId != null) { int idmodel = int.Parse(token.ItemId.ToString()); page.Search(idmodel); } return(OperationState.CONTINUE); }
/// <summary> /// Procède à la fermeture de la page. /// </summary> /// <param name="page"></param> /// <returns></returns> public void OnClosePage(object param) { Controllable page = (Controllable)param; if (page == null) { return; } try { if (OpenedPages.Contains(page)) { OpenedPages.Remove(page); } if (ActivePage != null && ActivePage.Equals(page)) { ActivePage = null; FunctionalityType functionalityType = page.NavigationToken != null ? page.NavigationToken.FunctionalityType : FunctionalityType.MAIN_FONCTIONALITY; bool isSubFonctionality = functionalityType == FunctionalityType.SUB_FONCTIONALITY; if (isSubFonctionality && page.ParentController != null) { openPage(page.ParentController); } else if (OpenedPages.Count > 0) { openPage(OpenedPages[OpenedPages.Count - 1]); return; } else { openHomePage(); } } } catch (Exception e) { MessageDisplayer.DisplayError("Error", e.Message); return; } return; }
public void Dispose() { OpenedPages.DisposeAll(); _currentPageChanged.OnCompleted(); _openedPagesChanged.OnCompleted(); }
/// <summary> /// Open a Edition view for a fonctionality /// This method shall be called by the PageManager /// </summary> /// <param name="token">NavigationToken</param> protected OperationState openEditionPage(NavigationToken token) { Controllable page = null; try { String functionality = token.Functionality; if (functionality == FunctionalitiesCode.FILE_SAVE) { return(saveFile(token)); } page = searchInOpenedPages(functionality); if (page == null) { page = ApplicationManager.ControllerFactory.GetController(functionality, token.ViewType, token.EditionMode); if (page == null) { return(openHomePage()); } OpenedPages.Add(page); page.NavigationToken = token; page.Initialize(); } openPage(page); EditionMode editionMode = token.EditionMode; object oid = token.ItemId; if (editionMode == EditionMode.CREATE) { page.Create(); } else if (editionMode == EditionMode.READ_ONLY) { if (token.ItemIds.Count == 0) { page.Open(oid); } foreach (object id in token.ItemIds) { if (id != null) { page.Open(id); } } } else if (editionMode == EditionMode.MODIFY) { if (token.ItemIds.Count == 0) { page.Edit(oid); } foreach (object id in token.ItemIds) { if (id != null) { page.Edit(id); } } } } catch (Exception ex) { InternalErrorMessage = ex.Message; OnClosePage(page); } return(OperationState.CONTINUE); }
/// <summary> /// Display the page that corresponds to the history token /// If there is a valid history token, then navigate to the corresponding page /// otherwise open the home page /// </summary> /// <param name="token"></param> protected void OnOpenPage(object param) { NavigationToken token = (NavigationToken)param; Controllable page = null; try { string functionality = token.Functionality; if (functionality == FunctionalitiesCode.HELP_ABOUT) { OpenAboutDialog(); return; } if (functionality == FunctionalitiesCode.LOAD_TABLES_AND_GRIDS) { StartRunAllAllocation(); return; } if (functionality == FunctionalitiesCode.LOAD_CLEAR_TABLES_AND_GRIDS) { StartClearAllAllocation(); return; } if (functionality == FunctionalitiesCode.LOAD_LOG) { StartAllocationLog(); return; } if (functionality == FunctionalitiesCode.MULTIPLE_FILES_UPLOAD) { UploadMultipleFiles(); return; } if (functionality == FunctionalitiesCode.PROPERTIES_FUNCTIONALITY) { createProperties(); return; } if (functionality == FunctionalitiesCode.TRANSFORMATION_TREE_LOAD) { LoadTransformationTrees(false); return; } if (functionality == FunctionalitiesCode.TRANSFORMATION_TREE_CLEAR) { LoadTransformationTrees(true); return; } if (functionality == FunctionalitiesCode.FILE_SAVE) { token.currentActiveFunctionality = ActivePage.FunctionalityCode; } if (functionality == FunctionalitiesCode.FILE_SAVE_AS) { SaveFileAs(token); return; } if (functionality == FunctionalitiesCode.BACKUP_SIMPLE_FUNCTIONALITY || functionality == FunctionalitiesCode.BACKUP_AUTOMATIC_FUNCTIONALITY) { bool isSimpleBackup = functionality == FunctionalitiesCode.BACKUP_SIMPLE_FUNCTIONALITY; loadBackup(functionality, isSimpleBackup); return; } string tag = token.GetTag(); FunctionalityType functionalityType = token.FunctionalityType; ViewType viewType = token.ViewType; bool isMainFonctionality = functionalityType == FunctionalityType.MAIN_FONCTIONALITY; OperationState state = OperationState.CONTINUE; if (isMainFonctionality && !(ActivePage != null && ActivePage is FileController)) { string activefunctionality = ActivePage != null ? ActivePage.FunctionalityCode : null; page = searchInOpenedPages(activefunctionality); bool tryToSaveActivePage = page != null && activefunctionality != null && !activefunctionality.Equals(functionality); state = tryToSaveActivePage ? page.Close() : OperationState.CONTINUE; if (page != null && state == OperationState.CONTINUE) { OpenedPages.Remove(page); } } else { } if (state == OperationState.CONTINUE) { ApplicationManager.MainWindow.SetPogressBar1Visible(false); ApplicationManager.MainWindow.SetPogressBar2Visible(false); if (viewType == ViewType.LOGOUT) { tryToCloseApplication(); return; } else if (viewType == ViewType.EDITION) { this.openEditionPage(token); if (!String.IsNullOrEmpty(InternalErrorMessage)) { MessageDisplayer.DisplayError("Error", InternalErrorMessage); InternalErrorMessage = null; } } else { openSearchPage(token); } } } catch (Exception e) { MessageDisplayer.DisplayError("Error", e.Message); return; } return; }