Skip to content

Commit

Permalink
Merge remote-tracking branch 'origin/master'
Browse files Browse the repository at this point in the history
  • Loading branch information
mederly committed Aug 15, 2016
2 parents c00f297 + 8dc88d6 commit 26b0644
Show file tree
Hide file tree
Showing 48 changed files with 748 additions and 476 deletions.
Expand Up @@ -89,20 +89,24 @@ protected WebMarkupContainer createTableButtonToolbar(String id) {

private static class ButtonBar extends Fragment {

public ButtonBar(String id, String markupId, MainObjectListPanel markupProvider) {
private static final long serialVersionUID = 1L;

public <O extends ObjectType> ButtonBar(String id, String markupId, MainObjectListPanel<O> markupProvider) {
super(id, markupId, markupProvider);

initLayout(markupProvider);
}

private void initLayout(final MainObjectListPanel mainObjectListPanel) {
private <O extends ObjectType> void initLayout(final MainObjectListPanel<O> mainObjectListPanel) {
AjaxIconButton refreshIcon = new AjaxIconButton(ID_REFRESH, new Model<>("fa fa-refresh"),
mainObjectListPanel.createStringResource("MainObjectListPanel.refresh")) {

@Override
private static final long serialVersionUID = 1L;

@Override
public void onClick(AjaxRequestTarget target) {
mainObjectListPanel.clearCache();
mainObjectListPanel.refreshTable(mainObjectListPanel.getType(), target);
mainObjectListPanel.refreshTable((Class<O>) mainObjectListPanel.getType(), target);

target.add((Component) mainObjectListPanel.getTable());
}
Expand All @@ -112,6 +116,8 @@ public void onClick(AjaxRequestTarget target) {
AjaxIconButton newObjectIcon = new AjaxIconButton(ID_NEW_OBJECT, new Model<>("fa fa-plus"),
mainObjectListPanel.createStringResource("MainObjectListPanel.newObject")) {

private static final long serialVersionUID = 1L;

@Override
public void onClick(AjaxRequestTarget target) {
mainObjectListPanel.newObjectPerformed(target);
Expand All @@ -122,6 +128,8 @@ public void onClick(AjaxRequestTarget target) {
AjaxIconButton importObject = new AjaxIconButton(ID_IMPORT_OBJECT, new Model<>("fa fa-upload"),
mainObjectListPanel.createStringResource("MainObjectListPanel.import")) {

private static final long serialVersionUID = 1L;

@Override
public void onClick(AjaxRequestTarget target) {
setResponsePage(PageImportObject.class);
Expand Down
Expand Up @@ -17,11 +17,8 @@

import java.util.ArrayList;
import java.util.Collection;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import com.evolveum.midpoint.gui.api.util.WebComponentUtil;
import org.apache.commons.lang3.StringUtils;
import org.apache.wicket.Component;
import org.apache.wicket.ajax.AjaxRequestTarget;
Expand All @@ -32,6 +29,7 @@

import com.evolveum.midpoint.gui.api.model.LoadableModel;
import com.evolveum.midpoint.gui.api.page.PageBase;
import com.evolveum.midpoint.gui.api.util.WebComponentUtil;
import com.evolveum.midpoint.prism.query.ObjectPaging;
import com.evolveum.midpoint.prism.query.ObjectQuery;
import com.evolveum.midpoint.schema.GetOperationOptions;
Expand All @@ -50,13 +48,7 @@
import com.evolveum.midpoint.web.component.search.SearchFormPanel;
import com.evolveum.midpoint.web.component.util.ListDataProvider2;
import com.evolveum.midpoint.web.component.util.SelectableBean;
import com.evolveum.midpoint.web.page.admin.reports.PageReports;
import com.evolveum.midpoint.web.page.admin.resources.PageResources;
import com.evolveum.midpoint.web.page.admin.roles.PageRoles;
import com.evolveum.midpoint.web.page.admin.services.PageServices;
import com.evolveum.midpoint.web.page.admin.users.PageUsers;
import com.evolveum.midpoint.web.session.PageStorage;
import com.evolveum.midpoint.web.session.SessionStorage;
import com.evolveum.midpoint.web.session.UserProfileStorage.TableId;
import com.evolveum.midpoint.xml.ns._public.common.common_3.ObjectType;
import com.evolveum.midpoint.xml.ns._public.common.common_3.ResourceType;
Expand Down Expand Up @@ -133,14 +125,14 @@ private void initLayout() {
Form<O> mainForm = new Form<O>(ID_MAIN_FORM);
add(mainForm);

searchModel = createSearchModel();
searchModel = initSearchModel();

BoxedTablePanel<SelectableBean<O>> table = createTable();
mainForm.add(table);

}

protected LoadableModel<Search> createSearchModel(){
private LoadableModel<Search> initSearchModel(){
return new LoadableModel<Search>(false) {

private static final long serialVersionUID = 1L;
Expand All @@ -156,14 +148,18 @@ public Search load() {
}
}
if (search == null) {
search = SearchFactory.createSearch(type, parentPage.getPrismContext(),
parentPage.getModelInteractionService());
search = createSearch();
}
return search;
}
};
}

protected Search createSearch() {
return SearchFactory.createSearch(type, parentPage.getPrismContext(),
parentPage.getModelInteractionService());
}

private BoxedTablePanel<SelectableBean<O>> createTable() {
List<IColumn<SelectableBean<O>, String>> columns = initColumns();

Expand Down Expand Up @@ -299,7 +295,13 @@ protected WebMarkupContainer createTableButtonToolbar(String id) {
}

private String getStorageKey() {
return WebComponentUtil.getStorageKeyForPage(parentPage.getClass());
String storageKey = WebComponentUtil.getStorageKeyForPage(parentPage.getClass());
if (storageKey == null) {
storageKey = WebComponentUtil.getStorageKeyForTableId(tableId);
}

return storageKey;

}

private PageStorage getPageStorage(String storageKey){
Expand Down
Expand Up @@ -27,12 +27,6 @@
import javax.management.MBeanServerFactory;
import javax.management.ObjectName;

import com.evolveum.midpoint.model.api.validator.ResourceValidator;
import com.evolveum.midpoint.model.common.expression.ExpressionFactory;
import com.evolveum.midpoint.prism.match.MatchingRuleRegistry;
import com.evolveum.midpoint.util.exception.SecurityViolationException;
import com.evolveum.midpoint.web.page.admin.server.PageTasksCertScheduling;
import com.evolveum.midpoint.web.page.admin.workflow.*;
import org.apache.commons.lang.StringUtils;
import org.apache.commons.lang.Validate;
import org.apache.wicket.AttributeModifier;
Expand Down Expand Up @@ -86,9 +80,12 @@
import com.evolveum.midpoint.model.api.ScriptingService;
import com.evolveum.midpoint.model.api.TaskService;
import com.evolveum.midpoint.model.api.WorkflowService;
import com.evolveum.midpoint.model.api.validator.ResourceValidator;
import com.evolveum.midpoint.model.common.expression.ExpressionFactory;
import com.evolveum.midpoint.prism.Objectable;
import com.evolveum.midpoint.prism.PrismContext;
import com.evolveum.midpoint.prism.PrismObject;
import com.evolveum.midpoint.prism.match.MatchingRuleRegistry;
import com.evolveum.midpoint.prism.query.ObjectQuery;
import com.evolveum.midpoint.prism.query.builder.QueryBuilder;
import com.evolveum.midpoint.report.api.ReportManager;
Expand All @@ -103,6 +100,7 @@
import com.evolveum.midpoint.util.Holder;
import com.evolveum.midpoint.util.Producer;
import com.evolveum.midpoint.util.exception.SchemaException;
import com.evolveum.midpoint.util.exception.SecurityViolationException;
import com.evolveum.midpoint.util.logging.LoggingUtils;
import com.evolveum.midpoint.util.logging.Trace;
import com.evolveum.midpoint.util.logging.TraceManager;
Expand Down Expand Up @@ -151,12 +149,19 @@
import com.evolveum.midpoint.web.page.admin.server.PageTaskAdd;
import com.evolveum.midpoint.web.page.admin.server.PageTaskEdit;
import com.evolveum.midpoint.web.page.admin.server.PageTasks;
import com.evolveum.midpoint.web.page.admin.server.PageTasksCertScheduling;
import com.evolveum.midpoint.web.page.admin.services.PageService;
import com.evolveum.midpoint.web.page.admin.services.PageServices;
import com.evolveum.midpoint.web.page.admin.users.PageOrgTree;
import com.evolveum.midpoint.web.page.admin.users.PageOrgUnit;
import com.evolveum.midpoint.web.page.admin.users.PageUser;
import com.evolveum.midpoint.web.page.admin.users.PageUsers;
import com.evolveum.midpoint.web.page.admin.workflow.PageProcessInstancesAll;
import com.evolveum.midpoint.web.page.admin.workflow.PageProcessInstancesRequestedBy;
import com.evolveum.midpoint.web.page.admin.workflow.PageProcessInstancesRequestedFor;
import com.evolveum.midpoint.web.page.admin.workflow.PageWorkItemsAll;
import com.evolveum.midpoint.web.page.admin.workflow.PageWorkItemsAllocatedToMe;
import com.evolveum.midpoint.web.page.admin.workflow.PageWorkItemsClaimable;
import com.evolveum.midpoint.web.page.login.PageLogin;
import com.evolveum.midpoint.web.page.self.PageRequestRole;
import com.evolveum.midpoint.web.page.self.PageSelfCredentials;
Expand Down
Expand Up @@ -25,19 +25,21 @@
import java.lang.reflect.Constructor;
import java.lang.reflect.InvocationTargetException;
import java.text.SimpleDateFormat;
import java.util.*;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.Collections;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Locale;
import java.util.Map;

import javax.xml.datatype.DatatypeConfigurationException;
import javax.xml.datatype.DatatypeFactory;
import javax.xml.datatype.XMLGregorianCalendar;
import javax.xml.namespace.QName;

import com.evolveum.midpoint.web.page.admin.reports.PageReports;
import com.evolveum.midpoint.web.page.admin.resources.PageResources;
import com.evolveum.midpoint.web.page.admin.roles.PageRoles;
import com.evolveum.midpoint.web.page.admin.services.PageServices;
import com.evolveum.midpoint.web.page.admin.users.PageUsers;
import com.evolveum.midpoint.web.session.SessionStorage;
import org.apache.commons.lang.StringUtils;
import org.apache.commons.lang.Validate;
import org.apache.wicket.Component;
Expand Down Expand Up @@ -137,15 +139,22 @@
import com.evolveum.midpoint.web.page.admin.configuration.component.EmptyOnBlurAjaxFormUpdatingBehaviour;
import com.evolveum.midpoint.web.page.admin.configuration.component.EmptyOnChangeAjaxFormUpdatingBehavior;
import com.evolveum.midpoint.web.page.admin.reports.PageReport;
import com.evolveum.midpoint.web.page.admin.reports.PageReports;
import com.evolveum.midpoint.web.page.admin.resources.PageResource;
import com.evolveum.midpoint.web.page.admin.resources.PageResources;
import com.evolveum.midpoint.web.page.admin.roles.PageRole;
import com.evolveum.midpoint.web.page.admin.roles.PageRoles;
import com.evolveum.midpoint.web.page.admin.server.PageTaskEdit;
import com.evolveum.midpoint.web.page.admin.server.dto.OperationResultStatusPresentationProperties;
import com.evolveum.midpoint.web.page.admin.services.PageService;
import com.evolveum.midpoint.web.page.admin.services.PageServices;
import com.evolveum.midpoint.web.page.admin.users.PageOrgUnit;
import com.evolveum.midpoint.web.page.admin.users.PageUser;
import com.evolveum.midpoint.web.page.admin.users.PageUsers;
import com.evolveum.midpoint.web.security.MidPointApplication;
import com.evolveum.midpoint.web.security.SecurityUtils;
import com.evolveum.midpoint.web.session.SessionStorage;
import com.evolveum.midpoint.web.session.UserProfileStorage.TableId;
import com.evolveum.midpoint.web.util.InfoTooltipBehavior;
import com.evolveum.midpoint.web.util.OnePageParameterEncoder;
import com.evolveum.midpoint.xml.ns._public.common.common_3.AbstractRoleType;
Expand Down Expand Up @@ -229,6 +238,17 @@ public final class WebComponentUtil {
storageKeyMap.put(PageRoles.class, SessionStorage.KEY_ROLES);
storageKeyMap.put(PageServices.class, SessionStorage.KEY_SERVICES);
}

private static Map<TableId, String> storageTableIdMap;

static {
storageTableIdMap = new HashMap<>();
storageTableIdMap.put(TableId.PAGE_RESOURCE_ACCOUNTS_PANEL, SessionStorage.KEY_RESOURCE_ACCOUNT_CONTENT);
storageTableIdMap.put(TableId.PAGE_RESOURCE_ENTITLEMENT_PANEL, SessionStorage.KEY_RESOURCE_ENTITLEMENT_CONTENT);
storageTableIdMap.put(TableId.PAGE_RESOURCE_GENERIC_PANEL, SessionStorage.KEY_RESOURCE_GENERIC_CONTENT);
storageTableIdMap.put(TableId.PAGE_RESOURCE_OBJECT_CLASS_PANEL, SessionStorage.KEY_RESOURCE_OBJECT_CLASS_CONTENT);

}

public enum Channel {
// TODO: move this to schema component
Expand Down Expand Up @@ -1616,6 +1636,10 @@ public static boolean hasDetailsPage(ObjectReferenceType ref) {
public static String getStorageKeyForPage(Class<?> pageClass) {
return storageKeyMap.get(pageClass);
}

public static String getStorageKeyForTableId(TableId tableId) {
return storageTableIdMap.get(tableId);
}

public static Class<? extends PageBase> getObjectDetailsPage(Class<? extends ObjectType> type) {
return objectDetailsPageMap.get(type);
Expand Down
Expand Up @@ -173,7 +173,7 @@ public Boolean getObject() {
};
}

protected ObjectPaging createPaging(long first, long count) {
protected ObjectPaging createPaging(long offset, long pageSize) {
SortParam sortParam = getSort();
if (sortParam != null) {
OrderDirection order;
Expand All @@ -183,10 +183,10 @@ protected ObjectPaging createPaging(long first, long count) {
order = OrderDirection.DESCENDING;
}

return ObjectPaging.createPaging(WebComponentUtil.safeLongToInteger(first), WebComponentUtil.safeLongToInteger(count),
return ObjectPaging.createPaging(WebComponentUtil.safeLongToInteger(offset), WebComponentUtil.safeLongToInteger(pageSize),
(String) sortParam.getProperty(), SchemaConstantsGenerated.NS_COMMON, order);
} else {
return ObjectPaging.createPaging(WebComponentUtil.safeLongToInteger(first), WebComponentUtil.safeLongToInteger(count));
return ObjectPaging.createPaging(WebComponentUtil.safeLongToInteger(offset), WebComponentUtil.safeLongToInteger(pageSize));
}
}

Expand Down
Expand Up @@ -61,7 +61,14 @@ public class SelectableBeanObjectDataProvider<O extends ObjectType> extends Base

private boolean emptyListOnNullQuery = false;
private boolean useObjectCounting = true;
private int size = Integer.MAX_VALUE;

/**
* The number of all objects that the query can return. Defaults to a really big number
* if we cannot count the number of objects.
* TODO: make this default more reasonable. -1 or something like that (MID-3339)
*/
// private int size = Integer.MAX_VALUE;

private Class<? extends O> type;
private Collection<SelectorOptions<GetOperationOptions>> options;

Expand Down Expand Up @@ -114,14 +121,18 @@ private void preprocessSelectedDataInternal(){


@Override
public Iterator<SelectableBean<O>> internalIterator(long first, long count) {
LOGGER.trace("begin::iterator() from {} count {}.", new Object[]{first, count});
public Iterator<SelectableBean<O>> internalIterator(long offset, long pageSize) {
LOGGER.trace("begin::iterator() offset {} pageSize {}.", new Object[]{offset, pageSize});
// if (pageSize > 1000000) {
// // Failsafe. Do not even try this. This can have huge impact on the resource. (MID-3336)
// throw new IllegalArgumentException("Requested huge page size: "+pageSize);
// }

preprocessSelectedData();

OperationResult result = new OperationResult(OPERATION_SEARCH_OBJECTS);
try {
ObjectPaging paging = createPaging(first, count);
ObjectPaging paging = createPaging(offset, pageSize);
Task task = getPage().createSimpleTask(OPERATION_SEARCH_OBJECTS);

ObjectQuery query = getQuery();
Expand Down Expand Up @@ -192,7 +203,7 @@ public SelectableBean<O> createDataObjectWrapper(O obj) {
protected int internalSize() {
LOGGER.trace("begin::internalSize()");
if (!isUseObjectCounting()) {
return size;
return Integer.MAX_VALUE;
}
int count = 0;
OperationResult result = new OperationResult(OPERATION_COUNT_OBJECTS);
Expand Down Expand Up @@ -257,11 +268,11 @@ public void setEmptyListOnNullQuery(boolean emptyListOnNullQuery) {
this.emptyListOnNullQuery = emptyListOnNullQuery;
}

public int getSize() {
return size;
}

public void setSize(int size) {
this.size = size;
}
// public int getSize() {
// return size;
// }
//
// public void setSize(int size) {
// this.size = size;
// }
}
Expand Up @@ -15,16 +15,16 @@
*/
package com.evolveum.midpoint.web.page.admin.reports.dto;

import com.evolveum.midpoint.web.component.util.Selectable;

import java.io.Serializable;

/**
* @author shood
* */
public class ReportSearchDto implements Serializable{

public static final String F_SEARCH_TEXT = "text";

private static final long serialVersionUID = 1L;

public static final String F_SEARCH_TEXT = "text";
public static final String F_PARENT = "parent";

private String text;
Expand Down

0 comments on commit 26b0644

Please sign in to comment.