Skip to content

Commit

Permalink
Merge remote-tracking branch 'refs/remotes/origin/master'
Browse files Browse the repository at this point in the history
  • Loading branch information
skublik committed Sep 25, 2023
2 parents e72c38b + 2ff24bb commit d8ee2c1
Show file tree
Hide file tree
Showing 68 changed files with 1,161 additions and 496 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,7 @@ public String getCss() {
private String iconCssClass;

private String text;
private String title;

public Badge() {
this(null, null);
Expand All @@ -50,9 +51,14 @@ public Badge(String cssClass, String text) {
}

public Badge(String cssClass, String iconCssClass, String text) {
this(cssClass, iconCssClass, text, null);
}

public Badge(String cssClass, String iconCssClass, String text, String title) {
this.cssClass = cssClass;
this.iconCssClass = iconCssClass;
this.text = text;
this.title = title;
}

public String getCssClass() {
Expand Down Expand Up @@ -86,4 +92,13 @@ public String getText() {
public void setText(String text) {
this.text = text;
}

public String getTitle() {
return title;
}

public void setTitle(String title) {
this.title = title;
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@
package com.evolveum.midpoint.gui.api.component;

import org.apache.commons.lang3.StringUtils;
import org.apache.wicket.AttributeModifier;
import org.apache.wicket.behavior.AttributeAppender;
import org.apache.wicket.markup.ComponentTag;
import org.apache.wicket.markup.html.WebMarkupContainer;
Expand Down Expand Up @@ -39,6 +40,8 @@ protected void onComponentTag(ComponentTag tag) {
}

private void initLayout() {
add(AttributeModifier.replace("title", getModelObject().getTitle()));

add(AttributeAppender.append("class", () -> getModelObject().getCssClass()));
add(new VisibleBehaviour(() ->
getModelObject() != null
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,5 @@
-->

<wicket:panel xmlns:wicket="http://wicket.apache.org">
<div wicket:id="operation">
<span class="label" wicket:id="label"><span wicket:id="text"/></span>
</div>
<div wicket:id="operation" />
</wicket:panel>
Original file line number Diff line number Diff line change
Expand Up @@ -7,17 +7,11 @@
package com.evolveum.midpoint.gui.api.component;

import com.evolveum.midpoint.gui.api.util.WebComponentUtil;
import com.evolveum.midpoint.web.util.InfoTooltipBehavior;
import com.evolveum.midpoint.xml.ns._public.common.common_3.OperationResultStatusType;
import com.evolveum.midpoint.xml.ns._public.common.common_3.PendingOperationExecutionStatusType;
import com.evolveum.midpoint.xml.ns._public.common.common_3.PendingOperationType;
import org.apache.wicket.AttributeModifier;
import org.apache.wicket.behavior.AttributeAppender;
import org.apache.wicket.markup.html.WebMarkupContainer;
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.Model;

import java.util.List;

Expand All @@ -42,95 +36,55 @@ protected void onInitialize() {
}

private void initLayout() {
ListView<PendingOperationType> operation = new ListView<PendingOperationType>(ID_OPERATION, getModel()) {

private static final long serialVersionUID = 1L;

@Override
protected void populateItem(ListItem<PendingOperationType> item) {
item.setRenderBodyOnly(true);
List<Badge> badgeList = getModelObject()
.stream()
.map(op -> new Badge(createBadgeClass(op), null, createLabelText(op), null))
.toList();
add(new BadgeListPanel(
ID_OPERATION,
Model.ofList(badgeList)));
}

WebMarkupContainer label = new WebMarkupContainer(ID_LABEL);
item.add(label);
private String createBadgeClass(PendingOperationType op) {
OperationResultStatusType rStatus = op.getResultStatus();
PendingOperationExecutionStatusType eStatus = op.getExecutionStatus();

Label text = new Label(ID_TEXT, createLabelText(item.getModel()));
text.setRenderBodyOnly(true);
label.add(text);
if (rStatus == OperationResultStatusType.FATAL_ERROR
|| rStatus == OperationResultStatusType.PARTIAL_ERROR) {
return Badge.State.DANGER.getCss();
}

label.add(AttributeAppender.append("class", createTextClass(item.getModel())));
if (rStatus == OperationResultStatusType.UNKNOWN
|| rStatus == OperationResultStatusType.WARNING) {
return Badge.State.WARNING.getCss();
}

label.add(AttributeModifier.replace("title", createTextTooltipModel(item.getModel())));
label.add(new InfoTooltipBehavior() {
if (rStatus == OperationResultStatusType.SUCCESS
|| eStatus == PendingOperationExecutionStatusType.COMPLETED) {
return Badge.State.SUCCESS.getCss();
}

@Override
public String getCssClass() {
return null;
}
});
}
};
add(operation);
}
if (rStatus == OperationResultStatusType.IN_PROGRESS
|| rStatus == OperationResultStatusType.NOT_APPLICABLE
|| rStatus == OperationResultStatusType.HANDLED_ERROR) {
return Badge.State.INFO.getCss();
}

private IModel<String> createTextClass(IModel<PendingOperationType> model) {
return new IModel<String>() {

private static final long serialVersionUID = 1L;

@Override
public String getObject() {
PendingOperationType op = model.getObject();
OperationResultStatusType rStatus = op.getResultStatus();
PendingOperationExecutionStatusType eStatus = op.getExecutionStatus();

if (rStatus == OperationResultStatusType.FATAL_ERROR
|| rStatus == OperationResultStatusType.PARTIAL_ERROR) {
return "label-danger";
}

if (rStatus == OperationResultStatusType.UNKNOWN
|| rStatus == OperationResultStatusType.WARNING) {
return "label-warning";
}

if (rStatus == OperationResultStatusType.SUCCESS
|| eStatus == PendingOperationExecutionStatusType.COMPLETED) {
return "label-success";
}

if (rStatus == OperationResultStatusType.IN_PROGRESS
|| rStatus == OperationResultStatusType.NOT_APPLICABLE
|| rStatus == OperationResultStatusType.HANDLED_ERROR) {
return "label-info";
}

return "label-default";
}
};
return Badge.State.PRIMARY.getCss();
}

private IModel<String> createTextTooltipModel(IModel<PendingOperationType> model) {
return new IModel<String>() {

private static final long serialVersionUID = 1L;

@Override
public String getObject() {
StringBuilder sb = new StringBuilder();

PendingOperationType op = model.getObject();
private String createTooltip(PendingOperationType op) {
StringBuilder sb = new StringBuilder();

buildStringItem(sb, "PendingOperationPanel.resultStatus", op.getResultStatus());
buildStringItem(sb, "PendingOperationPanel.executionStatus", op.getExecutionStatus());
buildStringItem(sb, "PendingOperationPanel.operationReference", op.getAsynchronousOperationReference());
buildStringItem(sb, "PendingOperationPanel.attempt", op.getAttemptNumber());
buildStringItem(sb, "PendingOperationPanel.pendingOperationType", op.getType());
buildStringItem(sb, "PendingOperationPanel.lastAttemptTimestamp", WebComponentUtil.formatDate(op.getLastAttemptTimestamp()));
buildStringItem(sb, "PendingOperationPanel.completionTimestamp", WebComponentUtil.formatDate(op.getCompletionTimestamp()));
buildStringItem(sb, "PendingOperationPanel.resultStatus", op.getResultStatus());
buildStringItem(sb, "PendingOperationPanel.executionStatus", op.getExecutionStatus());
buildStringItem(sb, "PendingOperationPanel.operationReference", op.getAsynchronousOperationReference());
buildStringItem(sb, "PendingOperationPanel.attempt", op.getAttemptNumber());
buildStringItem(sb, "PendingOperationPanel.pendingOperationType", op.getType());
buildStringItem(sb, "PendingOperationPanel.lastAttemptTimestamp", WebComponentUtil.formatDate(op.getLastAttemptTimestamp()));
buildStringItem(sb, "PendingOperationPanel.completionTimestamp", WebComponentUtil.formatDate(op.getCompletionTimestamp()));

return sb.toString();
}
};
return sb.toString();
}

private void buildStringItem(StringBuilder sb, String key, Object obj) {
Expand All @@ -146,23 +100,14 @@ private void buildStringItem(StringBuilder sb, String key, Object obj) {
sb.append('\n');
}

private IModel<String> createLabelText(IModel<PendingOperationType> model) {
return new IModel<String>() {
private String createLabelText(PendingOperationType op) {
OperationResultStatusType rStatus = op.getResultStatus();
PendingOperationExecutionStatusType eStatus = op.getExecutionStatus();

private static final long serialVersionUID = 1L;

@Override
public String getObject() {
PendingOperationType op = model.getObject();
OperationResultStatusType rStatus = op.getResultStatus();
PendingOperationExecutionStatusType eStatus = op.getExecutionStatus();

if (rStatus == null) {
return getString(eStatus);
}
if (rStatus == null) {
return getString(eStatus);
}

return getString(rStatus);
}
};
return getString(rStatus);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -404,7 +404,7 @@ protected List<VisualizationDto> load() {

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

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -168,7 +168,7 @@ protected List<InlineMenuItem> createInlineMenu() {

@Override
protected IColumn<SelectableBean<SimulationResultProcessedObjectType>, String> createIconColumn() {
return SimulationsGuiUtil.createProcessedObjectIconColumn();
return SimulationsGuiUtil.createProcessedObjectIconColumn(getParentPage());
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,11 @@
import java.util.stream.Collectors;
import javax.xml.namespace.QName;

import com.evolveum.midpoint.gui.api.page.PageAdminLTE;
import com.evolveum.midpoint.gui.api.util.GuiDisplayTypeUtil;
import com.evolveum.midpoint.gui.impl.util.IconAndStylesUtil;

import org.apache.commons.lang3.StringUtils;
import org.apache.wicket.AttributeModifier;
import org.apache.wicket.extensions.markup.html.repeater.data.table.IColumn;
import org.apache.wicket.markup.html.basic.Label;
Expand Down Expand Up @@ -106,7 +110,8 @@ public static String getProcessedObjectType(@NotNull IModel<SimulationResultProc
return LocalizationUtil.translate(key);
}

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

@Override
Expand All @@ -117,7 +122,11 @@ protected DisplayType createDisplayType(IModel<SelectableBean<SimulationResultPr
return new DisplayType()
.icon(new IconType().cssClass(IconAndStylesUtil.createDefaultColoredIcon(object.getType())));
}

DisplayType archetypeDisplayType = GuiDisplayTypeUtil.getArchetypePolicyDisplayType(obj, parentPage);
String iconCss = GuiDisplayTypeUtil.getIconCssClass(archetypeDisplayType);
if (StringUtils.isNotEmpty(iconCss)) {
return archetypeDisplayType;
}
return new DisplayType()
.icon(new IconType().cssClass(IconAndStylesUtil.createDefaultIcon(obj.asPrismObject())));
}
Expand Down

0 comments on commit d8ee2c1

Please sign in to comment.