Skip to content

Commit

Permalink
simulation ui, continuous code cleanup
Browse files Browse the repository at this point in the history
  • Loading branch information
1azyman committed Feb 15, 2023
1 parent fe1d59a commit 75bba84
Show file tree
Hide file tree
Showing 15 changed files with 159 additions and 21 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -12,8 +12,8 @@
import com.evolveum.midpoint.gui.api.component.Toggle;
import com.evolveum.midpoint.gui.api.component.TogglePanel;
import com.evolveum.midpoint.gui.api.model.LoadableModel;
import com.evolveum.midpoint.gui.impl.page.admin.simulation.todo.ObjectVisualization;
import com.evolveum.midpoint.gui.impl.page.admin.simulation.todo.ObjectVisualizationPanel;
import com.evolveum.midpoint.gui.impl.page.admin.simulation.visualization.ObjectVisualization;
import com.evolveum.midpoint.gui.impl.page.admin.simulation.visualization.ObjectVisualizationPanel;

public class ChangesPanel extends BasePanel<List<ObjectVisualization>> {

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,10 +7,7 @@

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

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Objects;
import java.util.*;

import org.apache.commons.lang3.StringUtils;
import org.apache.wicket.Component;
Expand All @@ -33,6 +30,8 @@
import com.evolveum.midpoint.gui.api.util.WebModelServiceUtils;
import com.evolveum.midpoint.gui.impl.component.search.Search;
import com.evolveum.midpoint.gui.impl.component.search.SearchBuilder;
import com.evolveum.midpoint.gui.impl.page.admin.simulation.visualization.ObjectVisualization;
import com.evolveum.midpoint.gui.impl.page.admin.simulation.visualization.VisualizationFactory;
import com.evolveum.midpoint.model.api.visualizer.Visualization;
import com.evolveum.midpoint.prism.PrismObject;
import com.evolveum.midpoint.prism.delta.ObjectDelta;
Expand Down Expand Up @@ -98,6 +97,8 @@ public class PageSimulationResultObject extends PageAdmin implements SimulationP

private IModel<List<DetailsTableItem>> detailsModel;

private IModel<List<ObjectVisualization>> changesNewModel;

private IModel<VisualizationDto> changesModel;

public PageSimulationResultObject() {
Expand Down Expand Up @@ -156,7 +157,7 @@ protected SimulationResultProcessedObjectType load() {
protected List<DetailsTableItem> load() {
List<DetailsTableItem> items = new ArrayList<>();

items.add(new DetailsTableItem(createStringResource("PageSimulationResultObject.type"), () -> GuiSimulationsUtil.getProcessedObjectType(objectModel)));
items.add(new DetailsTableItem(createStringResource("PageSimulationResultObject.type"), () -> SimulationsGuiUtil.getProcessedObjectType(objectModel)));

IModel<String> resourceCoordinatesModel = new LoadableDetachableModel<>() {

Expand Down Expand Up @@ -216,7 +217,7 @@ public VisibleBehaviour isVisible() {

@Override
public Component createValueComponent(String id) {
return GuiSimulationsUtil.createProcessedObjectStateLabel(id, objectModel);
return SimulationsGuiUtil.createProcessedObjectStateLabel(id, objectModel);
}
});

Expand Down Expand Up @@ -306,6 +307,27 @@ protected VisualizationDto load() {
return new VisualizationDto(wrapper);
}
};

changesNewModel = new LoadableDetachableModel<>() {
@Override
protected List<ObjectVisualization> load() {
ObjectDeltaType delta = objectModel.getObject().getDelta();
if (delta == null) {
return Collections.emptyList();
}

try {
ObjectVisualization visualization = VisualizationFactory.createObjectVisualization(delta);

return Collections.singletonList(visualization);
} catch (Exception ex) {
// todo handle exception
ex.printStackTrace();
}

return Collections.emptyList();
}
};
}

private void initLayout() {
Expand Down Expand Up @@ -364,8 +386,8 @@ protected Search<SimulationResultProcessedObjectType> load() {
detailsModel);
add(details);

ChangesPanel changesNew = new ChangesPanel(ID_CHANGES_NEW, () -> new ArrayList<>());
changesNew.add(new VisibleBehaviour(() -> WebComponentUtil.isEnabledExperimentalFeatures()));
ChangesPanel changesNew = new ChangesPanel(ID_CHANGES_NEW, changesNewModel);
changesNew.add(new VisibleBehaviour(() -> changesNewModel.getObject().size() > 0 && WebComponentUtil.isEnabledExperimentalFeatures()));
add(changesNew);

VisualizationPanel changes = new VisualizationPanel(ID_CHANGES, changesModel);
Expand All @@ -375,7 +397,7 @@ protected Search<SimulationResultProcessedObjectType> load() {

private List<IColumn<SelectableBean<SimulationResultProcessedObjectType>, String>> createColumns() {
List<IColumn<SelectableBean<SimulationResultProcessedObjectType>, String>> columns = new ArrayList<>();
columns.add(GuiSimulationsUtil.createProcessedObjectIconColumn());
columns.add(SimulationsGuiUtil.createProcessedObjectIconColumn());
columns.add(new AjaxLinkColumn<>(createStringResource("ProcessedObjectsPanel.nameColumn")) {

@Override
Expand All @@ -395,7 +417,7 @@ protected IModel<String> createLinkModel(IModel<SelectableBean<SimulationResultP
};
}
});
columns.add(new LambdaColumn<>(null, row -> GuiSimulationsUtil.getProcessedObjectType(row::getValue)));
columns.add(new LambdaColumn<>(null, row -> SimulationsGuiUtil.getProcessedObjectType(row::getValue)));

return columns;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -93,7 +93,7 @@ protected SearchContext createAdditionalSearchContext() {

@Override
protected IColumn<SelectableBean<SimulationResultProcessedObjectType>, String> createIconColumn() {
return GuiSimulationsUtil.createProcessedObjectIconColumn();
return SimulationsGuiUtil.createProcessedObjectIconColumn();
}

@Override
Expand Down Expand Up @@ -242,13 +242,13 @@ private IColumn<SelectableBean<SimulationResultProcessedObjectType>, String> cre
public void populateItem(Item<ICellPopulator<SelectableBean<SimulationResultProcessedObjectType>>> item, String id,
IModel<SelectableBean<SimulationResultProcessedObjectType>> row) {

item.add(GuiSimulationsUtil.createProcessedObjectStateLabel(id, () -> row.getObject().getValue()));
item.add(SimulationsGuiUtil.createProcessedObjectStateLabel(id, () -> row.getObject().getValue()));
}
};
}

private IColumn<SelectableBean<SimulationResultProcessedObjectType>, String> createTypeColumn(IModel<String> displayModel) {
return new LambdaColumn<>(displayModel, row -> GuiSimulationsUtil.getProcessedObjectType(row::getValue));
return new LambdaColumn<>(displayModel, row -> SimulationsGuiUtil.getProcessedObjectType(row::getValue));
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@
/**
* Created by Viliam Repan (lazyman).
*/
public class GuiSimulationsUtil {
public class SimulationsGuiUtil {

public static Label createProcessedObjectStateLabel(String id, IModel<SimulationResultProcessedObjectType> model) {
Label label = new Label(id, () -> {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
* and European Union Public License. See LICENSE file for details.
*/

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

import java.io.Serializable;

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
/*
* 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.prism.delta.ChangeType;
import com.evolveum.midpoint.util.LocalizableMessage;

/**
* 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 void setSimpleMessage(LocalizableMessage simpleMessage) {
this.simpleMessage = simpleMessage;
}

public LocalizableMessage getName() {
return name;
}

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

public LocalizableMessage getDescription() {
return description;
}

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

public ChangeType getChangeType() {
return changeType;
}

public void setChangeType(ChangeType changeType) {
this.changeType = changeType;
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
<!--
~ 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:panel>

</wicket:panel>
</html>
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
/*
* 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 org.apache.wicket.model.IModel;

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

public ContainerVisualizationPanel(String id, IModel<ContainerVisualization> model) {
super(id, model);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,9 @@
* and European Union Public License. See LICENSE file for details.
*/

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

import com.evolveum.midpoint.gui.impl.page.admin.simulation.visualization.Visualization;
import com.evolveum.midpoint.prism.delta.ChangeType;
import com.evolveum.midpoint.util.LocalizableMessage;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
* and European Union Public License. See LICENSE file for details.
*/

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

import org.apache.wicket.behavior.AttributeAppender;
import org.apache.wicket.model.IModel;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
* and European Union Public License. See LICENSE file for details.
*/

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

import java.io.Serializable;

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
package com.evolveum.midpoint.gui.impl.page.admin.simulation.visualization;

import com.evolveum.midpoint.prism.delta.ChangeType;
import com.evolveum.midpoint.prism.delta.ObjectDelta;
import com.evolveum.midpoint.schema.DeltaConvertor;
import com.evolveum.midpoint.util.exception.SchemaException;
import com.evolveum.midpoint.xml.ns._public.common.common_3.ObjectType;
import com.evolveum.prism.xml.ns._public.types_3.ObjectDeltaType;

import org.jetbrains.annotations.NotNull;

public class VisualizationFactory {

public static <O extends ObjectType> ObjectVisualization createObjectVisualization(@NotNull ObjectDelta<O> delta) {
ObjectVisualization visualization = new ObjectVisualization();
visualization.setChangeType(ChangeType.DELETE);

return visualization;
}

public static <O extends ObjectType> ObjectVisualization createObjectVisualization(@NotNull ObjectDeltaType delta) throws SchemaException {
ObjectDelta<O> objectDelta = DeltaConvertor.createObjectDelta(delta);
return createObjectVisualization(objectDelta);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@

import com.evolveum.midpoint.gui.api.component.Badge;
import com.evolveum.midpoint.gui.api.util.WebComponentUtil;
import com.evolveum.midpoint.gui.impl.page.admin.simulation.todo.CardOutlineLeftPanel;
import com.evolveum.midpoint.gui.impl.page.admin.simulation.visualization.CardOutlineLeftPanel;
import com.evolveum.midpoint.web.component.AjaxButton;
import com.evolveum.midpoint.web.component.AjaxSubmitButton;
import com.evolveum.midpoint.web.component.form.MidpointForm;
Expand Down

0 comments on commit 75bba84

Please sign in to comment.