Skip to content

Commit

Permalink
Merge branch 'master' of github.com:Evolveum/midpoint
Browse files Browse the repository at this point in the history
  • Loading branch information
1azyman committed Jan 31, 2023
2 parents c16bd67 + 63e6b6f commit aea690c
Show file tree
Hide file tree
Showing 4 changed files with 27 additions and 53 deletions.
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
/*
* Copyright (C) 2010-2021 Evolveum and contributors
* Copyright (C) 2010-2023 Evolveum and contributors
*
* This work is dual-licensed under the Apache License 2.0
* and European Union Public License. See LICENSE file for details.
Expand All @@ -12,8 +12,6 @@
import java.util.List;
import javax.xml.namespace.QName;

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

import org.apache.commons.collections4.IteratorUtils;
import org.apache.wicket.AttributeModifier;
import org.apache.wicket.Component;
Expand All @@ -40,24 +38,25 @@
import com.evolveum.midpoint.gui.api.component.form.CheckBoxPanel;
import com.evolveum.midpoint.gui.api.util.WebComponentUtil;
import com.evolveum.midpoint.gui.api.util.WebModelServiceUtils;
import com.evolveum.midpoint.gui.impl.component.data.provider.RepositoryObjectDataProvider;
import com.evolveum.midpoint.gui.impl.component.search.CollectionPanelType;
import com.evolveum.midpoint.gui.impl.component.search.Search;
import com.evolveum.midpoint.gui.impl.component.search.SearchBuilder;
import com.evolveum.midpoint.gui.impl.component.search.SearchContext;
import com.evolveum.midpoint.gui.impl.component.search.wrapper.FilterableSearchItemWrapper;
import com.evolveum.midpoint.gui.impl.page.admin.task.PageTask;
import com.evolveum.midpoint.prism.Containerable;
import com.evolveum.midpoint.prism.query.ObjectFilter;
import com.evolveum.midpoint.prism.query.ObjectQuery;
import com.evolveum.midpoint.prism.query.QueryFactory;
import com.evolveum.midpoint.schema.constants.ObjectTypes;
import com.evolveum.midpoint.schema.result.OperationResult;
import com.evolveum.midpoint.security.api.AuthorizationConstants;
import com.evolveum.midpoint.util.DisplayableValue;
import com.evolveum.midpoint.util.exception.ObjectAlreadyExistsException;
import com.evolveum.midpoint.util.exception.ObjectNotFoundException;
import com.evolveum.midpoint.util.exception.SchemaException;
import com.evolveum.midpoint.util.logging.LoggingUtils;
import com.evolveum.midpoint.util.logging.Trace;
import com.evolveum.midpoint.util.logging.TraceManager;
import com.evolveum.midpoint.web.component.data.BoxedTablePanel;
import com.evolveum.midpoint.gui.impl.component.data.provider.RepositoryObjectDataProvider;
import com.evolveum.midpoint.web.component.data.Table;
import com.evolveum.midpoint.web.component.data.column.AjaxLinkColumn;
import com.evolveum.midpoint.web.component.data.column.CheckBoxHeaderColumn;
Expand Down Expand Up @@ -113,7 +112,6 @@ public class PageDebugList extends PageAdminConfiguration {
// confirmation dialog model
private IModel<DebugConfDialogDto> confDialogModel = null;


public PageDebugList() {
}

Expand All @@ -134,10 +132,8 @@ protected Search load() {
if (search == null || search.isForceReload()) {
Class<? extends ObjectType> type = getType();


search = createSearch(type);


storage.setSearch(search);
}
return search;
Expand Down Expand Up @@ -184,6 +180,7 @@ protected PageStorage getPageStorage() {
main.add(ajaxDownloadBehavior);
}

@SuppressWarnings({ "rawtypes", "unchecked" })
private void initDownload(AjaxRequestTarget target, Class<? extends ObjectType> type, ObjectQuery query) {
List<PageDebugDownloadBehaviour> list = get(ID_MAIN_FORM)
.getBehaviors(PageDebugDownloadBehaviour.class);
Expand Down Expand Up @@ -493,21 +490,19 @@ private Table getListTable() {
return (Table) get(createComponentPath(ID_MAIN_FORM, ID_TABLE));
}

private <C extends Containerable> void listObjectsPerformed(AjaxRequestTarget target) {
private void listObjectsPerformed(AjaxRequestTarget target) {
Table table = getListTable();


Search search = searchModel.getObject();
if (search.isForceReload()) {
Class<? extends ObjectType> type = search.getTypeClass();

Search newSearch = createSearch(type);
searchModel.setObject(newSearch);//TODO: this is veeery ugly, available definitions should refresh when the type changed
table.getDataTable().getColumns().clear();
table.getDataTable().getColumns().addAll(createColumns());
searchModel.setObject(newSearch);//TODO: this is veeery ugly, available definitions should refresh when the type changed
table.getDataTable().getColumns().clear();
table.getDataTable().getColumns().addAll(createColumns());
}


// save object type category to session storage, used by back button
GenericPageStorage storage = getSessionStorage().getConfiguration();
storage.setSearch(searchModel.getObject());
Expand All @@ -524,10 +519,10 @@ private void objectEditPerformed(String oid, Class<? extends ObjectType> type) {
navigateToNext(PageDebugView.class, parameters);
}

private RepositoryObjectDataProvider getTableDataProvider() {
private RepositoryObjectDataProvider<?> getTableDataProvider() {
Table tablePanel = getListTable();
DataTable table = tablePanel.getDataTable();
return (RepositoryObjectDataProvider) table.getDataProvider();
DataTable<?, ?> table = tablePanel.getDataTable();
return (RepositoryObjectDataProvider<?>) table.getDataProvider();
}

private IModel<String> createDeleteConfirmString() {
Expand Down Expand Up @@ -615,7 +610,7 @@ private ObjectQuery createDeleteAllUsersQuery() {
}

private String deleteAllShadowsConfirmed(OperationResult result, boolean deleteAccountShadows)
throws ObjectAlreadyExistsException, ObjectNotFoundException, SchemaException {
throws SchemaException {

ObjectFilter kindFilter = getPrismContext().queryFor(ShadowType.class)
.item(ShadowType.F_KIND).eq(ShadowKindType.ACCOUNT)
Expand Down Expand Up @@ -741,7 +736,7 @@ private void deleteSelectedConfirmed(AjaxRequestTarget target, List<DebugObjectI
}
result.computeStatusIfUnknown();

RepositoryObjectDataProvider provider = getTableDataProvider();
RepositoryObjectDataProvider<?> provider = getTableDataProvider();
provider.clearCache();

showResult(result);
Expand Down Expand Up @@ -843,7 +838,6 @@ private void deleteAllShadowsOnResourceConfirmed(AjaxRequestTarget target) {

QName type = ShadowType.COMPLEX_TYPE;


taskOid = deleteObjectsAsync(type, objectQuery,
"Delete shadows on " + resourceName, result);
info(getString("pageDebugList.messsage.deleteAllShadowsStarted", resourceName));
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
/*
* Copyright (C) 2010-2020 Evolveum and contributors
* Copyright (C) 2010-2023 Evolveum and contributors
*
* This work is dual-licensed under the Apache License 2.0
* and European Union Public License. See LICENSE file for details.
Expand Down Expand Up @@ -42,7 +42,7 @@
/**
* @author lazyman
*/
public class PageDebugDownloadBehaviour extends AjaxDownloadBehaviorFromFile {
public class PageDebugDownloadBehaviour<T extends ObjectType> extends AjaxDownloadBehaviorFromFile {

private static final Trace LOGGER = TraceManager.getTrace(PageDebugDownloadBehaviour.class);

Expand All @@ -51,7 +51,7 @@ public class PageDebugDownloadBehaviour extends AjaxDownloadBehaviorFromFile {
private static final String OPERATION_CREATE_DOWNLOAD_FILE = DOT_CLASS + "createDownloadFile";

private boolean exportAll;
private Class<? extends ObjectType> type;
private Class<T> type;
private boolean useZip;
private boolean showAllItems;
private ObjectQuery query;
Expand All @@ -71,7 +71,7 @@ public Class<? extends ObjectType> getType() {
return type;
}

public void setType(Class<? extends ObjectType> type) {
public void setType(Class<T> type) {
this.type = type;
}

Expand Down Expand Up @@ -163,7 +163,7 @@ private Writer createWriter(File file) throws IOException {
private void dumpObjectsToStream(final Writer writer, OperationResult result) throws Exception {
final PageBase page = getPage();

ResultHandler handler = (object, parentResult) -> {
ResultHandler<T> handler = (object, parentResult) -> {
try {
String xml = page.getPrismContext().xmlSerializer().options(createSerializeForExport()).serialize(object);
writer.write('\t');
Expand Down

This file was deleted.

Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
/*
* Copyright (c) 2010-2013 Evolveum and contributors
* Copyright (C) 2010-2023 Evolveum and contributors
*
* This work is dual-licensed under the Apache License 2.0
* and European Union Public License. See LICENSE file for details.
Expand All @@ -16,15 +16,19 @@
* It is only used to handle iterative search results now. It may be reused for
* other purposes as well.
*
* Also see {@link ObjectHandler} which is not limited to ObjectType and handles
* real values instead of prism values.
*
* TODO this should perhaps be named ObjectResultHandler
*
* @author Radovan Semancik
*/
@FunctionalInterface
public interface ResultHandler<T extends ObjectType> {
public interface ResultHandler<T extends ObjectType> extends ObjectHandler<PrismObject<T>> {

/**
* Handle a single result.
*
* @param object Resource object to process.
* @return true if the operation should proceed, false if it should stop
*/
Expand Down

0 comments on commit aea690c

Please sign in to comment.