Skip to content

Commit

Permalink
simulation ui, delta progress bar column finished
Browse files Browse the repository at this point in the history
  • Loading branch information
1azyman committed Feb 14, 2023
1 parent a7a5d18 commit 31911a1
Showing 1 changed file with 37 additions and 9 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -5,21 +5,25 @@
import java.util.Collections;
import java.util.List;

import com.evolveum.midpoint.gui.api.util.LocalizationUtil;

import org.apache.commons.lang3.StringUtils;
import org.apache.wicket.model.IModel;
import org.apache.wicket.model.LoadableDetachableModel;
import org.jetbrains.annotations.NotNull;

import com.evolveum.midpoint.gui.api.component.progressbar.ProgressBar;
import com.evolveum.midpoint.gui.api.util.LocalizationUtil;
import com.evolveum.midpoint.gui.api.util.WebComponentUtil;
import com.evolveum.midpoint.util.SingleLocalizableMessage;
import com.evolveum.prism.xml.ns._public.types_3.ItemDeltaType;
import com.evolveum.prism.xml.ns._public.types_3.ObjectDeltaType;
import com.evolveum.prism.xml.ns._public.types_3.ObjectType;

public abstract class DeltaProgressBarColumn<R extends Serializable, S extends Serializable> extends ProgressBarColumn<R, S> {

private static final String KEY_ADDED = "ProcessedObjectsPanel.added";
private static final String KEY_MODIFIED = "ProcessedObjectsPanel.modified";
private static final String KEY_DELETED = "ProcessedObjectsPanel.deleted";

public DeltaProgressBarColumn(IModel<String> displayModel) {
super(displayModel);
}
Expand All @@ -39,7 +43,10 @@ protected List<ProgressBar> load() {

switch (delta.getChangeType()) {
case ADD:
return Collections.singletonList(new ProgressBar(100, ProgressBar.State.SUCCESS));
int size = getSizeForAddDelta(delta);

return Collections.singletonList(new ProgressBar(100, ProgressBar.State.SUCCESS,
new SingleLocalizableMessage(KEY_ADDED, new Object[] { size }, KEY_ADDED)));
case DELETE:
return Collections.singletonList(new ProgressBar(100, ProgressBar.State.DANGER));
default:
Expand All @@ -66,9 +73,9 @@ protected List<ProgressBar> load() {
}

List<ProgressBar> bars = new ArrayList<>();
addProgressBar(bars, ProgressBar.State.SUCCESS, add, total, "ProcessedObjectsPanel.added");
addProgressBar(bars, ProgressBar.State.INFO, modify, total, "ProcessedObjectsPanel.modified");
addProgressBar(bars, ProgressBar.State.DANGER, delete, total, "ProcessedObjectsPanel.deleted");
addProgressBar(bars, ProgressBar.State.SUCCESS, add, total, KEY_ADDED);
addProgressBar(bars, ProgressBar.State.INFO, modify, total, KEY_MODIFIED);
addProgressBar(bars, ProgressBar.State.DANGER, delete, total, KEY_DELETED);

return bars;
}
Expand All @@ -86,6 +93,15 @@ private void addProgressBar(List<ProgressBar> bars, ProgressBar.State state, int
};
}

private int getSizeForAddDelta(ObjectDeltaType delta) {
ObjectType obj = delta.getObjectToAdd();
if (obj == null || obj.asPrismObject().isEmpty()) {
return 0;
}

return delta.getObjectToAdd().asPrismObject().getValue().getItems().size();
}

@Override
protected @NotNull IModel<String> createTextModel(IModel<R> rowModel, IModel<List<ProgressBar>> model) {
return new LoadableDetachableModel<>() {
Expand All @@ -104,9 +120,21 @@ protected String load() {
return null;
}

int count = 48; // todo implement
// bars.stream()
// .map(bar -> bar.g)
ObjectDeltaType delta = createObjectDeltaModel(rowModel).getObject();
if (delta == null) {
return msg;
}

int count;
switch (delta.getChangeType()) {
case ADD:
count = getSizeForAddDelta(delta);
break;
case DELETE:
default:
count = delta.getItemDelta().size();
}

return LocalizationUtil.translate("ProcessedObjectsPanel.progressMessage", new Object[] { msg, count });
}
};
Expand Down

0 comments on commit 31911a1

Please sign in to comment.