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 Mar 24, 2022
2 parents 54ff23a + e7a57e2 commit bd68312
Show file tree
Hide file tree
Showing 20 changed files with 109 additions and 105 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -6,13 +6,14 @@
*/
package com.evolveum.midpoint.gui.api.component;

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

import com.evolveum.midpoint.xml.ns._public.common.common_3.*;

import org.apache.commons.collections4.CollectionUtils;
import org.apache.wicket.Component;
import org.apache.wicket.ajax.AjaxRequestTarget;
import org.apache.wicket.extensions.markup.html.repeater.data.table.DataTable;
import org.apache.wicket.extensions.markup.html.repeater.data.table.IColumn;
import org.apache.wicket.markup.html.panel.Fragment;
import org.apache.wicket.model.IModel;
Expand All @@ -26,10 +27,6 @@
import com.evolveum.midpoint.web.component.data.column.ColumnUtils;
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.AbstractRoleType;
import com.evolveum.midpoint.xml.ns._public.common.common_3.AssignmentHolderType;
import com.evolveum.midpoint.xml.ns._public.common.common_3.ObjectReferenceType;
import com.evolveum.midpoint.xml.ns._public.common.common_3.ObjectType;

/**
* Created by honchar
Expand All @@ -41,6 +38,8 @@ public abstract class AbstractPopupTabPanel<O extends ObjectType> extends BasePa
protected static final String ID_PARAMETERS_PANEL = "parametersPanel";
protected static final String ID_PARAMETERS_PANEL_FRAGMENT = "parametersPanelFragment";

private List<O> preselectedObjects = new ArrayList<>();

public AbstractPopupTabPanel(String id) {
super(id);
}
Expand Down Expand Up @@ -74,8 +73,9 @@ protected List<IColumn<SelectableBean<O>, String>> createDefaultColumns() {
}

@Override
protected void onUpdateCheckbox(AjaxRequestTarget target, IModel<SelectableBean<O>> rowModel) {
onSelectionPerformed(target, rowModel);
protected void onUpdateCheckbox(AjaxRequestTarget target, IModel<SelectableBean<O>> rowModel, DataTable table) {
updatePreselectedObjects(rowModel);
onSelectionPerformed(target, rowModel, table);
}

@Override
Expand Down Expand Up @@ -134,7 +134,7 @@ public boolean isVisible() {
protected abstract void initParametersPanel(Fragment parametersPanel);

protected List<O> getPreselectedObjects() {
return null;
return preselectedObjects;
}

protected List<O> getSelectedObjectsList() {
Expand All @@ -150,7 +150,20 @@ protected <T extends ObjectType> PopupObjectListPanel<T> getObjectListPanel() {
return (PopupObjectListPanel<T>) get(ID_OBJECT_LIST_PANEL);
}

protected void onSelectionPerformed(AjaxRequestTarget target, IModel<SelectableBean<O>> rowModel) {
protected void onSelectionPerformed(AjaxRequestTarget target, IModel<SelectableBean<O>> rowModel, DataTable dataTable) {
}

private void updatePreselectedObjects(IModel<SelectableBean<O>> rowModel) {
if (rowModel == null) {
return;
}
SelectableBean<O> selectableBean = rowModel.getObject();
O selectedObject = selectableBean.getValue();
if (selectableBean.isSelected()) {
preselectedObjects.add(selectedObject);
} else {
preselectedObjects.removeIf(o -> selectedObject.getOid().equals(o.getOid()));
}
}

protected IModel<Boolean> getObjectSelectCheckBoxEnableModel(IModel<SelectableBean<O>> rowModel) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@
import org.apache.wicket.Component;
import org.apache.wicket.ajax.AjaxRequestTarget;
import org.apache.wicket.behavior.AttributeAppender;
import org.apache.wicket.extensions.markup.html.repeater.data.table.DataTable;
import org.apache.wicket.extensions.markup.html.tabs.ITab;
import org.apache.wicket.markup.html.WebMarkupContainer;
import org.apache.wicket.markup.html.WebPage;
Expand Down Expand Up @@ -292,7 +293,7 @@ public WebMarkupContainer createPanel(String panelId) {
private static final long serialVersionUID = 1L;

@Override
protected void onSelectionPerformed(AjaxRequestTarget target, IModel<SelectableBean<RoleType>> rowModel) {
protected void onSelectionPerformed(AjaxRequestTarget target, IModel<SelectableBean<RoleType>> rowModel, DataTable dataTable) {
tabLabelPanelUpdate(target);
}

Expand Down Expand Up @@ -323,7 +324,7 @@ public WebMarkupContainer createPanel(String panelId) {
private static final long serialVersionUID = 1L;

@Override
protected void onSelectionPerformed(AjaxRequestTarget target, IModel<SelectableBean<OrgType>> rowModel) {
protected void onSelectionPerformed(AjaxRequestTarget target, IModel<SelectableBean<OrgType>> rowModel, DataTable dataTable) {
selectedOrgsListUpdate(rowModel);
tabLabelPanelUpdate(target);
}
Expand All @@ -350,7 +351,6 @@ protected ObjectFilter getSubtypeFilter() {
};
}

@Override
public String getCount() {
return Integer.toString(selectedOrgsList.size());
}
Expand All @@ -369,7 +369,7 @@ public WebMarkupContainer createPanel(String panelId) {
private static final long serialVersionUID = 1L;

@Override
protected void onSelectionPerformed(AjaxRequestTarget target, IModel<SelectableBean<OrgType>> rowModel) {
protected void onSelectionPerformed(AjaxRequestTarget target, IModel<SelectableBean<OrgType>> rowModel, DataTable dataTable) {
selectedOrgsListUpdate(rowModel);
tabLabelPanelUpdate(target);
}
Expand Down Expand Up @@ -416,7 +416,7 @@ public WebMarkupContainer createPanel(String panelId) {
private static final long serialVersionUID = 1L;

@Override
protected void onSelectionPerformed(AjaxRequestTarget target, IModel<SelectableBean<ServiceType>> rowModel) {
protected void onSelectionPerformed(AjaxRequestTarget target, IModel<SelectableBean<ServiceType>> rowModel, DataTable dataTable) {
tabLabelPanelUpdate(target);
}

Expand Down Expand Up @@ -448,8 +448,8 @@ public WebMarkupContainer createPanel(String panelId) {
private static final long serialVersionUID = 1L;

@Override
protected void onSelectionPerformed(AjaxRequestTarget target, IModel<SelectableBean<ResourceType>> rowModel) {
super.onSelectionPerformed(target, rowModel);
protected void onSelectionPerformed(AjaxRequestTarget target, IModel<SelectableBean<ResourceType>> rowModel, DataTable dataTable) {
super.onSelectionPerformed(target, rowModel, dataTable);
tabLabelPanelUpdate(target);
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@

import org.apache.commons.collections4.CollectionUtils;
import org.apache.wicket.ajax.AjaxRequestTarget;
import org.apache.wicket.extensions.markup.html.repeater.data.table.DataTable;
import org.apache.wicket.extensions.markup.html.tabs.ITab;
import org.apache.wicket.markup.html.WebMarkupContainer;
import org.apache.wicket.model.IModel;
Expand Down Expand Up @@ -49,7 +50,7 @@ public WebMarkupContainer createPanel(String panelId) {
private static final long serialVersionUID = 1L;

@Override
protected void onSelectionPerformed(AjaxRequestTarget target, IModel<SelectableBean<O>> rowModel){
protected void onSelectionPerformed(AjaxRequestTarget target, IModel<SelectableBean<O>> rowModel, DataTable dataTable){
tabLabelPanelUpdate(target);
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,7 @@
import org.apache.wicket.Component;
import org.apache.wicket.ajax.AjaxRequestTarget;
import org.apache.wicket.behavior.AttributeAppender;
import org.apache.wicket.extensions.markup.html.repeater.data.table.DataTable;
import org.apache.wicket.extensions.markup.html.tabs.ITab;
import org.apache.wicket.markup.html.WebMarkupContainer;
import org.apache.wicket.markup.html.WebPage;
Expand Down Expand Up @@ -183,7 +184,7 @@ public WebMarkupContainer createPanel(String panelId) {
private static final long serialVersionUID = 1L;

@Override
protected void onSelectionPerformed(AjaxRequestTarget target, IModel<SelectableBean<UserType>> rowModel){
protected void onSelectionPerformed(AjaxRequestTarget target, IModel<SelectableBean<UserType>> rowModel, DataTable dataTable){
tabLabelPanelUpdate(target);
}

Expand Down Expand Up @@ -216,7 +217,7 @@ public WebMarkupContainer createPanel(String panelId) {
private static final long serialVersionUID = 1L;

@Override
protected void onSelectionPerformed(AjaxRequestTarget target, IModel<SelectableBean<RoleType>> rowModel){
protected void onSelectionPerformed(AjaxRequestTarget target, IModel<SelectableBean<RoleType>> rowModel, DataTable dataTable){
tabLabelPanelUpdate(target);
}

Expand Down Expand Up @@ -250,7 +251,7 @@ public WebMarkupContainer createPanel(String panelId) {
private static final long serialVersionUID = 1L;

@Override
protected void onSelectionPerformed(AjaxRequestTarget target, IModel<SelectableBean<OrgType>> rowModel){
protected void onSelectionPerformed(AjaxRequestTarget target, IModel<SelectableBean<OrgType>> rowModel, DataTable dataTable){
selectedOrgsListUpdate(rowModel);
tabLabelPanelUpdate(target);
}
Expand All @@ -265,10 +266,10 @@ protected T getAbstractRoleTypeObject(){
return ChooseMemberPopup.this.getAssignmentTargetRefObject();
}

@Override
protected List<OrgType> getPreselectedObjects(){
return selectedOrgsList;
}
// @Override
// protected List<OrgType> getPreselectedObjects(){
// return selectedOrgsList;
// }

};
}
Expand Down Expand Up @@ -296,7 +297,7 @@ protected T getAbstractRoleTypeObject() {
}

@Override
protected void onSelectionPerformed(AjaxRequestTarget target, IModel<SelectableBean<OrgType>> rowModel) {
protected void onSelectionPerformed(AjaxRequestTarget target, IModel<SelectableBean<OrgType>> rowModel, DataTable dataTable) {
selectedOrgsListUpdate(rowModel);
tabLabelPanelUpdate(target);
}
Expand Down Expand Up @@ -337,7 +338,7 @@ protected ObjectTypes getObjectType(){
}

@Override
protected void onSelectionPerformed(AjaxRequestTarget target, IModel<SelectableBean<ServiceType>> rowModel){
protected void onSelectionPerformed(AjaxRequestTarget target, IModel<SelectableBean<ServiceType>> rowModel, DataTable dataTable){
tabLabelPanelUpdate(target);
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@
import com.evolveum.midpoint.xml.ns._public.common.common_3.RelationSearchItemConfigurationType;

import org.apache.wicket.ajax.AjaxRequestTarget;
import org.apache.wicket.extensions.markup.html.repeater.data.table.DataTable;
import org.apache.wicket.extensions.markup.html.tabs.ITab;
import org.apache.wicket.markup.html.WebMarkupContainer;
import org.apache.wicket.model.IModel;
Expand Down Expand Up @@ -47,7 +48,7 @@ public WebMarkupContainer createPanel(String panelId) {
private static final long serialVersionUID = 1L;

@Override
protected void onSelectionPerformed(AjaxRequestTarget target, IModel<SelectableBean<O>> rowModel){
protected void onSelectionPerformed(AjaxRequestTarget target, IModel<SelectableBean<O>> rowModel, DataTable dataTable){
tabLabelPanelUpdate(target);
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -104,7 +104,8 @@ private QName getDefaultRelationIfInList(List<QName> relationsList) {
protected Map<String, AssignmentType> getSelectedAssignmentsMap() {
Map<String, AssignmentType> assignmentsMap = new HashMap<>();

List<F> selectedObjects = getObjectType().equals(ObjectTypes.ORG) ? getPreselectedObjects() : getSelectedObjectsList();
// List<F> selectedObjects = getObjectType().equals(ObjectTypes.ORG) ? getPreselectedObjects() : getSelectedObjectsList();
List<F> selectedObjects = getSelectedObjectsList();
QName relation = getRelationValue();
selectedObjects.forEach(selectedObject -> assignmentsMap.put(
selectedObject.getOid(),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -91,9 +91,8 @@ protected List<ItemPath> getFixedSearchItems() {

protected final SelectableBeanObjectDataProvider<O> createSelectableBeanObjectDataProvider(SerializableSupplier<ObjectQuery> querySuplier,
SerializableFunction<SortParam<String>, List<ObjectOrdering>> orderingSuplier) {
List<O> preSelectedObjectList = getPreselectedObjectList();
SelectableBeanObjectDataProvider<O> provider = new SelectableBeanObjectDataProvider<O>(
getPageBase(), getSearchModel(), preSelectedObjectList == null ? null : new HashSet<>(preSelectedObjectList)) {
getPageBase(), getSearchModel(), null) {
private static final long serialVersionUID = 1L;

@Override
Expand All @@ -116,6 +115,12 @@ protected List<ObjectOrdering> createObjectOrderings(SortParam<String> sortParam
}
return orderingSuplier.apply(sortParam);
}

@Override
protected Set<? extends O> getSelected() {
List<O> preselectedObjects = getPreselectedObjectList();
return preselectedObjects == null ? new HashSet<>() : new HashSet<>(preselectedObjects);
}
};
provider.setCompiledObjectCollectionView(getObjectCollectionView());
provider.setOptions(createOptions());
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ protected void onInitialize() {

@Override
protected void onOrgTreeCheckBoxSelectionPerformed(AjaxRequestTarget target, IModel<TreeSelectableBean<OrgType>> rowModel) {
onSelectionPerformed(target, (IModel) rowModel);
onSelectionPerformed(target, (IModel) rowModel, null);
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ protected void onInitialize() {

@Override
protected void onOrgTreeCheckBoxSelectionPerformed(AjaxRequestTarget target, IModel<TreeSelectableBean<OrgType>> rowModel) {
onSelectionPerformed(target, (IModel) rowModel);
onSelectionPerformed(target, (IModel) rowModel, null);
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,8 +13,6 @@
import com.evolveum.midpoint.prism.query.ObjectQuery;
import com.evolveum.midpoint.web.component.data.ISelectableDataProvider;

import com.evolveum.midpoint.web.component.search.Search;

import com.evolveum.midpoint.web.session.ObjectListStorage;

import com.evolveum.midpoint.web.session.PageStorage;
Expand Down Expand Up @@ -65,13 +63,13 @@ protected IColumn<SelectableBean<O>, String> createCheckboxColumn() {
@Override
protected void onUpdateRow(AjaxRequestTarget target, DataTable table, IModel<SelectableBean<O>> rowModel, IModel<Boolean> selected) {
super.onUpdateRow(target, table, rowModel, selected);
onUpdateCheckbox(target, rowModel);
onUpdateCheckbox(target, rowModel, table);
}

@Override
protected void onUpdateHeader(AjaxRequestTarget target, boolean selected, DataTable table) {
super.onUpdateHeader(target, selected, table);
onUpdateCheckbox(target, null);
onUpdateCheckbox(target, null, table);
}

@Override
Expand Down Expand Up @@ -119,8 +117,7 @@ protected List<InlineMenuItem> createInlineMenu() {
protected void addCustomActions(@NotNull List<InlineMenuItem> actionsList, SerializableSupplier<Collection<? extends O>> objectsSupplier) {
}

protected void onUpdateCheckbox(AjaxRequestTarget target, IModel<SelectableBean<O>> rowModel) {

protected void onUpdateCheckbox(AjaxRequestTarget target, IModel<SelectableBean<O>> rowModel, DataTable table) {
}

protected IModel<Boolean> getCheckBoxEnableModel(IModel<SelectableBean<O>> rowModel) {
Expand Down

0 comments on commit bd68312

Please sign in to comment.