Skip to content

Commit

Permalink
applied visibility to task tabs
Browse files Browse the repository at this point in the history
  • Loading branch information
KaterynaHonchar committed Mar 4, 2020
1 parent fd65e97 commit 1c6de78
Show file tree
Hide file tree
Showing 7 changed files with 191 additions and 62 deletions.
Expand Up @@ -14,7 +14,7 @@
/**
* Created by honchar.
*/
public class HistoryPageTabVisibleBehavior<O extends ObjectType> extends FocusTabVisibleBehavior<O>{
public class HistoryPageTabVisibleBehavior<O extends ObjectType> extends ObjectTabVisibleBehavior<O> {
private static final long serialVersionUID = 1L;

private boolean visibleOnHistoryPage = false;
Expand Down
Expand Up @@ -37,16 +37,16 @@
/**
* Created by Viliam Repan (lazyman).
*/
public class FocusTabVisibleBehavior<O extends ObjectType> extends VisibleEnableBehaviour {
public class ObjectTabVisibleBehavior<O extends ObjectType> extends VisibleEnableBehaviour {
private static final long serialVersionUID = 1L;

private static final String OPERATION_LOAD_GUI_CONFIGURATION = FocusTabVisibleBehavior.class.getName() + ".loadGuiConfiguration";
private static final String OPERATION_LOAD_GUI_CONFIGURATION = ObjectTabVisibleBehavior.class.getName() + ".loadGuiConfiguration";

private IModel<PrismObject<O>> objectModel;
private String uiAuthorizationUrl;
private PageBase pageBase;

public FocusTabVisibleBehavior(IModel<PrismObject<O>> objectModel, String uiAuthorizationUrl, PageBase pageBase) {
public ObjectTabVisibleBehavior(IModel<PrismObject<O>> objectModel, String uiAuthorizationUrl, PageBase pageBase) {
this.objectModel = objectModel;
this.uiAuthorizationUrl = uiAuthorizationUrl;
this.pageBase = pageBase;
Expand Down
Expand Up @@ -28,7 +28,6 @@
import com.evolveum.midpoint.gui.api.prism.PrismContainerWrapper;
import com.evolveum.midpoint.gui.api.prism.PrismObjectWrapper;
import com.evolveum.midpoint.gui.api.prism.ShadowWrapper;
import com.evolveum.midpoint.gui.api.util.FocusTabVisibleBehavior;
import com.evolveum.midpoint.gui.api.util.WebComponentUtil;
import com.evolveum.midpoint.prism.PrismObject;
import com.evolveum.midpoint.prism.query.ObjectQuery;
Expand All @@ -48,7 +47,6 @@
import com.evolveum.midpoint.web.page.admin.PageAdminObjectDetails;
import com.evolveum.midpoint.web.page.admin.roles.AbstractRoleMemberPanel;
import com.evolveum.midpoint.web.page.admin.roles.AvailableRelationDto;
import com.evolveum.midpoint.web.page.admin.users.dto.FocusSubwrapperDto;
import com.evolveum.midpoint.web.page.admin.users.dto.UserDtoStatus;
import com.evolveum.midpoint.web.page.self.PageAssignmentShoppingCart;
import com.evolveum.midpoint.web.security.GuiAuthorizationConstants;
Expand All @@ -60,7 +58,6 @@
import com.evolveum.midpoint.xml.ns._public.common.common_3.OrgType;
import com.evolveum.midpoint.xml.ns._public.common.common_3.RoleType;
import com.evolveum.midpoint.xml.ns._public.common.common_3.ServiceType;
import com.evolveum.midpoint.xml.ns._public.common.common_3.ShadowType;
import com.evolveum.midpoint.xml.ns._public.common.common_3.UserType;

/**
Expand Down
Expand Up @@ -11,7 +11,7 @@
import com.evolveum.midpoint.gui.api.component.tabs.PanelTab;
import com.evolveum.midpoint.gui.api.model.LoadableModel;
import com.evolveum.midpoint.gui.api.prism.PrismObjectWrapper;
import com.evolveum.midpoint.gui.api.util.FocusTabVisibleBehavior;
import com.evolveum.midpoint.gui.api.util.ObjectTabVisibleBehavior;
import com.evolveum.midpoint.gui.api.util.HistoryPageTabVisibleBehavior;
import com.evolveum.midpoint.prism.PrismObject;
import com.evolveum.midpoint.web.component.assignment.AssignmentsUtil;
Expand Down Expand Up @@ -92,11 +92,11 @@ public PrismObject<AHT> getObject() {
};
}

protected FocusTabVisibleBehavior getTabVisibility(String authUrl, boolean isVisibleOnHistoryPage, PageAdminObjectDetails<AHT> parentPage){
protected ObjectTabVisibleBehavior getTabVisibility(String authUrl, boolean isVisibleOnHistoryPage, PageAdminObjectDetails<AHT> parentPage){
if (isFocusHistoryPage()){
return new HistoryPageTabVisibleBehavior<AHT>(unwrapModel(), authUrl, isVisibleOnHistoryPage, parentPage);
} else {
return new FocusTabVisibleBehavior<AHT>(unwrapModel(), authUrl, parentPage);
return new ObjectTabVisibleBehavior<AHT>(unwrapModel(), authUrl, parentPage);
}
}

Expand Down
@@ -1,9 +1,11 @@
package com.evolveum.midpoint.web.page.admin.server;

import com.evolveum.midpoint.gui.api.GuiStyleConstants;
import com.evolveum.midpoint.gui.api.component.tabs.PanelTab;
import com.evolveum.midpoint.gui.api.model.LoadableModel;
import com.evolveum.midpoint.gui.api.prism.PrismContainerWrapper;
import com.evolveum.midpoint.gui.api.prism.PrismObjectWrapper;
import com.evolveum.midpoint.gui.api.util.ObjectTabVisibleBehavior;
import com.evolveum.midpoint.gui.api.util.WebComponentUtil;
import com.evolveum.midpoint.gui.impl.prism.ItemEditabilityHandler;
import com.evolveum.midpoint.gui.impl.prism.ItemPanelSettingsBuilder;
Expand Down Expand Up @@ -317,7 +319,6 @@ protected TaskType load() {
@Override
protected AbstractObjectMainPanel<TaskType> createMainPanel(String id) {

//TODO add visibility for each tab, look at the TaskTabsVisibility
return new AbstractObjectMainPanel<TaskType>(id, getObjectModel(), this) {

@Override
Expand All @@ -328,41 +329,104 @@ protected boolean getOptionsPanelVisibility() {
@Override
protected List<ITab> createTabs(PageAdminObjectDetails<TaskType> parentPage) {
List<ITab> tabs = new ArrayList<>();
tabs.add(new AbstractTab(createStringResource("pageTask.basic.title")) {
TaskTabsVisibility taskTabsVisibility = new TaskTabsVisibility();
taskTabsVisibility.computeAll(PageTask.this, getObjectWrapper());

ObjectTabVisibleBehavior<TaskType> basicTabVisibility = new ObjectTabVisibleBehavior<TaskType>
(Model.of(getObjectWrapper().getObject()), "", PageTask.this){

private static final long serialVersionUID = 1L;

@Override
public boolean isVisible(){
return taskTabsVisibility.isBasicVisible();
}
};
tabs.add(new PanelTab(createStringResource("pageTask.basic.title"), basicTabVisibility) {
private static final long serialVersionUID = 1L;

@Override
public WebMarkupContainer getPanel(String panelId) {
public WebMarkupContainer createPanel(String panelId) {
ItemVisibilityHandler visibilityHandler = wrapper -> getBasicTabVisibility(wrapper.getPath());
return createContainerPanel(panelId, TaskType.COMPLEX_TYPE, getObjectModel(), visibilityHandler);
}
});

tabs.add(new AbstractTab(createStringResource("pageTask.schedule.title")) {
ObjectTabVisibleBehavior<TaskType> scheduleTabVisibility = new ObjectTabVisibleBehavior<TaskType>
(Model.of(getObjectWrapper().getObject()), "", PageTask.this){

private static final long serialVersionUID = 1L;

@Override
public WebMarkupContainer getPanel(String panelId) {
public boolean isVisible(){
return taskTabsVisibility.isSchedulingVisible();
}
};
tabs.add(new PanelTab(createStringResource("pageTask.schedule.title"), scheduleTabVisibility) {
private static final long serialVersionUID = 1L;

@Override
public WebMarkupContainer createPanel(String panelId) {
ItemVisibilityHandler visibilityHandler = wrapper -> ItemVisibility.AUTO;
return createContainerPanel(panelId, TaskType.COMPLEX_TYPE, PrismContainerWrapperModel.fromContainerWrapper(getObjectModel(), TaskType.F_SCHEDULE), visibilityHandler);
}
});

tabs.add(new AbstractTab(createStringResource("pageTask.workManagement.title")) {
ObjectTabVisibleBehavior<TaskType> workManagementTabVisibility = new ObjectTabVisibleBehavior<TaskType>
(Model.of(getObjectWrapper().getObject()), "", PageTask.this){

private static final long serialVersionUID = 1L;

@Override
public WebMarkupContainer getPanel(String panelId) {
public boolean isVisible(){
return taskTabsVisibility.isWorkManagementVisible();
}
};
tabs.add(new PanelTab(createStringResource("pageTask.workManagement.title"), workManagementTabVisibility) {
private static final long serialVersionUID = 1L;

@Override
public WebMarkupContainer createPanel(String panelId) {
ItemVisibilityHandler visibilityHandler = wrapper -> ItemVisibility.AUTO;
return createContainerPanel(panelId, TaskType.COMPLEX_TYPE, PrismContainerWrapperModel.fromContainerWrapper(getObjectModel(), TaskType.F_WORK_MANAGEMENT), visibilityHandler);
}
});

tabs.add(new AbstractTab(createStringResource("pageTask.cleanupPolicies.title")) {
ObjectTabVisibleBehavior<TaskType> cleanupPoliciesTabVisibility = new ObjectTabVisibleBehavior<TaskType>
(Model.of(getObjectWrapper().getObject()), "", PageTask.this){

private static final long serialVersionUID = 1L;

@Override
public WebMarkupContainer getPanel(String panelId) {
public boolean isVisible(){
return taskTabsVisibility.isCleanupPolicyVisible();
}
};
tabs.add(new PanelTab(createStringResource("pageTask.cleanupPolicies.title"), cleanupPoliciesTabVisibility) {
private static final long serialVersionUID = 1L;

@Override
public WebMarkupContainer createPanel(String panelId) {
ItemVisibilityHandler visibilityHandler = wrapper -> ItemVisibility.AUTO;
return createContainerPanel(panelId, TaskType.COMPLEX_TYPE, PrismContainerWrapperModel.fromContainerWrapper(getObjectModel(), ItemPath.create(TaskType.F_EXTENSION, SchemaConstants.MODEL_EXTENSION_CLEANUP_POLICIES)), visibilityHandler);
}
});

tabs.add(new AbstractTab(createStringResource("pageTask.subtasks.title")) {
ObjectTabVisibleBehavior<TaskType> subtasksTabVisibility = new ObjectTabVisibleBehavior<TaskType>
(Model.of(getObjectWrapper().getObject()), "", PageTask.this){

private static final long serialVersionUID = 1L;

@Override
public boolean isVisible(){
return taskTabsVisibility.isSubtasksAndThreadsVisible();
}
};
tabs.add(new PanelTab(createStringResource("pageTask.subtasks.title"), subtasksTabVisibility) {
private static final long serialVersionUID = 1L;

@Override
public WebMarkupContainer getPanel(String panelId) {
public WebMarkupContainer createPanel(String panelId) {
return new TaskSubtasksAndThreadsTabPanel(panelId, getObjectModel());
}

Expand All @@ -372,33 +436,69 @@ public boolean isVisible() {
}
});

tabs.add(new AbstractTab(createStringResource("pageTask.operationStats.title")) {
ObjectTabVisibleBehavior<TaskType> operationStatsAndInternalPerfTabsVisibility = new ObjectTabVisibleBehavior<TaskType>
(Model.of(getObjectWrapper().getObject()), "", PageTask.this){

private static final long serialVersionUID = 1L;

@Override
public WebMarkupContainer getPanel(String panelId) {
public boolean isVisible(){
return taskTabsVisibility.isInternalPerformanceVisible();
}
};
tabs.add(new PanelTab(createStringResource("pageTask.operationStats.title"), operationStatsAndInternalPerfTabsVisibility) {
private static final long serialVersionUID = 1L;

@Override
public WebMarkupContainer createPanel(String panelId) {
return new TaskOperationStatisticsPanel(panelId, getObjectModel());
}

@Override
public boolean isVisible() {
return isEditingFocus();
}
});

tabs.add(new AbstractTab(parentPage.createStringResource("pageTask.environmentalPerformance.title")) {
@Override
public WebMarkupContainer getPanel(String panelId) {
return new TaskPerformanceTabPanel(panelId, getObjectModel());
}
ObjectTabVisibleBehavior<TaskType> envPerfTabVisibility = new ObjectTabVisibleBehavior<TaskType>
(Model.of(getObjectWrapper().getObject()), "", PageTask.this){

private static final long serialVersionUID = 1L;

@Override
public boolean isVisible(){
return taskTabsVisibility.isEnvironmentalPerformanceVisible();
}
};
tabs.add(new PanelTab(parentPage.createStringResource("pageTask.environmentalPerformance.title"), envPerfTabVisibility) {
private static final long serialVersionUID = 1L;

@Override
public WebMarkupContainer createPanel(String panelId) {
return new TaskPerformanceTabPanel(panelId, getObjectModel());
}

@Override
public boolean isVisible() {
return isEditingFocus();
}
});

tabs.add(
new AbstractTab(parentPage.createStringResource("pageTaskEdit.operation")) {
ObjectTabVisibleBehavior<TaskType> operationTabVisibility = new ObjectTabVisibleBehavior<TaskType>
(Model.of(getObjectWrapper().getObject()), "", PageTask.this){

private static final long serialVersionUID = 1L;

@Override
public boolean isVisible(){
return taskTabsVisibility.isOperationVisible();
}
};
tabs.add(new PanelTab(parentPage.createStringResource("pageTaskEdit.operation"), operationTabVisibility) {
private static final long serialVersionUID = 1L;

@Override
public WebMarkupContainer getPanel(String panelId) {
public WebMarkupContainer createPanel(String panelId) {
return new TaskOperationTabPanel(panelId, PrismContainerWrapperModel.fromContainerWrapper(getObjectModel(), TaskType.F_MODEL_OPERATION_CONTEXT));
}
@Override
Expand All @@ -407,9 +507,11 @@ public boolean isVisible() {
}
});

tabs.add(new AbstractTab(createStringResource("pageTask.internalPerformance.title")) {
tabs.add(new PanelTab(createStringResource("pageTask.internalPerformance.title"), operationStatsAndInternalPerfTabsVisibility) {
private static final long serialVersionUID = 1L;

@Override
public WebMarkupContainer getPanel(String panelId) {
public WebMarkupContainer createPanel(String panelId) {
return new TaskInternalPerformanceTabPanel(panelId, PrismContainerWrapperModel.fromContainerWrapper(getObjectModel(), TaskType.F_OPERATION_STATS));
}
@Override
Expand All @@ -418,9 +520,21 @@ public boolean isVisible() {
}
});

tabs.add(new AbstractTab(createStringResource("pageTask.result.title")) {
ObjectTabVisibleBehavior<TaskType> resultTabVisibility = new ObjectTabVisibleBehavior<TaskType>
(Model.of(getObjectWrapper().getObject()), "", PageTask.this){

private static final long serialVersionUID = 1L;

@Override
public boolean isVisible(){
return taskTabsVisibility.isResultVisible();
}
};
tabs.add(new PanelTab(createStringResource("pageTask.result.title"), resultTabVisibility) {
private static final long serialVersionUID = 1L;

@Override
public WebMarkupContainer getPanel(String panelId) {
public WebMarkupContainer createPanel(String panelId) {
return new TaskResultTabPanel(panelId, getObjectModel());
}
@Override
Expand All @@ -430,9 +544,21 @@ public boolean isVisible() {
});


tabs.add(new AbstractTab(createStringResource("pageTask.errors.title")) {
ObjectTabVisibleBehavior<TaskType> errorsTabVisibility = new ObjectTabVisibleBehavior<TaskType>
(Model.of(getObjectWrapper().getObject()), "", PageTask.this){

private static final long serialVersionUID = 1L;

@Override
public boolean isVisible(){
return taskTabsVisibility.isErrorsVisible();
}
};
tabs.add(new PanelTab(createStringResource("pageTask.errors.title"), errorsTabVisibility) {
private static final long serialVersionUID = 1L;

@Override
public WebMarkupContainer getPanel(String panelId) {
public WebMarkupContainer createPanel(String panelId) {
return new TaskErrorsTabPanel(panelId, getObjectModel());
}
@Override
Expand Down

0 comments on commit 1c6de78

Please sign in to comment.