/// <summary> /// Returns true if the Detail will be shown in the Tree /// </summary> /// <param name="lDetail"></param> /// <returns></returns> private bool CalculateShowInTree(IDetailController detail) { // If it has no role path, won't be shown in the Tree ExchangeInfoNavigation lNavInfo = detail.ExchangeInformation as ExchangeInfoNavigation; if (lNavInfo != null && lNavInfo.RolePath.Equals("")) { return(false); } // If it is a Master Detail and its Master is a Population with Filters, won't be shown in the Tree IUMasterDetailController lMasterDetail = detail as IUMasterDetailController; if (lMasterDetail != null) { IUPopulationController lPopulationController = lMasterDetail.Master as IUPopulationController; if (lPopulationController != null && lPopulationController.Filters.Count > 0) { return(false); } else { return(true); } } // It is not a Master Detail and its role path is not empty return(false); }
/// <summary> /// Process the RefreshDetailRequired event for any detail. /// </summary> /// <param name="sender"></param> protected void ProcessDetailRefreshDetailRequired(object sender) { IDetailController lDetail = sender as IDetailController; if (lDetail == null) { return; } // Update the detail. ExchangeInfoNavigation lInfoNav; ExchangeInfo lExchgInfo = lDetail.ExchangeInformation; lInfoNav = new ExchangeInfoNavigation(lExchgInfo as ExchangeInfoNavigation); if (Master.InstancesSelected != null && Master.InstancesSelected.Count == 1) { lInfoNav.SelectedOids = Master.InstancesSelected; } else { lInfoNav.SelectedOids = null; } lDetail.ExchangeInformation = lInfoNav; ClearLastOids(lDetail as IUQueryController); lDetail.UpdateData(true); }
/// <summary> /// Adds a detail unit to the interaction unit. /// </summary> /// <param name="controllerDetail">Detail controller</param> /// <returns>IUController</returns> public IDetailController AddDetail(IDetailController controllerDetail, string detailAlias, string idXMLDetailAlias) { Details.Add(controllerDetail); controllerDetail.RefreshMasterRequired += new EventHandler <RefreshRequiredMasterEventArgs>(HandleDetailRefreshMasterRequired); controllerDetail.DetailAlias = detailAlias; controllerDetail.IdXMLDetailAlias = idXMLDetailAlias; controllerDetail.RefreshDetailRequired += new EventHandler <EventArgs>(HandleDetailRefreshDetailRequired); controllerDetail.CloseMainScenario += new EventHandler <EventArgs>(HandleCloseMainScenario); return(controllerDetail); }
/// <summary> /// Initializes a new Tree node controller /// </summary> /// <param name="parentNodeId">Parent node identifier</param> /// <param name="id">Id</param> /// <param name="queryController">Detail Interface</param> /// <param name="instanceMasterController">Main Master Instance IU</param> /// <param name="isMainMaster">True if it is the Main Master</param> /// <param name="showGroupingNode">True if Grouping nodes must be shown</param> public TreeNodeController(string parentNodeId, string id, IDetailController queryController, IUInstanceController instanceMasterController, bool isMainMaster, bool showGroupingNode) { mRecursiveNodes = new List <TreeNodeController>(); Filters = new FilterControllerList(); mOriginalNode = null; ParentNodeId = parentNodeId; NodeId = id; mIsMainMaster = isMainMaster; ShowGroupingNode = showGroupingNode; ShowInTree = CalculateShowInTree(queryController); FinalNodeID = NodeId; InitializeNode(queryController); }
/// <summary> /// Initializes the nodes controller. /// </summary> private void InitializeNode(IDetailController queryController) { if (ShowInTree) { IUMasterDetailController masterDetailController = queryController as IUMasterDetailController; if (masterDetailController != null) { InitializeMasterDetailNode(masterDetailController, CalculateDetailsGroupingNode(masterDetailController)); } } else { // It is a final node, will not be shown in the Tree. FinalNodeQueryController = queryController; Alias = CultureManager.TranslateString(FinalNodeQueryController.IdXMLDetailAlias, FinalNodeQueryController.DetailAlias); } }
/// <summary> /// Initialize pagination state, for detail of this master. /// </summary> /// <param name="controller">Detail pattern controller.</param> /// <returns></returns> private bool ClearLastOids(IDetailController controller) { if (controller != null) { switch (controller.Context.ContextType) { case ContextType.Population: IUPopulationController lPopulationController = controller as IUPopulationController; if (lPopulationController != null) { if (lPopulationController.Context != null) { lPopulationController.Context.LastOids.Clear(); return(true); } } return(false); case ContextType.MasterDetail: IUMasterDetailController masterDetailController = controller as IUMasterDetailController; if (masterDetailController != null) { ClearLastOids(masterDetailController.Master); foreach (IDetailController lDetail in masterDetailController.Details) { if (!ClearLastOids(lDetail as IUMasterDetailController)) { ClearLastOids(lDetail); } } return(true); } break; default: return(true); } } return(true); }
/// <summary> /// Returns true if the Detail will be shown in the Tree /// </summary> /// <param name="lDetail"></param> /// <returns></returns> private bool CalculateShowInTree(IDetailController detail) { // If it has no role path, won't be shown in the Tree ExchangeInfoNavigation lNavInfo = detail.ExchangeInformation as ExchangeInfoNavigation; if (lNavInfo != null && lNavInfo.RolePath.Equals("")) { return false; } // If it is a Master Detail and its Master is a Population with Filters, won't be shown in the Tree IUMasterDetailController lMasterDetail = detail as IUMasterDetailController; if (lMasterDetail != null) { IUPopulationController lPopulationController = lMasterDetail.Master as IUPopulationController; if (lPopulationController != null && lPopulationController.Filters.Count > 0) { return false; } else { return true; } } // It is not a Master Detail and its role path is not empty return false; }
/// <summary> /// Initializes a new Tree node controller /// </summary> /// <param name="parentNodeId">Parent node identifier</param> /// <param name="id">Id</param> /// <param name="queryController">Detail Interface</param> /// <param name="instanceMasterController">Main Master Instance IU</param> /// <param name="isMainMaster">True if it is the Main Master</param> /// <param name="showGroupingNode">True if Grouping nodes must be shown</param> public TreeNodeController(string parentNodeId, string id, IDetailController queryController, IUInstanceController instanceMasterController, bool isMainMaster, bool showGroupingNode) { mRecursiveNodes = new List<TreeNodeController>(); Filters = new FilterControllerList(); mOriginalNode = null; ParentNodeId = parentNodeId; NodeId = id; mIsMainMaster = isMainMaster; ShowGroupingNode = showGroupingNode; ShowInTree = CalculateShowInTree(queryController); FinalNodeID = NodeId; InitializeNode(queryController); }
/// <summary> /// Initializes the nodes controller. /// </summary> private void InitializeNode(IDetailController queryController) { if (ShowInTree) { IUMasterDetailController masterDetailController = queryController as IUMasterDetailController; if (masterDetailController != null) InitializeMasterDetailNode(masterDetailController, CalculateDetailsGroupingNode(masterDetailController)); } else { // It is a final node, will not be shown in the Tree. FinalNodeQueryController = queryController; Alias = CultureManager.TranslateString(FinalNodeQueryController.IdXMLDetailAlias, FinalNodeQueryController.DetailAlias); } }
public void SetController(IDetailController uiController) { _uiController = uiController; }
/// <summary> /// Initialize pagination state, for detail of this master. /// </summary> /// <param name="controller">Detail pattern controller.</param> /// <returns></returns> private bool ClearLastOids(IDetailController controller) { if (controller != null) { switch (controller.Context.ContextType) { case ContextType.Population: IUPopulationController lPopulationController = controller as IUPopulationController; if (lPopulationController != null) { if (lPopulationController.Context != null) { lPopulationController.Context.LastOids.Clear(); return true; } } return false; case ContextType.MasterDetail: IUMasterDetailController masterDetailController = controller as IUMasterDetailController; if (masterDetailController != null) { ClearLastOids(masterDetailController.Master); foreach (IDetailController lDetail in masterDetailController.Details) { if (!ClearLastOids(lDetail as IUMasterDetailController)) { ClearLastOids(lDetail); } } return true; } break; default: return true; } } return true; }
/// <summary> /// Adds a detail unit to the interaction unit. /// </summary> /// <param name="controllerDetail">Detail controller</param> /// <returns>IUController</returns> public IDetailController AddDetail(IDetailController controllerDetail, string detailAlias, string idXMLDetailAlias) { Details.Add(controllerDetail); controllerDetail.RefreshMasterRequired += new EventHandler<RefreshRequiredMasterEventArgs>(HandleDetailRefreshMasterRequired); controllerDetail.DetailAlias = detailAlias; controllerDetail.IdXMLDetailAlias = idXMLDetailAlias; controllerDetail.RefreshDetailRequired += new EventHandler<EventArgs>(HandleDetailRefreshDetailRequired); controllerDetail.CloseMainScenario += new EventHandler<EventArgs>(HandleCloseMainScenario); return controllerDetail; }