Skip to content

Commit

Permalink
reworked usage of new search creation
Browse files Browse the repository at this point in the history
  • Loading branch information
KaterynaHonchar committed Feb 7, 2022
1 parent 90a685d commit 131d416
Show file tree
Hide file tree
Showing 8 changed files with 55 additions and 21 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@

import com.evolveum.midpoint.gui.api.component.result.MessagePanel;
import com.evolveum.midpoint.gui.api.util.WebComponentUtil;
import com.evolveum.midpoint.gui.impl.component.search.SearchConfigurationWrapper;
import com.evolveum.midpoint.prism.query.ObjectFilter;
import com.evolveum.midpoint.prism.query.ObjectQuery;

Expand All @@ -24,6 +25,8 @@
import com.evolveum.midpoint.web.component.util.SerializableSupplier;
import com.evolveum.midpoint.web.component.util.VisibleBehaviour;

import com.evolveum.midpoint.xml.ns._public.common.common_3.SearchBoxConfigurationType;

import org.apache.wicket.Component;
import org.apache.wicket.ajax.AjaxRequestTarget;
import org.apache.wicket.ajax.form.OnChangeAjaxBehavior;
Expand Down Expand Up @@ -241,7 +244,7 @@ protected List<O> getPreselectedObjectList() {
@Override
protected Search createSearch(Class<O> type) {
String collectionName = isCollectionViewPanelForCompiledView() ? getCollectionNameParameterValue().toString() : null;
return SearchFactory.createSearchNew(type, collectionName, new ArrayList<>(getSpecialSearchItemWrappers()), getPageBase());
return SearchFactory.createSearch(createSearchConfigWrapper(type, collectionName), getPageBase());
// Search search = super.createSearch(type);
// getSpecialSearchItemWrappers()
// .forEach(function -> search.addSpecialItem(function.apply(search)));
Expand All @@ -252,6 +255,13 @@ protected Search createSearch(Class<O> type) {
return listPanel;
}

private SearchConfigurationWrapper<O> createSearchConfigWrapper(Class<O> type, String collectionViewName) {
SearchBoxConfigurationType searchBoxConfig = SearchFactory.createDefaultSearchBoxConfiguration(type, null, getPageBase());
SearchConfigurationWrapper<O> searchConfigWrapper = new SearchConfigurationWrapper<>(type, searchBoxConfig, collectionViewName);
searchConfigWrapper.getItemsList().addAll(new ArrayList(getSpecialSearchItemWrappers()));
return searchConfigWrapper;
}

protected Set<SerializableSupplier<AbstractSearchItemWrapper>> getSpecialSearchItemWrappers() {
return Collections.emptySet();
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@
import java.util.function.Supplier;

import com.evolveum.midpoint.gui.impl.component.ContainerableListPanel;
import com.evolveum.midpoint.gui.impl.component.search.SearchConfigurationWrapper;
import com.evolveum.midpoint.web.component.search.*;
import com.evolveum.midpoint.gui.impl.component.search.Search;

Expand Down Expand Up @@ -79,7 +80,7 @@ protected String getSearchByNameParameterValue() {
protected Search createSearch(Class<O> type) {
// ContainerTypeSearchItem<O> typeSearchItem = new ContainerTypeSearchItem<>(new SearchValue<>(type, ""));
String collectionName = isCollectionViewPanelForCompiledView() ? getCollectionNameParameterValue().toString() : null;
return SearchFactory.createSearchNew(type, collectionName, getPageBase());
return SearchFactory.createSearch(type, collectionName, getPageBase());
}

protected List<ItemPath> getFixedSearchItems() {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,13 +10,16 @@
import java.util.List;

import com.evolveum.midpoint.gui.api.page.PageBase;
import com.evolveum.midpoint.gui.impl.component.search.SearchConfigurationWrapper;
import com.evolveum.midpoint.gui.impl.page.admin.assignmentholder.PageAssignmentHolderDetails;
import com.evolveum.midpoint.web.component.*;

import com.evolveum.midpoint.gui.impl.component.search.AbstractSearchItemWrapper;
import com.evolveum.midpoint.web.component.util.VisibleBehaviour;
import com.evolveum.midpoint.xml.ns._public.common.common_3.ContainerPanelConfigurationType;

import com.evolveum.midpoint.xml.ns._public.common.common_3.SearchBoxConfigurationType;

import org.apache.wicket.Component;
import org.apache.wicket.ajax.AjaxRequestTarget;
import org.apache.wicket.behavior.AttributeAppender;
Expand Down Expand Up @@ -70,12 +73,20 @@ public MultivalueContainerListPanel(String id, Class<C> type, ContainerPanelConf

@Override
protected Search createSearch(Class<C> type) {
PrismContainerDefinition<C> containerDefinition = getTypeDefinitionForSearch();
return SearchFactory.createSearchNew(type, null, null, initSearchableItemWrappers(containerDefinition), getPageBase());
return SearchFactory.createSearch(createSearchConfigWrapper(type), getPageBase());
// return SearchFactory.createContainerSearch(createTypeSearchItem(type, containerDefinition), getTypeDefinitionForSearch(),
// getDefaultSearchItem(), initSearchableItems(containerDefinition), getPageBase(), false);
}

private SearchConfigurationWrapper<C> createSearchConfigWrapper(Class<C> type) {
SearchBoxConfigurationType searchBoxConfig = SearchFactory.createDefaultSearchBoxConfiguration(type, null, getPageBase());
SearchConfigurationWrapper<C> searchConfigWrapper = new SearchConfigurationWrapper<>(type, searchBoxConfig);
PrismContainerDefinition<C> containerDefinition = getTypeDefinitionForSearch();
searchConfigWrapper.getItemsList().addAll((List<AbstractSearchItemWrapper>)initSearchableItemWrappers(containerDefinition));
return searchConfigWrapper;
}


protected PrismContainerDefinition<C> getTypeDefinitionForSearch() {
return getPrismContext().getSchemaRegistry().findContainerDefinitionByCompileTimeClass(getType());
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -368,10 +368,10 @@ private static void processSearchItemDefFromCompiledView(List<SearchItemDefiniti
}

public static <C extends Containerable> com.evolveum.midpoint.gui.impl.component.search.Search<C> createSearchNew(Class<C> type, ModelServiceLocator modelServiceLocator) {
return createSearchNew(type, null, modelServiceLocator);
return createSearch(type, null, modelServiceLocator);
}

public static <C extends Containerable> com.evolveum.midpoint.gui.impl.component.search.Search<C> createSearchNew(Class<C> type, String collectionViewName, ModelServiceLocator modelServiceLocator) {
public static <C extends Containerable> com.evolveum.midpoint.gui.impl.component.search.Search<C> createSearch(Class<C> type, String collectionViewName, ModelServiceLocator modelServiceLocator) {
return createSearchNew(type, collectionViewName, null, null, modelServiceLocator);
}

Expand Down Expand Up @@ -738,7 +738,7 @@ private static SearchItemType combineSearchItem(SearchItemType item, SearchItemT
return item;
}

private static <C extends Containerable> SearchBoxConfigurationType createDefaultSearchBoxConfiguration(Class<C> type,
public static <C extends Containerable> SearchBoxConfigurationType createDefaultSearchBoxConfiguration(Class<C> type,
ResourceShadowDiscriminator discriminator, ModelServiceLocator modelServiceLocator) {
SearchBoxConfigurationType config = new SearchBoxConfigurationType();
PrismContainerDefinition<C> def = null;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,8 @@
import java.util.List;
import javax.xml.namespace.QName;

import com.evolveum.midpoint.gui.impl.component.search.SearchConfigurationWrapper;

import org.apache.commons.collections4.IteratorUtils;
import org.apache.wicket.AttributeModifier;
import org.apache.wicket.Component;
Expand Down Expand Up @@ -141,8 +143,7 @@ protected Search<? extends ObjectType> load() {
// defaultType.setVisible(true);
// search = SearchFactory.createSearch(defaultType, PageDebugList.this, true);
// configureSearch(search);
search = SearchFactory.createSearchNew(confDialogModel.getObject().getType(), null,
createSearchConfig(SystemConfigurationType.COMPLEX_TYPE), PageDebugList.this);
search = SearchFactory.createSearch(createSearchConfigWrapper(confDialogModel.getObject().getType(), SystemConfigurationType.COMPLEX_TYPE), PageDebugList.this);
storage.setSearch(search);
}
return search;
Expand All @@ -161,7 +162,7 @@ protected Search<? extends ObjectType> load() {
initLayout();
}

private SearchBoxConfigurationType createSearchConfig(QName defaultValue) {
private SearchConfigurationWrapper createSearchConfigWrapper(Class<? extends Containerable> type, QName defaultValue) {
SearchBoxConfigurationType config = new SearchBoxConfigurationType();
config.createAllowedModeList().add(SearchBoxModeType.BASIC);
config.createAllowedModeList().add(SearchBoxModeType.ADVANCED);
Expand All @@ -170,7 +171,7 @@ private SearchBoxConfigurationType createSearchConfig(QName defaultValue) {
.defaultValue(defaultValue);
objectTypeConfig.getSupportedTypes().addAll(getAllowedTypes());
config.setObjectTypeConfiguration(objectTypeConfig);
return config;
return new SearchConfigurationWrapper(type, config);
}

// private List<DisplayableValue<Class<? extends ObjectType>>> getAllowedTypes() {
Expand Down Expand Up @@ -528,9 +529,9 @@ private void listObjectsPerformed(AjaxRequestTarget target) {
Table table = getListTable();
if (searchModel.getObject().isTypeChanged()) {
ObjectTypeSearchItemWrapper objectType = searchModel.getObject().getObjectTypeSearchItemWrapper();
Search search = SearchFactory.createSearchNew(
(Class<? extends Containerable>) WebComponentUtil.qnameToClass(PrismContext.get(), objectType.getValue().getValue()),
null, createSearchConfig(objectType.getValue().getValue()), PageDebugList.this);
Class<? extends Containerable> type =
(Class<? extends Containerable>) WebComponentUtil.qnameToClass(PrismContext.get(), objectType.getValue().getValue());
Search search = SearchFactory.createSearch(createSearchConfigWrapper(type, objectType.getValue().getValue()), PageDebugList.this);
// Search search = SearchFactory.createSearch(getTypeItem(), PageDebugList.this, true);
searchModel.setObject(search);//TODO: this is veeery ugly, available definitions should refresh when the type changed
// configureSearch(search);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,8 @@

import com.evolveum.midpoint.authentication.api.util.AuthConstants;

import com.evolveum.midpoint.gui.impl.component.search.SearchConfigurationWrapper;

import org.apache.commons.io.IOUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.wicket.ajax.AjaxRequestTarget;
Expand Down Expand Up @@ -445,7 +447,7 @@ private void useInObjectListPerformed(AjaxRequestTarget target) {
target.add(getFeedbackPanel());
return;
}
Search search = SearchFactory.createSearchNew(request.getType(), null, createSearchConfig(), this);
Search search = SearchFactory.createSearch(createSearchConfigWrapper(request.getType()), this);
search.setAdvancedQuery(filterAsString);
// search.setSearchType(SearchBoxModeType.ADVANCED);
if (!search.isAdvancedQueryValid(getPrismContext())) {
Expand Down Expand Up @@ -603,10 +605,10 @@ private String formatQueryResult(List<?> objects) {
return sb.toString();
}

private SearchBoxConfigurationType createSearchConfig() {
private SearchConfigurationWrapper createSearchConfigWrapper(Class<? extends ObjectType> type) {
SearchBoxConfigurationType config = new SearchBoxConfigurationType();
config.createAllowedModeList().add(SearchBoxModeType.ADVANCED);
config.setDefaultMode(SearchBoxModeType.ADVANCED);
return config;
return new SearchConfigurationWrapper(type, config);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@

import javax.xml.namespace.QName;

import com.evolveum.midpoint.gui.impl.component.search.SearchConfigurationWrapper;
import com.evolveum.midpoint.schema.processor.ResourceAttributeDefinition;
import com.evolveum.midpoint.schema.processor.ResourceObjectDefinition;
import com.evolveum.midpoint.gui.api.util.WebComponentUtil;
Expand Down Expand Up @@ -61,7 +62,14 @@ protected Search createSearch() {
// List<SearchItemDefinition> availableDefs = new ArrayList<>();
// availableDefs.addAll(createAttributeDefinitionList());
// return new Search(new ContainerTypeSearchItem(ShadowType.class), availableDefs);
return SearchFactory.createSearchNew(ShadowType.class, null, createAttributeSearchItemWrappers(), getPageBase());
return SearchFactory.createSearch(createSearchConfigWrapper(), getPageBase());
}

private SearchConfigurationWrapper createSearchConfigWrapper() {
SearchBoxConfigurationType config = SearchFactory.createDefaultSearchBoxConfiguration(ShadowType.class, null, getPageBase());
SearchConfigurationWrapper searchConfigWrapper = new SearchConfigurationWrapper(ShadowType.class, config);
searchConfigWrapper.getItemsList().addAll(createAttributeSearchItemWrappers());
return searchConfigWrapper;
}

// private <T extends ObjectType> List<SearchItemDefinition> createAttributeDefinitionList() {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@
import java.util.List;
import javax.xml.namespace.QName;

import com.evolveum.midpoint.gui.impl.component.search.SearchConfigurationWrapper;
import com.evolveum.midpoint.web.component.search.SearchFactory;

import org.apache.commons.lang3.StringUtils;
Expand Down Expand Up @@ -153,7 +154,7 @@ protected Search createSearch() {
// Search search = super.createSearch();
// search.addSpecialItem(createScopeItem(search));
// return search;
return SearchFactory.createSearchNew(getQueryClass(), null, createSearchConfig(), getPageBase());
return SearchFactory.createSearch(createSearchConfigWrapper(), getPageBase());
}

// private SearchItem createScopeItem(Search search) {
Expand Down Expand Up @@ -189,9 +190,9 @@ protected Search createSearch() {
// };
// }

private SearchBoxConfigurationType createSearchConfig() {
private SearchConfigurationWrapper createSearchConfigWrapper() {
SearchBoxConfigurationType config = new SearchBoxConfigurationType();
config.setScopeConfiguration(SearchFactory.createScopeSearchItem());
return config;
return new SearchConfigurationWrapper(getQueryClass(), config);
}
}

0 comments on commit 131d416

Please sign in to comment.