Skip to content

Commit

Permalink
Merge remote-tracking branch 'refs/remotes/origin/master'
Browse files Browse the repository at this point in the history
  • Loading branch information
skublik committed Sep 6, 2023
2 parents fb2d0cc + 9e65d34 commit 572e1ca
Show file tree
Hide file tree
Showing 4 changed files with 38 additions and 15 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@ public abstract class CsvDownloadButtonPanel extends BasePanel {

private static final String ID_EXPORT_DATA = "exportData";

// private final boolean canCountBeforeExporting;
// private final boolean canCountBeforeExporting;
List<Integer> exportableColumnsIndex = new ArrayList<>();

// public CsvDownloadButtonPanel(String id, boolean canCountBeforeExporting) {
Expand Down Expand Up @@ -94,7 +94,7 @@ protected String quoteValue(String value) {

@Override
protected <T> IModel<T> wrapModel(IModel<T> model) {
if (model.getObject() == null) {
if (model == null || model.getObject() == null) {
return () -> (T) "";
}
if (model.getObject() instanceof Referencable) {
Expand Down Expand Up @@ -146,9 +146,9 @@ public void onClick(AjaxRequestTarget target) {
askForSizeLimitConfirmation = false;
} else {
// if (canCountBeforeExporting) {
IDataProvider<?> dataProvider = getDataTable().getDataProvider();
long size = dataProvider.size();
askForSizeLimitConfirmation = size > exportSizeLimit;
IDataProvider<?> dataProvider = getDataTable().getDataProvider();
long size = dataProvider.size();
askForSizeLimitConfirmation = size > exportSizeLimit;
// } else {
// askForSizeLimitConfirmation = true; // size is unknown
// }
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@
package com.evolveum.midpoint.gui.impl.page.login.dto;

import com.evolveum.midpoint.gui.api.prism.wrapper.ItemWrapper;
import com.evolveum.midpoint.gui.api.prism.wrapper.PrismPropertyWrapper;
import com.evolveum.midpoint.prism.path.ItemPath;
import com.evolveum.midpoint.util.exception.SchemaException;
import org.jetbrains.annotations.NotNull;
Expand All @@ -16,15 +17,15 @@

public class VerificationAttributeDto implements Serializable {

private final ItemWrapper<?, ?> itemWrapper;
private final PrismPropertyWrapper<?> itemWrapper;
private final ItemPath itemPath;

public VerificationAttributeDto(@NotNull ItemWrapper<?, ?> itemWrapper, ItemPath itemPath) {
public VerificationAttributeDto(@NotNull PrismPropertyWrapper<?> itemWrapper, ItemPath itemPath) {
this.itemWrapper = itemWrapper;
this.itemPath = itemPath;
}

public ItemWrapper<?, ?> getItemWrapper() {
public PrismPropertyWrapper<?> getItemWrapper() {
return itemWrapper;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,13 +12,15 @@

import com.evolveum.midpoint.gui.api.factory.wrapper.WrapperContext;
import com.evolveum.midpoint.gui.api.prism.ItemStatus;
import com.evolveum.midpoint.gui.api.prism.wrapper.ItemWrapper;
import com.evolveum.midpoint.gui.api.prism.wrapper.PrismPropertyWrapper;
import com.evolveum.midpoint.gui.api.util.WebComponentUtil;
import com.evolveum.midpoint.gui.impl.prism.panel.ItemPanelSettingsBuilder;
import com.evolveum.midpoint.gui.impl.prism.panel.PrismPropertyValuePanel;
import com.evolveum.midpoint.gui.impl.prism.wrapper.PrismPropertyValueWrapper;
import com.evolveum.midpoint.prism.PrismObject;
import com.evolveum.midpoint.schema.result.OperationResult;
import com.evolveum.midpoint.task.api.Task;
import com.evolveum.midpoint.util.exception.CommonException;
import com.evolveum.midpoint.util.exception.SchemaException;

import com.evolveum.midpoint.util.logging.Trace;
Expand All @@ -36,7 +38,6 @@
import org.apache.wicket.markup.html.form.HiddenField;
import org.apache.wicket.markup.html.list.ListItem;
import org.apache.wicket.markup.html.list.ListView;
import org.apache.wicket.markup.html.panel.Panel;
import org.apache.wicket.model.IModel;
import org.apache.wicket.model.Model;

Expand Down Expand Up @@ -111,9 +112,9 @@ private void createAttributePanel(ListItem<VerificationAttributeDto> item) {
Label attributeNameLabel = new Label(ID_ATTRIBUTE_NAME, resolveAttributeLabel(item.getModelObject()));
item.add(attributeNameLabel);

var itemWrapper = item.getModelObject().getItemWrapper();
var valuePanel = new PrismPropertyValuePanel<PrismPropertyValueWrapper<?>>(ID_ATTRIBUTE_VALUE,
new PropertyModel<>(itemWrapper, "value"),
PrismPropertyWrapper<?> itemWrapper = item.getModelObject().getItemWrapper();
var valuePanel = new PrismPropertyValuePanel(ID_ATTRIBUTE_VALUE,
new PropertyModel<PrismPropertyValueWrapper>(itemWrapper, "value"),
new ItemPanelSettingsBuilder().build()) {

@Serial private static final long serialVersionUID = 1L;
Expand All @@ -136,6 +137,25 @@ protected void onError(AjaxRequestTarget target, RuntimeException e) {
}
};
}

@Override
protected void remove(PrismPropertyValueWrapper valueToRemove, AjaxRequestTarget target)
throws SchemaException {
try {
OperationResult result = new OperationResult("removeAttributeValue");
PrismObject<UserType> administrator = getAdministratorPrivileged(result);
runAsChecked(
(lResult) -> {
if (valueToRemove != null) {
itemWrapper.remove(valueToRemove, PageAbstractAttributeVerification.this);
target.add(getValuePanel());
}
return null;
}, administrator, result);
} catch (CommonException e) {
LOGGER.error("Unable to remove attribute value.");
}
}
};
item.add(valuePanel);
}
Expand All @@ -153,7 +173,7 @@ private String resolveAttributeLabel(VerificationAttributeDto attribute) {
return StringUtils.isEmpty(label) ? path.toString() : label;
}

protected ItemWrapper<?, ?> createItemWrapper(ItemPath itemPath) {
protected PrismPropertyWrapper<?> createItemWrapper(ItemPath itemPath) {
try {
var itemDefinition = resolveAttributeDefinition(itemPath);
var wrapperContext = createWrapperContext();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -393,7 +393,9 @@ protected org.apache.wicket.model.StringResourceModel getAddButtonTitle() {

@Override
protected IColumn<SelectableBean<ShadowType>, String> createNameColumn(IModel<String> displayModel, GuiObjectColumnType customColumn, ExpressionType expression) {
return new ContainerableNameColumn<>(displayModel, ObjectType.F_NAME.getLocalPart(), customColumn, expression, getPageBase()) {
return new ContainerableNameColumn<>(displayModel == null
? createStringResource("ObjectType.name")
: displayModel, ObjectType.F_NAME.getLocalPart(), customColumn, expression, getPageBase()) {

@Override
protected IModel<String> getContainerName(SelectableBean<ShadowType> rowModel) {
Expand Down

0 comments on commit 572e1ca

Please sign in to comment.