Skip to content

Commit

Permalink
reqoring subtasks panel
Browse files Browse the repository at this point in the history
  • Loading branch information
katkav committed Jan 8, 2020
1 parent cabca5a commit eadd1e0
Show file tree
Hide file tree
Showing 4 changed files with 1,246 additions and 3 deletions.
Expand Up @@ -106,9 +106,103 @@ public PageTasksNew() {

public PageTasksNew(PageParameters params) {
super(params);
initLayout();

TaskTablePanel tablePanel = new TaskTablePanel(ID_TABLE, UserProfileStorage.TableId.TABLE_TASKS, createOperationOptions()) {

@Override
protected ObjectQuery addFilterToContentQuery(ObjectQuery query) {
if (query == null) {
query = getPrismContext().queryFactory().createQuery();
}
query.addFilter(getPrismContext().queryFor(TaskType.class)
.item(TaskType.F_PARENT)
.isNull()
.buildFilter());
return query;
}

@Override
protected List<IColumn<SelectableBean<TaskType>, String>> createColumns() {
List<IColumn<SelectableBean<TaskType>, String>> columns = super.createColumns();
columns.add(2, new ObjectReferenceColumn<>(createStringResource("pageTasks.task.objectRef"), SelectableBeanImpl.F_VALUE+"."+TaskType.F_OBJECT_REF.getLocalPart()){
@Override
public IModel<ObjectReferenceType> extractDataModel(IModel<SelectableBean<TaskType>> rowModel) {
SelectableBean<TaskType> bean = rowModel.getObject();
return Model.of(bean.getValue().getObjectRef());

}
});
columns.add(3, new PropertyColumn<>(createStringResource("pageTasks.task.executingAt"), SelectableBeanImpl.F_VALUE + "." + TaskType.F_NODE_AS_OBSERVED.getLocalPart()));
columns.add(4, new AbstractExportableColumn<>(createStringResource("pageTasks.task.currentRunTime")) {

@Override
public void populateItem(final Item<ICellPopulator<SelectableBean<TaskType>>> item, final String componentId,
final IModel<SelectableBean<TaskType>> rowModel) {

DateLabelComponent dateLabel = new DateLabelComponent(componentId, new IModel<Date>() {

@Override
public Date getObject() {
Date date = getCurrentRuntime(rowModel);
SelectableBean<TaskType> task = rowModel.getObject();
if (getRawExecutionStatus(task.getValue()) == TaskExecutionStatus.CLOSED && date != null) {
((DateLabelComponent) item.get(componentId)).setBefore(createStringResource("pageTasks.task.closedAt").getString() + " ");
} else if (date != null) {
((DateLabelComponent) item.get(componentId))
.setBefore(WebComponentUtil.formatDurationWordsForLocal(date.getTime(), true, true, PageTasksNew.this));
}
return date;
}
}, WebComponentUtil.getShortDateTimeFormat(getPageBase()));
item.add(dateLabel);
}

@Override
public IModel<String> getDataModel(IModel<SelectableBean<TaskType>> rowModel) {
SelectableBean<TaskType> task = rowModel.getObject();
Date date = getCurrentRuntime(rowModel);
String displayValue = "";
if (date != null) {
if (getRawExecutionStatus(task.getValue()) == TaskExecutionStatus.CLOSED) {
displayValue =
createStringResource("pageTasks.task.closedAt").getString() +
WebComponentUtil.getShortDateTimeFormattedValue(date, getPageBase());
} else {
displayValue = WebComponentUtil.formatDurationWordsForLocal(date.getTime(), true, true, PageTasksNew.this);
}
}
return Model.of(displayValue);
}
});
columns.add(5, new AbstractExportableColumn<>(createStringResource("pageTasks.task.scheduledToRunAgain")) {

@Override
public void populateItem(Item<ICellPopulator<SelectableBean<TaskType>>> item, String componentId,
final IModel<SelectableBean<TaskType>> rowModel) {
item.add(new Label(componentId, new IModel<Object>() {

@Override
public Object getObject() {
return createScheduledToRunAgain(rowModel);
}
}));
}

@Override
public IModel<String> getDataModel(IModel<SelectableBean<TaskType>> rowModel) {
return Model.of(createScheduledToRunAgain(rowModel));
}
});
return columns;
}

};
add(tablePanel);
// initLayout();
}



private void initLayout() {
MainObjectListPanel<TaskType> table = new MainObjectListPanel<>(ID_TABLE, TaskType.class, UserProfileStorage.TableId.TABLE_TASKS, createOperationOptions()) {
@Override
Expand Down
Expand Up @@ -13,6 +13,11 @@
import java.util.Collections;
import java.util.List;

import com.evolveum.midpoint.prism.query.ObjectQuery;
import com.evolveum.midpoint.web.component.util.SelectableBean;
import com.evolveum.midpoint.web.component.util.SelectableBeanImpl;
import com.evolveum.midpoint.web.session.UserProfileStorage;
import com.evolveum.midpoint.xml.ns._public.common.common_3.TaskWorkManagementType;
import org.apache.wicket.Component;
import org.apache.wicket.extensions.markup.html.repeater.data.table.IColumn;
import org.apache.wicket.extensions.markup.html.repeater.data.table.ISortableDataProvider;
Expand All @@ -36,7 +41,6 @@
import com.evolveum.midpoint.web.component.util.VisibleEnableBehaviour;
import com.evolveum.midpoint.web.page.admin.server.dto.TaskDto;
import com.evolveum.midpoint.web.page.admin.server.dto.WorkerThreadDto;
import com.evolveum.midpoint.web.page.admin.server.subtasks.SubtasksPanel;
import com.evolveum.midpoint.xml.ns._public.common.common_3.TaskType;

/**
Expand Down Expand Up @@ -67,6 +71,9 @@ public TaskSubtasksAndThreadsTabPanel(String id, Form mainForm,
setOutputMarkupId(true);
}

private String createTaskKindExpression() {
return SelectableBeanImpl.F_VALUE + "." + TaskType.F_WORK_MANAGEMENT.getLocalPart() + "." + TaskWorkManagementType.F_TASK_KIND.getLocalPart();
}
private void initLayout(final IModel<TaskDto> taskDtoModel) {

WebMarkupContainer threadsConfigurationPanel = new WebMarkupContainer(ID_THREADS_CONFIGURATION_PANEL);
Expand Down Expand Up @@ -99,7 +106,37 @@ public boolean isVisible() {
Label subtasksLabel = new Label(ID_SUBTASKS_LABEL, new ResourceModel("pageTaskEdit.subtasksLabel"));
subtasksLabel.add(hiddenWhenEditingOrNoSubtasks);
add(subtasksLabel);
SubtasksPanel subtasksPanel = new SubtasksPanel(ID_SUBTASKS_PANEL, new PropertyModel<>(taskDtoModel, TaskDto.F_SUBTASKS), parentPage.getWorkflowManager().isEnabled());

TaskTablePanel subtasksPanel = new TaskTablePanel(ID_SUBTASKS_PANEL, UserProfileStorage.TableId.TABLE_SUBTASKS, null) {
@Override
protected ObjectQuery addFilterToContentQuery(ObjectQuery query) {

if (query == null) {
query = getPrismContext().queryFactory().createQuery();
}
query.addFilter(getPrismContext().queryFor(TaskType.class)
.item(TaskType.F_PARENT)
.eq(taskDtoModel.getObject().getIdentifier())
.buildFilter());

return query;
}

@Override
protected List<IColumn<SelectableBean<TaskType>, String>> createColumns() {
List<IColumn<SelectableBean<TaskType>, String>> columns = super.createColumns();
columns.add(2, new EnumPropertyColumn(createStringResource("SubtasksPanel.label.kind"), createTaskKindExpression()) {

@Override
protected String translate(Enum en) {
return createStringResource(en).getString();
}
});
return columns;
}
};

// SubtasksPanel subtasksPanel = new SubtasksPanel(ID_SUBTASKS_PANEL, new PropertyModel<>(taskDtoModel, TaskDto.F_SUBTASKS), parentPage.getWorkflowManager().isEnabled());
subtasksPanel.add(hiddenWhenEditingOrNoSubtasks);
add(subtasksPanel);

Expand Down

0 comments on commit eadd1e0

Please sign in to comment.