Skip to content

Commit

Permalink
simulation ui, delta viewer improvements, html/css improvements
Browse files Browse the repository at this point in the history
  • Loading branch information
1azyman committed Feb 17, 2023
1 parent b7f9477 commit a03fd37
Show file tree
Hide file tree
Showing 13 changed files with 178 additions and 154 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@
</table>

<wicket:container wicket:id="partialVisualizations">
<div class="p-2" wicket:id="partialVisualization"/>
<div class="m-2" wicket:id="partialVisualization"/>
</wicket:container>
<div class="show-empty-button" wicket:id="showOperationalItemsLink"/>
</wicket:panel>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@
import java.util.ArrayList;
import java.util.Comparator;
import java.util.List;
import java.util.Objects;

import org.apache.wicket.Component;
import org.jetbrains.annotations.NotNull;
Expand All @@ -24,16 +25,10 @@
import com.evolveum.midpoint.model.api.visualizer.VisualizationItem;
import com.evolveum.midpoint.prism.PrismObjectDefinition;
import com.evolveum.midpoint.prism.delta.ChangeType;
import com.evolveum.midpoint.prism.path.ItemPath;

public class VisualizationDto implements Serializable {

public static final String F_CHANGE_TYPE = "changeType";
public static final String F_OBJECT_TYPE = "objectType";
public static final String F_DESCRIPTION = "description";
public static final String F_ITEMS = "items";
public static final String F_PARTIAL_VISUALIZATIONS = "partialVisualizations";
public static final String F_SORTED = "sorted";

@NotNull private final Visualization visualization;
private boolean minimized;
private boolean sorted = false;
Expand Down Expand Up @@ -90,27 +85,31 @@ public List<VisualizationItemDto> getItems() {
}

public String getName(Component component) {
if (visualization.getName() != null) {
if (visualization.getName().getDisplayName() != null) {
String name = resolve(visualization.getName().getDisplayName(), component, visualization.getName().namesAreResourceKeys());
if (visualization.getSourceAbsPath() != null && visualization.getSourceAbsPath().size() > 1) {
name = name + " (" + visualization.getSourceAbsPath().toString() + ")";
}
return name;
} else {
return resolve(visualization.getName().getSimpleName(), component, visualization.getName().namesAreResourceKeys());
}
} else {
return resolve("SceneDto.unnamed", component, true);
Name nameObject = visualization.getName();
if (nameObject == null) {
return resolve("SceneDto.unnamed", true);
}

String displayName = nameObject.getDisplayName();
if (displayName == null) {
return resolve(nameObject.getSimpleName(), nameObject.namesAreResourceKeys());
}

String name = resolve(displayName, nameObject.namesAreResourceKeys());
ItemPath path = visualization.getSourceAbsPath();
if (path != null && path.size() > 1) {
name = name + " (" + path + ")";
}

return name;
}

private String resolve(String name, Component component, boolean namesAreResourceKeys) {
if (namesAreResourceKeys) {
return PageBase.createStringResourceStatic(name).getString();
} else {
private String resolve(String name, boolean namesAreResourceKeys) {
if (!namesAreResourceKeys) {
return name;
}

return PageBase.createStringResourceStatic(name).getString();
}

public String getDescription(Component component) {
Expand Down Expand Up @@ -168,37 +167,20 @@ public boolean equals(Object o) {
if (this == o) {return true;}
if (o == null || getClass() != o.getClass()) {return false;}

VisualizationDto other = (VisualizationDto) o;

if (visualization != null ? !visualization.equals(other.visualization) : other.visualization != null) {
return false;
}
if (boxClassOverride != null ? !boxClassOverride.equals(other.boxClassOverride) : other.boxClassOverride != null) {
return false;
}
if (items != null ? !items.equals(other.items) : other.items != null) {return false;}
return !(partialVisualizations != null ? !partialVisualizations.equals(other.partialVisualizations) : other.partialVisualizations != null);
VisualizationDto that = (VisualizationDto) o;

if (!visualization.equals(that.visualization)) {return false;}
if (!Objects.equals(boxClassOverride, that.boxClassOverride)) {return false;}
if (items != null ? !items.equals(that.items) : that.items != null) {return false;}
return partialVisualizations != null ? partialVisualizations.equals(that.partialVisualizations) : that.partialVisualizations == null;
}

@Override
public int hashCode() {
int result = visualization != null ? visualization.hashCode() : 0;
int result = visualization.hashCode();
result = 31 * result + (boxClassOverride != null ? boxClassOverride.hashCode() : 0);
result = 31 * result + (items != null ? items.hashCode() : 0);
result = 31 * result + (partialVisualizations != null ? partialVisualizations.hashCode() : 0);
return result;
}

public void applyFoldingFrom(@NotNull VisualizationDto source) {
minimized = source.minimized;
int partialDst = partialVisualizations.size();
int partialSrc = source.getPartialVisualizations().size();
if (partialDst != partialSrc) {
return; // shouldn't occur
}
for (int i = 0; i < partialDst; i++) {
partialVisualizations.get(i).applyFoldingFrom(source.getPartialVisualizations().get(i));
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -10,12 +10,16 @@
<wicket:panel>
<td class="align-middle" wicket:id="nameContainer"><span wicket:id="name"/></td>
<td class="text-break" wicket:id="oldValueContainer">
<i class="mr-1" wicket:id="oldValueImage"/>
<div wicket:id="oldValue"/>
<div class="d-flex align-items-center gap-1">
<i wicket:id="oldValueImage"/>
<div wicket:id="oldValue"/>
</div>
</td>
<td class="text-break" wicket:id="newValueContainer">
<i class="mr-1" wicket:id="newValueImage"/>
<div wicket:id="newValue"/>
<div class="d-flex align-items-center gap-1">
<i wicket:id="newValueImage"/>
<div wicket:id="newValue"/>
</div>
</td>
</wicket:panel>
</html>
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,6 @@

package com.evolveum.midpoint.web.component.prism.show;

import com.evolveum.midpoint.gui.api.component.IconComponent;

import org.apache.wicket.AttributeModifier;
import org.apache.wicket.Component;
import org.apache.wicket.markup.html.WebMarkupContainer;
Expand All @@ -18,6 +16,7 @@

import com.evolveum.midpoint.gui.api.GuiStyleConstants;
import com.evolveum.midpoint.gui.api.component.BasePanel;
import com.evolveum.midpoint.gui.api.component.IconComponent;
import com.evolveum.midpoint.model.api.visualizer.VisualizationItemValue;
import com.evolveum.midpoint.web.component.util.VisibleBehaviour;

Expand Down Expand Up @@ -90,13 +89,13 @@ private void initLayout() {
newValueIconModel = Model.of(GuiStyleConstants.CLASS_CIRCLE_FULL);
newValueTitleModel = createStringResource("SceneItemLinePanel.unchangedValue");
} else {
newValueIconModel = Model.of("");
newValueTitleModel = Model.of("");
newValueIconModel = Model.of((String) null);
newValueTitleModel = Model.of((String) null);
}
} else {
if (getModelObject().isDescriptive()) {
newValueIconModel = Model.of("");
newValueTitleModel = Model.of("");
newValueIconModel = Model.of((String) null);
newValueTitleModel = Model.of((String) null);
} else {
newValueIconModel = !getModelObject().isDelta() && getModelObject().isDeltaVisualization() ?
Model.of(GuiStyleConstants.CLASS_CIRCLE_FULL) :
Expand All @@ -119,7 +118,7 @@ private void initLayout() {
IconComponent newValueImagePanel = new IconComponent(ID_NEW_VALUE_IMAGE, newValueIconModel, newValueTitleModel);
newValueImagePanel.add(new VisibleBehaviour(() -> {
VisualizationItemValue val = getModelObject().getNewValue();
return val != null && val.getSourceValue() != null;
return newValueIconModel.getObject() != null && val != null && val.getSourceValue() != null;
}));
newValueCell.add(newValueImagePanel);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,9 +8,9 @@
<!DOCTYPE html>
<html xmlns:wicket="http://wicket.apache.org">
<wicket:panel>
<span wicket:id="icon"/>
<i class="mr-1" wicket:id="icon"/>
<span wicket:id="label"/>
<span wicket:id="link"/>
<a wicket:id="link"/>
<span wicket:id="additionalText"/>
</wicket:panel>
</html>
Original file line number Diff line number Diff line change
Expand Up @@ -7,29 +7,28 @@

package com.evolveum.midpoint.web.component.prism.show;

import javax.xml.namespace.QName;

import org.apache.commons.lang3.StringUtils;
import org.apache.wicket.ajax.AjaxRequestTarget;
import org.apache.wicket.markup.html.basic.Label;
import org.apache.wicket.model.IModel;

import com.evolveum.midpoint.gui.api.component.BasePanel;
import com.evolveum.midpoint.gui.api.util.GuiDisplayTypeUtil;
import com.evolveum.midpoint.gui.api.component.IconComponent;
import com.evolveum.midpoint.gui.api.util.LocalizationUtil;
import com.evolveum.midpoint.gui.api.util.WebComponentUtil;
import com.evolveum.midpoint.model.api.visualizer.VisualizationItemValue;
import com.evolveum.midpoint.prism.Objectable;
import com.evolveum.midpoint.prism.PrismReferenceValue;
import com.evolveum.midpoint.schema.constants.ObjectTypes;
import com.evolveum.midpoint.util.LocalizableMessage;
import com.evolveum.midpoint.web.component.data.column.AjaxLinkPanel;
import com.evolveum.midpoint.web.component.data.column.ImagePanel;
import com.evolveum.midpoint.web.component.AjaxButton;
import com.evolveum.midpoint.web.component.util.VisibleBehaviour;
import com.evolveum.midpoint.web.util.ObjectTypeGuiDescriptor;
import com.evolveum.midpoint.xml.ns._public.common.common_3.DisplayType;
import com.evolveum.midpoint.xml.ns._public.common.common_3.ObjectReferenceType;
import com.evolveum.midpoint.xml.ns._public.common.common_3.ObjectType;

import org.apache.commons.lang3.StringUtils;
import org.apache.wicket.ajax.AjaxRequestTarget;
import org.apache.wicket.markup.html.basic.Label;
import org.apache.wicket.model.IModel;

import javax.xml.namespace.QName;

/**
* TODO make this parametric (along with VisualizationItemValue)
*/
Expand Down Expand Up @@ -60,31 +59,29 @@ private void initLayout() {
return !hasValidReferenceValue(object);
});

IModel<DisplayType> displayModel = (IModel) () -> {
ObjectTypeGuiDescriptor guiDescriptor = getObjectTypeDescriptor();
String cssClass = ObjectTypeGuiDescriptor.ERROR_ICON;
String title = null;
if (guiDescriptor != null) {
cssClass = guiDescriptor.getBlackIcon();
title = createStringResource(guiDescriptor.getLocalizationKey()).getObject();
}
return GuiDisplayTypeUtil.createDisplayType(cssClass, "", title);
};
final ImagePanel icon = new ImagePanel(ID_ICON, displayModel);
final IconComponent icon = new IconComponent(ID_ICON,
() -> {
ObjectTypeGuiDescriptor descriptor = getObjectTypeDescriptor();
return descriptor != null ? descriptor.getBlackIcon() : ObjectTypeGuiDescriptor.ERROR_ICON;
},
() -> {
ObjectTypeGuiDescriptor descriptor = getObjectTypeDescriptor();
return descriptor != null ? LocalizationUtil.translate(descriptor.getLocalizationKey()) : null;
});
icon.add(visibleIfReference);
add(icon);

final Label label = new Label(ID_LABEL, new LabelModel());
label.add(visibleIfNotReference);
add(label);

final AjaxLinkPanel link = new AjaxLinkPanel(ID_LINK, new LabelModel()) {
final AjaxButton link = new AjaxButton(ID_LINK, new LabelModel()) {
@Override
public void onClick(AjaxRequestTarget target) {
if (!(getModelObject().getSourceValue() instanceof PrismReferenceValue)) {
if (!(VisualizationItemValuePanel.this.getModelObject().getSourceValue() instanceof PrismReferenceValue)) {
return;
}
PrismReferenceValue refValue = (PrismReferenceValue) getModelObject().getSourceValue();
PrismReferenceValue refValue = (PrismReferenceValue) VisualizationItemValuePanel.this.getModelObject().getSourceValue();
if (refValue == null) {
return;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,23 +8,21 @@
<!DOCTYPE html>
<html xmlns:wicket="http://wicket.apache.org">
<wicket:panel>
<div class="mb-0 card card-outline-left" wicket:id="box">
<div class="card-header" wicket:id="headerPanel">
<h3 class="card-title">
<span wicket:id="wrapperDisplayName"/>
<span wicket:id="changeType"/>
<span wicket:id="objectType"/>
<small>
<span wicket:id="nameLabel"/><span wicket:id="nameLink"/> <span wicket:id="description"/>
</small>
<i class="fa fa-triangle-exclamation text-warning mr-1" wicket:id="warning" wicket:message="title:ScenePanel.warningMessage"></i>
</h3>
<div class="card-tools" wicket:id="optionButtons"/>
</div>
<div class="card-header" wicket:id="headerPanel">
<h3 class="card-title">
<span wicket:id="wrapperDisplayName"/>
<span wicket:id="changeType"/>
<span wicket:id="objectType"/>
<small>
<span wicket:id="nameLabel"/><span wicket:id="nameLink"/> <span wicket:id="description"/>
</small>
<i class="fa fa-triangle-exclamation text-warning mr-1" wicket:id="warning" wicket:message="title:ScenePanel.warningMessage"></i>
</h3>
<div class="card-tools" wicket:id="optionButtons"/>
</div>

<div wicket:id="body" class="card-body p-0">
<div wicket:id="visualization"/>
</div>
<div wicket:id="body" class="card-body p-0">
<div class="m-2" wicket:id="visualization"/>
</div>
</wicket:panel>
</html>

0 comments on commit a03fd37

Please sign in to comment.