private void customizeContextMenuForSelection() { int count = this.GetBrowser().Form.Grid.SelectedItems.Count; bool itemsSelected = count > 0; bool create = true; bool saveAs = count == 1; bool delete = count == 1; if (count == 1) { BrowserData item = (BrowserData)this.GetBrowser().Form.Grid.SelectedItem; List <Right> rights = null; PrivilegeObserver observer = new PrivilegeObserver(); if (!ApplicationManager.User.IsAdmin()) { RightService service = ApplicationManager.ControllerFactory.ServiceFactory.GetRightService(); rights = service.getUserRights(this.SubjectType.label, item.oid); } saveAs = RightsUtil.HasRight(Domain.RightType.SAVE_AS, rights); delete = RightsUtil.HasRight(Domain.RightType.DELETE, rights); create = observer.hasPrivilege(this.FunctionalityCode, Domain.RightType.CREATE); } this.GetBrowser().Form.Grid.NewMenuItem.IsEnabled = create; this.GetBrowser().Form.Grid.OpenMenuItem.IsEnabled = itemsSelected; //this.GetBrowser().Form.Grid.RenameMenuItem.IsEnabled = saveAs && count == 1; this.GetBrowser().Form.Grid.SaveAsMenuItem.IsEnabled = saveAs && count == 1; //this.GetBrowser().Form.Grid.CopyMenuItem.IsEnabled = itemsSelected && create; //this.GetBrowser().Form.Grid.PasteMenuItem.IsEnabled = create; this.GetBrowser().Form.Grid.DeleteMenuItem.IsEnabled = itemsSelected && delete; customizeContextMenu(); }
public virtual void CustomizeForUser(EditorItem <T> page) { List <Right> rights = null; PrivilegeObserver observer = new PrivilegeObserver(); if (!ApplicationManager.User.IsAdmin() && page.EditedObject.oid.HasValue) { RightService service = ApplicationManager.ControllerFactory.ServiceFactory.GetRightService(); rights = service.getUserRights(this.SubjectType.label, page.EditedObject.oid.Value); } if (this.ToolBar != null) { this.ToolBar.Customize(this.FunctionalityCode, observer, rights, page.IsReadOnly); } if (this.SideBar != null) { this.SideBar.Customize(rights, page.IsReadOnly); } CustomizeContexMenu(observer, rights, page); bool edit = RightsUtil.HasRight(Domain.RightType.EDIT, rights); page.CanRename = edit && !page.IsReadOnly; page.CanSave = edit; }
/// <summary> /// Customize toolbar for connected user /// </summary> /// <param name="rights"></param> /// <param name="readOnly"></param> public virtual void Customize(String fuctionality, PrivilegeObserver observer, List <Domain.Right> rights, bool readOnly = false) { bool create = observer.hasPrivilege(fuctionality, Domain.RightType.CREATE); bool edit = RightsUtil.HasRight(Domain.RightType.EDIT, rights); SaveButton.Visibility = edit && !readOnly ? Visibility.Visible : Visibility.Collapsed; NewButton.Visibility = create && !readOnly ? Visibility.Visible : Visibility.Collapsed; }
public override void Customize(String fuctionality, PrivilegeObserver observer, List <Kernel.Domain.Right> rights, bool readOnly = false) { base.Customize(fuctionality, observer, rights, readOnly); bool hasRight = RightsUtil.HasRight(new Kernel.Domain.RightType[] { Kernel.Domain.RightType.EDIT, Kernel.Domain.RightType.CLEAR, Kernel.Domain.RightType.LOAD }, rights); saveClearRunButton.Visibility = hasRight && !readOnly ? Visibility.Visible : Visibility.Collapsed; runButton.Visibility = RightsUtil.HasRight(RightType.LOAD, rights) && !readOnly ? Visibility.Visible : Visibility.Collapsed; clearButton.Visibility = RightsUtil.HasRight(RightType.CLEAR, rights) && !readOnly ? Visibility.Visible : Visibility.Collapsed; //saveAsButton.Visibility = RightsUtil.HasRight(RightType.SAVE_AS, rights) && !readOnly ? Visibility.Visible : Visibility.Collapsed; applyToAllCheckBox.Visibility = runButton.Visibility == Visibility.Visible || clearButton.Visibility == Visibility.Visible ? Visibility.Visible : Visibility.Collapsed; }
/// <summary> /// Effectue l'initialisation du controller. /// On initialize la vue et on met this.IsModify = false /// </summary> /// <returns> /// OperationState.CONTINUE si l'opération a réussi /// OperationState.STOP sinon /// </returns> public override OperationState Initialize() { base.Initialize(); List <Right> rights = null; PrivilegeObserver observer = new PrivilegeObserver(); if (this.ToolBar != null) { this.ToolBar.Customize(this.FunctionalityCode, observer, rights, false); } bool edit = observer.hasPrivilege(this.FunctionalityCode, Domain.RightType.CREATE); GetBrowser().SetReadOnly(!edit); return(OperationState.CONTINUE); }
protected virtual void InitializeNewPage(String functionality) { PrivilegeObserver observer = new PrivilegeObserver(); bool create = observer.hasPrivilege(functionality, RightType.CREATE); if (create) { NewPage = getNewPage(); NewPage.CanClose = false; NewPage.CanFloat = false; NewPage.Title = "+"; newPageEventHandler = new EventHandler(this.OnNewPageSelected); NewPage.IsActiveChanged += newPageEventHandler; } }
public void BuildCategories() { observer = new PrivilegeObserver(); this.DashboardBar.ClearStandard(); foreach (Plugin.IPlugin plugin in ApplicationManager.Instance.Plugins) { foreach (NavCategory category in plugin.NavDashboardCategories) { if (CheckUserRights(category)) { this.DashboardBar.AddStandardCategory(category); } } } }
public virtual void CustomizeContexMenu(PrivilegeObserver observer, List <Right> rights, EditorItem <T> page) { if (page != null) { bool edit = RightsUtil.HasRight(Domain.RightType.EDIT, rights); bool saveAs = RightsUtil.HasRight(Domain.RightType.SAVE_AS, rights); bool delete = RightsUtil.HasRight(Domain.RightType.DELETE, rights); bool create = observer.hasPrivilege(this.FunctionalityCode, Domain.RightType.CREATE); RefreshMenuItem.Visibility = !page.IsReadOnly ? Visibility.Visible : Visibility.Collapsed; DeleteMenuItem.Visibility = delete && !page.IsReadOnly ? Visibility.Visible : Visibility.Collapsed; SaveAsMenuItem.Visibility = saveAs && !page.IsReadOnly ? Visibility.Visible : Visibility.Collapsed; SaveMenuItem.Visibility = edit && !page.IsReadOnly ? Visibility.Visible : Visibility.Collapsed; RenameMenuItem.Visibility = saveAs && !page.IsReadOnly ? Visibility.Visible : Visibility.Collapsed; NewMenuItem.Visibility = create ? Visibility.Visible : Visibility.Collapsed; } }
public override void Customize(String fuctionality, PrivilegeObserver observer, List <Kernel.Domain.Right> rights, bool readOnly = false) { base.Customize(fuctionality, observer, rights, readOnly); LoadButton.Visibility = RightsUtil.HasRight(RightType.LOAD, rights) && !readOnly ? Visibility.Visible : Visibility.Collapsed; ClearButton.Visibility = RightsUtil.HasRight(RightType.CLEAR, rights) && !readOnly ? Visibility.Visible : Visibility.Collapsed; }
/// <summary> /// Customize toolbar for connected user /// </summary> /// <param name="rights"></param> /// <param name="readOnly"></param> public override void Customize(String fuctionality, PrivilegeObserver observer, List <Domain.Right> rights, bool readOnly = false) { base.Customize(fuctionality, observer, rights, readOnly); SaveButton.Visibility = System.Windows.Visibility.Collapsed; }
public virtual ApplicationMenu customize(PrivilegeObserver observer) { if (observer.user == null || !observer.user.active.Value) { return(null); } if (observer.user.IsAdmin()) { return(this); } if (observer.user.profil == null || !observer.user.profil.active) { return(null); } String code = this.GetFunctionalityCode(); RightType?rightType = this.RightType; if (!string.IsNullOrWhiteSpace(code)) { if (rightType.HasValue) { if (observer.hasPrivilege(code, rightType.Value)) { return(this); } } else if (observer.hasPrivilege(code)) { return(this); } } List <String> list = new List <String>(0); list.Add(FunctionalitiesCode.FILE_QUIT); list.Add(FunctionalitiesCode.FILE_SAVE); list.Add(FunctionalitiesCode.FILE_SAVE_AS); list.Add(FunctionalitiesCode.HELP); if (!string.IsNullOrWhiteSpace(code) && list.Contains(code)) { return(this); } int added = 0; List <Object> controls = new List <Object>(0); foreach (Control control in Items) { if (control is ApplicationMenu) { ApplicationMenu menu = (ApplicationMenu)control; ApplicationMenu other = menu.customize(observer); if (other != null) { added++; } else { controls.Add(menu); } } } foreach (Control control in controls) { Items.Remove(control); } if (added <= 0) { return(null); } return(this); }
public void InitializeBlocks() { observer = new PrivilegeObserver(); this.ModelBlock = buildBlock(FunctionalitiesLabel.INITIATION_MODEL_LABEL, FunctionalitiesLabel.INITIATION_NEW_MODEL_LABEL, FunctionalitiesLabel.INITIATION_RECENT_MODEL_LABEL, FunctionalitiesCode.INITIATION_MODEL); this.TableBlock = buildBlock(FunctionalitiesLabel.INPUT_TABLE_DASHBOARD_LABEL, FunctionalitiesLabel.NEW_INPUT_TABLE_LABEL, FunctionalitiesLabel.RECENT_INPUT_TABLE_LABEL, FunctionalitiesCode.INPUT_TABLE_EDIT); this.ReportBlock = buildBlock(FunctionalitiesLabel.REPORT_TABLE_DASHBOARD_LABEL, FunctionalitiesLabel.NEW_REPORT_LABEL, FunctionalitiesLabel.RECENT_REPORT_LABEL, FunctionalitiesCode.REPORT_EDIT); this.StructuredReportBlock = buildBlock(FunctionalitiesLabel.STRUCTURED_REPORT_DASHBOARD_LABEL, FunctionalitiesLabel.NEW_STRUCTURED_REPORT_LABEL, FunctionalitiesLabel.RECENT_STRUCTURED_REPORT_LABEL, FunctionalitiesCode.STRUCTURED_REPORT_EDIT); this.TreeBlock = buildBlock(FunctionalitiesLabel.TRANSFORMATION_TREE_DASHBOARD_LABEL, FunctionalitiesLabel.NEW_TRANSFORMATION_TREE_LABEL, FunctionalitiesLabel.RECENT_TRANSFORMATION_TREE_LABEL, FunctionalitiesCode.TRANSFORMATION_TREE_EDIT); this.CombinedTreeBlock = buildBlock(FunctionalitiesLabel.COMBINED_TRANSFORMATION_TREE_DASHBOARD_LABEL, FunctionalitiesLabel.NEW_COMBINED_TRANSFORMATION_TREES_LABEL, FunctionalitiesLabel.RECENT_TRANSFORMATION_TREE_LABEL, FunctionalitiesCode.COMBINED_TRANSFORMATION_TREES_EDIT); this.TargetBlock = buildBlock(FunctionalitiesLabel.TARGET_DASHBOARD_LABEL, FunctionalitiesLabel.NEW_TARGET_LABEL, FunctionalitiesLabel.RECENT_TARGET_LABEL, FunctionalitiesCode.TARGET_EDIT); this.DesignBlock = buildBlock(FunctionalitiesLabel.DESIGN_DASHBOARD_LABEL, FunctionalitiesLabel.NEW_DESIGN_LABEL, FunctionalitiesLabel.RECENT_TARGET_LABEL, FunctionalitiesCode.DESIGN_EDIT); this.CalculatedMeasureBlock = buildBlock(FunctionalitiesLabel.CALCULATED_MEASURE_DASHBOARD_LABEL, FunctionalitiesLabel.NEW_CALCULATED_MEASURE_LABEL, FunctionalitiesLabel.RECENT_CALCULATED_MEASURE_LABEL, FunctionalitiesCode.CALCULATED_MEASURE_EDIT); this.AutomaticUploadBlock = buildBlock(FunctionalitiesLabel.AUTOMATIC_SOURCING_DASHBOARD_LABEL, FunctionalitiesLabel.NEW_AUTOMATIC_SOURCING_LABEL, FunctionalitiesLabel.RECENT_AUTOMATIC_SOURCING_LABEL, FunctionalitiesCode.AUTOMATIC_SOURCING_EDIT); this.InputGridBlock = buildBlock(FunctionalitiesLabel.INPUT_GRID_LABEL, FunctionalitiesLabel.NEW_INPUT_GRID_LABEL, FunctionalitiesLabel.RECENT_INPUT_GRID_LABEL, FunctionalitiesCode.INPUT_TABLE_GRID_EDIT); this.ReportGridBlock = buildBlock(FunctionalitiesLabel.REPORT_GRID_LABEL, FunctionalitiesLabel.NEW_REPORT_GRID_LABEL, FunctionalitiesLabel.RECENT_REPORT_GRID_LABEL, FunctionalitiesCode.REPORT_GRID_EDIT); this.AutomaticGridBlock = buildBlock(FunctionalitiesLabel.AUTOMATIC_GRID_DASHBOARD_LABEL, FunctionalitiesLabel.NEW_AUTOMATIC_GRID_LABEL, FunctionalitiesLabel.RECENT_AUTOMATIC_GRID_LABEL, FunctionalitiesCode.AUTOMATIC_INPUT_TABLE_GRID_EDIT); this.AutomaticTargetBlock = buildBlock(FunctionalitiesLabel.AUTOMATIC_TARGET_DASHBOARD_LABEL, FunctionalitiesLabel.NEW_AUTOMATIC_TARGET_LABEL, FunctionalitiesLabel.RECENT_AUTOMATIC_TARGET_LABEL, FunctionalitiesCode.AUTOMATIC_TARGET_EDIT); this.AutomaticEnrichmentTableBlock = buildBlock(FunctionalitiesLabel.AUTOMATIC_ENRICHMENT_TABLE_DASHBOARD_LABEL, FunctionalitiesLabel.NEW_AUTOMATIC_ENRICHMENT_TABLE_LABEL, FunctionalitiesLabel.RECENT_AUTOMATIC_ENRICHMENT_TABLE_LABEL, FunctionalitiesCode.AUTOMATIC_ENRICHMENT_TABLE_EDIT); this.EnrichmentTableBlock = buildBlock(FunctionalitiesLabel.ENRICHMENT_TABLE_DASHBOARD_LABEL, FunctionalitiesLabel.NEW_ENRICHMENT_TABLE_LABEL, FunctionalitiesLabel.RECENT_ENRICHMENT_TABLE_LABEL, FunctionalitiesCode.ENRICHMENT_TABLE_EDIT); this.LinkedAttributeGridBlock = buildBlock(FunctionalitiesLabel.LINKED_ATTRIBUTE_GRID_LABEL, FunctionalitiesLabel.LINKED_ATTRIBUTE_GRID_LABEL, FunctionalitiesLabel.RECENT_LINKED_ATTRIBUTE_GRID_LABEL, FunctionalitiesCode.LINKED_ATTRIBUTE_GRID); if (ApplicationManager.Instance.ApplcationConfiguration.IsReconciliationDomain()) { this.ReconciliationFilterBlock = buildBlock(FunctionalitiesLabel.RECONCILIATION_FILTER_DASHBOARD_LABEL, FunctionalitiesLabel.NEW_RECONCILIATION_FILTER_LABEL, FunctionalitiesLabel.RECENT_RECONCILIATION_LABEL, FunctionalitiesCode.RECONCILIATION_FILTER_EDIT); } Dictionary <string, object> dico = new Dictionary <string, object>(0); if (this.AutomaticUploadBlock != null) { dico.Add(this.AutomaticUploadBlock.TitleLabel.Content.ToString(), this.AutomaticUploadBlock); } if (this.CalculatedMeasureBlock != null) { dico.Add(this.CalculatedMeasureBlock.TitleLabel.Content.ToString(), this.CalculatedMeasureBlock); } if (this.CombinedTreeBlock != null) { dico.Add(this.CombinedTreeBlock.TitleLabel.Content.ToString(), this.CombinedTreeBlock); } if (this.DesignBlock != null) { dico.Add(this.DesignBlock.TitleLabel.Content.ToString(), this.DesignBlock); } if (this.TableBlock != null) { dico.Add(this.TableBlock.TitleLabel.Content.ToString(), this.TableBlock); } if (this.ModelBlock != null) { dico.Add(this.ModelBlock.TitleLabel.Content.ToString(), this.ModelBlock); } if (this.ReportBlock != null) { dico.Add(this.ReportBlock.TitleLabel.Content.ToString(), this.ReportBlock); } if (this.StructuredReportBlock != null) { dico.Add(this.StructuredReportBlock.TitleLabel.Content.ToString(), this.StructuredReportBlock); } if (this.TargetBlock != null) { dico.Add(this.TargetBlock.TitleLabel.Content.ToString(), this.TargetBlock); } if (this.TreeBlock != null) { dico.Add(this.TreeBlock.TitleLabel.Content.ToString(), this.TreeBlock); } if (this.AutomaticGridBlock != null) { dico.Add(this.AutomaticGridBlock.TitleLabel.Content.ToString(), this.AutomaticGridBlock); } if (this.InputGridBlock != null) { dico.Add(this.InputGridBlock.TitleLabel.Content.ToString(), this.InputGridBlock); } if (this.ReportGridBlock != null) { dico.Add(this.ReportGridBlock.TitleLabel.Content.ToString(), this.ReportGridBlock); } if (this.AutomaticTargetBlock != null) { dico.Add(this.AutomaticTargetBlock.TitleLabel.Content.ToString(), this.AutomaticTargetBlock); } if (this.ReconciliationFilterBlock != null) { dico.Add(this.ReconciliationFilterBlock.TitleLabel.Content.ToString(), this.TreeBlock); } if (this.AutomaticEnrichmentTableBlock != null) { dico.Add(this.AutomaticEnrichmentTableBlock.TitleLabel.Content.ToString(), this.TreeBlock); } if (this.EnrichmentTableBlock != null) { dico.Add(this.EnrichmentTableBlock.TitleLabel.Content.ToString(), this.TreeBlock); } if (this.LinkedAttributeGridBlock != null) { dico.Add(this.LinkedAttributeGridBlock.TitleLabel.Content.ToString(), this.LinkedAttributeGridBlock); } this.MultiSelectorCombobox.ItemsSource = dico; this.MultiSelectorCombobox.checkBoxHandler -= OnSelectionChanged; this.MultiSelectorCombobox.checkBoxHandler += OnSelectionChanged; }