Skip to content

Commit

Permalink
fix of using css attributes in color element for GUI
Browse files Browse the repository at this point in the history
  • Loading branch information
skublik authored and tonydamage committed Dec 21, 2023
1 parent ce1346f commit c30bcfb
Show file tree
Hide file tree
Showing 15 changed files with 66 additions and 21 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
import java.util.*;
import javax.xml.namespace.QName;

import com.evolveum.midpoint.gui.api.util.GuiDisplayTypeUtil;
import com.evolveum.midpoint.gui.impl.page.admin.abstractrole.component.TaskAwareExecutor;
import com.evolveum.midpoint.web.component.menu.top.LocaleTopMenuPanel;

Expand Down Expand Up @@ -432,7 +433,7 @@ public static AttributeAppender createHeaderColorStyleModel(boolean checkSkinUsa
return null;
}

return "background-color: " + info.getHeaderColor() + " !important;";
return "background-color: " + GuiDisplayTypeUtil.removeStringAfterSemicolon(info.getHeaderColor()) + " !important;";
});
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,7 @@
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.StringUtils;

import javax.annotation.Nullable;
import javax.xml.namespace.QName;

public class GuiDisplayTypeUtil {
Expand Down Expand Up @@ -251,7 +252,7 @@ public static String getIconColor(DisplayType displayType) {
if (displayType == null || displayType.getIcon() == null) {
return "";
}
return displayType.getIcon().getColor();
return removeStringAfterSemicolon(displayType.getIcon().getColor());
}

public static String getHelp(DisplayType displayType) {
Expand Down Expand Up @@ -315,4 +316,11 @@ public static DisplayType createDisplayTypeWith(String labelOrg, String labelKey
display.setHelp(help);
return display;
}

public static String removeStringAfterSemicolon(@Nullable String headerColor) {
if (headerColor == null || !headerColor.contains(";")) {
return headerColor;
}
return headerColor.substring(0, headerColor.indexOf(";"));
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -2726,7 +2726,7 @@ public static CompositedIconBuilder getAssignmentRelationIconBuilder(PageBase pa
return null;
}
builder.setBasicIcon(actionButtonIcon, IconCssStyle.IN_ROW_STYLE)
.appendColorHtmlValue(actionButtonIcon.getColor());
.appendColorHtmlValue(GuiDisplayTypeUtil.removeStringAfterSemicolon(actionButtonIcon.getColor()));
return builder;
}
DisplayType objectTypeDisplay = null;
Expand Down Expand Up @@ -2760,7 +2760,7 @@ public static CompositedIconBuilder getAssignmentRelationIconBuilder(PageBase pa
.appendLayerIcon(relationIcon, IconCssStyle.TOP_RIGHT_MAX_ICON_STYLE);
} else {
builder.setBasicIcon(actionButtonIcon, IconCssStyle.IN_ROW_STYLE)
.appendColorHtmlValue(actionButtonIcon.getColor());
.appendColorHtmlValue(GuiDisplayTypeUtil.removeStringAfterSemicolon(actionButtonIcon.getColor()));
}
return builder;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -105,7 +105,9 @@ public void onComponentTagBody(final MarkupStream markupStream, final ComponentT
if (StringUtils.isNotEmpty(entry.getIconType().getCssClass())) {
sb.append("<i class=\"").append(entry.getIconType().getCssClass()).append("\"");
if (StringUtils.isNotEmpty(entry.getIconType().getColor())) {
sb.append(" style=\"color: ").append(entry.getIconType().getColor()).append(";\"");
sb.append(" style=\"color: ")
.append(GuiDisplayTypeUtil.removeStringAfterSemicolon(entry.getIconType().getColor()))
.append(";\"");
}
sb.append(">").append(entry.hasLabel() ? entry.getLabelModel().getObject() : "").append("</i> ");
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,8 @@
*/
package com.evolveum.midpoint.gui.impl.component.data.column;

import com.evolveum.midpoint.gui.api.util.GuiDisplayTypeUtil;

import org.apache.commons.lang3.StringUtils;
import org.apache.wicket.behavior.AttributeAppender;
import org.apache.wicket.markup.html.WebComponent;
Expand Down Expand Up @@ -87,7 +89,9 @@ protected void populateItem(ListItem<LayerIcon> item) {
WebComponent icon = new WebComponent(ID_LAYER_ICON);
icon.add(AttributeAppender.append("class", iconType.getCssClass()));
if (StringUtils.isNotEmpty(iconType.getColor())) {
icon.add(AttributeAppender.append("style", "color: " + iconType.getColor()));
icon.add(AttributeAppender.append(
"style",
"color: " + GuiDisplayTypeUtil.removeStringAfterSemicolon(iconType.getColor())));
}
item.add(icon);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
*/
package com.evolveum.midpoint.gui.impl.component.data.column;

import com.evolveum.midpoint.gui.api.util.GuiDisplayTypeUtil;
import com.evolveum.midpoint.gui.api.util.WebComponentUtil;
import com.evolveum.midpoint.gui.impl.component.icon.CompositedIcon;

Expand Down Expand Up @@ -48,6 +49,6 @@ private String getLabel() {

private String getLabelColor() {
return labelDisplayModel != null && labelDisplayModel.getObject() != null && labelDisplayModel.getObject().getColor() != null ?
labelDisplayModel.getObject().getColor() : "";
GuiDisplayTypeUtil.removeStringAfterSemicolon(labelDisplayModel.getObject().getColor()) : "";
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@
import java.util.ArrayList;
import java.util.List;

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.commons.lang3.Validate;
Expand Down Expand Up @@ -124,8 +125,10 @@ public CompositedIconBuilder appendLayerIcon(IconType icon, LayeredIconCssStyle
}
String layerIconClass = sb.toString();
sb.append(" ").append(style.getStrokeLayerCssClass());
appendLayerIcon(new LayerIcon(IconAndStylesUtil.createIconType(sb.toString(), icon.getColor())));
appendLayerIcon(new LayerIcon(IconAndStylesUtil.createIconType(layerIconClass, icon.getColor())));
appendLayerIcon(new LayerIcon(
IconAndStylesUtil.createIconType(sb.toString(), GuiDisplayTypeUtil.removeStringAfterSemicolon(icon.getColor()))));
appendLayerIcon(new LayerIcon(
IconAndStylesUtil.createIconType(layerIconClass, GuiDisplayTypeUtil.removeStringAfterSemicolon(icon.getColor()))));
return this;
}

Expand All @@ -140,8 +143,12 @@ public CompositedIconBuilder appendLayerIcon(IModel<String> labelModel, IconType
}
String layerIconClass = sb.toString();
sb.append(" ").append(style.getStrokeLayerCssClass());
appendLayerIcon(new LayerIcon(IconAndStylesUtil.createIconType(sb.toString(), icon.getColor()), labelModel));
appendLayerIcon(new LayerIcon(IconAndStylesUtil.createIconType(layerIconClass, icon.getColor()), labelModel));
appendLayerIcon(new LayerIcon(
IconAndStylesUtil.createIconType(
sb.toString(), GuiDisplayTypeUtil.removeStringAfterSemicolon(icon.getColor())), labelModel));
appendLayerIcon(new LayerIcon(
IconAndStylesUtil.createIconType(
layerIconClass, GuiDisplayTypeUtil.removeStringAfterSemicolon(icon.getColor())), labelModel));
return this;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@
import com.evolveum.midpoint.gui.api.component.button.DropdownButtonPanel;
import com.evolveum.midpoint.gui.api.component.form.CheckBoxPanel;
import com.evolveum.midpoint.gui.api.prism.wrapper.ItemWrapper;
import com.evolveum.midpoint.gui.api.util.GuiDisplayTypeUtil;
import com.evolveum.midpoint.gui.api.util.WebComponentUtil;
import com.evolveum.midpoint.gui.impl.page.admin.resource.component.TemplateTile;

Expand Down Expand Up @@ -133,14 +134,18 @@ protected void populateItem(ListItem<DisplayType> item) {
tagContainer.add(AttributeAppender.append("style", tag.getCssStyle()));
}
if (StringUtils.isNotEmpty(tag.getColor())) {
tagContainer.add(AttributeAppender.append("style", "color: " + tag.getColor()));
tagContainer.add(AttributeAppender.append(
"style",
"color: " + GuiDisplayTypeUtil.removeStringAfterSemicolon(tag.getColor())));
}
if (StringUtils.isEmpty(tag.getCssClass())
&& StringUtils.isEmpty(tag.getCssStyle())
&& StringUtils.isEmpty(tag.getColor())
&& tag.getIcon() != null
&& StringUtils.isNotEmpty(tag.getIcon().getColor())) {
tagContainer.add(AttributeAppender.append("style", "color: " + tag.getIcon().getColor()));
tagContainer.add(AttributeAppender.append(
"style",
"color: " + GuiDisplayTypeUtil.removeStringAfterSemicolon(tag.getIcon().getColor())));
}
item.add(tagContainer);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,8 @@
*/
package com.evolveum.midpoint.web.component;

import com.evolveum.midpoint.gui.api.util.GuiDisplayTypeUtil;

import org.apache.commons.lang3.StringUtils;
import org.apache.wicket.AttributeModifier;
import org.apache.wicket.ajax.markup.html.form.AjaxSubmitLink;
Expand Down Expand Up @@ -90,7 +92,9 @@ public void onComponentTagBody(final MarkupStream markupStream, final ComponentT
if (StringUtils.isNotEmpty(entry.getIconType().getCssClass())) {
sb.append("<i class=\"").append(entry.getIconType().getCssClass()).append("\"");
if (StringUtils.isNotEmpty(entry.getIconType().getColor())) {
sb.append(" style=\"color: ").append(entry.getIconType().getColor()).append(";\"");
sb.append(" style=\"color: ")
.append(GuiDisplayTypeUtil.removeStringAfterSemicolon(entry.getIconType().getColor()))
.append(";\"");
}
sb.append(">").append(entry.hasLabel() ? entry.getLabelModel().getObject() : "").append("</i> ");
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@

import com.evolveum.midpoint.gui.api.component.BasePanel;
import com.evolveum.midpoint.gui.api.model.ReadOnlyModel;
import com.evolveum.midpoint.gui.api.util.GuiDisplayTypeUtil;
import com.evolveum.midpoint.web.component.util.VisibleBehaviour;
import com.evolveum.midpoint.xml.ns._public.common.common_3.DisplayType;
import com.evolveum.midpoint.xml.ns._public.common.common_3.IconType;
Expand Down Expand Up @@ -89,6 +90,6 @@ private String getColor(DisplayType displayType) {
return null;
}

return icon.getColor();
return GuiDisplayTypeUtil.removeStringAfterSemicolon(icon.getColor());
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
*/
package com.evolveum.midpoint.web.component.data.column;

import com.evolveum.midpoint.gui.api.util.GuiDisplayTypeUtil;
import com.evolveum.midpoint.gui.api.util.LocalizationUtil;

import org.apache.commons.lang3.StringUtils;
Expand Down Expand Up @@ -86,6 +87,6 @@ private String getColor() {
return null;
}

return icon.getColor();
return GuiDisplayTypeUtil.removeStringAfterSemicolon(icon.getColor());
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,8 @@

package com.evolveum.midpoint.web.component.data.column;

import com.evolveum.midpoint.gui.api.util.GuiDisplayTypeUtil;

import org.apache.commons.lang3.StringUtils;
import org.apache.wicket.behavior.AttributeAppender;
import org.apache.wicket.markup.html.WebMarkupContainer;
Expand Down Expand Up @@ -75,7 +77,7 @@ private String getIconColorStyle() {
if(icon != null) {
String color = icon.getColor();
if (StringUtils.isNotEmpty(color)) {
return "color:" + color + ";";
return "color:" + GuiDisplayTypeUtil.removeStringAfterSemicolon(color) + ";";
}
}
return null;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
package com.evolveum.midpoint.web.page.admin.home;

import com.evolveum.midpoint.gui.api.page.PageBase;
import com.evolveum.midpoint.gui.api.util.GuiDisplayTypeUtil;
import com.evolveum.midpoint.gui.api.util.WebComponentUtil;
import com.evolveum.midpoint.model.api.interaction.DashboardWidget;
import com.evolveum.midpoint.xml.ns._public.common.common_3.DashboardWidgetType;
Expand Down Expand Up @@ -80,7 +81,7 @@ private String createStyleColor(DashboardWidget dashboardWidget) {
}
DisplayType displayType = dashboardWidget.getDisplay();
if (displayType != null && StringUtils.isNoneBlank(displayType.getColor())) {
return "background-color:" + displayType.getColor() + ";";
return "background-color:" + GuiDisplayTypeUtil.removeStringAfterSemicolon(displayType.getColor()) + ";";
}
return DEFAULT_BACKGROUND_COLOR;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,8 @@
import java.util.stream.Collectors;
import javax.xml.namespace.QName;

import com.evolveum.midpoint.gui.api.util.GuiDisplayTypeUtil;

import org.apache.commons.lang3.StringUtils;
import org.apache.wicket.AttributeModifier;
import org.apache.wicket.Component;
Expand Down Expand Up @@ -306,7 +308,7 @@ protected CompositedIcon getCompositedIcon(IModel<SelectableBean<AuditEventRecor
} else {
rightBottomIcon = eventType.getDisplay().getIcon().getCssClass();
}
iconColor = eventType.getDisplay().getIcon().getColor();
iconColor = GuiDisplayTypeUtil.removeStringAfterSemicolon(eventType.getDisplay().getIcon().getColor());
}
CompositedIconBuilder iconBuilder = new CompositedIconBuilder();
if (defaultIcon != null) {
Expand All @@ -332,7 +334,7 @@ public IModel<DisplayType> getLabelDisplayModel(IModel<SelectableBean<AuditEvent
WebComponentUtil.createLocalizedModelForEnum(record.getEventType(), AuditLogViewerPanel.this).getObject();
String color = eventType != null && eventType.getDisplay() != null && eventType.getDisplay().getIcon() != null ?
eventType.getDisplay().getIcon().getColor() : null;
return Model.of(new DisplayType().label(label).color(color));
return Model.of(new DisplayType().label(label).color(GuiDisplayTypeUtil.removeStringAfterSemicolon(color)));
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -184,7 +184,13 @@ private CommonHtmlSupport getDefaultSupport() {

@Override
public @Nullable Function<String, String> getFunctionForWidgetStatus() {
return (value) -> CommonHtmlSupport.VALUE_CSS_STYLE_TAG + "{background-color: " + value + " !important;}";
return (value) -> {
String color = value;
if (color.contains(";")) {
color = color.substring(0, color.indexOf(";"));
}
return CommonHtmlSupport.VALUE_CSS_STYLE_TAG + "{background-color: " + color + " !important;}";
};
}

@Override
Expand Down

0 comments on commit c30bcfb

Please sign in to comment.