Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge branch 'master' into feature/mid-6303
# Conflicts: # repo/repo-sql-impl/src/main/java/com/evolveum/midpoint/repo/sql/data/common/container/RAccessCertificationCase.java
- Loading branch information
Showing
43 changed files
with
1,290 additions
and
875 deletions.
There are no files selected for viewing
33 changes: 33 additions & 0 deletions
33
...a/com/evolveum/midpoint/gui/api/component/autocomplete/AutoCompleteReferenceRenderer.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,33 @@ | ||
/* | ||
* Copyright (c) 2020 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.api.component.autocomplete; | ||
|
||
import com.evolveum.midpoint.gui.api.util.WebComponentUtil; | ||
import com.evolveum.midpoint.xml.ns._public.common.common_3.ObjectReferenceType; | ||
|
||
import org.apache.wicket.extensions.ajax.markup.html.autocomplete.AbstractAutoCompleteRenderer; | ||
import org.apache.wicket.request.Response; | ||
|
||
/** | ||
* @author honchar | ||
*/ | ||
public class AutoCompleteReferenceRenderer extends AbstractAutoCompleteRenderer<ObjectReferenceType> { | ||
|
||
private static final long serialVersionUID = 1L; | ||
|
||
@Override | ||
protected String getTextValue(ObjectReferenceType object) { | ||
return WebComponentUtil.getName(object); | ||
} | ||
|
||
@Override | ||
protected void renderChoice(ObjectReferenceType object, Response response, String criteria) { | ||
String textValue = getTextValue(object); | ||
response.write(textValue); | ||
|
||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
68 changes: 68 additions & 0 deletions
68
...rc/main/java/com/evolveum/midpoint/gui/api/component/autocomplete/ReferenceConverter.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,68 @@ | ||
/* | ||
* Copyright (c) 2020 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.api.component.autocomplete; | ||
|
||
import com.evolveum.midpoint.gui.api.page.PageBase; | ||
import com.evolveum.midpoint.gui.api.util.WebComponentUtil; | ||
import com.evolveum.midpoint.gui.api.util.WebModelServiceUtils; | ||
import com.evolveum.midpoint.prism.PrismObject; | ||
import com.evolveum.midpoint.prism.query.ObjectQuery; | ||
import com.evolveum.midpoint.schema.result.OperationResult; | ||
import com.evolveum.midpoint.schema.util.ObjectTypeUtil; | ||
import com.evolveum.midpoint.xml.ns._public.common.common_3.AbstractRoleType; | ||
|
||
import com.evolveum.midpoint.xml.ns._public.common.common_3.ObjectReferenceType; | ||
import com.evolveum.midpoint.xml.ns._public.common.common_3.ObjectType; | ||
|
||
import org.apache.commons.collections.CollectionUtils; | ||
import org.apache.wicket.markup.html.form.FormComponent; | ||
import org.apache.wicket.util.convert.ConversionException; | ||
import org.apache.wicket.util.convert.IConverter; | ||
|
||
import java.util.List; | ||
import java.util.Locale; | ||
|
||
/** | ||
* @author honchar | ||
*/ | ||
public class ReferenceConverter implements IConverter<ObjectReferenceType> { | ||
|
||
private static final long serialVersionUID = 1L; | ||
private IConverter<ObjectReferenceType> originConverter; | ||
private List<ObjectReferenceType> referenceList = null; | ||
private FormComponent baseComponent; | ||
|
||
private PageBase pageBase; | ||
|
||
public ReferenceConverter(IConverter<ObjectReferenceType> originConverter, List<ObjectReferenceType> referenceList, FormComponent baseComponent, PageBase pageBase) { | ||
this.originConverter = originConverter; | ||
this.referenceList = referenceList; | ||
this.baseComponent = baseComponent; | ||
this.pageBase = pageBase; | ||
} | ||
|
||
@Override | ||
public ObjectReferenceType convertToObject(String value, Locale locale) throws ConversionException { | ||
ObjectQuery query = pageBase.getPrismContext().queryFor(AbstractRoleType.class) | ||
.item(ObjectType.F_NAME) | ||
.eq(value) | ||
.matchingOrig() | ||
.build(); | ||
List<PrismObject<AbstractRoleType>> objectsList = WebModelServiceUtils.searchObjects(AbstractRoleType.class, query, | ||
new OperationResult("searchObjects"), pageBase); | ||
if (CollectionUtils.isNotEmpty(objectsList)){ | ||
return ObjectTypeUtil.createObjectRefWithFullObject(objectsList.get(0), pageBase.getPrismContext()); | ||
} | ||
return originConverter.convertToObject(value, locale); | ||
|
||
} | ||
|
||
@Override | ||
public String convertToString(ObjectReferenceType ref, Locale arg1) { | ||
return ref != null ? WebComponentUtil.getName(ref) : ""; | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
71 changes: 71 additions & 0 deletions
71
...n-gui/src/main/java/com/evolveum/midpoint/web/component/search/ReferenceAutocomplete.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,71 @@ | ||
/* | ||
* Copyright (c) 2020 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.web.component.search; | ||
|
||
import com.evolveum.midpoint.gui.api.component.autocomplete.AutoCompleteTextPanel; | ||
|
||
import com.evolveum.midpoint.gui.api.component.autocomplete.ReferenceConverter; | ||
import com.evolveum.midpoint.gui.api.page.PageBase; | ||
import com.evolveum.midpoint.gui.api.util.WebModelServiceUtils; | ||
import com.evolveum.midpoint.prism.PrismObject; | ||
|
||
import com.evolveum.midpoint.prism.query.ObjectQuery; | ||
import com.evolveum.midpoint.schema.result.OperationResult; | ||
import com.evolveum.midpoint.schema.util.ObjectTypeUtil; | ||
import com.evolveum.midpoint.xml.ns._public.common.common_3.AbstractRoleType; | ||
import com.evolveum.midpoint.xml.ns._public.common.common_3.ObjectReferenceType; | ||
import com.evolveum.midpoint.xml.ns._public.common.common_3.ObjectType; | ||
|
||
import org.apache.commons.lang.StringUtils; | ||
import org.apache.wicket.extensions.ajax.markup.html.autocomplete.IAutoCompleteRenderer; | ||
import org.apache.wicket.markup.html.form.FormComponent; | ||
import org.apache.wicket.model.IModel; | ||
import org.apache.wicket.util.convert.IConverter; | ||
|
||
import java.util.ArrayList; | ||
import java.util.Iterator; | ||
import java.util.List; | ||
|
||
/** | ||
* @author honchar | ||
*/ | ||
public abstract class ReferenceAutocomplete<O extends ObjectType> extends AutoCompleteTextPanel<ObjectReferenceType> { | ||
private static final long serialVersionUID = 1L; | ||
|
||
private PageBase pageBase; | ||
|
||
public ReferenceAutocomplete(String id, final IModel<ObjectReferenceType> model, IAutoCompleteRenderer<ObjectReferenceType> renderer, PageBase pageBase) { | ||
super(id, model, ObjectReferenceType.class, renderer); | ||
this.pageBase = pageBase; | ||
} | ||
|
||
|
||
@Override | ||
public Iterator<ObjectReferenceType> getIterator(String input) { | ||
FormComponent<ObjectReferenceType> inputField = getBaseFormComponent(); | ||
if (inputField == null || StringUtils.isEmpty(inputField.getRawInput())){ | ||
return null; | ||
} | ||
ObjectQuery query = pageBase.getPrismContext().queryFor(AbstractRoleType.class) | ||
.item(ObjectType.F_NAME) | ||
.containsPoly(inputField.getRawInput()) | ||
.matchingNorm() | ||
.build(); | ||
List<PrismObject<AbstractRoleType>> objectsList = WebModelServiceUtils.searchObjects(AbstractRoleType.class, query, | ||
new OperationResult("searchObjects"), pageBase); | ||
return (Iterator<ObjectReferenceType>) ObjectTypeUtil.objectListToReferences(objectsList); | ||
} | ||
|
||
@Override | ||
protected <C> IConverter<C> getAutoCompleteConverter(Class<C> type, IConverter<C> originConverter){ | ||
IConverter<C> converter = super.getAutoCompleteConverter(type, originConverter); | ||
return (IConverter<C>) new ReferenceConverter((IConverter<ObjectReferenceType>)converter, new ArrayList<>(), getBaseFormComponent(), pageBase); | ||
} | ||
|
||
protected abstract Class<O> getReferenceTargetObjectType(); | ||
|
||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.