Skip to content

Commit

Permalink
fixing tenant and org popup for Request role
Browse files Browse the repository at this point in the history
  • Loading branch information
KaterynaHonchar committed Apr 22, 2016
1 parent 4d15e92 commit a319895
Show file tree
Hide file tree
Showing 3 changed files with 73 additions and 15 deletions.
Expand Up @@ -19,6 +19,8 @@

import javax.xml.namespace.QName;

import com.evolveum.midpoint.prism.query.ObjectFilter;
import com.evolveum.midpoint.prism.query.ObjectQuery;
import org.apache.wicket.ajax.AjaxRequestTarget;
import org.apache.wicket.ajax.form.OnChangeAjaxBehavior;
import org.apache.wicket.markup.html.WebMarkupContainer;
Expand Down Expand Up @@ -49,11 +51,18 @@ public class FocusBrowserPanel<T extends ObjectType> extends BasePanel<T> {
private IModel<QName> typeModel;

private PageBase parentPage;
private ObjectFilter queryFilter;

public FocusBrowserPanel(String id, final Class<T> type, List<QName> supportedTypes, boolean multiselect,
PageBase parentPage) {
this(id, type, supportedTypes, multiselect, parentPage, null);
}

public FocusBrowserPanel(String id, final Class<T> type, List<QName> supportedTypes, boolean multiselect,
PageBase parentPage, ObjectFilter queryFilter) {
super(id);
this.parentPage = parentPage;
this.queryFilter = queryFilter;
typeModel = new LoadableModel<QName>(false) {

@Override
Expand Down Expand Up @@ -135,7 +144,18 @@ private ObjectListPanel<T> createObjectListPanel(Class<T> type, final boolean mu
protected void onSelectPerformed(AjaxRequestTarget target, T object) {
FocusBrowserPanel.this.onSelectPerformed(target, object);
}
};

@Override
protected ObjectQuery addFilterToContentQuery(ObjectQuery query) {
if (queryFilter != null){
if (query == null){
query = new ObjectQuery();
}
query.addFilter(queryFilter);
}
return query;
}
};

// ObjectListPanel<T> listPanel = new ObjectListPanel<T>(ID_TABLE, type,
// parentPage) {
Expand Down
Expand Up @@ -379,9 +379,14 @@ public ObjectQuery getQuery() {
protected ObjectQuery createContentQuery() {
Search search = searchModel.getObject();
ObjectQuery query = search.createObjectQuery(parentPage.getPrismContext());
query = addFilterToContentQuery(query);
return query;
}

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

public StringResourceModel createStringResource(String resourceKey, Object... objects) {
return PageBase.createStringResourceStatic(this, resourceKey, objects);
}
Expand Down
Expand Up @@ -17,6 +17,7 @@
package com.evolveum.midpoint.web.component.assignment;

import com.evolveum.midpoint.gui.api.component.BasePanel;
import com.evolveum.midpoint.gui.api.component.FocusBrowserPanel;
import com.evolveum.midpoint.gui.api.model.LoadableModel;
import com.evolveum.midpoint.gui.api.page.PageBase;
import com.evolveum.midpoint.gui.api.util.WebComponentUtil;
Expand Down Expand Up @@ -47,6 +48,7 @@
import org.apache.wicket.model.IModel;
import org.apache.wicket.model.Model;

import javax.xml.namespace.QName;
import java.util.ArrayList;
import java.util.List;

Expand Down Expand Up @@ -346,16 +348,34 @@ protected void removeValuePerformed(AjaxRequestTarget target, ListItem<OrgType>

@Override
protected void editValuePerformed(AjaxRequestTarget target, IModel<OrgType> rowModel) {
OrgTreeAssignablePanel tenantPanel = new OrgTreeAssignablePanel(
getPageBase().getMainPopupBodyId(), false, getPageBase()) {
List<QName> supportedTypes = new ArrayList<>();
supportedTypes.add(getPageBase().getPrismContext().getSchemaRegistry()
.findObjectDefinitionByCompileTimeClass(OrgType.class).getTypeName());

ObjectFilter filter = EqualFilter.createEqual(OrgType.F_TENANT, OrgType.class,
getPageBase().getPrismContext(), null, true);

FocusBrowserPanel<OrgType> tenantPanel = new FocusBrowserPanel<OrgType>(getPageBase().getMainPopupBodyId(),
OrgType.class, supportedTypes, false, getPageBase(), filter) {
@Override
protected void onItemSelect(SelectableBean<OrgType> selected, AjaxRequestTarget target) {
closeModalWindow(target);
protected void onSelectPerformed(AjaxRequestTarget target, OrgType org) {
super.onSelectPerformed(target, org);
tenantEditorObject.clear();
tenantEditorObject.add(selected.getValue());
target.add(getTenantEditorContainer()); }
tenantEditorObject.add(org);
target.add(getTenantEditorContainer());
}
};

// OrgTreeAssignablePanel tenantPanel = new OrgTreeAssignablePanel(
// getPageBase().getMainPopupBodyId(), false, getPageBase()) {
//
// @Override
// protected void onItemSelect(SelectableBean<OrgType> selected, AjaxRequestTarget target) {
// closeModalWindow(target);
// tenantEditorObject.clear();
// tenantEditorObject.add(selected.getValue());
// target.add(getTenantEditorContainer()); }
// };
getPageBase().showMainPopup(tenantPanel, new Model<String>("Select tenant"), target, 900, 700);
}

Expand Down Expand Up @@ -409,16 +429,29 @@ protected void removeValuePerformed(AjaxRequestTarget target, ListItem<OrgType>

@Override
protected void editValuePerformed(AjaxRequestTarget target, IModel<OrgType> rowModel) {
OrgTreeAssignablePanel orgPanel = new OrgTreeAssignablePanel(
getPageBase().getMainPopupBodyId(), false, getPageBase()) {

List<QName> supportedTypes = new ArrayList<>();
supportedTypes.add(getPageBase().getPrismContext().getSchemaRegistry()
.findObjectDefinitionByCompileTimeClass(OrgType.class).getTypeName());
FocusBrowserPanel<OrgType> orgPanel = new FocusBrowserPanel<OrgType>(getPageBase().getMainPopupBodyId(),
OrgType.class, supportedTypes, false, getPageBase()) {
@Override
protected void onItemSelect(SelectableBean<OrgType> selected, AjaxRequestTarget target) {
closeModalWindow(target);
tenantEditorObject.clear();
tenantEditorObject.add(selected.getValue());
target.add(getTenantEditorContainer()); }
protected void onSelectPerformed(AjaxRequestTarget target, OrgType org) {
super.onSelectPerformed(target, org);
orgEditorObject.clear();
orgEditorObject.add(org);
target.add(getOrgUnitEditorContainer());
}
};
// OrgTreeAssignablePanel orgPanel = new OrgTreeAssignablePanel(
// getPageBase().getMainPopupBodyId(), false, getPageBase()) {
//
// @Override
// protected void onItemSelect(SelectableBean<OrgType> selected, AjaxRequestTarget target) {
// closeModalWindow(target);
// tenantEditorObject.clear();
// tenantEditorObject.add(selected.getValue());
// target.add(getTenantEditorContainer()); }
// };
getPageBase().showMainPopup(orgPanel, new Model<String>("Select organization"), target);
}

Expand Down

0 comments on commit a319895

Please sign in to comment.