Skip to content

Commit

Permalink
simulation ui, fixing outstanding todos
Browse files Browse the repository at this point in the history
  • Loading branch information
1azyman committed Feb 10, 2023
1 parent aef9b5b commit e88f8d6
Show file tree
Hide file tree
Showing 4 changed files with 77 additions and 31 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -191,8 +191,7 @@ public SearchableItemsDefinitions additionalSearchContext(SearchContext ctx) {
SEARCHABLE_OBJECTS.put(SimulationResultType.class, Arrays.asList(
ItemPath.create(SimulationResultType.F_START_TIMESTAMP),
ItemPath.create(SimulationResultType.F_END_TIMESTAMP),
ItemPath.create(SimulationResultType.F_ROOT_TASK_REF),
ItemPath.create(SimulationResultType.F_METRIC)
ItemPath.create(SimulationResultType.F_ROOT_TASK_REF)
));

SEARCHABLE_OBJECTS.put(SimulationResultProcessedObjectType.class, Arrays.asList(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,9 +14,26 @@
<div class="col-3">
<div wicket:id="details"/>
</div>
<div class="col-9 row gap-3">
<div class="col-2" wicket:id="widgets">
<div wicket:id="widget"/>
<div class="col-9 d-flex flex-column">
<div class="card">
<div class="card-header">
<h5 class="mb-0">Event marks</h5>
</div>
</div>
<div class="row">
<div class="col-2 mb-3" wicket:id="marks">
<div wicket:id="mark"/>
</div>
</div>
<div class="card">
<div class="card-header">
<h5 class="mb-0">Metrics</h5>
</div>
</div>
<div class="row">
<div class="col-2 mb-3" wicket:id="metrics">
<div wicket:id="metric"/>
</div>
</div>
</div>
</div>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,27 +7,6 @@

package com.evolveum.midpoint.gui.impl.page.admin.simulation;

import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.stream.Collectors;
import javax.xml.datatype.XMLGregorianCalendar;

import org.apache.commons.lang3.BooleanUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.commons.lang3.time.DurationFormatUtils;
import org.apache.wicket.Component;
import org.apache.wicket.ajax.AjaxRequestTarget;
import org.apache.wicket.behavior.AttributeAppender;
import org.apache.wicket.markup.html.basic.Label;
import org.apache.wicket.markup.html.list.ListItem;
import org.apache.wicket.markup.html.list.ListView;
import org.apache.wicket.model.IModel;
import org.apache.wicket.model.LoadableDetachableModel;
import org.apache.wicket.request.mapper.parameter.PageParameters;
import org.jetbrains.annotations.NotNull;

import com.evolveum.midpoint.authentication.api.authorization.AuthorizationAction;
import com.evolveum.midpoint.authentication.api.authorization.PageDescriptor;
import com.evolveum.midpoint.authentication.api.authorization.Url;
Expand All @@ -54,6 +33,27 @@
import com.evolveum.midpoint.xml.ns._public.common.common_3.*;
import com.evolveum.prism.xml.ns._public.types_3.PolyStringType;

import org.apache.commons.lang3.BooleanUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.commons.lang3.time.DurationFormatUtils;
import org.apache.wicket.Component;
import org.apache.wicket.ajax.AjaxRequestTarget;
import org.apache.wicket.behavior.AttributeAppender;
import org.apache.wicket.markup.html.basic.Label;
import org.apache.wicket.markup.html.list.ListItem;
import org.apache.wicket.markup.html.list.ListView;
import org.apache.wicket.model.IModel;
import org.apache.wicket.model.LoadableDetachableModel;
import org.apache.wicket.request.mapper.parameter.PageParameters;
import org.jetbrains.annotations.NotNull;

import javax.xml.datatype.XMLGregorianCalendar;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.stream.Collectors;

/**
* Created by Viliam Repan (lazyman).
*/
Expand All @@ -77,8 +77,10 @@ public class PageSimulationResult extends PageAdmin implements SimulationPage {

private static final String ID_NAVIGATION = "navigation";
private static final String ID_DETAILS = "details";
private static final String ID_WIDGETS = "widgets";
private static final String ID_WIDGET = "widget";
private static final String ID_MARKS = "marks";
private static final String ID_MARK = "mark";
private static final String ID_METRICS = "metrics";
private static final String ID_METRIC = "metric";

private IModel<SimulationResultType> resultModel;

Expand Down Expand Up @@ -240,11 +242,19 @@ protected void onBackPerformed(AjaxRequestTarget target) {
detailsModel);
add(details);

ListView<DashboardWidgetType> widgets = new ListView<>(ID_WIDGETS, metricsModel) {
ListView<DashboardWidgetType> marks = createWidgetList(ID_MARKS, ID_MARK, true);
add(marks);

ListView<DashboardWidgetType> metrics = createWidgetList(ID_METRICS, ID_METRIC, false);
add(metrics);
}

private ListView<DashboardWidgetType> createWidgetList(String id, String widgetId, boolean eventMarks) {
return new ListView<>(id, createWidgetListModel(eventMarks)) {

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

@Override
protected void onMoreInfoPerformed(AjaxRequestTarget target) {
Expand All @@ -253,8 +263,19 @@ protected void onMoreInfoPerformed(AjaxRequestTarget target) {
});
}
};
}

add(widgets);
private IModel<List<DashboardWidgetType>> createWidgetListModel(boolean eventMarkWidgets) {

return new LoadableDetachableModel<>() {

@Override
protected List<DashboardWidgetType> load() {
return metricsModel.getObject().stream()
.filter(d -> d.getData().getMetricRef().getEventMarkRef() != null ? eventMarkWidgets : !eventMarkWidgets)
.collect(Collectors.toList());
}
};
}

private void onBackPerformed(AjaxRequestTarget target) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,12 +7,16 @@

package com.evolveum.midpoint.gui.impl.page.admin.simulation;

import java.util.ArrayList;
import java.util.Comparator;
import java.util.List;
import java.util.Objects;
import java.util.stream.Collectors;

import com.evolveum.midpoint.gui.api.component.button.CsvDownloadButtonPanel;

import org.apache.commons.lang3.StringUtils;
import org.apache.wicket.Component;
import org.apache.wicket.ajax.AjaxRequestTarget;
import org.apache.wicket.extensions.markup.html.repeater.data.grid.ICellPopulator;
import org.apache.wicket.extensions.markup.html.repeater.data.table.AbstractColumn;
Expand Down Expand Up @@ -245,4 +249,9 @@ public void populateItem(Item<ICellPopulator<SelectableBean<SimulationResultProc
private IColumn<SelectableBean<SimulationResultProcessedObjectType>, String> createTypeColumn(IModel<String> displayModel) {
return new LambdaColumn<>(displayModel, row -> GuiSimulationsUtil.getProcessedObjectType(row::getValue));
}

@Override
protected List<Component> createToolbarButtonsList(String idButton) {
return new ArrayList<>();
}
}

0 comments on commit e88f8d6

Please sign in to comment.