Skip to content

Commit

Permalink
code cleanup
Browse files Browse the repository at this point in the history
  • Loading branch information
katkav committed Mar 26, 2020
1 parent d2afd5e commit 87fc055
Showing 1 changed file with 65 additions and 44 deletions.
Expand Up @@ -6,6 +6,17 @@
*/
package com.evolveum.midpoint.web.page.admin.server;

import java.util.ArrayList;
import java.util.List;
import javax.xml.namespace.QName;

import org.apache.wicket.ajax.AjaxRequestTarget;
import org.apache.wicket.extensions.markup.html.tabs.ITab;
import org.apache.wicket.markup.html.WebMarkupContainer;
import org.apache.wicket.markup.html.panel.Panel;
import org.apache.wicket.model.IModel;
import org.apache.wicket.model.Model;

import com.evolveum.midpoint.gui.api.ComponentConstants;
import com.evolveum.midpoint.gui.api.component.tabs.PanelTab;
import com.evolveum.midpoint.gui.api.model.LoadableModel;
Expand All @@ -15,46 +26,28 @@
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.ItemMandatoryHandler;
import com.evolveum.midpoint.gui.impl.prism.ItemPanelSettingsBuilder;
import com.evolveum.midpoint.gui.impl.prism.ItemVisibilityHandler;
import com.evolveum.midpoint.prism.Containerable;
import com.evolveum.midpoint.prism.path.ItemPath;
import com.evolveum.midpoint.schema.constants.SchemaConstants;
import com.evolveum.midpoint.util.exception.SchemaException;
import com.evolveum.midpoint.util.logging.Trace;
import com.evolveum.midpoint.util.logging.TraceManager;
import com.evolveum.midpoint.web.component.AjaxSubmitButton;
import com.evolveum.midpoint.web.component.objectdetails.AbstractObjectMainPanel;
import com.evolveum.midpoint.web.component.objectdetails.AssignmentHolderTypeMainPanel;
import com.evolveum.midpoint.web.component.prism.ItemVisibility;
import com.evolveum.midpoint.web.component.util.VisibleEnableBehaviour;
import com.evolveum.midpoint.web.model.PrismContainerWrapperModel;
import com.evolveum.midpoint.web.page.admin.PageAdminObjectDetails;
import com.evolveum.midpoint.xml.ns._public.common.common_3.ScheduleType;
import com.evolveum.midpoint.xml.ns._public.common.common_3.TaskType;

import com.evolveum.midpoint.xml.ns._public.common.common_3.TaskWorkManagementType;

import org.apache.commons.collections4.CollectionUtils;
import org.apache.wicket.ajax.AjaxRequestTarget;
import org.apache.wicket.extensions.markup.html.tabs.ITab;
import org.apache.wicket.markup.html.WebMarkupContainer;
import org.apache.wicket.markup.html.panel.Panel;
import org.apache.wicket.model.IModel;
import org.apache.wicket.model.Model;

import javax.xml.namespace.QName;
import java.lang.reflect.Array;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

public class TaskMainPanel extends AssignmentHolderTypeMainPanel<TaskType> {

private static final transient Trace LOGGER = TraceManager.getTrace(TaskMainPanel.class);

private static final String ID_SAVE_AND_RUN = "saveAndRun";
private static final String ID_FORM = "taskForm";

public TaskMainPanel(String id, LoadableModel<PrismObjectWrapper<TaskType>> objectModel, PageAdminObjectDetails<TaskType> parentPage) {
super(id, objectModel, parentPage);
Expand All @@ -77,14 +70,29 @@ protected List<ITab> createTabs(PageAdminObjectDetails<TaskType> parentPage) {

PageTask parentTaskPage = (PageTask) parentPage;

createBasicPanel(tabs, parentTaskPage);
createScheduleTab(tabs, parentTaskPage);
createWorkManagementTab(tabs, parentTaskPage);
// createCleanupPoliciesTab(tabs, parentTaskPage);
createSubtasksTab(tabs, parentTaskPage);
createOperationStatisticsPanel(tabs, parentTaskPage);
createEnvironmentalPerformanceTab(tabs, parentTaskPage);
createOperationTab(tabs, parentTaskPage);
createInteranalPerformanceTab(tabs, parentTaskPage);
createResultTab(tabs, parentTaskPage);
createErrorsTab(tabs, parentTaskPage);
return tabs;
}

private void createBasicPanel(List<ITab> tabs, PageTask parentPage) {
ObjectTabVisibleBehavior<TaskType> basicTabVisibility = new ObjectTabVisibleBehavior<TaskType>
(Model.of(getObjectWrapper().getObject()), ComponentConstants.UI_TASK_TAB_BASIC_URL, parentTaskPage){
(Model.of(getObjectWrapper().getObject()), ComponentConstants.UI_TASK_TAB_BASIC_URL, parentPage){

private static final long serialVersionUID = 1L;

@Override
public boolean isVisible(){
return super.isVisible() && parentTaskPage.getTaskTabVisibilty().isBasicVisible();
return super.isVisible() && parentPage.getTaskTabVisibilty().isBasicVisible();
}
};
tabs.add(new PanelTab(parentPage.createStringResource("pageTask.basic.title"), basicTabVisibility) {
Expand All @@ -98,20 +106,19 @@ protected void updateHandlerPerformed(AjaxRequestTarget target) {
parentPage.refresh(target);
}
};
// ItemVisibilityHandler visibilityHandler = wrapper -> getBasicTabVisibility(wrapper.getPath());
// ItemEditabilityHandler editabilityHandler = wrapper -> getBasicTabEditability(wrapper.getPath());
// return createContainerPanel(panelId, TaskType.COMPLEX_TYPE, getObjectModel(), visibilityHandler, editabilityHandler);
}
});
}

private void createScheduleTab(List<ITab> tabs, PageTask parentPage) {
ObjectTabVisibleBehavior<TaskType> scheduleTabVisibility = new ObjectTabVisibleBehavior<TaskType>
(Model.of(getObjectWrapper().getObject()), ComponentConstants.UI_TASK_TAB_SCHEDULE_URL, parentPage){

private static final long serialVersionUID = 1L;

@Override
public boolean isVisible(){
return super.isVisible() && parentTaskPage.getTaskTabVisibilty().isSchedulingVisible();
return super.isVisible() && parentPage.getTaskTabVisibilty().isSchedulingVisible();
}
};
tabs.add(new PanelTab(parentPage.createStringResource("pageTask.schedule.title"), scheduleTabVisibility) {
Expand All @@ -120,18 +127,20 @@ public boolean isVisible(){
@Override
public WebMarkupContainer createPanel(String panelId) {
ItemVisibilityHandler visibilityHandler = wrapper -> ItemVisibility.AUTO;
return createContainerPanel(panelId, TaskType.COMPLEX_TYPE, PrismContainerWrapperModel.fromContainerWrapper(getObjectModel(), TaskType.F_SCHEDULE), visibilityHandler, getTaskEditabilityHandler());
return createContainerPanel(panelId, ScheduleType.COMPLEX_TYPE, PrismContainerWrapperModel.fromContainerWrapper(getObjectModel(), TaskType.F_SCHEDULE), visibilityHandler, getTaskEditabilityHandler());
}
});
}

private void createWorkManagementTab(List<ITab> tabs, PageTask parentPage) {
ObjectTabVisibleBehavior<TaskType> workManagementTabVisibility = new ObjectTabVisibleBehavior<TaskType>
(Model.of(getObjectWrapper().getObject()), ComponentConstants.UI_TASK_TAB_WORK_MANAGEMENT_URL, parentPage){

private static final long serialVersionUID = 1L;

@Override
public boolean isVisible(){
return super.isVisible() && parentTaskPage.getTaskTabVisibilty().isWorkManagementVisible(getTask());
return super.isVisible() && parentPage.getTaskTabVisibilty().isWorkManagementVisible(getTask());
}
};
tabs.add(new PanelTab(parentPage.createStringResource("pageTask.workManagement.title"), workManagementTabVisibility) {
Expand All @@ -144,15 +153,17 @@ public WebMarkupContainer createPanel(String panelId) {
PrismContainerWrapperModel.fromContainerWrapper(getObjectModel(), TaskType.F_WORK_MANAGEMENT), visibilityHandler, getTaskEditabilityHandler());
}
});
}

// private void createCleanupPoliciesTab(List<ITab> tabs, PageTask parentPage) {
// ObjectTabVisibleBehavior<TaskType> cleanupPoliciesTabVisibility = new ObjectTabVisibleBehavior<TaskType>
// (Model.of(getObjectWrapper().getObject()), ComponentConstants.UI_TASK_TAB_CLEANUP_POLICIES_URL, parentPage){
// (Model.of(getObjectWrapper().getObject()), ComponentConstants.UI_TASK_TAB_CLEANUP_POLICIES_URL, parentPage) {
//
// private static final long serialVersionUID = 1L;
//
// @Override
// public boolean isVisible(){
// return super.isVisible() && taskTabsVisibility.isCleanupPolicyVisible();
// public boolean isVisible() {
// return super.isVisible() && parentPage.getTaskTabVisibilty().isCleanupPolicyVisible();
// }
// };
// tabs.add(new PanelTab(parentPage.createStringResource("pageTask.cleanupPolicies.title"), cleanupPoliciesTabVisibility) {
Expand All @@ -166,15 +177,18 @@ public WebMarkupContainer createPanel(String panelId) {
// visibilityHandler, getTaskEditabilityHandler());
// }
// });
//
// }

private void createSubtasksTab(List<ITab> tabs, PageTask parentPage) {
ObjectTabVisibleBehavior<TaskType> subtasksTabVisibility = new ObjectTabVisibleBehavior<TaskType>
(Model.of(getObjectWrapper().getObject()), ComponentConstants.UI_TASK_TAB_SUBTASKS_URL, parentPage){

private static final long serialVersionUID = 1L;

@Override
public boolean isVisible(){
return super.isVisible() && parentTaskPage.getTaskTabVisibilty().isSubtasksAndThreadsVisible(getTask());
return super.isVisible() && parentPage.getTaskTabVisibilty().isSubtasksAndThreadsVisible(getTask());
}
};
tabs.add(new PanelTab(parentPage.createStringResource("pageTask.subtasks.title"), subtasksTabVisibility) {
Expand All @@ -186,15 +200,17 @@ public WebMarkupContainer createPanel(String panelId) {
}

});
}

private void createOperationStatisticsPanel(List<ITab> tabs, PageTask parentPage) {
ObjectTabVisibleBehavior<TaskType> operationStatsAndInternalPerfTabsVisibility = new ObjectTabVisibleBehavior<TaskType>
(Model.of(getObjectWrapper().getObject()), ComponentConstants.UI_TASK_TAB_OPERATION_STATISTICS_URL, parentPage){

private static final long serialVersionUID = 1L;

@Override
public boolean isVisible(){
return super.isVisible() && parentTaskPage.getTaskTabVisibilty().isInternalPerformanceVisible();
return super.isVisible() && parentPage.getTaskTabVisibilty().isInternalPerformanceVisible();
}
};
tabs.add(new PanelTab(parentPage.createStringResource("pageTask.operationStats.title"), operationStatsAndInternalPerfTabsVisibility) {
Expand All @@ -206,15 +222,17 @@ public WebMarkupContainer createPanel(String panelId) {
}

});
}

private void createEnvironmentalPerformanceTab(List<ITab> tabs, PageTask parentPage) {
ObjectTabVisibleBehavior<TaskType> envPerfTabVisibility = new ObjectTabVisibleBehavior<TaskType>
(Model.of(getObjectWrapper().getObject()), ComponentConstants.UI_TASK_TAB_ENVIRONMENTAL_PERFORMANCE_URL, parentPage){

private static final long serialVersionUID = 1L;

@Override
public boolean isVisible(){
return super.isVisible() && parentTaskPage.getTaskTabVisibilty().isEnvironmentalPerformanceVisible();
return super.isVisible() && parentPage.getTaskTabVisibilty().isEnvironmentalPerformanceVisible();
}
};
tabs.add(new PanelTab(parentPage.createStringResource("pageTask.environmentalPerformance.title"), envPerfTabVisibility) {
Expand All @@ -226,15 +244,17 @@ public WebMarkupContainer createPanel(String panelId) {
}

});
}

private void createOperationTab(List<ITab> tabs, PageTask parentPage) {
ObjectTabVisibleBehavior<TaskType> operationTabVisibility = new ObjectTabVisibleBehavior<TaskType>
(Model.of(getObjectWrapper().getObject()), ComponentConstants.UI_TASK_TAB_OPERATION_URL, parentPage){

private static final long serialVersionUID = 1L;

@Override
public boolean isVisible(){
return super.isVisible() && parentTaskPage.getTaskTabVisibilty().isOperationVisible();
return super.isVisible() && parentPage.getTaskTabVisibilty().isOperationVisible();
}
};
tabs.add(new PanelTab(parentPage.createStringResource("pageTaskEdit.operation"), operationTabVisibility) {
Expand All @@ -245,15 +265,17 @@ public WebMarkupContainer createPanel(String panelId) {
return new TaskOperationTabPanel(panelId, PrismContainerWrapperModel.fromContainerWrapper(getObjectModel(), TaskType.F_MODEL_OPERATION_CONTEXT));
}
});
}

private void createInteranalPerformanceTab(List<ITab> tabs, PageTask parentPage) {
ObjectTabVisibleBehavior<TaskType> internalPerfTabsVisibility = new ObjectTabVisibleBehavior<TaskType>
(Model.of(getObjectWrapper().getObject()), ComponentConstants.UI_TASK_TAB_INTERNAL_PERFORMANCE_URL, parentPage){

private static final long serialVersionUID = 1L;

@Override
public boolean isVisible(){
return super.isVisible() && parentTaskPage.getTaskTabVisibilty().isInternalPerformanceVisible();
return super.isVisible() && parentPage.getTaskTabVisibilty().isInternalPerformanceVisible();
}
};
tabs.add(new PanelTab(parentPage.createStringResource("pageTask.internalPerformance.title"), internalPerfTabsVisibility) {
Expand All @@ -264,15 +286,17 @@ public WebMarkupContainer createPanel(String panelId) {
return new TaskInternalPerformanceTabPanel(panelId, PrismContainerWrapperModel.fromContainerWrapper(getObjectModel(), TaskType.F_OPERATION_STATS));
}
});
}

private void createResultTab(List<ITab> tabs, PageTask parentPage) {
ObjectTabVisibleBehavior<TaskType> resultTabVisibility = new ObjectTabVisibleBehavior<TaskType>
(Model.of(getObjectWrapper().getObject()), ComponentConstants.UI_TASK_TAB_RESULT_URL, parentPage){

private static final long serialVersionUID = 1L;

@Override
public boolean isVisible(){
return super.isVisible() && parentTaskPage.getTaskTabVisibilty().isResultVisible();
return super.isVisible() && parentPage.getTaskTabVisibilty().isResultVisible();
}
};
tabs.add(new PanelTab(parentPage.createStringResource("pageTask.result.title"), resultTabVisibility) {
Expand All @@ -283,16 +307,17 @@ public WebMarkupContainer createPanel(String panelId) {
return new TaskResultTabPanel(panelId, getObjectModel());
}
});
}


private void createErrorsTab(List<ITab> tabs, PageTask parentPage) {
ObjectTabVisibleBehavior<TaskType> errorsTabVisibility = new ObjectTabVisibleBehavior<TaskType>
(Model.of(getObjectWrapper().getObject()), ComponentConstants.UI_TASK_TAB_ERRORS_URL, parentPage){

private static final long serialVersionUID = 1L;

@Override
public boolean isVisible(){
return super.isVisible() && parentTaskPage.getTaskTabVisibilty().isErrorsVisible();
return super.isVisible() && parentPage.getTaskTabVisibilty().isErrorsVisible();
}
};
tabs.add(new PanelTab(parentPage.createStringResource("pageTask.errors.title"), errorsTabVisibility) {
Expand All @@ -303,8 +328,6 @@ public WebMarkupContainer createPanel(String panelId) {
return new TaskErrorsTabPanel(panelId, getObjectModel());
}
});

return tabs;
}

private ItemVisibility getWorkManagementVisibility(ItemPath path) {
Expand Down Expand Up @@ -375,8 +398,7 @@ private <C extends Containerable> Panel createContainerPanel(String id, QName ty
.visibilityHandler(visibilityHandler)
.editabilityHandler(editabilityHandler)
.showOnTopLevel(true);
Panel panel = getDetailsPage().initItemPanel(id, typeName, model, builder.build());
return panel;
return getDetailsPage().initItemPanel(id, typeName, model, builder.build());
} catch (SchemaException e) {
LOGGER.error("Cannot create panel for {}, {}", typeName, e.getMessage(), e);
getSession().error("Cannot create panel for " + typeName); // TODO opertion result? localization?
Expand All @@ -386,8 +408,7 @@ private <C extends Containerable> Panel createContainerPanel(String id, QName ty
}

private ItemEditabilityHandler getTaskEditabilityHandler(){
ItemEditabilityHandler editableHandler = wrapper -> !WebComponentUtil.isRunningTask(getTask());
return editableHandler;
return wrapper -> !WebComponentUtil.isRunningTask(getTask());
}

private TaskType getTask() {
Expand Down

0 comments on commit 87fc055

Please sign in to comment.