Skip to content

Commit

Permalink
Merge branch 'temp-task-gui'
Browse files Browse the repository at this point in the history
  • Loading branch information
mederly committed Apr 4, 2016
2 parents acdf91c + 879913e commit be65c6e
Show file tree
Hide file tree
Showing 10 changed files with 289 additions and 56 deletions.
Expand Up @@ -97,6 +97,8 @@
import java.text.SimpleDateFormat;
import java.util.*;

import static com.evolveum.midpoint.gui.api.page.PageBase.createStringResourceStatic;

/**
* Utility class containing miscellaneous methods used mostly in Wicket components.
*
Expand Down Expand Up @@ -238,6 +240,15 @@ public static List<String> createTaskCategoryList() {
return categories;
}

public static IModel<String> createCategoryNameModel(final Component component, final IModel<String> categorySymbolModel) {
return new AbstractReadOnlyModel<String>() {
@Override
public String getObject() {
return createStringResourceStatic(component, "pageTasks.category." + categorySymbolModel.getObject()).getString();
}
};
}

public static ObjectReferenceType createObjectRef(String oid, String name, QName type) {
ObjectReferenceType ort = new ObjectReferenceType();
ort.setOid(oid);
Expand Down
Expand Up @@ -568,13 +568,7 @@ public static AbstractColumn<TaskDto, String> createTaskCategoryColumn(final Com
@Override
public void populateItem(Item<ICellPopulator<TaskDto>> item, String componentId,
final IModel<TaskDto> rowModel) {
item.add(new Label(componentId, new AbstractReadOnlyModel<Object>() {

@Override
public Object getObject() {
return createStringResourceStatic(component, "pageTasks.category." + rowModel.getObject().getCategory()).getString();
}
}));
item.add(new Label(componentId, WebComponentUtil.createCategoryNameModel(component, new PropertyModel<String>(rowModel, TaskDto.F_CATEGORY))));
}
};
}
Expand Down
Expand Up @@ -16,6 +16,7 @@
package com.evolveum.midpoint.web.page.admin.server;

import com.evolveum.midpoint.gui.api.model.LoadableModel;
import com.evolveum.midpoint.gui.api.util.WebComponentUtil;
import com.evolveum.midpoint.util.logging.Trace;
import com.evolveum.midpoint.util.logging.TraceManager;
import com.evolveum.midpoint.web.component.data.column.LinkPanel;
Expand Down Expand Up @@ -125,7 +126,8 @@ public boolean isVisible() {
add(oid);

add(new Label(ID_IDENTIFIER, new PropertyModel(taskDtoModel, TaskDto.F_IDENTIFIER)));
add(new Label(ID_CATEGORY, new PropertyModel(taskDtoModel, TaskDto.F_CATEGORY)));
add(new Label(ID_CATEGORY,
WebComponentUtil.createCategoryNameModel(this, new PropertyModel(taskDtoModel, TaskDto.F_CATEGORY))));

final LinkPanel parent = new LinkPanel(ID_PARENT, new PropertyModel<>(taskDtoModel, TaskDto.F_PARENT_TASK_NAME)) {
@Override
Expand Down
@@ -0,0 +1,113 @@
package com.evolveum.midpoint.web.page.admin.server;

import com.evolveum.midpoint.schema.statistics.StatisticsUtil;
import com.evolveum.midpoint.web.page.admin.server.dto.TaskDto;
import com.evolveum.midpoint.xml.ns._public.common.common_3.OperationStatsType;
import org.apache.wicket.model.IModel;

import java.io.Serializable;

/**
* @author mederly
*/
class TaskButtonsVisibility implements Serializable {
private boolean backVisible;
private boolean editVisible;
private boolean cancelEditVisible;
private boolean saveVisible;
private boolean suspendVisible;
private boolean resumeVisible;
private boolean runNowVisible;

public boolean computeBackVisible(PageTaskEdit parentPage) {
backVisible = !parentPage.isEdit();
return backVisible;
}

public boolean computeEditVisible(PageTaskEdit parentPage) {
editVisible = !parentPage.isEdit();
return editVisible;
}

public boolean computeCancelEditVisible(PageTaskEdit parentPage) {
cancelEditVisible = parentPage.isEdit();
return cancelEditVisible;
}

public boolean computeSaveVisible(PageTaskEdit parentPage) {
saveVisible = parentPage.isEdit();
return saveVisible;
}

public boolean computeSuspendVisible(PageTaskEdit parentPage) {
suspendVisible = !parentPage.isEdit() && parentPage.isRunnableOrRunning();
return suspendVisible;
}

public boolean computeResumeVisible(PageTaskEdit parentPage) {
resumeVisible = !parentPage.isEdit() && (parentPage.isSuspended() || (parentPage.isClosed() && parentPage.isRecurring()));
return resumeVisible;
}

public boolean computeRunNowVisible(PageTaskEdit parentPage) {
runNowVisible = !parentPage.isEdit() && (parentPage.isRunnable() || (parentPage.isClosed() && !parentPage.isRecurring()));
return runNowVisible;
}

public boolean isBackVisible() {
return backVisible;
}

public boolean isEditVisible() {
return editVisible;
}

public boolean isCancelEditVisible() {
return cancelEditVisible;
}

public boolean isSaveVisible() {
return saveVisible;
}

public boolean isSuspendVisible() {
return suspendVisible;
}

public boolean isResumeVisible() {
return resumeVisible;
}

public boolean isRunNowVisible() {
return runNowVisible;
}

@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;

TaskButtonsVisibility that = (TaskButtonsVisibility) o;

if (backVisible != that.backVisible) return false;
if (editVisible != that.editVisible) return false;
if (cancelEditVisible != that.cancelEditVisible) return false;
if (saveVisible != that.saveVisible) return false;
if (suspendVisible != that.suspendVisible) return false;
if (resumeVisible != that.resumeVisible) return false;
return runNowVisible == that.runNowVisible;

}

@Override
public int hashCode() {
int result = (backVisible ? 1 : 0);
result = 31 * result + (editVisible ? 1 : 0);
result = 31 * result + (cancelEditVisible ? 1 : 0);
result = 31 * result + (saveVisible ? 1 : 0);
result = 31 * result + (suspendVisible ? 1 : 0);
result = 31 * result + (resumeVisible ? 1 : 0);
result = 31 * result + (runNowVisible ? 1 : 0);
return result;
}
}
Expand Up @@ -17,7 +17,6 @@

import com.evolveum.midpoint.gui.api.model.LoadableModel;
import com.evolveum.midpoint.gui.api.util.WebComponentUtil;
import com.evolveum.midpoint.schema.statistics.StatisticsUtil;
import com.evolveum.midpoint.util.logging.Trace;
import com.evolveum.midpoint.util.logging.TraceManager;
import com.evolveum.midpoint.web.component.AjaxButton;
Expand All @@ -27,7 +26,6 @@
import com.evolveum.midpoint.web.component.prism.ObjectWrapper;
import com.evolveum.midpoint.web.component.util.VisibleEnableBehaviour;
import com.evolveum.midpoint.web.page.admin.server.dto.TaskDto;
import com.evolveum.midpoint.xml.ns._public.common.common_3.OperationStatsType;
import com.evolveum.midpoint.xml.ns._public.common.common_3.TaskType;
import org.apache.wicket.ajax.AjaxRequestTarget;
import org.apache.wicket.extensions.markup.html.tabs.AbstractTab;
Expand Down Expand Up @@ -84,6 +82,7 @@ protected void initTabPanel(Form mainForm) {

protected List<ITab> createTabs() {
List<ITab> tabs = new ArrayList<>();
final TaskTabsVisibility visibility = new TaskTabsVisibility();
tabs.add(
new AbstractTab(parentPage.createStringResource("pageTaskEdit.basic")) {
@Override
Expand All @@ -106,11 +105,7 @@ public WebMarkupContainer getPanel(String panelId) {
}
@Override
public boolean isVisible() {
if (parentPage.isEdit()) {
return parentPage.configuresWorkerThreads();
} else {
return parentPage.configuresWorkerThreads() || !taskDtoModel.getObject().getSubtasks().isEmpty() || !taskDtoModel.getObject().getTransientSubtasks().isEmpty();
}
return visibility.computeSubtasksAndThreadsVisible(parentPage);
}
});
tabs.add(
Expand All @@ -121,11 +116,7 @@ public WebMarkupContainer getPanel(String panelId) {
}
@Override
public boolean isVisible() {
final OperationStatsType operationStats = taskDtoModel.getObject().getTaskType().getOperationStats();
return !parentPage.isEdit() && operationStats != null &&
(operationStats.getIterativeTaskInformation() != null ||
operationStats.getSynchronizationInformation() != null ||
operationStats.getActionsExecutedInformation() != null);
return visibility.computeProgressVisible(parentPage);
}
});
tabs.add(
Expand All @@ -136,8 +127,7 @@ public WebMarkupContainer getPanel(String panelId) {
}
@Override
public boolean isVisible() {
final OperationStatsType operationStats = taskDtoModel.getObject().getTaskType().getOperationStats();
return !parentPage.isEdit() && operationStats != null && !StatisticsUtil.isEmpty(operationStats.getEnvironmentalPerformanceInformation());
return visibility.computeEnvironmentalPerformanceVisible(parentPage);
}
});
tabs.add(
Expand All @@ -148,22 +138,20 @@ public WebMarkupContainer getPanel(String panelId) {
}
@Override
public boolean isVisible() {
return !parentPage.isEdit()
&& taskDtoModel.getObject().getTaskType().getWorkflowContext() != null
&& taskDtoModel.getObject().getWorkflowDeltaIn() != null;
}
});
tabs.add(
new AbstractTab(parentPage.createStringResource("pageTaskEdit.operation")) {
@Override
public WebMarkupContainer getPanel(String panelId) {
return new TaskOperationTabPanel(panelId, getMainForm(), objectModel, taskDtoModel, parentPage);
}
@Override
public boolean isVisible() {
return !parentPage.isEdit() && taskDtoModel.getObject().getTaskType().getModelOperationContext() != null;
return visibility.computeApprovalsVisible(parentPage);
}
});
// tabs.add(
// new AbstractTab(parentPage.createStringResource("pageTaskEdit.operation")) {
// @Override
// public WebMarkupContainer getPanel(String panelId) {
// return new TaskOperationTabPanel(panelId, getMainForm(), objectModel, taskDtoModel, parentPage);
// }
// @Override
// public boolean isVisible() {
// return !parentPage.isEdit() && taskDtoModel.getObject().getTaskType().getModelOperationContext() != null;
// }
// });
tabs.add(
new AbstractTab(parentPage.createStringResource("pageTaskEdit.result")) {
@Override
Expand All @@ -173,7 +161,7 @@ public WebMarkupContainer getPanel(String panelId) {

@Override
public boolean isVisible() {
return !parentPage.isEdit();
return visibility.computeResultVisible(parentPage);
}
});
return tabs;
Expand All @@ -196,6 +184,8 @@ private void initButtons(Form mainForm) {
buttonPanel.setOutputMarkupId(true);
mainForm.add(buttonPanel);

final TaskButtonsVisibility visibility = new TaskButtonsVisibility();

AjaxButton backButton = new AjaxButton(ID_BACK, parentPage.createStringResource("pageTaskEdit.button.back")) {
@Override
public void onClick(AjaxRequestTarget target) {
Expand All @@ -205,7 +195,7 @@ public void onClick(AjaxRequestTarget target) {
backButton.add(new VisibleEnableBehaviour() {
@Override
public boolean isVisible() {
return !parentPage.isEdit();
return visibility.computeBackVisible(parentPage);
}
});
buttonPanel.add(backButton);
Expand All @@ -219,7 +209,7 @@ public void onClick(AjaxRequestTarget target) {
cancelEditingButton.add(new VisibleEnableBehaviour() {
@Override
public boolean isVisible() {
return parentPage.isEdit();
return visibility.computeCancelEditVisible(parentPage);
}
});
buttonPanel.add(cancelEditingButton);
Expand All @@ -240,7 +230,7 @@ protected void onError(AjaxRequestTarget target, org.apache.wicket.markup.html.f
saveButton.add(new VisibleEnableBehaviour() {
@Override
public boolean isVisible() {
return parentPage.isEdit();
return visibility.computeSaveVisible(parentPage);
}
});
mainForm.setDefaultButton(saveButton);
Expand All @@ -259,7 +249,7 @@ public void onClick(AjaxRequestTarget target) {
editButton.add(new VisibleEnableBehaviour() {
@Override
public boolean isVisible() {
return !parentPage.isEdit();
return visibility.computeEditVisible(parentPage);
}
});
buttonPanel.add(editButton);
Expand All @@ -274,7 +264,7 @@ public void onClick(AjaxRequestTarget target) {

@Override
public boolean isVisible() {
return !parentPage.isEdit() && parentPage.isRunnableOrRunning();
return visibility.computeSuspendVisible(parentPage);
}
});
buttonPanel.add(suspend);
Expand All @@ -289,7 +279,7 @@ public void onClick(AjaxRequestTarget target) {

@Override
public boolean isVisible() {
return !parentPage.isEdit() && (parentPage.isSuspended() || (parentPage.isClosed() && parentPage.isRecurring()));
return visibility.computeResumeVisible(parentPage);
}
});
buttonPanel.add(resume);
Expand All @@ -304,7 +294,7 @@ public void onClick(AjaxRequestTarget target) {

@Override
public boolean isVisible() {
return !parentPage.isEdit() && (parentPage.isRunnable() || (parentPage.isClosed() && !parentPage.isRecurring()));
return visibility.computeRunNowVisible(parentPage);
}
});
buttonPanel.add(runNow);
Expand Down

0 comments on commit be65c6e

Please sign in to comment.