Skip to content

Commit

Permalink
Merge branch 'master' of https://github.com/Evolveum/midpoint
Browse files Browse the repository at this point in the history
  • Loading branch information
mederly committed Apr 28, 2016
2 parents 35b4cef + 6a0c1b8 commit e94f19c
Show file tree
Hide file tree
Showing 28 changed files with 663 additions and 270 deletions.
3 changes: 3 additions & 0 deletions .travis.yml
@@ -1,2 +1,5 @@
language: java
script: "travis_wait 70 mvn clean install"
jdk:
- openjdk7
- oraclejdk7
3 changes: 3 additions & 0 deletions build-system/pom.xml
Expand Up @@ -1513,6 +1513,9 @@
</profile>
<profile>
<id>java8</id>
<activation>
<jdk>[1.8,)</jdk>
</activation>
<build>
<plugins>
<plugin>
Expand Down
Expand Up @@ -109,4 +109,5 @@ public class GuiStyleConstants {

public static final String CLASS_BADGE_ACTIVE = "badge-active";
public static final String CLASS_BADGE_PASSIVE = "badge-passive";

}
Expand Up @@ -32,6 +32,7 @@
import com.evolveum.midpoint.web.component.data.Table;
import com.evolveum.midpoint.web.component.data.column.CheckBoxHeaderColumn;
import com.evolveum.midpoint.web.component.data.column.LinkColumn;
import com.evolveum.midpoint.web.component.data.column.ObjectNameColumn;
import com.evolveum.midpoint.web.component.util.SelectableBean;
import com.evolveum.midpoint.web.page.admin.configuration.PageImportObject;
import com.evolveum.midpoint.web.session.UserProfileStorage.TableId;
Expand All @@ -40,40 +41,37 @@
/**
* @author katkav
*/
public abstract class MainObjectListPanel<T extends ObjectType> extends ObjectListPanel<T> {

public abstract class MainObjectListPanel<O extends ObjectType> extends ObjectListPanel<O> {
private static final long serialVersionUID = 1L;

private static final String ID_REFRESH = "refresh";
private static final String ID_NEW_OBJECT = "newObject";
private static final String ID_IMPORT_OBJECT = "importObject";
private static final String ID_BUTTON_BAR = "buttonBar";

public MainObjectListPanel(String id, Class<T> type, TableId tableId, Collection<SelectorOptions<GetOperationOptions>> options, PageBase parentPage) {
public MainObjectListPanel(String id, Class<O> type, TableId tableId, Collection<SelectorOptions<GetOperationOptions>> options, PageBase parentPage) {
super(id, type, tableId, options, parentPage);
}

@Override
protected IColumn<SelectableBean<T>, String> createCheckboxColumn() {
protected IColumn<SelectableBean<O>, String> createCheckboxColumn() {
return new CheckBoxHeaderColumn<>();
}

@Override
protected IColumn<SelectableBean<T>, String> createNameColumn() {
return new LinkColumn<SelectableBean<T>>(createStringResource("ObjectType.name"),
ObjectType.F_NAME.getLocalPart(), SelectableBean.F_VALUE + ".name") {

protected IColumn<SelectableBean<O>, String> createNameColumn() {
return new ObjectNameColumn<O>(createStringResource("ObjectType.name")) {
private static final long serialVersionUID = 1L;

@Override
public void onClick(AjaxRequestTarget target, IModel<SelectableBean<T>> rowModel) {
T object = rowModel.getObject().getValue();
public void onClick(AjaxRequestTarget target, IModel<SelectableBean<O>> rowModel) {
O object = rowModel.getObject().getValue();
MainObjectListPanel.this.objectDetailsPerformed(target, object);
}
};
}

protected abstract void objectDetailsPerformed(AjaxRequestTarget target, T object);
protected abstract void objectDetailsPerformed(AjaxRequestTarget target, O object);

protected abstract void newObjectPerformed(AjaxRequestTarget target);

Expand Down
Expand Up @@ -39,7 +39,7 @@
import com.evolveum.midpoint.util.logging.TraceManager;
import com.evolveum.midpoint.web.component.data.BaseSortableDataProvider;
import com.evolveum.midpoint.web.component.data.BoxedTablePanel;
import com.evolveum.midpoint.web.component.data.ObjectDataProvider2;
import com.evolveum.midpoint.web.component.data.SelectableBeanObjectDataProvider;
import com.evolveum.midpoint.web.component.data.Table;
import com.evolveum.midpoint.web.component.data.column.CheckBoxHeaderColumn;
import com.evolveum.midpoint.web.component.data.column.ColumnUtils;
Expand All @@ -63,7 +63,7 @@
/**
* @author katkav
*/
public abstract class ObjectListPanel<T extends ObjectType> extends BasePanel<T> {
public abstract class ObjectListPanel<O extends ObjectType> extends BasePanel<O> {
private static final long serialVersionUID = 1L;

private static final String ID_MAIN_FORM = "mainForm";
Expand All @@ -72,12 +72,12 @@ public abstract class ObjectListPanel<T extends ObjectType> extends BasePanel<T>

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

private Class<T> type;
private Class<O> type;
private PageBase parentPage;

private LoadableModel<Search> searchModel;

private BaseSortableDataProvider<SelectableBean<T>> provider;
private BaseSortableDataProvider<SelectableBean<O>> provider;

private Collection<SelectorOptions<GetOperationOptions>> options;

Expand All @@ -87,7 +87,7 @@ public abstract class ObjectListPanel<T extends ObjectType> extends BasePanel<T>

private String addutionalBoxCssClasses;

public Class<T> getType() {
public Class<O> getType() {
return type;
}

Expand All @@ -113,7 +113,7 @@ public Class<T> getType() {
// tablePagingMap.put(PageUsers.class, TableId.TABLE_USERS);
// }

public ObjectListPanel(String id, Class<T> type, TableId tableId, Collection<SelectorOptions<GetOperationOptions>> options,
public ObjectListPanel(String id, Class<O> type, TableId tableId, Collection<SelectorOptions<GetOperationOptions>> options,
PageBase parentPage) {
super(id);
this.type = type;
Expand All @@ -123,7 +123,7 @@ public ObjectListPanel(String id, Class<T> type, TableId tableId, Collection<Sel
initLayout();
}

ObjectListPanel(String id, Class<T> type, boolean multiselect, PageBase parentPage) {
ObjectListPanel(String id, Class<O> type, boolean multiselect, PageBase parentPage) {
super(id);
this.type = type;
this.parentPage = parentPage;
Expand All @@ -135,22 +135,22 @@ public boolean isMultiselect() {
return multiselect;
}

public void setProvider(BaseSortableDataProvider<SelectableBean<T>> provider) {
public void setProvider(BaseSortableDataProvider<SelectableBean<O>> provider) {
this.provider = provider;
}

public List<T> getSelectedObjects() {
BaseSortableDataProvider<SelectableBean<T>> dataProvider = getDataProvider();
if (dataProvider instanceof ObjectDataProvider2) {
return ((ObjectDataProvider2) dataProvider).getSelectedData();
public List<O> getSelectedObjects() {
BaseSortableDataProvider<SelectableBean<O>> dataProvider = getDataProvider();
if (dataProvider instanceof SelectableBeanObjectDataProvider) {
return ((SelectableBeanObjectDataProvider) dataProvider).getSelectedData();
} else if (dataProvider instanceof ListDataProvider2) {
return ((ListDataProvider2) dataProvider).getSelectedObjects();
}
return new ArrayList<>();
}

private void initLayout() {
Form<T> mainForm = new Form<T>(ID_MAIN_FORM);
Form<O> mainForm = new Form<O>(ID_MAIN_FORM);
add(mainForm);

searchModel = new LoadableModel<Search>(false) {
Expand All @@ -174,17 +174,19 @@ public Search load() {
}
};

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

}

protected BaseSortableDataProvider<SelectableBean<T>> getProvider() {
protected BaseSortableDataProvider<SelectableBean<O>> getProvider() {
if (provider != null) {
return provider;
}
ObjectDataProvider2<SelectableBean<T>, T> objProvider = new ObjectDataProvider2<SelectableBean<T>, T>(
SelectableBeanObjectDataProvider<O> objProvider = new SelectableBeanObjectDataProvider<O>(
parentPage, type) {
private static final long serialVersionUID = 1L;

@Override
protected void saveProviderPaging(ObjectQuery query, ObjectPaging paging) {
String storageKey = getStorageKey();
Expand All @@ -197,8 +199,8 @@ protected void saveProviderPaging(ObjectQuery query, ObjectPaging paging) {
}

@Override
public SelectableBean<T> createDataObjectWrapper(T obj) {
SelectableBean<T> bean = super.createDataObjectWrapper(obj);
public SelectableBean<O> createDataObjectWrapper(O obj) {
SelectableBean<O> bean = super.createDataObjectWrapper(obj);
List<InlineMenuItem> inlineMenu = createInlineMenu();
if (inlineMenu != null) {
bean.getMenuItems().addAll(inlineMenu);
Expand All @@ -221,13 +223,13 @@ public SelectableBean<T> createDataObjectWrapper(T obj) {
return provider;
}

private BoxedTablePanel<SelectableBean<T>> createTable() {
List<IColumn<SelectableBean<T>, String>> columns = initColumns();
private BoxedTablePanel<SelectableBean<O>> createTable() {
List<IColumn<SelectableBean<O>, String>> columns = initColumns();
provider = getProvider();
provider.setQuery(getQuery());

// TableId tableId = tablePagingMap.get(parentPage.getClass());
BoxedTablePanel<SelectableBean<T>> table = new BoxedTablePanel<SelectableBean<T>>(ID_TABLE, provider,
BoxedTablePanel<SelectableBean<O>> table = new BoxedTablePanel<SelectableBean<O>>(ID_TABLE, provider,
columns, tableId, tableId == null ? 10 : parentPage.getSessionStorage().getUserProfile().getPagingSize(tableId)) {
private static final long serialVersionUID = 1L;

Expand Down Expand Up @@ -276,16 +278,16 @@ protected WebMarkupContainer createTableButtonToolbar(String id) {
return null;
}

private BaseSortableDataProvider<SelectableBean<T>> getDataProvider() {
BoxedTablePanel<SelectableBean<T>> table = getTable();
BaseSortableDataProvider<SelectableBean<T>> provider = (BaseSortableDataProvider<SelectableBean<T>>) table
private BaseSortableDataProvider<SelectableBean<O>> getDataProvider() {
BoxedTablePanel<SelectableBean<O>> table = getTable();
BaseSortableDataProvider<SelectableBean<O>> provider = (BaseSortableDataProvider<SelectableBean<O>>) table
.getDataTable().getDataProvider();
return provider;

}

protected BoxedTablePanel<SelectableBean<T>> getTable() {
return (BoxedTablePanel<SelectableBean<T>>) get(createComponentPath(ID_MAIN_FORM, ID_TABLE));
protected BoxedTablePanel<SelectableBean<O>> getTable() {
return (BoxedTablePanel<SelectableBean<O>>) get(createComponentPath(ID_MAIN_FORM, ID_TABLE));
}

private String getStorageKey() {
Expand All @@ -301,7 +303,7 @@ private PageStorage getPageStorage(String storageKey){
}

private void searchPerformed(ObjectQuery query, AjaxRequestTarget target) {
BaseSortableDataProvider<SelectableBean<T>> provider = getDataProvider();
BaseSortableDataProvider<SelectableBean<O>> provider = getDataProvider();
provider.setQuery(query);
String storageKey = getStorageKey();
if (StringUtils.isNotEmpty(storageKey)) {
Expand All @@ -319,11 +321,11 @@ private void searchPerformed(ObjectQuery query, AjaxRequestTarget target) {

}

public void refreshTable(Class<T> newType, AjaxRequestTarget target) {
BaseSortableDataProvider<SelectableBean<T>> provider = getDataProvider();
public void refreshTable(Class<O> newType, AjaxRequestTarget target) {
BaseSortableDataProvider<SelectableBean<O>> provider = getDataProvider();
provider.setQuery(getQuery());
if (newType != null && provider instanceof ObjectDataProvider2) {
((ObjectDataProvider2) provider).setType(newType);
if (newType != null && provider instanceof SelectableBeanObjectDataProvider) {
((SelectableBeanObjectDataProvider) provider).setType(newType);
}

if (newType != null && !this.type.equals(newType)) {
Expand Down Expand Up @@ -372,8 +374,8 @@ private void saveSearchModel() {
public void clearCache() {
BaseSortableDataProvider provider = getDataProvider();
provider.clearCache();
if (provider instanceof ObjectDataProvider2) {
((ObjectDataProvider2) provider).clearSelectedObjects();
if (provider instanceof SelectableBeanObjectDataProvider) {
((SelectableBeanObjectDataProvider) provider).clearSelectedObjects();
}
}

Expand All @@ -398,35 +400,35 @@ public StringResourceModel createStringResource(String resourceKey, Object... ob
return PageBase.createStringResourceStatic(this, resourceKey, objects);
}

protected abstract IColumn<SelectableBean<T>, String> createCheckboxColumn();
protected abstract IColumn<SelectableBean<O>, String> createCheckboxColumn();

protected abstract IColumn<SelectableBean<T>, String> createNameColumn();
protected abstract IColumn<SelectableBean<O>, String> createNameColumn();

protected abstract List<IColumn<SelectableBean<T>, String>> createColumns();
protected abstract List<IColumn<SelectableBean<O>, String>> createColumns();

protected abstract List<InlineMenuItem> createInlineMenu();

protected List<IColumn<SelectableBean<T>, String>> initColumns() {
List<IColumn<SelectableBean<T>, String>> columns = new ArrayList<IColumn<SelectableBean<T>, String>>();
protected List<IColumn<SelectableBean<O>, String>> initColumns() {
List<IColumn<SelectableBean<O>, String>> columns = new ArrayList<IColumn<SelectableBean<O>, String>>();

CheckBoxHeaderColumn<SelectableBean<T>> checkboxColumn = (CheckBoxHeaderColumn<SelectableBean<T>>) createCheckboxColumn();
CheckBoxHeaderColumn<SelectableBean<O>> checkboxColumn = (CheckBoxHeaderColumn<SelectableBean<O>>) createCheckboxColumn();
if (checkboxColumn != null) {
columns.add(checkboxColumn);
}

IColumn<SelectableBean<T>, String> iconColumn = ColumnUtils.createIconColumn(type);
IColumn<SelectableBean<O>, String> iconColumn = ColumnUtils.createIconColumn(type);
columns.add(iconColumn);

IColumn<SelectableBean<T>, String> nameColumn = createNameColumn();
IColumn<SelectableBean<O>, String> nameColumn = createNameColumn();
columns.add(nameColumn);

List<IColumn<SelectableBean<T>, String>> others = createColumns();
List<IColumn<SelectableBean<O>, String>> others = createColumns();
columns.addAll(others);

return columns;
}

public void addPerformed(AjaxRequestTarget target, List<T> selected) {
public void addPerformed(AjaxRequestTarget target, List<O> selected) {
parentPage.hideMainPopup(target);
}

Expand Down
@@ -1,5 +1,5 @@
/*
* Copyright (c) 2010-2013 Evolveum
* Copyright (c) 2010-2016 Evolveum
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
Expand Down Expand Up @@ -258,4 +258,22 @@ public void accept(Visitor visitor) {
}

}

public void setShowMoreAll(final boolean show) {
Visitor visitor = new Visitor() {

@Override
public void visit(Visitable visitable) {
if (!(visitable instanceof OpResult)) {
return;
}

OpResult result = (OpResult) visitable;
result.setShowMore(show);

}
};

accept(visitor);
}
}

0 comments on commit e94f19c

Please sign in to comment.