Skip to content

Commit

Permalink
simulation ui, delta viewer, items table panel separated
Browse files Browse the repository at this point in the history
  • Loading branch information
1azyman committed Feb 20, 2023
1 parent 498d0ce commit e30e6a0
Show file tree
Hide file tree
Showing 20 changed files with 330 additions and 209 deletions.
Expand Up @@ -72,7 +72,7 @@ protected Visualization load() {
@Override
protected VisualizationDto load() {
Visualization visualization = visualizationModel.getObject();

return SimulationsGuiUtil.createVisualizationDto(visualization);
}
};
Expand All @@ -86,7 +86,7 @@ protected List<ObjectVisualization> load() {
return Collections.emptyList();
}

return Collections.singletonList(new ObjectVisualization());
return Collections.singletonList(new ObjectVisualization(visualization));
}
};
}
Expand Down
Expand Up @@ -14,8 +14,15 @@
<wicket:child/>
</div>

<wicket:fragment wicket:id="header">
<h3 class="card-title" wicket:id="title"/>
</wicket:fragment>

<wicket:fragment wicket:id="bodyHeader">
<h5 class="mb-0" wicket:id="title"/>
<h3 class="card-title">
<i wicket:id="icon"/>
<span wicket:id="title"/>
</h3>
<span wicket:id="badge"/>
</wicket:fragment>
</wicket:panel>
Expand Down
Expand Up @@ -11,7 +11,6 @@

import org.apache.wicket.Component;
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.panel.Fragment;
import org.apache.wicket.model.IModel;
Expand All @@ -20,6 +19,7 @@
import com.evolveum.midpoint.gui.api.component.Badge;
import com.evolveum.midpoint.gui.api.component.BadgePanel;
import com.evolveum.midpoint.gui.api.component.BasePanel;
import com.evolveum.midpoint.gui.api.component.IconComponent;
import com.evolveum.midpoint.web.component.util.VisibleBehaviour;

/**
Expand All @@ -29,10 +29,12 @@ public class CardOutlineLeftPanel<T extends Serializable> extends BasePanel<T> {

private static final long serialVersionUID = 1L;

private static final String FRAGMENT_ID_HEADER = "header";
private static final String FRAGMENT_ID_BODY_HEADER = "bodyHeader";

private static final String ID_HEADER = "header";
private static final String ID_BODY_HEADER = "bodyHeader";
private static final String ID_ICON = "icon";
private static final String ID_TITLE = "title";
private static final String ID_BADGE = "badge";

Expand All @@ -54,16 +56,24 @@ private void initLayout() {
}

protected Component createHeader(String id) {
WebMarkupContainer header = new WebMarkupContainer(id);
header.add(VisibleBehaviour.ALWAYS_INVISIBLE);
Fragment fragment = new Fragment(id, FRAGMENT_ID_HEADER, this);
fragment.add(new Label(ID_TITLE, createTitleModel()));
fragment.add(VisibleBehaviour.ALWAYS_INVISIBLE);

return header;
return fragment;
}

protected Component createBodyHeader(String id) {
Fragment fragment = new Fragment(id, FRAGMENT_ID_BODY_HEADER, this);
fragment.add(AttributeAppender.append("class", "d-flex gap-2 align-items-center border-bottom border-gray pb-3 mb-3"));
fragment.add(new Label(ID_TITLE, createTitleModel()));

IModel<String> iconModel = createIconModel();
IconComponent icon = new IconComponent(ID_ICON, iconModel);
icon.add(new VisibleBehaviour(() -> iconModel.getObject() != null));
fragment.add(icon);

Label title = new Label(ID_TITLE, createTitleModel());
fragment.add(title);

IModel<Badge> badgeModel = createBadgeModel();
BadgePanel badge = new BadgePanel(ID_BADGE, badgeModel);
Expand All @@ -73,6 +83,10 @@ protected Component createBodyHeader(String id) {
return fragment;
}

protected @NotNull IModel<String> createIconModel() {
return () -> null;
}

protected @NotNull IModel<String> createCardOutlineCssModel() {
return () -> null;
}
Expand Down
Expand Up @@ -7,51 +7,31 @@

package com.evolveum.midpoint.gui.impl.page.admin.simulation.visualization;

import com.evolveum.midpoint.model.api.visualizer.Visualization;
import com.evolveum.midpoint.prism.delta.ChangeType;
import com.evolveum.midpoint.util.LocalizableMessage;

import org.jetbrains.annotations.NotNull;

import java.io.Serializable;

/**
* Created by Viliam Repan (lazyman).
*/
public class ContainerVisualization implements Visualization {

private LocalizableMessage simpleMessage;

private LocalizableMessage name;

private LocalizableMessage description;

private ChangeType changeType;

public LocalizableMessage getSimpleMessage() {
return simpleMessage;
}
public class ContainerVisualization implements Serializable {

public void setSimpleMessage(LocalizableMessage simpleMessage) {
this.simpleMessage = simpleMessage;
}
private Visualization visualization;

public LocalizableMessage getName() {
return name;
public ContainerVisualization(@NotNull Visualization visualization) {
this.visualization = visualization;
}

public void setName(LocalizableMessage name) {
this.name = name;
}
public Visualization getVisualization() {

public LocalizableMessage getDescription() {
return description;
}

public void setDescription(LocalizableMessage description) {
this.description = description;
return visualization;
}

public ChangeType getChangeType() {
return changeType;
}

public void setChangeType(ChangeType changeType) {
this.changeType = changeType;
return visualization.getChangeType();
}
}
Expand Up @@ -8,6 +8,8 @@
<!DOCTYPE html>
<html xmlns:wicket="http://wicket.apache.org">
<wicket:extend>
<table wicket:id="items"/>

<wicket:fragment wicket:id="header">
<i wicket:id="icon"/>
<h3 class="card-title flex-grow-1" wicket:id="title"/>
Expand Down
Expand Up @@ -16,7 +16,12 @@
import org.apache.wicket.model.IModel;
import org.apache.wicket.model.Model;

import com.evolveum.midpoint.gui.api.util.LocalizationUtil;
import com.evolveum.midpoint.model.api.visualizer.Name;
import com.evolveum.midpoint.web.component.AjaxIconButton;
import com.evolveum.midpoint.web.component.prism.show.VisualizationDto;
import com.evolveum.midpoint.web.component.prism.show.VisualizationItemsPanel;
import com.evolveum.midpoint.web.component.util.VisibleBehaviour;

/**
* Created by Viliam Repan (lazyman).
Expand All @@ -25,6 +30,7 @@ public class ContainerVisualizationPanel extends CardOutlineLeftPanel<ContainerV

private static final long serialVersionUID = 1L;

private static final String ID_ITEMS = "items";
private static final String FRAGMENT_ID_HEADER = "header";
private static final String ID_ICON = "icon";
private static final String ID_TITLE = "title";
Expand All @@ -40,6 +46,10 @@ public ContainerVisualizationPanel(String id, IModel<ContainerVisualization> mod

private void initLayout() {
add(AttributeAppender.append("class", () -> VisualizationGuiUtil.createChangeTypeCssClassForOutlineCard(getModelObject().getChangeType())));

VisualizationItemsPanel items = new VisualizationItemsPanel(ID_ITEMS, () -> new VisualizationDto(getModelObject().getVisualization()));
items.add(new VisibleBehaviour(() -> expanded.getObject()));
add(items);
}

@Override
Expand All @@ -57,7 +67,13 @@ protected Component createBodyHeader(String id) {
fragment.add(icon);

// todo make sure to handle escaping inside model
Label title = new Label(ID_TITLE, () -> "<b>Basic information</b> was modified");// todo fix createTitleModel()));
Label title = new Label(ID_TITLE, () -> {
Name name = getModelObject().getVisualization().getName();
if (name == null || name.getSimpleDescription() == null) {
return name.getDisplayName();
}
return LocalizationUtil.translateMessage(getModelObject().getVisualization().getName().getSimpleDescription());
});// todo fix createTitleModel()));
title.setEscapeModelStrings(false);
fragment.add(title);

Expand Down
@@ -0,0 +1,25 @@
<!--
~ Copyright (c) 2010-2023 Evolveum and contributors
~
~ This work is dual-licensed under the Apache License 2.0
~ and European Union Public License. See LICENSE file for details.
-->

<!DOCTYPE html>
<html xmlns:wicket="http://wicket.apache.org">
<wicket:extend>
<table class="table table-striped table-hover table-bordered table-word-break">
<tr>
<th style="min-width: 100px; !important">
<wicket:message key="ScenePanel.item"/>
</th>
<th>
<wicket:message key="ScenePanel.oldValue"/>
</th>
<th>
<wicket:message key="ScenePanel.newValue"/>
</th>
</tr>
</table>
</wicket:extend>
</html>
@@ -0,0 +1,38 @@
/*
* Copyright (c) 2010-2023 Evolveum and contributors
*
* This work is dual-licensed under the Apache License 2.0
* and European Union Public License. See LICENSE file for details.
*/

package com.evolveum.midpoint.gui.impl.page.admin.simulation.visualization;

import com.evolveum.midpoint.web.component.prism.show.VisualizationDto;

import org.apache.wicket.model.IModel;
import org.jetbrains.annotations.NotNull;

/**
* Created by Viliam Repan (lazyman).
*/
public class ItemsVisualizationPanel extends CardOutlineLeftPanel<VisualizationDto> {

public ItemsVisualizationPanel(String id, IModel<VisualizationDto> model) {
super(id, model);
}

@Override
protected @NotNull IModel<String> createIconModel() {
return () -> "fa-solid fa-user mr-1";
}

@Override
protected @NotNull IModel<String> createTitleModel() {
return () -> getString("ItemsVisualizationPanel.title");
}

@Override
protected @NotNull IModel<String> createCardOutlineCssModel() {
return () -> VisualizationGuiUtil.createChangeTypeCssClassForOutlineCard(getModelObject().getChangeType());
}
}
Expand Up @@ -7,41 +7,44 @@

package com.evolveum.midpoint.gui.impl.page.admin.simulation.visualization;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;

import com.evolveum.midpoint.prism.delta.ChangeType;
import com.evolveum.midpoint.util.LocalizableMessage;

import org.jetbrains.annotations.NotNull;

import com.evolveum.midpoint.model.api.visualizer.Visualization;

/**
* Created by Viliam Repan (lazyman).
*/
public class ObjectVisualization implements Visualization {
public class ObjectVisualization implements Serializable {

private LocalizableMessage name;
private Visualization visualization;

private LocalizableMessage description;
private List<ContainerVisualization> containers = new ArrayList<>();

private ChangeType changeType;
public ObjectVisualization(@NotNull Visualization visualization) {
this.visualization = visualization;

public LocalizableMessage getName() {
return name;
for (Visualization partial : visualization.getPartialVisualizations()) {
if (partial.getName().getSimpleDescription() != null) {
containers.add(new ContainerVisualization(partial));
}
}
}

public void setName(LocalizableMessage name) {
this.name = name;
public List<ContainerVisualization> getContainers() {
return containers;
}

public LocalizableMessage getDescription() {
return description;
}

public void setDescription(LocalizableMessage description) {
this.description = description;
public Visualization getVisualization() {
return visualization;
}

public ChangeType getChangeType() {
return changeType;
}

public void setChangeType(ChangeType changeType) {
this.changeType = changeType;
return visualization.getChangeType();
}
}
Expand Up @@ -8,7 +8,7 @@
<!DOCTYPE html>
<html xmlns:wicket="http://wicket.apache.org">
<wicket:panel>
<div wicket:id="defaultContainer"/>
<div wicket:id="items"/>

<wicket:container wicket:id="containers">
<div wicket:id="container"/>
Expand Down

0 comments on commit e30e6a0

Please sign in to comment.