Skip to content

Commit

Permalink
MID-8967: fix for intent in query on resource object type panel
Browse files Browse the repository at this point in the history
  • Loading branch information
skublik committed Aug 10, 2023
1 parent c82e539 commit f8d8717
Show file tree
Hide file tree
Showing 4 changed files with 49 additions and 33 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,8 @@
import com.evolveum.midpoint.model.api.ActivitySubmissionOptions;
import com.evolveum.midpoint.prism.PrismObject;
import com.evolveum.midpoint.prism.xml.XmlTypeConverter;
import com.evolveum.midpoint.schema.result.OperationResult;
import com.evolveum.midpoint.schema.util.task.TaskTypeUtil;
import com.evolveum.midpoint.task.api.Task;
import com.evolveum.midpoint.util.exception.SchemaException;
import com.evolveum.midpoint.web.component.AjaxIconButton;
Expand Down Expand Up @@ -105,6 +107,15 @@ protected void onPostProcessTarget(AjaxRequestTarget target) {
stop(target);
taskOidForReloaded = null;
}
if (WebComponentUtil.isSuspendedTask(taskBean.asObjectable())) {
OperationResult taskResult = OperationResult.createOperationResult(taskBean.asObjectable().getResult());
if (taskResult != null && (taskResult.isFatalError() || taskResult.isPartialError())) {
stop(target);
pageBase.showResult(taskResult);
target.add(pageBase.getFeedbackPanel());
taskOidForReloaded = null;
}
}
refresh(target);
}
};
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,10 +14,7 @@
import com.evolveum.midpoint.gui.impl.page.admin.assignmentholder.AssignmentHolderDetailsModel;
import com.evolveum.midpoint.gui.impl.page.admin.resource.component.wizard.basic.ObjectClassWrapper;
import com.evolveum.midpoint.prism.*;
import com.evolveum.midpoint.schema.processor.ResourceObjectClassDefinition;
import com.evolveum.midpoint.schema.processor.ResourceObjectDefinition;
import com.evolveum.midpoint.schema.processor.ResourceSchema;
import com.evolveum.midpoint.schema.processor.ResourceSchemaFactory;
import com.evolveum.midpoint.schema.processor.*;
import com.evolveum.midpoint.schema.result.OperationResult;
import com.evolveum.midpoint.task.api.Task;
import com.evolveum.midpoint.util.exception.ConfigurationException;
Expand Down Expand Up @@ -125,32 +122,34 @@ private ResourceSchema getResourceSchemaOrNothing() {

}

public ResourceObjectTypeDefinitionType getDefaultObjectType(ShadowKindType kind) {
public ResourceObjectTypeDefinition getDefaultObjectType(ShadowKindType kind) {
ResourceSchema resourceSchema = getResourceSchemaOrNothing();
if (resourceSchema == null) {
return null;
}
ResourceObjectDefinition defaultObjectType = resourceSchema.findDefaultDefinitionForKind(kind);
if (defaultObjectType != null) {
return defaultObjectType.getDefinitionBean();
if (defaultObjectType instanceof ResourceObjectTypeDefinition) {
return (ResourceObjectTypeDefinition) defaultObjectType;
}
List<ResourceObjectTypeDefinitionType> objectTypes = getResourceObjectTypesDefinitions(kind);
List<? extends ResourceObjectTypeDefinition> objectTypes = getResourceObjectTypesDefinitions(kind);
if (objectTypes.isEmpty()) {
return null;
}
return objectTypes.iterator().next();
}

public List<ResourceObjectTypeDefinitionType> getResourceObjectTypesDefinitions(ShadowKindType kind) {
public List<? extends ResourceObjectTypeDefinition> getResourceObjectTypesDefinitions(ShadowKindType kind) {
ResourceSchema resourceSchema = getResourceSchemaOrNothing();

if (resourceSchema == null) {
return null;
}
return resourceSchema.getObjectTypeDefinitions(kind)
.stream()
.map(ResourceObjectDefinition::getDefinitionBean)
.collect(Collectors.toList());

return resourceSchema.getObjectTypeDefinitions(kind);
// return resourceSchema.getObjectTypeDefinitions(kind)
// .stream()
// .map(ResourceObjectDefinition::getDefinitionBean)
// .collect(Collectors.toList());
}

public QName getDefaultObjectClass() {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@
import com.evolveum.midpoint.gui.impl.component.search.wrapper.AssociationSearchItemWrapper;
import com.evolveum.midpoint.prism.PrismObject;
import com.evolveum.midpoint.schema.SchemaConstantsGenerated;
import com.evolveum.midpoint.schema.processor.ResourceObjectTypeDefinition;
import com.evolveum.midpoint.schema.util.task.ActivityDefinitionBuilder;
import com.evolveum.midpoint.util.exception.SchemaException;
import com.evolveum.midpoint.web.component.input.DurationWithOneElementPanel;
Expand Down Expand Up @@ -96,7 +97,6 @@ public abstract class ResourceObjectsPanel extends AbstractObjectMainPanel<Resou
private static final String DOT_CLASS = ResourceObjectsPanel.class.getName() + ".";
private static final String OPERATION_GET_TOTALS = DOT_CLASS + "getTotals";
protected static final String OPERATION_RECLASSIFY_SHADOWS = DOT_CLASS + "reclassifyShadows";
protected static final String OPERATION_RELOAD_SHADOWS = DOT_CLASS + "reloadShadows";

private static final String ID_OBJECT_TYPE = "objectType";
private static final String ID_TABLE = "table";
Expand All @@ -109,9 +109,6 @@ public abstract class ResourceObjectsPanel extends AbstractObjectMainPanel<Resou

private IModel<Boolean> showStatisticsModel = Model.of(false);

private AjaxSelfUpdatingTimerBehavior reloadedBehaviour;
private String taskOidForReloaded;

public ResourceObjectsPanel(String id, ResourceDetailsModel resourceDetailsModel, ContainerPanelConfigurationType config) {
super(id, resourceDetailsModel, config);
}
Expand Down Expand Up @@ -366,12 +363,15 @@ protected ObjectQuery getCustomizeContentQuery() {
protected abstract ShadowKindType getKind();

private ObjectQuery getResourceContentQuery() {
ResourceObjectTypeDefinitionType objectType = getSelectedObjectType();
ResourceObjectTypeDefinition objectType = getSelectedObjectTypeDefinition();
if (objectType == null) {
return ObjectQueryUtil.createResourceAndKind(getObjectDetailsModels().getObjectType().getOid(), getKind());
}
try {
return ObjectQueryUtil.createResourceAndKindIntent(getObjectDetailsModels().getObjectType().getOid(), getKind(), objectType.getIntent());
return ObjectQueryUtil.createResourceAndKindIntent(
getObjectDetailsModels().getObjectType().getOid(),
getKind(),
objectType.getIntent());
} catch (Exception e) {
LoggingUtils.logUnexpectedException(LOGGER, "Cannot create query for resource content", e);
}
Expand Down Expand Up @@ -433,7 +433,7 @@ protected String getTaskName() {
return "Reload objects on " + getObjectWrapperObject().asObjectable();
}
};
reload.add(new VisibleBehaviour(() -> getSelectedObjectType() != null));
reload.add(new VisibleBehaviour(() -> getSelectedObjectTypeDefinition() != null));
return reload;
}

Expand Down Expand Up @@ -489,31 +489,36 @@ private void createReclassifyTask(AjaxRequestTarget target) throws RestartRespon
}

private ResourceObjectTypeDefinitionType getSelectedObjectType() {
DropDownChoicePanel<ResourceObjectTypeDefinitionType> objectTypeSelector = getObjectTypeSelector();
ResourceObjectTypeDefinition objectTypeDefinition = getSelectedObjectTypeDefinition();
return objectTypeDefinition == null ? null : objectTypeDefinition.getDefinitionBean();
}

private ResourceObjectTypeDefinition getSelectedObjectTypeDefinition() {
DropDownChoicePanel<ResourceObjectTypeDefinition> objectTypeSelector = getObjectTypeSelector();
if (objectTypeSelector != null && objectTypeSelector.getModel() != null) {
return objectTypeSelector.getModel().getObject();
}
return null;
}

private String getIntent() {
ResourceObjectTypeDefinitionType objectType = getSelectedObjectType();
ResourceObjectTypeDefinition objectType = getSelectedObjectTypeDefinition();
if (objectType != null) {
return objectType.getIntent();
}
return null;
}

private QName getObjectClass() {
ResourceObjectTypeDefinitionType objectType = getSelectedObjectType();
ResourceObjectTypeDefinition objectType = getSelectedObjectTypeDefinition();
if (objectType != null) {
return objectType.getDelineation() != null ? objectType.getDelineation().getObjectClass() : null;
return objectType.getObjectClassName();
}
return null;
}

private DropDownChoicePanel<ResourceObjectTypeDefinitionType> getObjectTypeSelector() {
return (DropDownChoicePanel<ResourceObjectTypeDefinitionType>) get(ID_OBJECT_TYPE);
private DropDownChoicePanel<ResourceObjectTypeDefinition> getObjectTypeSelector() {
return (DropDownChoicePanel<ResourceObjectTypeDefinition>) get(ID_OBJECT_TYPE);
}

private ShadowTablePanel getShadowTable() {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@

package com.evolveum.midpoint.web.component.input;

import com.evolveum.midpoint.schema.processor.ResourceObjectTypeDefinition;
import com.evolveum.midpoint.xml.ns._public.common.common_3.ResourceObjectTypeDefinitionType;

import org.apache.commons.lang3.StringUtils;
Expand All @@ -15,17 +16,17 @@

import java.util.List;

public class ResourceObjectTypeChoiceRenderer implements IChoiceRenderer<ResourceObjectTypeDefinitionType> {
public class ResourceObjectTypeChoiceRenderer implements IChoiceRenderer<ResourceObjectTypeDefinition> {
@Override
public Object getDisplayValue(ResourceObjectTypeDefinitionType resourceObjectTypeDefinitionType) {
if (resourceObjectTypeDefinitionType == null) {
public Object getDisplayValue(ResourceObjectTypeDefinition resourceObjectTypeDefinition) {
if (resourceObjectTypeDefinition == null) {
return null;
}
String displayName = resourceObjectTypeDefinitionType.getDisplayName();
String displayName = resourceObjectTypeDefinition.getDefinitionBean().getDisplayName();
if (StringUtils.isBlank(displayName)) {
displayName = resourceObjectTypeDefinitionType.getKind().value();
if (resourceObjectTypeDefinitionType.getIntent() != null) {
displayName += " (" + resourceObjectTypeDefinitionType.getIntent() + ")";
displayName = resourceObjectTypeDefinition.getKind().value();
if (resourceObjectTypeDefinition.getIntent() != null) {
displayName += " (" + resourceObjectTypeDefinition.getIntent() + ")";
}
}
return displayName;
Expand Down

0 comments on commit f8d8717

Please sign in to comment.