Skip to content

Commit

Permalink
improvements for task page tabs visibility (subtasks + workManagement)
Browse files Browse the repository at this point in the history
  • Loading branch information
katkav committed Mar 25, 2020
1 parent 920490e commit fb36cd0
Show file tree
Hide file tree
Showing 2 changed files with 14 additions and 15 deletions.
Expand Up @@ -131,7 +131,7 @@ public WebMarkupContainer createPanel(String panelId) {

@Override
public boolean isVisible(){
return super.isVisible() && parentTaskPage.getTaskTabVisibilty().isWorkManagementVisible();
return super.isVisible() && parentTaskPage.getTaskTabVisibilty().isWorkManagementVisible(getTask());
}
};
tabs.add(new PanelTab(parentPage.createStringResource("pageTask.workManagement.title"), workManagementTabVisibility) {
Expand Down Expand Up @@ -174,7 +174,7 @@ public WebMarkupContainer createPanel(String panelId) {

@Override
public boolean isVisible(){
return super.isVisible() && parentTaskPage.getTaskTabVisibilty().isSubtasksAndThreadsVisible();
return super.isVisible() && parentTaskPage.getTaskTabVisibilty().isSubtasksAndThreadsVisible(getTask());
}
};
tabs.add(new PanelTab(parentPage.createStringResource("pageTask.subtasks.title"), subtasksTabVisibility) {
Expand Down
Expand Up @@ -28,6 +28,7 @@
import org.apache.commons.lang.StringUtils;

import java.io.Serializable;
import java.util.List;

/**
* Used to determine whether tabs have to be refreshed - by comparing instances of this class before and after task update.
Expand Down Expand Up @@ -78,25 +79,21 @@ public boolean computeCleanupPolicyVisible(){
return cleanupPolicyVisible;
}

public boolean computeSubtasksAndThreadsVisible(PageTask parentPage, PrismObjectWrapper<TaskType> taskWrapper) {
public boolean computeSubtasksAndThreadsVisible(TaskType task) {

PrismReference subtasks = taskWrapper.getObject().findReference(TaskType.F_SUBTASK_REF);
if (subtasks == null) {
return subtasksAndThreadsVisible = false;
}
if (CollectionUtils.isEmpty(subtasks.getValues())) {
List<ObjectReferenceType> subtasks = task.getSubtaskRef();
if (CollectionUtils.isEmpty(subtasks)) {
return subtasksAndThreadsVisible = false;
}

boolean allEmpty = true;
for (PrismReferenceValue val : subtasks.getValues()) {
if (!val.isEmpty()) {
for (ObjectReferenceType subtask : subtasks) {
if (!subtask.asReferenceValue().isEmpty()){
allEmpty = false;
break;
}
}

return subtasksAndThreadsVisible = allEmpty;
return subtasksAndThreadsVisible = !allEmpty;



Expand Down Expand Up @@ -164,7 +161,7 @@ public void computeAll(PageTask parentPage, PrismObjectWrapper<TaskType> taskWra
computeSchedulingVisible(parentPage, taskType);
computeWorkManagementVisible(taskType);
computeCleanupPolicyVisible();
computeSubtasksAndThreadsVisible(parentPage, taskWrapper);
computeSubtasksAndThreadsVisible(taskType);
computeProgressVisible(parentPage);
computeEnvironmentalPerformanceVisible(parentPage, taskWrapper);
computeInternalPerformanceVisible(parentPage, taskWrapper);
Expand Down Expand Up @@ -214,15 +211,17 @@ public boolean isSchedulingVisible() {
return schedulingVisible;
}

public boolean isWorkManagementVisible() {
public boolean isWorkManagementVisible(TaskType task) {
workManagementVisible = computeWorkManagementVisible(task);
return workManagementVisible;
}

public boolean isCleanupPolicyVisible() {
return cleanupPolicyVisible;
}

public boolean isSubtasksAndThreadsVisible() {
public boolean isSubtasksAndThreadsVisible(TaskType task) {
subtasksAndThreadsVisible = computeSubtasksAndThreadsVisible(task);
return subtasksAndThreadsVisible;
}

Expand Down

0 comments on commit fb36cd0

Please sign in to comment.