Skip to content

Commit

Permalink
Showing added/deleted values. Delta items ordering. Showing accounts …
Browse files Browse the repository at this point in the history
…to be created.
  • Loading branch information
mederly committed Mar 18, 2016
1 parent 4e720c7 commit 89b7746
Show file tree
Hide file tree
Showing 27 changed files with 410 additions and 339 deletions.
5 changes: 5 additions & 0 deletions build-system/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -294,6 +294,11 @@
<artifactId>commons-pool</artifactId>
<version>1.5.6</version>
</dependency>
<dependency>
<groupId>org.jetbrains</groupId>
<artifactId>annotations-java5</artifactId>
<version>15.0</version>
</dependency>
<dependency>
<groupId>javax.annotation</groupId>
<artifactId>jsr250-api</artifactId>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@
import com.evolveum.midpoint.prism.delta.ObjectDelta;
import com.evolveum.midpoint.prism.path.ItemPath;
import com.evolveum.midpoint.util.DebugUtil;
import org.jetbrains.annotations.NotNull;

import java.util.Collections;
import java.util.List;
Expand Down Expand Up @@ -76,11 +77,13 @@ public ChangeType getChangeType() {
return null;
}

@NotNull
@Override
public List<? extends Scene> getPartialScenes() {
return partialScenes;
}

@NotNull
@Override
public List<? extends SceneItem> getItems() {
return Collections.emptyList();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -67,25 +67,25 @@ public class PagePreviewChanges extends PageAdminWorkItems { // TODO extends
private IModel<SceneDto> secondaryDeltasModel;

public PagePreviewChanges(ModelContext<? extends ObjectType> modelContext, ModelInteractionService modelInteractionService) {
List<ObjectDelta<? extends ObjectType>> primaryDeltas = new ArrayList<>();
List<ObjectDelta<? extends ObjectType>> secondaryDeltas = new ArrayList<>();
if (modelContext != null) {
if (modelContext.getFocusContext() != null) {
addIgnoreNull(primaryDeltas, modelContext.getFocusContext().getPrimaryDelta());
addIgnoreNull(secondaryDeltas, modelContext.getFocusContext().getSecondaryDelta());
}
for (ModelProjectionContext projCtx : modelContext.getProjectionContexts()) {
addIgnoreNull(primaryDeltas, projCtx.getPrimaryDelta());
addIgnoreNull(secondaryDeltas, projCtx.getSecondaryDelta());
}
}
LOGGER.info("Primary deltas:\n{}", DebugUtil.debugDump(primaryDeltas));
LOGGER.info("Secondary deltas:\n{}", DebugUtil.debugDump(secondaryDeltas));

Task task = createSimpleTask("visualize");
final List<ObjectDelta<? extends ObjectType>> primaryDeltas = new ArrayList<>();
final List<ObjectDelta<? extends ObjectType>> secondaryDeltas = new ArrayList<>();
final List<? extends Scene> primaryScenes;
final List<? extends Scene> secondaryScenes;
try {
if (modelContext != null) {
if (modelContext.getFocusContext() != null) {
addIgnoreNull(primaryDeltas, modelContext.getFocusContext().getPrimaryDelta());
addIgnoreNull(secondaryDeltas, modelContext.getFocusContext().getSecondaryDelta());
}
for (ModelProjectionContext projCtx : modelContext.getProjectionContexts()) {
addIgnoreNull(primaryDeltas, projCtx.getPrimaryDelta());
addIgnoreNull(secondaryDeltas, projCtx.getExecutableDelta());
}
}
LOGGER.info("Primary deltas:\n{}", DebugUtil.debugDump(primaryDeltas));
LOGGER.info("Secondary deltas:\n{}", DebugUtil.debugDump(secondaryDeltas));

Task task = createSimpleTask("visualize");
primaryScenes = modelInteractionService.visualizeDeltas(primaryDeltas, task, task.getResult());
secondaryScenes = modelInteractionService.visualizeDeltas(secondaryDeltas, task, task.getResult());
} catch (SchemaException e) {
Expand Down

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@

import com.evolveum.midpoint.model.api.visualizer.Name;
import com.evolveum.midpoint.model.api.visualizer.Scene;
import com.evolveum.midpoint.model.api.visualizer.SceneDeltaItem;
import com.evolveum.midpoint.model.api.visualizer.SceneItem;
import com.evolveum.midpoint.prism.PrismContainerDefinition;
import com.evolveum.midpoint.prism.PrismObjectDefinition;
Expand Down Expand Up @@ -49,7 +50,7 @@ public SceneDto(Scene scene) {
this.scene = scene;
for (SceneItem item : scene.getItems()) {
if (item != null) {
items.add(new SceneItemDto(item));
items.add(new SceneItemDto(this, item));
}
}
for (Scene sub : scene.getPartialScenes()) {
Expand Down Expand Up @@ -113,4 +114,12 @@ public ChangeType getChangeType() {
return scene.getChangeType();
}

public boolean containsDeltaItems() {
for (SceneItem item : scene.getItems()) {
if (item instanceof SceneDeltaItem) {
return true;
}
}
return false;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -16,12 +16,13 @@

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

import com.evolveum.midpoint.model.api.visualizer.Name;
import com.evolveum.midpoint.model.api.visualizer.SceneItem;
import com.evolveum.midpoint.model.api.visualizer.SceneItemValue;
import com.evolveum.midpoint.model.api.visualizer.*;
import org.apache.commons.lang3.Validate;
import org.jetbrains.annotations.NotNull;

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

/**
Expand All @@ -30,13 +31,18 @@
public class SceneItemDto implements Serializable {

public static final String F_NAME = "name";
public static final String F_NEW_VALUE = "newValue";
public static final String F_LINES = "lines";

private final SceneItem sceneItem;
@NotNull private final SceneItem sceneItem;
@NotNull private final SceneDto sceneDto;
@NotNull private final List<SceneItemLineDto> lines;

public SceneItemDto(SceneItem sceneItem) {
public SceneItemDto(@NotNull SceneDto sceneDto, @NotNull SceneItem sceneItem) {
Validate.notNull(sceneDto);
Validate.notNull(sceneItem);
this.sceneDto = sceneDto;
this.sceneItem = sceneItem;
this.lines = computeLines();
}

public String getName() {
Expand All @@ -54,12 +60,39 @@ public String getNewValue() {
return String.valueOf(sceneItem.getNewValues());
}

public List<SceneItemLineDto> getLines() {
public List<SceneItemLineDto> computeLines() {
List<SceneItemLineDto> rv = new ArrayList<>();
int index = 0;
for (SceneItemValue itemValue : sceneItem.getNewValues()) { // TODO
rv.add(new SceneItemLineDto(this, itemValue, index++));
if (!isDelta()) {
for (SceneItemValue itemValue : sceneItem.getNewValues()) {
rv.add(new SceneItemLineDto(this, null, itemValue, index++, false));
}
} else {
SceneDeltaItem deltaItem = (SceneDeltaItem) sceneItem;
for (SceneItemValue itemValue : deltaItem.getUnchangedValues()) {
rv.add(new SceneItemLineDto(this, null, itemValue, index++, false));
}
Iterator<? extends SceneItemValue> deletedValuesIter = deltaItem.getDeletedValues().iterator();
Iterator<? extends SceneItemValue> addedValuesIter = deltaItem.getAddedValues().iterator();
while (deletedValuesIter.hasNext() || addedValuesIter.hasNext()) {
SceneItemValue deletedValue = deletedValuesIter.hasNext() ? deletedValuesIter.next() : null;
SceneItemValue addedValue = addedValuesIter.hasNext() ? addedValuesIter.next() : null;
rv.add(new SceneItemLineDto(this, deletedValue, addedValue, index++, true));
}
}
return rv;
}

@NotNull
public List<SceneItemLineDto> getLines() {
return lines;
}

public boolean isDelta() {
return sceneItem instanceof SceneDeltaItem;
}

public boolean isDeltaScene() {
return sceneDto.containsDeltaItems();
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,6 @@

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

import com.evolveum.midpoint.model.api.visualizer.SceneItem;
import com.evolveum.midpoint.model.api.visualizer.SceneItemValue;

import java.io.Serializable;
Expand All @@ -27,25 +26,34 @@
public class SceneItemLineDto implements Serializable {

public static final String F_NAME = "name";
public static final String F_OLD_VALUE = "oldValue";
public static final String F_NEW_VALUE = "newValue";
public static final String F_NUMBER_OF_LINES = "numberOfLines";

private final SceneItemDto sceneItemDto;
private final SceneItemValue sceneItemValue;
private final SceneItemValue sceneItemOldValue;
private final SceneItemValue sceneItemNewValue;
private final int index;
private final boolean isDelta;

public SceneItemLineDto(SceneItemDto sceneItemDto, SceneItemValue sceneItemValue, int index) {
public SceneItemLineDto(SceneItemDto sceneItemDto, SceneItemValue sceneItemOldValue, SceneItemValue sceneItemNewValue, int index, boolean isDelta) {
this.sceneItemDto = sceneItemDto;
this.sceneItemValue = sceneItemValue;
this.sceneItemOldValue = sceneItemOldValue;
this.sceneItemNewValue = sceneItemNewValue;
this.index = index;
this.isDelta = isDelta;
}

public String getName() {
return sceneItemDto.getName();
}

public String getOldValue() {
return sceneItemOldValue != null ? sceneItemOldValue.getText() : null;
}

public String getNewValue() {
return sceneItemValue.getText();
return sceneItemNewValue != null ? sceneItemNewValue.getText() : null;
}

public Integer getNumberOfLines() {
Expand All @@ -55,4 +63,12 @@ public Integer getNumberOfLines() {
public boolean isFirst() {
return index == 0;
}

public boolean isDelta() {
return isDelta;
}

public boolean isDeltaScene() {
return sceneItemDto.isDeltaScene();
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -18,9 +18,9 @@
<html xmlns:wicket="http://wicket.apache.org">
<wicket:panel>
<tr>
<td wicket:id="nameContainer"><span wicket:id="name"/></td>
<!--<td><span wicket:id="oldValue"/></td>-->
<td><span wicket:id="newValue"/></td>
<td style="vertical-align:middle" wicket:id="nameContainer"><span wicket:id="name"/></td>
<td wicket:id="oldValueContainer"><span wicket:id="oldValue"/></td>
<td wicket:id="newValueContainer"><span wicket:id="newValue"/></td>
</tr>
</wicket:panel>
</html>
Original file line number Diff line number Diff line change
Expand Up @@ -25,17 +25,20 @@
import org.apache.wicket.markup.html.WebMarkupContainer;
import org.apache.wicket.markup.html.basic.Label;
import org.apache.wicket.markup.html.form.Form;
import org.apache.wicket.model.AbstractReadOnlyModel;
import org.apache.wicket.model.IModel;
import org.apache.wicket.model.PropertyModel;

/**
* @author lazyman
* @author mederly
*/
public class SceneItemLinePanel extends BasePanel<SceneItemLineDto> {

private static final String ID_NAME_CONTAINER = "nameContainer";
private static final String ID_NAME = "name";
private static final String ID_OLD_VALUE_CONTAINER = "oldValueContainer";
private static final String ID_OLD_VALUE = "oldValue";
private static final String ID_NEW_VALUE_CONTAINER = "newValueContainer";
private static final String ID_NEW_VALUE = "newValue";

private static final Trace LOGGER = TraceManager.getTrace(SceneItemLinePanel.class);
Expand All @@ -62,6 +65,31 @@ public boolean isVisible() {
}
});
add(nameCell);
add(new Label(ID_NEW_VALUE, new PropertyModel<String>(getModel(), SceneItemLineDto.F_NEW_VALUE)));

WebMarkupContainer oldValueCell = new WebMarkupContainer(ID_OLD_VALUE_CONTAINER);
oldValueCell.add(new VisibleEnableBehaviour() {
@Override
public boolean isVisible() {
return getModelObject().isDelta();
}
});
oldValueCell.add(new Label(ID_OLD_VALUE, new PropertyModel<String>(getModel(), SceneItemLineDto.F_OLD_VALUE)));
add(oldValueCell);

WebMarkupContainer newValueCell = new WebMarkupContainer(ID_NEW_VALUE_CONTAINER);
newValueCell.add(new Label(ID_NEW_VALUE, new PropertyModel<String>(getModel(), SceneItemLineDto.F_NEW_VALUE)));
newValueCell.add(new AttributeModifier("colspan", new AbstractReadOnlyModel<Integer>() {
@Override
public Integer getObject() {
return !getModelObject().isDelta() && getModelObject().isDeltaScene() ? 2 : 1;
}
}));
newValueCell.add(new AttributeModifier("align", new AbstractReadOnlyModel<String>() {
@Override
public String getObject() {
return !getModelObject().isDelta() && getModelObject().isDeltaScene() ? "center" : null;
}
}));
add(newValueCell);
}
}
Loading

0 comments on commit 89b7746

Please sign in to comment.