Skip to content

Commit

Permalink
fixing MID-2889 noFetch for listing resources and shadows..
Browse files Browse the repository at this point in the history
  • Loading branch information
katkav committed Apr 26, 2016
1 parent f7aa883 commit 6934380
Showing 1 changed file with 39 additions and 35 deletions.
Expand Up @@ -64,6 +64,7 @@
import com.evolveum.midpoint.xml.ns._public.common.common_3.ReportType;
import com.evolveum.midpoint.xml.ns._public.common.common_3.ResourceType;
import com.evolveum.midpoint.xml.ns._public.common.common_3.RoleType;
import com.evolveum.midpoint.xml.ns._public.common.common_3.ShadowType;
import com.evolveum.midpoint.xml.ns._public.common.common_3.UserType;

/**
Expand All @@ -88,7 +89,7 @@ public abstract class ObjectListPanel<T extends ObjectType> extends BasePanel<T>
private Collection<SelectorOptions<GetOperationOptions>> options;

private int pageSize = 10;

private boolean multiselect;

private TableId tableId = TableId.TABLE_USERS;
Expand Down Expand Up @@ -117,9 +118,8 @@ public ObjectListPanel(String id, Class<T> type, Collection<SelectorOptions<GetO
this.options = options;
initLayout();
}

ObjectListPanel(String id, Class<T> type, boolean multiselect,
PageBase parentPage) {

ObjectListPanel(String id, Class<T> type, boolean multiselect, PageBase parentPage) {
super(id);
this.type = type;
this.parentPage = parentPage;
Expand All @@ -130,7 +130,7 @@ public ObjectListPanel(String id, Class<T> type, Collection<SelectorOptions<GetO
public boolean isMultiselect() {
return multiselect;
}

public void setProvider(BaseSortableDataProvider<SelectableBean<T>> provider) {
this.provider = provider;
}
Expand All @@ -143,7 +143,6 @@ public void setTableId(TableId tableId) {
this.tableId = tableId;
}


public List<T> getSelectedObjects() {
BaseSortableDataProvider<SelectableBean<T>> dataProvider = getDataProvider();
if (dataProvider instanceof ObjectDataProvider2) {
Expand All @@ -164,7 +163,7 @@ private void initLayout() {

@Override
public Search load() {
String storageKey = getStorageKey();//storageMap.get(parentPage.getClass());
String storageKey = getStorageKey();// storageMap.get(parentPage.getClass());
Search search = null;
if (StringUtils.isNotEmpty(storageKey)) {
PageStorage storage = getSession().getSessionStorage().getPageStorageMap()
Expand Down Expand Up @@ -193,7 +192,7 @@ protected BaseSortableDataProvider<SelectableBean<T>> getProvider() {
parentPage, type) {
@Override
protected void saveProviderPaging(ObjectQuery query, ObjectPaging paging) {
String storageKey = getStorageKey();//storageMap.get(type);
String storageKey = getStorageKey();// storageMap.get(type);
if (StringUtils.isNotEmpty(storageKey)) {
PageStorage storage = getSession().getSessionStorage().getPageStorageMap()
.get(storageKey);
Expand All @@ -207,13 +206,21 @@ protected void saveProviderPaging(ObjectQuery query, ObjectPaging paging) {
public SelectableBean<T> createDataObjectWrapper(T obj) {
SelectableBean<T> bean = super.createDataObjectWrapper(obj);
List<InlineMenuItem> inlineMenu = createInlineMenu();
if (inlineMenu != null){
if (inlineMenu != null) {
bean.getMenuItems().addAll(inlineMenu);
}
return bean;
}
};
if (options != null) {
if (options == null){
if (ResourceType.class.equals(type)) {
options = SelectorOptions.createCollection(GetOperationOptions.createNoFetch());
}
} else {
if (ResourceType.class.equals(type)) {
GetOperationOptions root = SelectorOptions.findRootOptions(options);
root.setNoFetch(Boolean.TRUE);
}
objProvider.setOptions(options);
}
provider = objProvider;
Expand All @@ -233,15 +240,15 @@ private BoxedTablePanel<SelectableBean<T>> createTable() {
protected WebMarkupContainer createHeader(String headerId) {
return initSearch(headerId);
}

@Override
protected String getBoxCssClasses() {
return ObjectListPanel.this.getBoxCssClasses();
}

@Override
protected WebMarkupContainer createButtonToolbar(String id) {
WebMarkupContainer bar = ObjectListPanel.this.createTableButtonToolbar(id);
WebMarkupContainer bar = ObjectListPanel.this.createTableButtonToolbar(id);

return bar != null ? bar : super.createButtonToolbar(id);
}
Expand All @@ -264,7 +271,7 @@ protected String getBoxCssClasses() {

/**
* there's no way to do it properly...
*/
*/
@Deprecated
protected WebMarkupContainer createTableButtonToolbar(String id) {
return null;
Expand All @@ -281,8 +288,8 @@ private BaseSortableDataProvider<SelectableBean<T>> getDataProvider() {
protected BoxedTablePanel<SelectableBean<T>> getTable() {
return (BoxedTablePanel<SelectableBean<T>>) get(createComponentPath(ID_MAIN_FORM, ID_TABLE));
}
private String getStorageKey(){

private String getStorageKey() {
return storageMap.get(parentPage.getClass());
}

Expand All @@ -307,32 +314,31 @@ private void searchPerformed(ObjectQuery query, AjaxRequestTarget target) {
target.add(parentPage.getFeedbackPanel());

}

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

if (newType != null && !this.type.equals(newType)) {
this.type = newType;
searchModel.reset();
} else {
saveSearchModel();
}



BoxedTablePanel table = getTable();
((WebMarkupContainer)table.get("box")).addOrReplace(initSearch("header"));

((WebMarkupContainer) table.get("box")).addOrReplace(initSearch("header"));
table.setCurrentPage(null);
target.add((Component) table);
target.add(parentPage.getFeedbackPanel());

}
private SearchFormPanel initSearch(String headerId){

private SearchFormPanel initSearch(String headerId) {
SearchFormPanel searchPanel = new SearchFormPanel(headerId, searchModel) {

private static final long serialVersionUID = 1L;
Expand All @@ -346,8 +352,8 @@ protected void searchPerformed(ObjectQuery query, AjaxRequestTarget target) {

return searchPanel;
}
private void saveSearchModel(){

private void saveSearchModel() {
String storageKey = getStorageKey();
if (StringUtils.isNotEmpty(storageKey)) {
PageStorage storage = getSession().getSessionStorage().getPageStorageMap().get(storageKey);
Expand All @@ -365,7 +371,7 @@ private void saveSearchModel(){
public void clearCache() {
BaseSortableDataProvider provider = getDataProvider();
provider.clearCache();
if (provider instanceof ObjectDataProvider2){
if (provider instanceof ObjectDataProvider2) {
((ObjectDataProvider2) provider).clearSelectedObjects();
}
}
Expand All @@ -379,13 +385,13 @@ public ObjectQuery getQuery() {
protected ObjectQuery createContentQuery() {
Search search = searchModel.getObject();
ObjectQuery query = search.createObjectQuery(parentPage.getPrismContext());
query = addFilterToContentQuery(query);
query = addFilterToContentQuery(query);
return query;
}

protected ObjectQuery addFilterToContentQuery(ObjectQuery query){
return query;
}
protected ObjectQuery addFilterToContentQuery(ObjectQuery query) {
return query;
}

public StringResourceModel createStringResource(String resourceKey, Object... objects) {
return PageBase.createStringResourceStatic(this, resourceKey, objects);
Expand All @@ -396,6 +402,7 @@ public StringResourceModel createStringResource(String resourceKey, Object... ob
protected abstract IColumn<SelectableBean<T>, String> createNameColumn();

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

protected abstract List<InlineMenuItem> createInlineMenu();

protected List<IColumn<SelectableBean<T>, String>> initColumns() {
Expand All @@ -418,11 +425,8 @@ protected List<IColumn<SelectableBean<T>, String>> initColumns() {
return columns;
}


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



}

0 comments on commit 6934380

Please sign in to comment.