Skip to content

Commit

Permalink
members panels, support for more panelInstances of panel type
Browse files Browse the repository at this point in the history
  • Loading branch information
katkav committed Aug 26, 2021
1 parent 44180bd commit 08da3a1
Show file tree
Hide file tree
Showing 40 changed files with 1,877 additions and 67 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -52,12 +52,13 @@ public class DefaultGuiConfigurationCompiler implements GuiProfileCompilable {
"com.evolveum.midpoint.gui.impl.page.admin",
"com.evolveum.midpoint.gui.impl.page.admin.component",
"com.evolveum.midpoint.gui.impl.page.admin.assignmentholder.component",
"com.evolveum.midpoint.gui.impl.page.admin.abstractrole.component",
"com.evolveum.midpoint.gui.impl.page.admin.focus.component",
"com.evolveum.midpoint.gui.impl.page.admin.resource.component",
"com.evolveum.midpoint.gui.impl.page.admin.task.component",
"com.evolveum.midpoint.gui.impl.component.assignment",
"com.evolveum.midpoint.gui.impl.component.assignmentType.assignment",
"com.evolveum.midpoint.gui.impl.component.assignmentType.inducement"
"com.evolveum.midpoint.gui.impl.page.admin.assignmentholder.component.assignmentType.assignment",
"com.evolveum.midpoint.gui.impl.page.admin.assignmentholder.component.assignmentType.inducement",
};

private Map<String, Class<? extends Panel>> panelsMap = new HashMap<>();
Expand Down Expand Up @@ -157,6 +158,21 @@ private GuiObjectDetailsPageType compileDefaultGuiObjectDetailsPage(ObjectTypes
private List<ContainerPanelConfigurationType> getPanelsFor(Class<? extends ObjectType> objectType, Set<Class<?>> allClasses) {
List<ContainerPanelConfigurationType> panels = new ArrayList<>();
for (Class<?> clazz : allClasses) {
PanelInstances panelInstances = clazz.getAnnotation(PanelInstances.class);
if (panelInstances != null) {
for (PanelInstance panelInstance : panelInstances.instances()) {
if (isNotApplicableFor(objectType, panelInstance)) {
continue;
}

if (isSubPanel(panelInstance)) {
continue;
}
ContainerPanelConfigurationType config = compileContainerPanelConfiguration(panelInstance.identifier(), panelInstance.defaultPanel(), clazz, objectType, allClasses);
panels.add(config);
}
}

PanelInstance panelInstance = clazz.getAnnotation(PanelInstance.class);
if (isNotApplicableFor(objectType, panelInstance)) {
continue;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,11 +23,9 @@
import javax.xml.datatype.XMLGregorianCalendar;
import javax.xml.namespace.QName;

import com.evolveum.midpoint.gui.impl.component.assignmentType.AbstractAssignmentTypePanel;
import com.evolveum.midpoint.gui.impl.page.admin.assignmentholder.component.assignmentType.AbstractAssignmentTypePanel;
import com.evolveum.midpoint.gui.impl.page.admin.ObjectDetailsModels;

import com.google.common.reflect.Invokable;
import com.google.common.reflect.TypeToken;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.*;
import org.apache.commons.lang3.math.NumberUtils;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -110,7 +110,7 @@ protected void onClickPerformed(ContainerPanelConfigurationType config, AjaxRequ
navigationDetails.add(subPanel);
item.add(new VisibleBehaviour(() -> isMenuItemVisible(item.getModelObject())));

// item.add(new Label(ID_NAV_ITEM, item.getModel()));
// item.add(new Label(ID_NAV_ITEM, item.getModel()));o
}
};
listView.setOutputMarkupId(true);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -98,22 +98,6 @@ protected GuiObjectDetailsPageType loadDetailsPageConfiguration(PrismObject<O> p
return modelServiceLocator.getCompiledGuiProfile().findObjectDetailsConfiguration(prismObject.getDefinition().getTypeName());
}

public LoadableModel<PrismObjectWrapper<O>> getObjectWrapperModel() {
return objectWrapperModel;
}

private PrismObjectWrapper<O> getObjectWrapper() {
return getObjectWrapperModel().getObject();
}

protected PrismObject<O> getPrismObject() {
return getObjectWrapper().getObject();
}

public LoadableModel<GuiObjectDetailsPageType> getObjectDetailsPageConfiguration() {
return detailsPageConfigurationModel;
}

//TODO change summary panels to wrappers?
public LoadableModel<O> getSummaryModel() {
return summaryModel;
Expand Down Expand Up @@ -262,4 +246,24 @@ protected ModelServiceLocator getModelServiceLocator() {
protected AdminGuiConfigurationMergeManager getAdminGuiConfigurationMergeManager() {
return modelServiceLocator.getAdminGuiConfigurationMergeManager();
}

public LoadableModel<PrismObjectWrapper<O>> getObjectWrapperModel() {
return objectWrapperModel;
}

private PrismObjectWrapper<O> getObjectWrapper() {
return getObjectWrapperModel().getObject();
}

protected PrismObject<O> getPrismObject() {
return getObjectWrapper().getObject();
}

public LoadableModel<GuiObjectDetailsPageType> getObjectDetailsPageConfiguration() {
return detailsPageConfigurationModel;
}

public O getObjectType() {
return getPrismObject().asObjectable();
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
~ Copyright (c) 2021 Evolveum
~
~ This work is dual-licensed under the Apache License 2.0
~ and European Union Public License. See LICENSE file for details.
-->

<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:wicket="http://wicket.apache.org">
<body>
<wicket:panel>

<form class="clearfix form-horizontal" wicket:id="form">
<div wicket:id="memberContainer">
<div wicket:id="memberTable" />
</div>
</form>

</wicket:panel>
</body>
</html>

0 comments on commit 08da3a1

Please sign in to comment.