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 Oct 3, 2022
2 parents adf1abe + d09e505 commit 780aff6
Show file tree
Hide file tree
Showing 31 changed files with 458 additions and 437 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -451,7 +451,7 @@ private List<ContainerPanelConfigurationType> getPanelsFor(Class<? extends Conta
pis.forEach(pi -> addPanelsFor(panels, containerable, clazz, pi));
}

MiscSchemaUtil.sortDetailsPanels(panels);
MiscSchemaUtil.sortFeaturesPanels(panels);

return panels;
}
Expand Down Expand Up @@ -589,7 +589,7 @@ private List<ContainerPanelConfigurationType> processChildren(Class<? extends Co
}
}

MiscSchemaUtil.sortDetailsPanels(configs);
MiscSchemaUtil.sortFeaturesPanels(configs);

return configs;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -112,8 +112,8 @@ private List<CompositedIconButtonDto> newButtonDescription() {
createStringResource("AssignmentPanel.newAssignmentTitle", "", "").getString());
CompositedIconButtonDto defaultButton = new CompositedIconButtonDto();
CompositedIconBuilder builder = new CompositedIconBuilder();
builder.setBasicIcon(WebComponentUtil.getIconCssClass(defaultButtonDisplayType), IconCssStyle.IN_ROW_STYLE)
.appendColorHtmlValue(WebComponentUtil.getIconColor(defaultButtonDisplayType))
builder.setBasicIcon(GuiDisplayTypeUtil.getIconCssClass(defaultButtonDisplayType), IconCssStyle.IN_ROW_STYLE)
.appendColorHtmlValue(GuiDisplayTypeUtil.getIconColor(defaultButtonDisplayType))
.appendLayerIcon(WebComponentUtil.createIconType(GuiStyleConstants.CLASS_PLUS_CIRCLE, "green"), IconCssStyle.BOTTOM_RIGHT_STYLE);

defaultButton.setAdditionalButtonDisplayType(defaultButtonDisplayType);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -468,8 +468,8 @@ private CompositedIconButtonDto createCompositedIconButtonDto(DisplayType button
compositedIconButtonDto.setCompositedIcon(icon);
} else {
CompositedIconBuilder mainButtonIconBuilder = new CompositedIconBuilder();
mainButtonIconBuilder.setBasicIcon(WebComponentUtil.getIconCssClass(buttonDisplayType), IconCssStyle.IN_ROW_STYLE)
.appendColorHtmlValue(WebComponentUtil.getIconColor(buttonDisplayType));
mainButtonIconBuilder.setBasicIcon(GuiDisplayTypeUtil.getIconCssClass(buttonDisplayType), IconCssStyle.IN_ROW_STYLE)
.appendColorHtmlValue(GuiDisplayTypeUtil.getIconColor(buttonDisplayType));
compositedIconButtonDto.setCompositedIcon(mainButtonIconBuilder.build());
}
compositedIconButtonDto.setAssignmentObjectRelation(relation);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -150,8 +150,8 @@ private CompositedIcon createCompositedIcon(CompiledObjectCollectionView collect

PolyStringType tooltip = display != null ? display.getTooltip() : null;

builder.setBasicIcon(WebComponentUtil.getIconCssClass(display), IconCssStyle.IN_ROW_STYLE)
.appendColorHtmlValue(WebComponentUtil.getIconColor(display))
builder.setBasicIcon(GuiDisplayTypeUtil.getIconCssClass(display), IconCssStyle.IN_ROW_STYLE)
.appendColorHtmlValue(GuiDisplayTypeUtil.getIconColor(display))
.setTitle(WebComponentUtil.getTranslatedPolyString(tooltip));
// .appendLayerIcon(WebComponentUtil.createIconType(GuiStyleConstants.CLASS_PLUS_CIRCLE, "green"), IconCssStyle.BOTTOM_RIGHT_STYLE);

Expand Down Expand Up @@ -181,8 +181,8 @@ protected List<Component> createToolbarButtonsList(String buttonId) {
private Component createNewObjectButton(String buttonId) {
DisplayType newObjectButtonDisplayType = getNewObjectButtonStandardDisplayType();
CompositedIconBuilder builder = new CompositedIconBuilder();
builder.setBasicIcon(WebComponentUtil.getIconCssClass(newObjectButtonDisplayType), IconCssStyle.IN_ROW_STYLE)
.appendColorHtmlValue(WebComponentUtil.getIconColor(newObjectButtonDisplayType));
builder.setBasicIcon(GuiDisplayTypeUtil.getIconCssClass(newObjectButtonDisplayType), IconCssStyle.IN_ROW_STYLE)
.appendColorHtmlValue(GuiDisplayTypeUtil.getIconColor(newObjectButtonDisplayType));
CompiledObjectCollectionView view = getObjectCollectionView();
if (isCollectionViewPanelForCompiledView() && GuiDisplayTypeUtil.existsIconDisplay(view)
&& GuiDisplayTypeUtil.containsDifferentIcon(newObjectButtonDisplayType, GuiStyleConstants.CLASS_ADD_NEW_OBJECT)) {
Expand All @@ -191,7 +191,7 @@ private Component createNewObjectButton(String buttonId) {
plusIcon.setColor("green");
builder.appendLayerIcon(plusIcon, LayeredIconCssStyle.BOTTOM_RIGHT_STYLE);
}
String iconTitle = WebComponentUtil.getDisplayTypeTitle(newObjectButtonDisplayType);
String iconTitle = GuiDisplayTypeUtil.getDisplayTypeTitle(newObjectButtonDisplayType);
AjaxCompositedIconButton createNewObjectButton = new AjaxCompositedIconButton(buttonId, builder.build(),
createStringResource(StringUtils.isEmpty(iconTitle) ? "MainObjectListPanel.newObject" : iconTitle)) {

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
*/
package com.evolveum.midpoint.gui.api.component.form;

import com.evolveum.midpoint.gui.api.util.GuiDisplayTypeUtil;
import com.evolveum.midpoint.gui.api.util.WebComponentUtil;
import com.evolveum.midpoint.web.component.prism.InputPanel;
import com.evolveum.midpoint.web.component.util.EnableBehaviour;
Expand Down Expand Up @@ -68,7 +69,7 @@ private IModel<String> getLabelModel() {
if (displayModel == null) {
return null;
}
return WebComponentUtil.getTranslatedPolyString(WebComponentUtil.getLabel(displayModel.getObject()));
return WebComponentUtil.getTranslatedPolyString(GuiDisplayTypeUtil.getLabel(displayModel.getObject()));
};
}

Expand All @@ -77,7 +78,7 @@ private IModel<String> getTooltipModel() {
if (displayModel == null) {
return null;
}
return WebComponentUtil.getHelp(displayModel.getObject());
return GuiDisplayTypeUtil.getHelp(displayModel.getObject());
};
}

Expand All @@ -86,7 +87,7 @@ private IModel<String> getIconModel() {
if (displayModel == null) {
return null;
}
return WebComponentUtil.getIconCssClass(displayModel.getObject());
return GuiDisplayTypeUtil.getIconCssClass(displayModel.getObject());
};
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -221,6 +221,38 @@ public static <O extends ObjectType> DisplayType getDisplayTypeForObject(O obj,
return displayType;
}

public static String getIconCssClass(DisplayType displayType) {
if (displayType == null || displayType.getIcon() == null) {
return "";
}
return displayType.getIcon().getCssClass();
}

public static PolyStringType getLabel(DisplayType displayType) {
return displayType == null ? null : displayType.getLabel();
}

public static String getIconColor(DisplayType displayType) {
if (displayType == null || displayType.getIcon() == null) {
return "";
}
return displayType.getIcon().getColor();
}

public static String getHelp(DisplayType displayType) {
if (displayType == null || displayType.getHelp() == null) {
return "";
}
return WebComponentUtil.getTranslatedPolyString(displayType.getHelp());
}

public static String getDisplayTypeTitle(DisplayType displayType) {
if (displayType == null || displayType.getTooltip() == null) {
return "";
}
return displayType.getTooltip().getOrig();
}

public static boolean existsIconDisplay(CompiledObjectCollectionView view) {
if (view == null){
return false;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,8 @@
import javax.xml.datatype.XMLGregorianCalendar;
import javax.xml.namespace.QName;

import com.evolveum.midpoint.web.application.PageMounter;

import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.StringEscapeUtils;
import org.apache.commons.lang3.StringUtils;
Expand Down Expand Up @@ -2578,56 +2580,48 @@ public static void dispatchToListPage(Class<? extends Containerable> objectClass
}
}

public static void redirectFromDashboardWidget(ContainerPanelConfigurationType widgetConfig, PageBase pageBase, Component component) {
if (widgetConfig == null) {
return;
}
List<GuiActionType> actionList = widgetConfig.getAction();
if (CollectionUtils.isEmpty(actionList)) {
return;
}
Optional<GuiActionType> actionWithRedirection = actionList.stream().filter(WebComponentUtil::isRedirectionTargetNotEmpty).findFirst();
if (actionWithRedirection.isEmpty()) {
return;
}
RedirectionTargetType redirectionTarget = actionWithRedirection.get().getTarget();
public static void redirectFromDashboardWidget(GuiActionType action, PageBase pageBase, Component component) {
RedirectionTargetType redirectionTarget = action.getTarget();
String url = redirectionTarget.getTargetUrl();
String pageClass = redirectionTarget.getPageClass();
String panelType = redirectionTarget.getPanelType();
if (StringUtils.isNotEmpty(url) && new UrlValidator().isValid(url)) {
throw new RedirectToUrlException(url);
} else if (StringUtils.isNotEmpty(pageClass)) {
try {
Class<?> clazz = Class.forName(pageClass);
ContainerPanelConfigurationType config = new ContainerPanelConfigurationType();
config.setPanelType(panelType);

Constructor<?> constructor = clazz.getConstructor();
Object pageInstance = constructor.newInstance();
if (pageInstance instanceof PageSelfProfile && StringUtils.isNotEmpty(panelType)) {
String storageKey = "details" + ((AbstractPageObjectDetails<?, ?>) pageInstance).getType().getSimpleName();
ObjectDetailsStorage pageStorage = pageBase.getSessionStorage().getObjectDetailsStorage(storageKey);
if (pageStorage == null) {
pageBase.getSessionStorage().setObjectDetailsStorage(storageKey, config);
} else {
pageStorage.setDefaultConfiguration(config);
}
pageBase.navigateToNext(WebComponentUtil.resolveSelfPage());
} else if (pageInstance instanceof WebPage) {
pageBase.navigateToNext((Class<? extends WebPage>) clazz);
}
} catch (Throwable e) {
e.printStackTrace();
LOGGER.trace("No constructor found for (String, LoadableModel, ContainerPanelConfigurationType). Continue with lookup.", e);

Class<? extends WebPage> webPageClass = null;
if (StringUtils.isNotEmpty(url)) {
if (new UrlValidator().isValid(url)) {
throw new RedirectToUrlException(url);
}
webPageClass = PageMounter.getUrlClassMap().get(url);
}

try {
if (webPageClass == null) {
webPageClass = (Class<? extends WebPage>) Class.forName(pageClass);
}

PageParameters params = new PageParameters();
String panelType = redirectionTarget.getPanelIdentifier();
if (panelType != null) {
params.set(AbstractPageObjectDetails.PARAM_PANEL_ID, panelType);
}

String collectionIdentifier = redirectionTarget.getCollectionIdentifier();
if (collectionIdentifier != null) {
params.set(PageBase.PARAMETER_OBJECT_COLLECTION_NAME, collectionIdentifier);
}
pageBase.navigateToNext(webPageClass, params);

} catch (Throwable e) {
LOGGER.trace("Problem with redirecting to page: {}, reason: {}", webPageClass, e.getMessage(), e);
}

}

public static boolean isRedirectionTargetNotEmpty(GuiActionType action) {
if (action == null || action.getTarget() == null) {
return false;
}
return !StringUtils.isAllEmpty(action.getTarget().getTargetUrl(), action.getTarget().getPageClass(), action.getTarget().getPanelType());
RedirectionTargetType target = action.getTarget();
return !StringUtils.isAllEmpty(target.getTargetUrl(), target.getPageClass(), target.getPanelIdentifier(), target.getCollectionIdentifier());
}

public static boolean hasDetailsPage(PrismObject<?> object) {
Expand Down Expand Up @@ -3783,38 +3777,6 @@ public static <O extends ObjectType> ArchetypePolicyType getArchetypeSpecificati
return spec;
}

public static String getIconCssClass(DisplayType displayType) {
if (displayType == null || displayType.getIcon() == null) {
return "";
}
return displayType.getIcon().getCssClass();
}

public static PolyStringType getLabel(DisplayType displayType) {
return displayType == null ? null : displayType.getLabel();
}

public static String getIconColor(DisplayType displayType) {
if (displayType == null || displayType.getIcon() == null) {
return "";
}
return displayType.getIcon().getColor();
}

public static String getHelp(DisplayType displayType) {
if (displayType == null || displayType.getHelp() == null) {
return "";
}
return getTranslatedPolyString(displayType.getHelp());
}

public static String getDisplayTypeTitle(DisplayType displayType) {
if (displayType == null || displayType.getTooltip() == null) {
return "";
}
return displayType.getTooltip().getOrig();
}

//TODO unify createAccountIcon with createCompositeIconForObject
public static <O extends ObjectType> CompositedIcon createCompositeIconForObject(O obj, OperationResult result, PageBase pageBase) {
if (obj instanceof ShadowType) {
Expand All @@ -3831,10 +3793,10 @@ public static <O extends ObjectType> CompositedIcon createCompositeIconForObject
IconType lifecycleStateIcon = getIconForLifecycleState(obj);
IconType activationStatusIcon = getIconForActivationStatus(obj);

String iconColor = getIconColor(basicIconDisplayType);
String iconColor = GuiDisplayTypeUtil.getIconColor(basicIconDisplayType);

CompositedIconBuilder builder = iconBuilder.setBasicIcon(
getIconCssClass(basicIconDisplayType), IconCssStyle.IN_ROW_STYLE)
GuiDisplayTypeUtil.getIconCssClass(basicIconDisplayType), IconCssStyle.IN_ROW_STYLE)
.appendColorHtmlValue(StringUtils.isNotEmpty(iconColor) ? iconColor : "");

StringBuilder title = new StringBuilder(getOrigStringFromPolyOrEmpty(basicIconDisplayType.getTooltip()));
Expand Down Expand Up @@ -4206,12 +4168,12 @@ public static CompositedIconBuilder getAssignmentRelationIconBuilder(PageBase pa
objectTypeDisplay.setIcon(new IconType());
}
QName objectType = CollectionUtils.isNotEmpty(relationSpec.getObjectTypes()) ? relationSpec.getObjectTypes().get(0) : null;
if (StringUtils.isEmpty(WebComponentUtil.getIconCssClass(objectTypeDisplay)) && objectType != null) {
if (StringUtils.isEmpty(GuiDisplayTypeUtil.getIconCssClass(objectTypeDisplay)) && objectType != null) {
objectTypeDisplay.getIcon().setCssClass(WebComponentUtil.createDefaultBlackIcon(objectType));
}
if (StringUtils.isNotEmpty(WebComponentUtil.getIconCssClass(objectTypeDisplay))) {
if (StringUtils.isNotEmpty(GuiDisplayTypeUtil.getIconCssClass(objectTypeDisplay))) {
builder.setBasicIcon(objectTypeDisplay.getIcon(), IconCssStyle.IN_ROW_STYLE)
.appendColorHtmlValue(WebComponentUtil.getIconColor(objectTypeDisplay))
.appendColorHtmlValue(GuiDisplayTypeUtil.getIconColor(objectTypeDisplay))
.appendLayerIcon(actionButtonIcon, IconCssStyle.BOTTOM_RIGHT_STYLE)
.appendLayerIcon(relationIcon, IconCssStyle.TOP_RIGHT_STYLE);
} else {
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;

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.AjaxLink;
Expand Down Expand Up @@ -63,7 +65,7 @@ protected void onInitialize() {
return title.getObject();
}

return isNotEmptyModel() ? WebComponentUtil.getDisplayTypeTitle(buttonModel.getObject().getAdditionalButtonDisplayType()) : "";
return isNotEmptyModel() ? GuiDisplayTypeUtil.getDisplayTypeTitle(buttonModel.getObject().getAdditionalButtonDisplayType()) : "";
}));
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -57,8 +57,8 @@ protected List<CompositedIconButtonDto> createNewButtonDescription() {
DisplayType defaultButtonDisplayType = GuiDisplayTypeUtil.createDisplayType("fa fa-plus", "green", title);
CompositedIconButtonDto defaultButton = new CompositedIconButtonDto();
CompositedIconBuilder builder = new CompositedIconBuilder();
builder.setBasicIcon(WebComponentUtil.getIconCssClass(defaultButtonDisplayType), IconCssStyle.IN_ROW_STYLE)
.appendColorHtmlValue(WebComponentUtil.getIconColor(defaultButtonDisplayType));
builder.setBasicIcon(GuiDisplayTypeUtil.getIconCssClass(defaultButtonDisplayType), IconCssStyle.IN_ROW_STYLE)
.appendColorHtmlValue(GuiDisplayTypeUtil.getIconColor(defaultButtonDisplayType));

defaultButton.setAdditionalButtonDisplayType(defaultButtonDisplayType);
defaultButton.setCompositedIcon(builder.build());
Expand Down

0 comments on commit 780aff6

Please sign in to comment.