Skip to content

Commit

Permalink
code/html/css cleanup in evaluated triggers (+ localization improveme…
Browse files Browse the repository at this point in the history
…nts)
  • Loading branch information
1azyman committed Feb 28, 2023
1 parent 339e276 commit f1a71dd
Show file tree
Hide file tree
Showing 9 changed files with 65 additions and 122 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,8 @@

import java.util.Locale;

import com.evolveum.midpoint.xml.ns._public.common.common_3.LocalizableMessageType;

import org.apache.commons.lang3.StringUtils;
import org.jetbrains.annotations.NotNull;

Expand Down Expand Up @@ -56,6 +58,14 @@ public static String translate(String key, Object[] params, String defaultMsg, L
return service.translate(key, params, locale, defaultMsg);
}

public static String translateMessage(LocalizableMessageType msg) {
if (msg == null) {
return null;
}

return translateMessage(com.evolveum.midpoint.schema.util.LocalizationUtil.toLocalizableMessage(msg));
}

public static String translateMessage(LocalizableMessage msg) {
if (msg == null) {
return null;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -467,13 +467,6 @@ protected void onUpdate(AjaxRequestTarget target) {
});
}

public static String resolveLocalizableMessage(LocalizableMessageType localizableMessage, Component component) {
if (localizableMessage == null) {
return null;
}
return resolveLocalizableMessage(com.evolveum.midpoint.schema.util.LocalizationUtil.toLocalizableMessage(localizableMessage), component);
}

public static String resolveLocalizableMessage(LocalizableMessage localizableMessage, Component component) {
if (localizableMessage == null) {
return null;
Expand Down

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -9,10 +9,8 @@
<!DOCTYPE html>
<html xmlns:wicket="http://wicket.apache.org">
<wicket:panel>

<div wicket:id="triggers">
<div wicket:id="trigger"></div>
</div>

<wicket:container wicket:id="triggers">
<div wicket:id="trigger"/>
</wicket:container>
</wicket:panel>
</html>
Original file line number Diff line number Diff line change
Expand Up @@ -10,29 +10,30 @@
import com.evolveum.midpoint.gui.api.component.BasePanel;
import com.evolveum.midpoint.web.page.admin.workflow.dto.EvaluatedTriggerDto;
import com.evolveum.midpoint.web.page.admin.workflow.dto.EvaluatedTriggerGroupDto;

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 org.apache.wicket.model.PropertyModel;

public class EvaluatedTriggerGroupPanel extends BasePanel<EvaluatedTriggerGroupDto> {

private static final long serialVersionUID = 1L;

private static final String ID_TRIGGERS = "triggers";
private static final String ID_TRIGGER = "trigger";

public EvaluatedTriggerGroupPanel(String id, IModel<EvaluatedTriggerGroupDto> model) {
super(id, model);

initLayout();
}

private void initLayout() {
ListView<EvaluatedTriggerDto> list = new ListView<EvaluatedTriggerDto>(ID_TRIGGERS,
new PropertyModel<>(getModel(), EvaluatedTriggerGroupDto.F_TRIGGERS)) {
ListView<EvaluatedTriggerDto> list = new ListView<>(ID_TRIGGERS, () -> getModelObject().getTriggers()) {

@Override
protected void populateItem(ListItem<EvaluatedTriggerDto> item) {
EvaluatedTriggerDto trigger = item.getModelObject();
item.add(new EvaluatedTriggerPanel(ID_TRIGGER, Model.of(trigger)));
item.add(new EvaluatedTriggerPanel(ID_TRIGGER, item.getModel()));
}
};
add(list);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,6 @@
~ and European Union Public License. See LICENSE file for details.
-->
<wicket:panel xmlns:wicket="http://wicket.apache.org">
<!-- TODO some css -->
<div wicket:id="frame" style="margin: 5px; padding: 5px; border: 1px solid #ccc; border-radius: 4px;">
<div wicket:id="message"></div>
<div wicket:id="children"></div>
</div>
<div wicket:id="message"/>
<div wicket:id="children"/>
</wicket:panel>
Original file line number Diff line number Diff line change
Expand Up @@ -7,19 +7,17 @@

package com.evolveum.midpoint.web.page.admin.workflow;

import com.evolveum.midpoint.gui.api.component.BasePanel;
import com.evolveum.midpoint.web.component.util.LocalizableMessageModel;
import com.evolveum.midpoint.web.page.admin.workflow.dto.EvaluatedTriggerDto;
import com.evolveum.midpoint.web.page.admin.workflow.dto.EvaluatedTriggerGroupDto;
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.model.IModel;
import org.apache.wicket.model.Model;

import com.evolveum.midpoint.gui.api.component.BasePanel;
import com.evolveum.midpoint.gui.api.util.LocalizationUtil;
import com.evolveum.midpoint.web.component.util.VisibleBehaviour;
import com.evolveum.midpoint.web.page.admin.workflow.dto.EvaluatedTriggerDto;

public class EvaluatedTriggerPanel extends BasePanel<EvaluatedTriggerDto> {

private static final String ID_FRAME = "frame";
private static final String ID_MESSAGE = "message";
private static final String ID_CHILDREN = "children";

Expand All @@ -30,19 +28,14 @@ public EvaluatedTriggerPanel(String id, IModel<EvaluatedTriggerDto> model) {
}

protected void initLayout() {
EvaluatedTriggerDto trigger = getModelObject();
WebMarkupContainer frame = new WebMarkupContainer(ID_FRAME);
if (trigger.isHighlighted()) {
frame.add(new AttributeAppender("style", "background-color: #fcffd3")); // TODO skin
}
add(frame);

frame.add(new Label(ID_MESSAGE,
new LocalizableMessageModel(Model.of(trigger.getMessage()), this)));
EvaluatedTriggerGroupDto children = trigger.getChildren();
EvaluatedTriggerGroupPanel childrenPanel = new EvaluatedTriggerGroupPanel(ID_CHILDREN, Model.of(children));
childrenPanel.setVisible(!children.getTriggers().isEmpty());
frame.add(childrenPanel);
add(AttributeAppender.append("class", "m-2 p-2 border rounded"));
add(AttributeAppender.append("class", () -> getModelObject().isHighlighted() ? "bg-warning" : null));

add(new Label(ID_MESSAGE, () -> LocalizationUtil.translateMessage(getModelObject().getMessage())));

EvaluatedTriggerGroupPanel children = new EvaluatedTriggerGroupPanel(ID_CHILDREN, () -> getModelObject().getChildren());
children.add(new VisibleBehaviour(() -> !getModelObject().getChildren().getTriggers().isEmpty()));
add(children);
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -7,21 +7,17 @@

package com.evolveum.midpoint.web.page.admin.workflow;

import com.evolveum.midpoint.gui.api.component.BasePanel;
import com.evolveum.midpoint.gui.api.util.WebComponentUtil;
import com.evolveum.midpoint.web.component.util.LocalizableMessageModel;
import com.evolveum.midpoint.web.component.util.VisibleBehaviour;
import com.evolveum.midpoint.xml.ns._public.common.common_3.InformationPartType;
import com.evolveum.midpoint.xml.ns._public.common.common_3.InformationType;
import com.evolveum.midpoint.xml.ns._public.common.common_3.LocalizableMessageType;
import com.evolveum.midpoint.xml.ns._public.common.common_3.SingleLocalizableMessageType;
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.PropertyModel;

import static com.evolveum.midpoint.schema.util.LocalizationUtil.getLocalizableMessageOrDefault;
import com.evolveum.midpoint.gui.api.component.BasePanel;
import com.evolveum.midpoint.gui.api.util.LocalizationUtil;
import com.evolveum.midpoint.web.component.util.VisibleBehaviour;
import com.evolveum.midpoint.xml.ns._public.common.common_3.InformationPartType;
import com.evolveum.midpoint.xml.ns._public.common.common_3.InformationType;
import com.evolveum.midpoint.xml.ns._public.common.common_3.LocalizableMessageType;

public class InformationPanel extends BasePanel<InformationType> {

Expand All @@ -35,33 +31,41 @@ public InformationPanel(String id, IModel<InformationType> model) {
}

private void initLayout() {
Label titleLabel = new Label(ID_TITLE, new LocalizableMessageModel(new IModel<LocalizableMessageType>() {
@Override
public LocalizableMessageType getObject() {
InformationType info = getModelObject();
if (info == null || info.getTitle() == null && info.getLocalizableTitle() == null){
return new SingleLocalizableMessageType().fallbackMessage("ApprovalStageDefinitionType.additionalInformation");
}
return getLocalizableMessageOrDefault(info.getLocalizableTitle(), info.getTitle());
Label titleLabel = new Label(ID_TITLE, () -> {
InformationType info = getModelObject();
if (info == null || info.getTitle() == null && info.getLocalizableTitle() == null) {
return getString("ApprovalStageDefinitionType.additionalInformation");
}
}, this));

return translate(info.getLocalizableTitle(), info.getTitle());
});
titleLabel.add(new VisibleBehaviour(() -> getModelObject() != null));
add(titleLabel);

ListView<InformationPartType> list = new ListView<InformationPartType>(ID_PARTS,
new PropertyModel<>(getModel(), InformationType.F_PART.getLocalPart())) {
ListView<InformationPartType> list = new ListView<>(ID_PARTS, () -> getModelObject().getPart()) {

@Override
protected void populateItem(ListItem<InformationPartType> item) {
InformationPartType part = item.getModelObject();
Label label = new Label(ID_PART, part != null ? WebComponentUtil.resolveLocalizableMessage(
getLocalizableMessageOrDefault(part.getLocalizableText(), part.getText()), InformationPanel.this)
: "");
if (Boolean.TRUE.equals(part.isHasMarkup())) {
Label label = new Label(ID_PART, () -> {
InformationPartType part = item.getModelObject();
return translate(part.getLocalizableText(), part.getText());
});

if (Boolean.TRUE.equals(item.getModelObject().isHasMarkup())) {
label.setEscapeModelStrings(false);
}

item.add(label);
}
};
add(list);
}

private String translate(LocalizableMessageType msg, String defaultKey) {
if (msg != null) {
return LocalizationUtil.translateMessage(msg);
}

return LocalizationUtil.translate(defaultKey);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -154,11 +154,6 @@ private static List<Object> convertLocalizableMessageArguments(List<LocalizableM
return rv;
}

// migration-related method: if localizable message is present, defaultValue is ignored (i.e. it is not the same as fallbackMessage in LocalizableMessageType)
public static LocalizableMessageType getLocalizableMessageOrDefault(LocalizableMessageType localizableMessage, String defaultValue) {
return localizableMessage != null ? localizableMessage : new SingleLocalizableMessageType().fallbackMessage(defaultValue);
}

/**
* Returns locale object for provided string using {@link LocaleUtils#toLocale(String)}.
* If the input string is null, or the conversion fails, null is returned.
Expand Down

0 comments on commit f1a71dd

Please sign in to comment.