Skip to content

Commit

Permalink
navigation in simulation pages
Browse files Browse the repository at this point in the history
  • Loading branch information
1azyman committed Jan 30, 2023
1 parent 79920b6 commit 842aa2f
Show file tree
Hide file tree
Showing 3 changed files with 104 additions and 47 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -187,7 +187,13 @@ protected void populateItem(ListItem<ResultDetail> item) {

@Override
protected void populateItem(ListItem<DashboardWidgetType> item) {
item.add(new MetricWidgetPanel(ID_WIDGET, item.getModel()));
item.add(new MetricWidgetPanel(ID_WIDGET, item.getModel()) {

@Override
protected void onOpenPerformed(AjaxRequestTarget target) {
openTagMetricPerformed(target);
}
});
}
};
add(widgets);
Expand All @@ -199,7 +205,14 @@ private void onWidgetClick(AjaxRequestTarget target, SmallBoxData data) {

private void onBackPerformed(AjaxRequestTarget target) {
//todo implement
setResponsePage(PageSimulationResults.class);
redirectBack();
}

private void openTagMetricPerformed(AjaxRequestTarget target) {
PageParameters params = new PageParameters();
params.add(SimulationPage.PAGE_PARAMETER_RESULT_OID, getPageParameterResultOid());
// params.add(SimulationPage.PAGE_PARAMETER_TAG_OID, null); // todo add tag oid somehow
navigateToNext(PageSimulationResultObjects.class, params);
}

private static class ResultDetail implements Serializable {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,13 +24,15 @@
import org.apache.wicket.request.mapper.parameter.PageParameters;

import com.evolveum.midpoint.gui.api.component.MainObjectListPanel;
import com.evolveum.midpoint.gui.api.util.WebComponentUtil;
import com.evolveum.midpoint.model.common.util.DefaultColumnUtils;
import com.evolveum.midpoint.prism.path.ItemPath;
import com.evolveum.midpoint.gui.impl.component.icon.CompositedIconBuilder;
import com.evolveum.midpoint.web.component.data.column.ColumnMenuAction;
import com.evolveum.midpoint.web.component.menu.cog.ButtonInlineMenuItem;
import com.evolveum.midpoint.web.component.menu.cog.InlineMenuItem;
import com.evolveum.midpoint.web.component.menu.cog.InlineMenuItemAction;
import com.evolveum.midpoint.web.component.util.SelectableBean;
import com.evolveum.midpoint.web.session.UserProfileStorage;
import com.evolveum.midpoint.xml.ns._public.common.common_3.*;
import com.evolveum.midpoint.xml.ns._public.common.common_3.ContainerPanelConfigurationType;
import com.evolveum.midpoint.xml.ns._public.common.common_3.SimulationResultType;

/**
* Created by Viliam Repan (lazyman).
Expand Down Expand Up @@ -61,45 +63,92 @@ protected List<Component> createToolbarButtonsList(String buttonId) {

@Override
protected List<InlineMenuItem> createInlineMenu() {
return super.createInlineMenu();
List<InlineMenuItem> items = new ArrayList<>();

items.add(new ButtonInlineMenuItem(createStringResource("list processed objects")) {
@Override
public CompositedIconBuilder getIconCompositedBuilder() {
return getDefaultCompositedIconBuilder("fa-solid fa-eye");
}

@Override
public InlineMenuItemAction initAction() {
return new ColumnMenuAction<SelectableBean<SimulationResultType>>() {

@Override
public void onClick(AjaxRequestTarget target) {
SelectableBean<SimulationResultType> bean = getRowModel().getObject();
listProcessedObjectsPerformed(target, bean.getValue());
}
};
}
});
items.add(new ButtonInlineMenuItem(createStringResource("delete")) {

@Override
public CompositedIconBuilder getIconCompositedBuilder() {
return getDefaultCompositedIconBuilder("fa-solid fa-trash");
}

@Override
public InlineMenuItemAction initAction() {
return null;
}
});
items.add(new ButtonInlineMenuItem(createStringResource("Delete processed objects")) {

@Override
public CompositedIconBuilder getIconCompositedBuilder() {
return getDefaultCompositedIconBuilder("fa-solid fa-trash");
}

@Override
public InlineMenuItemAction initAction() {
return null;
}
});

return items;
}

@Override
protected IColumn<SelectableBean<SimulationResultType>, String> createCustomExportableColumn(IModel<String> columnDisplayModel, GuiObjectColumnType customColumn, ExpressionType expression) {
ItemPath path = WebComponentUtil.getPath(customColumn);
if (DefaultColumnUtils.SIMULATION_RESULTS_DURATION.equivalent(path)) {
return new LambdaColumn<>(createStringResource("ProcessedObjectsPanel.duration"), row -> {
SimulationResultType result = row.getValue();

XMLGregorianCalendar start = result.getStartTimestamp();
if (start == null) {
return null;
}

XMLGregorianCalendar end = result.getEndTimestamp();
if (end == null) {
// todo null
return null;
}

protected List<IColumn<SelectableBean<SimulationResultType>, String>> createDefaultColumns() {
List<IColumn<SelectableBean<SimulationResultType>, String>> columns = super.createDefaultColumns();
columns.add(new LambdaColumn<>(createStringResource("ProcessedObjectsPanel.duration"), row -> {
SimulationResultType result = row.getValue();

XMLGregorianCalendar start = result.getStartTimestamp();
if (start == null) {
return null; // todo viliam
}

XMLGregorianCalendar end = result.getEndTimestamp();
if (end == null) {
// todo viliam
return null;
});
}

if (ItemPath.create(SimulationResultType.F_ROOT_TASK_REF, TaskType.F_EXECUTION_STATE).equivalent(path)) {
return new AbstractColumn<>(createStringResource("ProcessedObjectsPanel.duration")) {

@Override
public void populateItem(Item<ICellPopulator<SelectableBean<SimulationResultType>>> item, String id, IModel<SelectableBean<SimulationResultType>> model) {
Label label = new Label(id, () -> {
return "vilko";
});
label.add(AttributeAppender.replace("class", () -> "badge badge-success"));
item.add(label);
}
};
}

return super.createCustomExportableColumn(columnDisplayModel, customColumn, expression);
}

return null;
}));
columns.add(new AbstractColumn<>(createStringResource("ProcessedObjectsPanel.executionState")) {

@Override
public void populateItem(Item<ICellPopulator<SelectableBean<SimulationResultType>>> item, String id, IModel<SelectableBean<SimulationResultType>> model) {
Label label = new Label(id, () -> {
return "running"; // todo viliam
});
label.add(AttributeAppender.replace("class", () -> "badge badge-success")); // todo viliam
item.add(label);
}
});

return columns;
}

private void listProcessedObjectsPerformed(AjaxRequestTarget target, SimulationResultType object) {
PageParameters params = new PageParameters();
params.set(SimulationPage.PAGE_PARAMETER_RESULT_OID, object.getOid());

getPageBase().navigateToNext(PageSimulationResultObjects.class, params);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,6 @@
import com.evolveum.midpoint.common.LocalizationService;
import com.evolveum.midpoint.prism.Containerable;
import com.evolveum.midpoint.prism.PrismValue;
import com.evolveum.midpoint.prism.path.ItemName;
import com.evolveum.midpoint.prism.path.ItemPath;
import com.evolveum.midpoint.schema.GetOperationOptions;
import com.evolveum.midpoint.schema.GetOperationOptionsBuilder;
Expand All @@ -43,8 +42,6 @@
*/
public class DefaultColumnUtils {

public static final ItemName SIMULATION_RESULTS_DURATION = new ItemName(ObjectFactory.NAMESPACE, "duration");

// Maps need to preserve iteration order (like LinkedHashMap)
private static final Map<Class<? extends Containerable>, List<ColumnWrapper>> COLUMNS_DEF;
private static final List<ColumnWrapper> OBJECT_COLUMNS_DEF;
Expand Down Expand Up @@ -111,8 +108,6 @@ public class DefaultColumnUtils {
.put(SimulationResultType.class, Arrays.asList(
new ColumnWrapper(SimulationResultType.F_NAME),
new ColumnWrapper(SimulationResultType.F_DESCRIPTION),
new ColumnWrapper(ItemPath.create(SimulationResultType.F_ROOT_TASK_REF, TaskType.F_EXECUTION_STATE)),
new ColumnWrapper(SIMULATION_RESULTS_DURATION),
new ColumnWrapper(SimulationResultType.F_START_TIMESTAMP)))
.put(SimulationResultProcessedObjectType.class, Arrays.asList(
new ColumnWrapper(SimulationResultProcessedObjectType.F_NAME),
Expand Down

0 comments on commit 842aa2f

Please sign in to comment.