Skip to content

Commit

Permalink
few ReadOnlyModel usages converted to lambda, typo/cleanup fixes
Browse files Browse the repository at this point in the history
  • Loading branch information
virgo47 committed Sep 27, 2022
1 parent a04e9bf commit 897d477
Show file tree
Hide file tree
Showing 8 changed files with 88 additions and 149 deletions.
Original file line number Diff line number Diff line change
@@ -1,20 +1,12 @@
/*
* Copyright (c) 2018 Evolveum and contributors
* Copyright (C) 2018-2022 Evolveum and contributors
*
* This work is dual-licensed under the Apache License 2.0
* and European Union Public License. See LICENSE file for details.
*/

package com.evolveum.midpoint.gui.impl.component.data.column;

import com.evolveum.midpoint.gui.api.model.ReadOnlyModel;

import com.evolveum.midpoint.gui.impl.prism.panel.ItemPanelSettings;
import com.evolveum.midpoint.gui.impl.prism.panel.ItemPanelSettingsBuilder;
import com.evolveum.midpoint.util.logging.Trace;

import com.evolveum.midpoint.util.logging.TraceManager;

import org.apache.wicket.markup.html.basic.Label;
import org.apache.wicket.markup.html.list.ListItem;
import org.apache.wicket.markup.html.list.ListView;
Expand All @@ -28,6 +20,8 @@
import com.evolveum.midpoint.gui.api.prism.wrapper.ItemWrapper;
import com.evolveum.midpoint.gui.api.prism.wrapper.PrismValueWrapper;
import com.evolveum.midpoint.gui.impl.component.data.column.AbstractItemWrapperColumn.ColumnType;
import com.evolveum.midpoint.gui.impl.prism.panel.ItemPanelSettings;
import com.evolveum.midpoint.gui.impl.prism.panel.ItemPanelSettingsBuilder;
import com.evolveum.midpoint.prism.path.ItemPath;

/**
Expand All @@ -36,11 +30,10 @@
public abstract class AbstractItemWrapperColumnPanel<IW extends ItemWrapper, VW extends PrismValueWrapper>
extends BasePanel<IW> {

private static final Trace LOGGER = TraceManager.getTrace(AbstractItemWrapperColumnPanel.class);
protected PageBase pageBase;
protected ItemPath itemName;

private ColumnType columnType;
private final ColumnType columnType;

private static final String ID_VALUES = "values";
private static final String ID_VALUE = "value";
Expand All @@ -62,7 +55,7 @@ private void initLayout() {
if (getModelObject() != null) {
AbstractItemWrapperColumnPanel.this.getModelObject().revive(getPageBase().getPrismContext());
}
ListView<VW> listView = new ListView<VW>(ID_VALUES, new PropertyModel<>(getModel(), "values")) {
ListView<VW> listView = new ListView<>(ID_VALUES, new PropertyModel<>(getModel(), "values")) {

private static final long serialVersionUID = 1L;

Expand All @@ -83,7 +76,7 @@ protected void populate(ListItem<VW> item) {
}
switch (columnType) {
case STRING:
Label label = new Label(ID_VALUE, new ReadOnlyModel<>(() -> createLabel(item.getModelObject())));
Label label = new Label(ID_VALUE, () -> createLabel(item.getModelObject()));
item.add(label);
break;
case LINK:
Expand All @@ -93,7 +86,7 @@ protected void populate(ListItem<VW> item) {
item.add(createValuePanel(ID_VALUE, getModel(), item.getModelObject()));
break;
case EXISTENCE_OF_VALUE:
IModel labelModel = Model.of("");
IModel<?> labelModel = Model.of("");
if (existenceOfValue(item.getModelObject())) {
labelModel = getPageBase().createStringResource("AbstractItemWrapperColumnPanel.existValue");
}
Expand All @@ -106,12 +99,13 @@ protected void populate(ListItem<VW> item) {
protected abstract String createLabel(VW object);
protected abstract Panel createLink(String id, IModel<VW> object);
protected abstract Panel createValuePanel(String id, IModel<IW> model, VW object);

protected boolean existenceOfValue(VW object) {
Object realValue = object.getRealValue();
return realValue != null;
}

protected ItemPanelSettings createPanelSettings(){
protected ItemPanelSettings createPanelSettings() {
return new ItemPanelSettingsBuilder().displayedInColumn(true).build();
}
}
Original file line number Diff line number Diff line change
@@ -1,23 +1,25 @@
/*
* Copyright (c) 2021 Evolveum and contributors
* Copyright (C) 2021-2022 Evolveum and contributors
*
* This work is dual-licensed under the Apache License 2.0
* and European Union Public License. See LICENSE file for details.
*/
package com.evolveum.midpoint.gui.impl.page.admin.user.component;

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

import org.apache.wicket.ajax.AjaxRequestTarget;
import org.apache.wicket.extensions.markup.html.repeater.data.table.IColumn;
import org.apache.wicket.model.IModel;

import com.evolveum.midpoint.gui.api.GuiStyleConstants;
import com.evolveum.midpoint.gui.api.component.MainObjectListPanel;
import com.evolveum.midpoint.gui.api.model.LoadableModel;
import com.evolveum.midpoint.gui.api.util.WebComponentUtil;
import com.evolveum.midpoint.gui.api.util.WebModelServiceUtils;
import com.evolveum.midpoint.gui.impl.component.icon.CompositedIconBuilder;
import com.evolveum.midpoint.gui.impl.page.admin.AbstractObjectMainPanel;
import com.evolveum.midpoint.gui.impl.page.admin.user.UserDetailsModel;
import com.evolveum.midpoint.prism.PrismObject;
import com.evolveum.midpoint.prism.query.ObjectQuery;
import com.evolveum.midpoint.prism.query.QueryFactory;
import com.evolveum.midpoint.schema.result.OperationResult;
import com.evolveum.midpoint.web.application.*;
import com.evolveum.midpoint.web.component.data.ISelectableDataProvider;
import com.evolveum.midpoint.web.component.data.column.ColumnMenuAction;
Expand All @@ -32,25 +34,18 @@
import com.evolveum.midpoint.xml.ns._public.common.common_3.ObjectReferenceType;
import com.evolveum.midpoint.xml.ns._public.common.common_3.UserType;

import org.apache.wicket.ajax.AjaxRequestTarget;
import org.apache.wicket.extensions.markup.html.repeater.data.table.IColumn;
import org.apache.wicket.model.IModel;

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

/**
* @author honchar
*/
@PanelType(name = "personas")
@PanelInstance(identifier = "personas",
applicableForType = UserType.class,
display = @PanelDisplay(label = "pageAdminFocus.personas", icon = GuiStyleConstants.CLASS_SHADOW_ICON_ENTITLEMENT, order = 80))
display = @PanelDisplay(label = "pageAdminFocus.personas",
icon = GuiStyleConstants.CLASS_SHADOW_ICON_ENTITLEMENT,
order = 80))
@Counter(provider = PersonasCounter.class)
public class UserPersonasPanel extends AbstractObjectMainPanel<UserType, UserDetailsModel> {
private static final long serialVersionUID = 1L;
private static final String DOT_CLASS = UserPersonasPanel.class.getName() + ".";
private static final String OPERATION_SEARCH_PERSONAS_OBJECTS = DOT_CLASS + "searchPersonas";

private static final String ID_PERSONAS_TABLE = "personasTable";

Expand All @@ -59,12 +54,12 @@ public UserPersonasPanel(String id, UserDetailsModel focusDetailsModels, Contain
}

protected void initLayout() {
MainObjectListPanel<UserType> userListPanel =
new MainObjectListPanel<UserType>(ID_PERSONAS_TABLE, UserType.class, null) {
MainObjectListPanel<UserType> userListPanel = new MainObjectListPanel<>(
ID_PERSONAS_TABLE, UserType.class, null) {
private static final long serialVersionUID = 1L;

@Override
protected IColumn<SelectableBean<UserType>, String> createCheckboxColumn(){
protected IColumn<SelectableBean<UserType>, String> createCheckboxColumn() {
return null;
}

Expand All @@ -90,37 +85,34 @@ public void onClick(AjaxRequestTarget target) {
UserType personaRefObj = personaRefSelectableBean.getValue();
ObjectReferenceType ort = new ObjectReferenceType();
ort.setOid(personaRefObj.getOid());
ort.setType(WebComponentUtil.classToQName(UserPersonasPanel.this.getPrismContext(), personaRefObj.getClass()));
ort.setType(WebComponentUtil.classToQName(
UserPersonasPanel.this.getPrismContext(), personaRefObj.getClass()));
WebComponentUtil.dispatchToObjectDetailsPage(ort, UserPersonasPanel.this, false);
}
};
}

@Override
public boolean isHeaderMenuItem(){
public boolean isHeaderMenuItem() {
return false;
}
});
return menuItems; }
return menuItems;
}

@Override
protected void objectDetailsPerformed(AjaxRequestTarget target, UserType object) {
}

@Override
protected boolean isCreateNewObjectEnabled() {
return false;
}

@Override
protected ISelectableDataProvider<SelectableBean<UserType>> createProvider() {
return createSelectableBeanObjectDataProvider(() -> getFocusPersonasQuery(), null);
}
return false;
}

// @Override
// protected ObjectQuery getCustomizeContentQuery() {
//
// }
@Override
protected ISelectableDataProvider<SelectableBean<UserType>> createProvider() {
return createSelectableBeanObjectDataProvider(() -> getFocusPersonasQuery(), null);
}

@Override
protected boolean isObjectDetailsEnabled(IModel<SelectableBean<UserType>> rowModel) {
Expand All @@ -134,8 +126,8 @@ protected UserProfileStorage.TableId getTableId() {

@Override
protected boolean enableSavePageSize() {
return false;
}
return false;
}
};
userListPanel.setOutputMarkupId(true);
add(userListPanel);
Expand All @@ -149,28 +141,11 @@ private ObjectQuery getFocusPersonasQuery() {
return query;
}

private LoadableModel<List<PrismObject<FocusType>>> loadModel(){
return new LoadableModel<List<PrismObject<FocusType>>>(false) {
@Override
protected List<PrismObject<FocusType>> load() {
List<String> personaOidsList = getPersonasOidsList();
List<PrismObject<FocusType>> personasList = new ArrayList<>();
if (personaOidsList.size() > 0){
QueryFactory factory = getPrismContext().queryFactory();
ObjectQuery query = factory.createQuery(factory.createInOid(personaOidsList));
OperationResult result = new OperationResult(OPERATION_SEARCH_PERSONAS_OBJECTS);
personasList = WebModelServiceUtils.searchObjects(FocusType.class, query, result, getPageBase());
}
return personasList;
}
};
}

private List<String> getPersonasOidsList(){
private List<String> getPersonasOidsList() {
List<ObjectReferenceType> personasRefList = getObjectWrapper().getObject().asObjectable().getPersonaRef();
List<String> oidsList = new ArrayList<>();
if (personasRefList != null){
for (ObjectReferenceType ref : personasRefList){
if (personasRefList != null) {
for (ObjectReferenceType ref : personasRefList) {
oidsList.add(ref.getOid());
}
}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
/*
* Copyright (C) 2010-2020 Evolveum and contributors
* Copyright (C) 2010-2022 Evolveum and contributors
*
* This work is dual-licensed under the Apache License 2.0
* and European Union Public License. See LICENSE file for details.
Expand All @@ -10,8 +10,6 @@
import java.util.List;
import javax.xml.namespace.QName;

import com.evolveum.midpoint.gui.api.util.GuiDisplayTypeUtil;

import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.wicket.AttributeModifier;
Expand All @@ -27,7 +25,7 @@
import org.apache.wicket.request.resource.AbstractResource;

import com.evolveum.midpoint.gui.api.component.BasePanel;
import com.evolveum.midpoint.gui.api.model.ReadOnlyModel;
import com.evolveum.midpoint.gui.api.util.GuiDisplayTypeUtil;
import com.evolveum.midpoint.gui.api.util.WebComponentUtil;
import com.evolveum.midpoint.gui.impl.model.FlexibleLabelModel;
import com.evolveum.midpoint.prism.Containerable;
Expand Down Expand Up @@ -236,16 +234,14 @@ public boolean isVisible() {
}

private IModel<String> getIconCssClass() {
return new ReadOnlyModel<>(() -> {

return () -> {
String archetypeIcon = getArchetypeIconCssClass();
if (StringUtils.isNotBlank(archetypeIcon)) {
return archetypeIcon;
}

return getDefaultIconCssClass();

});
};
}

private IModel<String> createArchetypeBackgroundModel() {
Expand All @@ -264,7 +260,7 @@ private FlexibleLabelModel<C> createLabelModel(QName modelPropertyName, QName co
}

private FlexibleLabelModel<C> createFlexibleLabelModel(QName modelPropertyName, GuiFlexibleLabelType configuration) {
return new FlexibleLabelModel<C>(getModel(), ItemName.fromQName(modelPropertyName), getPageBase(), configuration) {
return new FlexibleLabelModel<>(getModel(), ItemName.fromQName(modelPropertyName), getPageBase(), configuration) {
private static final long serialVersionUID = 1L;

@Override
Expand Down Expand Up @@ -293,11 +289,7 @@ protected IModel<String> getReferenceObjectTitleModel() {
}

private SummaryTag<C> getArchetypeSummaryTag() {
// String archetypeIconCssClass = getArchetypeIconCssClass();
// String archetypeIconColor = getArchetypePolicyAdditionalCssClass();
// String archetypeLabel = getArchetypeLabel();
// if (StringUtils.isNotEmpty(archetypeLabel)) {
SummaryTag<C> archetypeSummaryTag = new SummaryTag<C>(ID_SUMMARY_TAG, getModel()) {
SummaryTag<C> archetypeSummaryTag = new SummaryTag<>(ID_SUMMARY_TAG, getModel()) {
private static final long serialVersionUID = 1L;

@Override
Expand All @@ -310,8 +302,6 @@ protected void initialize(C object) {
};
archetypeSummaryTag.add(new VisibleBehaviour(() -> StringUtils.isNotEmpty(getArchetypeLabel())));
return archetypeSummaryTag;
// }
// return null;
}

protected void addAdditionalVariablesMap(VariablesMap variables) {
Expand Down

0 comments on commit 897d477

Please sign in to comment.