Skip to content

Commit

Permalink
some preparation for org members popup
Browse files Browse the repository at this point in the history
  • Loading branch information
KaterynaHonchar committed Jul 12, 2018
1 parent 4ed1e42 commit af19910
Show file tree
Hide file tree
Showing 7 changed files with 76 additions and 39 deletions.
Expand Up @@ -20,6 +20,7 @@
import com.evolveum.midpoint.web.component.util.SelectableBean;
import com.evolveum.midpoint.web.component.util.VisibleEnableBehaviour;
import com.evolveum.midpoint.xml.ns._public.common.common_3.ObjectType;
import org.apache.wicket.Component;
import org.apache.wicket.ajax.AjaxRequestTarget;
import org.apache.wicket.model.IModel;
import org.apache.wicket.model.Model;
Expand Down Expand Up @@ -50,7 +51,7 @@ protected void onInitialize(){
initParametersPanel();
}

private PopupObjectListPanel initObjectListPanel(){
private Component initObjectListPanel(){
PopupObjectListPanel<O> listPanel = new PopupObjectListPanel<O>(ID_OBJECT_LIST_PANEL, (Class)type.getClassDefinition(),
null, true, getPageBase(), getPreselectedObjects()) {

Expand Down Expand Up @@ -93,15 +94,15 @@ protected List<O> getPreselectedObjects(){
}

protected List<O> getSelectedObjectsList(){
PopupObjectListPanel objectListPanel = getObjectListPanel();
PopupObjectListPanel objectListPanel = (PopupObjectListPanel)getObjectListPanel();
if (objectListPanel == null){
return new ArrayList();
}
return objectListPanel.getSelectedObjects();
}

protected PopupObjectListPanel getObjectListPanel(){
return (PopupObjectListPanel)get(ID_OBJECT_LIST_PANEL);
protected Component getObjectListPanel(){
return get(ID_OBJECT_LIST_PANEL);
}

protected void onSelectionPerformed(AjaxRequestTarget target){}
Expand Down
Expand Up @@ -30,6 +30,7 @@
import com.evolveum.midpoint.util.logging.TraceManager;
import com.evolveum.midpoint.web.component.AjaxButton;
import com.evolveum.midpoint.web.component.TabbedPanel;
import com.evolveum.midpoint.web.component.assignment.RelationTypes;
import com.evolveum.midpoint.web.component.dialog.Popupable;
import com.evolveum.midpoint.web.component.util.VisibleEnableBehaviour;
import com.evolveum.midpoint.xml.ns._public.common.common_3.*;
Expand All @@ -47,10 +48,10 @@
/**
* Created by honchar
*/
public abstract class ChooseMembersPopup<O extends ObjectType, T extends AbstractRoleType> extends BasePanel<O> implements Popupable {
public abstract class ChooseMemberPopup<O extends ObjectType, T extends AbstractRoleType> extends BasePanel<O> implements Popupable {
private static final long serialVersionUID = 1L;

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

private static final String ID_TABS_PANEL = "tabsPanel";
private static final String ID_CANCEL_BUTTON = "cancelButton";
Expand All @@ -59,7 +60,7 @@ public abstract class ChooseMembersPopup<O extends ObjectType, T extends Abstrac

private List<OrgType> selectedOrgsList = new ArrayList<>();

public ChooseMembersPopup(String id){
public ChooseMemberPopup(String id, List<RelationTypes> availableRelationList){
super(id);
}

Expand All @@ -83,7 +84,7 @@ protected void onInitialize(){

@Override
public void onClick(AjaxRequestTarget target) {
ChooseMembersPopup.this.getPageBase().hideMainPopup(target);
ChooseMemberPopup.this.getPageBase().hideMainPopup(target);
}
};
cancelButton.setOutputMarkupId(true);
Expand All @@ -106,14 +107,14 @@ public void onClick(AjaxRequestTarget target) {
executeMemberOperation(memberPanel.getType().getTypeQName(), createInOidQuery(memberPanel.getSelectedObjectsList()),
memberPanel.prepareDelta(), target);
});
ChooseMembersPopup.this.getPageBase().hideMainPopup(target);
ChooseMemberPopup.this.getPageBase().hideMainPopup(target);
}
};
addButton.setOutputMarkupId(true);
form.add(addButton);
}

private List<ITab> createAssignmentTabs() {
protected List<ITab> createAssignmentTabs() {
List<ITab> tabs = new ArrayList<>();
//TODO should we have any authorization here?
VisibleEnableBehaviour authorization = new VisibleEnableBehaviour(){
Expand All @@ -135,7 +136,7 @@ protected void onSelectionPerformed(AjaxRequestTarget target){

@Override
protected T getAbstractRoleTypeObject(){
return ChooseMembersPopup.this.getAssignmentTargetRefObject();
return ChooseMemberPopup.this.getAssignmentTargetRefObject();
}
};
}
Expand Down Expand Up @@ -163,7 +164,7 @@ protected void onSelectionPerformed(AjaxRequestTarget target){

@Override
protected T getAbstractRoleTypeObject(){
return ChooseMembersPopup.this.getAssignmentTargetRefObject();
return ChooseMemberPopup.this.getAssignmentTargetRefObject();
}

@Override
Expand Down Expand Up @@ -192,7 +193,7 @@ public WebMarkupContainer createPanel(String panelId) {

@Override
protected T getAbstractRoleTypeObject(){
return ChooseMembersPopup.this.getAssignmentTargetRefObject();
return ChooseMemberPopup.this.getAssignmentTargetRefObject();
}

@Override
Expand Down Expand Up @@ -225,7 +226,7 @@ public WebMarkupContainer createPanel(String panelId) {

@Override
protected T getAbstractRoleTypeObject(){
return ChooseMembersPopup.this.getAssignmentTargetRefObject();
return ChooseMemberPopup.this.getAssignmentTargetRefObject();
}

@Override
Expand Down
@@ -0,0 +1,44 @@
/*
* Copyright (c) 2010-2018 Evolveum
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.evolveum.midpoint.gui.api.component;

/**
* Created by honchar
*/

import com.evolveum.midpoint.web.component.assignment.RelationTypes;
import com.evolveum.midpoint.xml.ns._public.common.common_3.ObjectType;
import com.evolveum.midpoint.xml.ns._public.common.common_3.OrgType;
import org.apache.wicket.extensions.markup.html.tabs.ITab;

import java.util.ArrayList;
import java.util.List;

public abstract class OrgChooseMemberPopup<O extends ObjectType> extends ChooseMemberPopup<O, OrgType> {
private static final long serialVersionUID = 1L;

public OrgChooseMemberPopup(String id, List<RelationTypes> availableRelationList){
super(id, availableRelationList);
}

@Override
protected List<ITab> createAssignmentTabs() {
List<ITab> tabs = super.createAssignmentTabs();
// tabs.
return tabs;
}

}
Expand Up @@ -126,26 +126,23 @@ private void initModels(){
@Override
protected List<String> load() {
List<String> availableIntentValues = new ArrayList<>();
PopupObjectListPanel resourcesListPanel = getObjectListPanel();
if (resourcesListPanel != null) {
List<ResourceType> selectedResources = resourcesListPanel.getSelectedObjects();
if (selectedResources != null && selectedResources.size() > 0) {
ResourceType selectedResource = selectedResources.get(0);

try {
RefinedResourceSchema refinedSchema = RefinedResourceSchema.getRefinedSchema(selectedResource.asPrismObject());
if (refinedSchema != null) {
ShadowKindType kind = (ShadowKindType) getKindDropDown().getBaseFormComponent().getModelObject();
List<? extends RefinedObjectClassDefinition> definitions = refinedSchema.getRefinedDefinitions(kind);
for (RefinedObjectClassDefinition def : definitions) {
availableIntentValues.add(def.getIntent());
}
List<ResourceType> selectedResources = ResourceTypeAssignmentPopupTabPanel.this.getSelectedObjectsList();
if (selectedResources != null && selectedResources.size() > 0) {
ResourceType selectedResource = selectedResources.get(0);

try {
RefinedResourceSchema refinedSchema = RefinedResourceSchema.getRefinedSchema(selectedResource.asPrismObject());
if (refinedSchema != null) {
ShadowKindType kind = (ShadowKindType) getKindDropDown().getBaseFormComponent().getModelObject();
List<? extends RefinedObjectClassDefinition> definitions = refinedSchema.getRefinedDefinitions(kind);
for (RefinedObjectClassDefinition def : definitions) {
availableIntentValues.add(def.getIntent());
}
} catch (SchemaException ex) {
LOGGER.error("Cannot get refined resource schema for resource {}. {}", selectedResource.getName().getOrig(), ex.getLocalizedMessage());
}

} catch (SchemaException ex) {
LOGGER.error("Cannot get refined resource schema for resource {}. {}", selectedResource.getName().getOrig(), ex.getLocalizedMessage());
}

}
if (availableIntentValues.size() > 0){
intentValue = availableIntentValues.get(0);
Expand Down
Expand Up @@ -22,7 +22,6 @@

import javax.xml.namespace.QName;

import com.evolveum.midpoint.gui.api.component.ChooseMembersPopup;
import org.apache.wicket.ajax.AjaxRequestTarget;
import org.apache.wicket.model.IModel;

Expand Down
Expand Up @@ -16,25 +16,21 @@
package com.evolveum.midpoint.web.page.admin.users.component;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.List;

import javax.xml.namespace.QName;

import com.evolveum.midpoint.gui.api.component.ChooseMembersPopup;
import com.evolveum.midpoint.gui.api.component.ChooseMemberPopup;
import com.evolveum.midpoint.gui.api.model.LoadableModel;
import com.evolveum.midpoint.model.api.ModelExecuteOptions;
import com.evolveum.midpoint.prism.PrismReferenceValue;
import com.evolveum.midpoint.prism.query.builder.QueryBuilder;
import com.evolveum.midpoint.schema.GetOperationOptions;
import com.evolveum.midpoint.schema.SelectorOptions;
import com.evolveum.midpoint.security.api.AuthorizationConstants;
import com.evolveum.midpoint.task.api.TaskCategory;
import com.evolveum.midpoint.web.component.assignment.RelationTypes;
import com.evolveum.midpoint.web.component.search.Search;
import com.evolveum.midpoint.web.component.search.SearchFactory;
import com.evolveum.midpoint.web.page.admin.roles.RoleGovernanceMemberPanel;
import com.evolveum.midpoint.xml.ns._public.common.common_3.*;
import org.apache.wicket.RestartResponseException;
import org.apache.wicket.ajax.AjaxRequestTarget;
Expand All @@ -49,7 +45,6 @@

import com.evolveum.midpoint.gui.api.component.BasePanel;
import com.evolveum.midpoint.gui.api.component.MainObjectListPanel;
import com.evolveum.midpoint.gui.api.component.ObjectBrowserPanel;
import com.evolveum.midpoint.gui.api.page.PageBase;
import com.evolveum.midpoint.gui.api.util.ModelServiceLocator;
import com.evolveum.midpoint.gui.api.util.WebComponentUtil;
Expand Down Expand Up @@ -420,7 +415,7 @@ protected void addMembers(AjaxRequestTarget target) {

// List<QName> types = getNewMemberSupportedTypes();

ChooseMembersPopup browser = new ChooseMembersPopup(getPageBase().getMainPopupBodyId()) {
ChooseMemberPopup browser = new ChooseMemberPopup(getPageBase().getMainPopupBodyId(), null) {
private static final long serialVersionUID = 1L;

@Override
Expand Down

0 comments on commit af19910

Please sign in to comment.