Skip to content

Commit

Permalink
helper method for overlay
Browse files Browse the repository at this point in the history
  • Loading branch information
katkav committed Oct 29, 2021
1 parent 29358ef commit ff66967
Showing 1 changed file with 34 additions and 0 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -11,18 +11,25 @@
import com.evolveum.midpoint.gui.api.prism.wrapper.PrismContainerWrapper;
import com.evolveum.midpoint.gui.api.prism.wrapper.PrismObjectWrapper;
import com.evolveum.midpoint.gui.api.util.WebComponentUtil;
import com.evolveum.midpoint.gui.impl.prism.panel.ItemPanelSettingsBuilder;
import com.evolveum.midpoint.prism.Containerable;
import com.evolveum.midpoint.prism.PrismContext;
import com.evolveum.midpoint.prism.path.ItemPath;
import com.evolveum.midpoint.prism.polystring.PolyString;
import com.evolveum.midpoint.util.exception.SchemaException;
import com.evolveum.midpoint.util.logging.Trace;
import com.evolveum.midpoint.util.logging.TraceManager;
import com.evolveum.midpoint.web.component.prism.ItemVisibility;
import com.evolveum.midpoint.web.model.PrismContainerWrapperModel;
import com.evolveum.midpoint.web.model.PrismPropertyWrapperModel;
import com.evolveum.midpoint.xml.ns._public.common.common_3.ContainerPanelConfigurationType;

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

import com.evolveum.prism.xml.ns._public.types_3.PolyStringType;

import org.apache.commons.lang3.StringUtils;
import org.apache.wicket.MarkupContainer;
import org.apache.wicket.markup.html.panel.Panel;
import org.apache.wicket.model.IModel;
import org.apache.wicket.model.StringResourceModel;
Expand All @@ -31,6 +38,8 @@

public abstract class AbstractObjectMainPanel<O extends ObjectType, M extends ObjectDetailsModels<O>> extends Panel {

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

private ContainerPanelConfigurationType panelConfiguration;
private M objectDetailsModels;

Expand Down Expand Up @@ -129,4 +138,29 @@ private StringResourceModel createStringResource(Enum<?> e, String prefix, Strin

return createStringResource(sb.toString());
}

/**
* Used in overlay
* @param parentComponent
* @param id
* @param typeName
* @param propertyPath
* @return
*/
protected Panel addPrismPropertyPanel(MarkupContainer parentComponent, String id, QName typeName, ItemPath propertyPath) {

try {
ItemPanelSettingsBuilder settingsBuilder = new ItemPanelSettingsBuilder();
settingsBuilder.visibilityHandler(wrapper -> ItemVisibility.AUTO);

Panel panel = getPageBase().initItemPanel(id, typeName, PrismPropertyWrapperModel.fromContainerWrapper(getObjectWrapperModel(), propertyPath), settingsBuilder.build());
parentComponent.add(panel);
return panel;
} catch (SchemaException e) {
LOGGER.error("Cannot create panel for {}", typeName, e);
getSession().error("Cannot create panel for " + typeName + ", reason: " + e.getMessage());
}

return null;
}
}

0 comments on commit ff66967

Please sign in to comment.