Skip to content

Commit

Permalink
simulation ui, related objects table, UI part implemented, query curr…
Browse files Browse the repository at this point in the history
…ently fails on backend
  • Loading branch information
1azyman committed Feb 13, 2023
1 parent a43273c commit fefb05b
Show file tree
Hide file tree
Showing 4 changed files with 65 additions and 34 deletions.
Expand Up @@ -11,6 +11,7 @@

import org.apache.wicket.AttributeModifier;
import org.apache.wicket.Component;
import org.apache.wicket.extensions.markup.html.repeater.data.table.IColumn;
import org.apache.wicket.markup.html.basic.Label;
import org.apache.wicket.model.IModel;
import org.apache.wicket.model.StringResourceModel;
Expand All @@ -19,8 +20,9 @@
import com.evolveum.midpoint.gui.api.component.Badge;
import com.evolveum.midpoint.gui.api.util.WebComponentUtil;
import com.evolveum.midpoint.schema.constants.ObjectTypes;
import com.evolveum.midpoint.xml.ns._public.common.common_3.ObjectProcessingStateType;
import com.evolveum.midpoint.xml.ns._public.common.common_3.SimulationResultProcessedObjectType;
import com.evolveum.midpoint.web.component.data.column.RoundedIconColumn;
import com.evolveum.midpoint.web.component.util.SelectableBean;
import com.evolveum.midpoint.xml.ns._public.common.common_3.*;

/**
* Created by Viliam Repan (lazyman).
Expand Down Expand Up @@ -86,4 +88,22 @@ public static String getProcessedObjectType(@NotNull IModel<SimulationResultProc

return getString(null, key);
}

public static IColumn<SelectableBean<SimulationResultProcessedObjectType>, String> createProcessedObjectIconColumn() {
return new RoundedIconColumn<>(null) {

@Override
protected DisplayType createDisplayType(IModel<SelectableBean<SimulationResultProcessedObjectType>> model) {
SimulationResultProcessedObjectType object = model.getObject().getValue();
ObjectType obj = object.getBefore() != null ? object.getBefore() : object.getAfter();
if (obj == null || obj.asPrismObject() == null) {
return new DisplayType()
.icon(new IconType().cssClass(WebComponentUtil.createDefaultColoredIcon(object.getType())));
}

return new DisplayType()
.icon(new IconType().cssClass(WebComponentUtil.createDefaultIcon(obj.asPrismObject())));
}
};
}
}
Expand Up @@ -13,18 +13,19 @@
<div class="row">
<div class="col-3">
<div wicket:id="details"/>
<div class="card">
<div class="card-header">
<h3 class="card-title">
<i class="fa-sharp fa-solid fa-bookmark mr-1"></i>
<wicket:message key="PageSimulationResultObject.relatedObjects"/>
</h3>
<wicket:enclosure wicket:child="relatedObjects">
<div class="card">
<div class="card-header">
<h3 class="card-title">
<i class="fa-sharp fa-solid fa-bookmark mr-1"></i>
<wicket:message key="PageSimulationResultObject.relatedObjects"/>
</h3>
</div>
<div class="card-body p-0">
<table class="table" wicket:id="relatedObjects"/>
</div>
</div>
<div class="card-body">
<table wicket:id="relatedObjects"/>
</div>
</div>

</wicket:enclosure>
</div>
<div class="col-9 row">
<div wicket:id="changes"/>
Expand Down
Expand Up @@ -47,9 +47,11 @@
import com.evolveum.midpoint.util.logging.Trace;
import com.evolveum.midpoint.util.logging.TraceManager;
import com.evolveum.midpoint.web.component.data.SelectableDataTable;
import com.evolveum.midpoint.web.component.data.column.AjaxLinkColumn;
import com.evolveum.midpoint.web.component.prism.show.VisualizationDto;
import com.evolveum.midpoint.web.component.prism.show.VisualizationPanel;
import com.evolveum.midpoint.web.component.prism.show.WrapperVisualization;
import com.evolveum.midpoint.web.component.util.SelectableBean;
import com.evolveum.midpoint.web.component.util.VisibleBehaviour;
import com.evolveum.midpoint.web.component.util.VisibleEnableBehaviour;
import com.evolveum.midpoint.web.page.admin.PageAdmin;
Expand Down Expand Up @@ -349,9 +351,10 @@ protected Search<SimulationResultProcessedObjectType> load() {
}
};

List<IColumn<SimulationResultProcessedObjectType, String>> columns = createColumns();
List<IColumn<SelectableBean<SimulationResultProcessedObjectType>, String>> columns = createColumns();

DataTable relatedObjects = new SelectableDataTable(ID_RELATED_OBJECTS, columns, provider, 20);
relatedObjects.add(new VisibleBehaviour(() -> relatedObjects.getRowCount() > 0));
add(relatedObjects);

DetailsTablePanel details = new DetailsTablePanel(ID_DETAILS,
Expand All @@ -364,12 +367,36 @@ protected Search<SimulationResultProcessedObjectType> load() {
add(panel);
}

private List<IColumn<SimulationResultProcessedObjectType, String>> createColumns() {
List<IColumn<SimulationResultProcessedObjectType, String>> columns = new ArrayList<>();
private List<IColumn<SelectableBean<SimulationResultProcessedObjectType>, String>> createColumns() {
List<IColumn<SelectableBean<SimulationResultProcessedObjectType>, String>> columns = new ArrayList<>();
columns.add(GuiSimulationsUtil.createProcessedObjectIconColumn());
columns.add(new AjaxLinkColumn<>(createStringResource("ProcessedObjectsPanel.nameColumn")) {

@Override
public void onClick(AjaxRequestTarget target, IModel<SelectableBean<SimulationResultProcessedObjectType>> rowModel) {
onRelatedObjectClicked(target, rowModel.getObject());
}

@Override
protected IModel createLinkModel(IModel<SelectableBean<SimulationResultProcessedObjectType>> rowModel) {
return () -> {
SimulationResultProcessedObjectType obj = rowModel.getObject().getValue();
if (obj == null || obj.getName() == null) {
return getString("ProcessedObjectsPanel.unnamed");
}

return WebComponentUtil.getTranslatedPolyString(obj.getName());
};
}
});

return columns;
}

private void onRelatedObjectClicked(AjaxRequestTarget target, SelectableBean<SimulationResultProcessedObjectType> bean) {
// todo implement
}

@Override
protected IModel<String> createPageTitleModel() {
return () -> null;
Expand Down
Expand Up @@ -13,8 +13,6 @@
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;
Expand All @@ -37,7 +35,6 @@
import com.evolveum.midpoint.prism.path.ItemPath;
import com.evolveum.midpoint.util.DisplayableValue;
import com.evolveum.midpoint.web.component.data.column.ContainerableNameColumn;
import com.evolveum.midpoint.web.component.data.column.RoundedIconColumn;
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.*;
Expand Down Expand Up @@ -93,21 +90,7 @@ protected SearchContext createAdditionalSearchContext() {

@Override
protected IColumn<SelectableBean<SimulationResultProcessedObjectType>, String> createIconColumn() {
return new RoundedIconColumn<>(null) {

@Override
protected DisplayType createDisplayType(IModel<SelectableBean<SimulationResultProcessedObjectType>> model) {
SimulationResultProcessedObjectType object = model.getObject().getValue();
ObjectType obj = object.getBefore() != null ? object.getBefore() : object.getAfter();
if (obj == null || obj.asPrismObject() == null) {
return new DisplayType()
.icon(new IconType().cssClass(WebComponentUtil.createDefaultColoredIcon(object.getType())));
}

return new DisplayType()
.icon(new IconType().cssClass(WebComponentUtil.createDefaultIcon(obj.asPrismObject())));
}
};
return GuiSimulationsUtil.createProcessedObjectIconColumn();
}

@Override
Expand Down

0 comments on commit fefb05b

Please sign in to comment.