Skip to content

Commit

Permalink
Merge remote-tracking branch 'origin/feature/smart-correlation-protot…
Browse files Browse the repository at this point in the history
…ype' into feature/smart-correlation-prototype
  • Loading branch information
mederly committed Aug 4, 2022
2 parents c80373a + 26432ed commit 32c974f
Show file tree
Hide file tree
Showing 25 changed files with 320 additions and 99 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,7 @@ private void initLayout() {
AjaxIconButton exit = new AjaxIconButton(
buttons.newChildId(),
Model.of("fa fa-right-from-bracket"),
getPageBase().createStringResource("ResourceWizard.exit")) {
getExitLabel()) {
@Override
public void onClick(AjaxRequestTarget target) {
onExitPerformed(target);
Expand All @@ -70,6 +70,10 @@ public void onClick(AjaxRequestTarget target) {
add(buttons);
}

protected IModel<String> getExitLabel() {
return getPageBase().createStringResource("WizardPanel.exit");
}

protected void onExitPerformed(AjaxRequestTarget target) {
getPageBase().navigateToNext(PageResources.class);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,9 +18,13 @@ <h5 class="text-secondary mb-5" wicket:id="subText"/>
<wicket:message key="WizardHeader.back"/>
</a>
<a class="btn btn-outline-primary" wicket:id="exit">
<i class="fas fa-arrow-left mr-2"></i>
<i class="fas fa-right-from-bracket mr-2"></i>
<wicket:message key="WizardPanel.exit"/>
</a>
<a class="btn btn-success" wicket:id="finish">
<i class="fas fa-flag-checkered ml-2"/>
<wicket:message key="WizardPanel.finish"/>
</a>
<a class="btn btn-success" wicket:id="next">
<wicket:message key="WizardHeader.next"/>
<span wicket:id="nextLabel"/>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,8 @@ public class BasicWizardStepPanel<T> extends WizardStepPanel<T> {
private static final String ID_SUBTEXT = "subText";
private static final String ID_BACK = "back";
private static final String ID_EXIT = "exit";

private static final String ID_FINISH = "finish";
private static final String ID_NEXT = "next";
private static final String ID_NEXT_LABEL = "nextLabel";

Expand Down Expand Up @@ -81,6 +83,24 @@ public void onClick(AjaxRequestTarget target) {
WebComponentUtil.addDisabledClassBehavior(exit);
add(exit);

AjaxSubmitButton finish = new AjaxSubmitButton(ID_FINISH) {

@Override
public void onSubmit(AjaxRequestTarget target) {
onFinishPerformed(target);
}

@Override
protected void onError(AjaxRequestTarget target) {
updateFeedbackPanels(target);
}
};
finish.add(new VisibleBehaviour(() -> isFinishVisible()));
finish.setOutputMarkupId(true);
finish.setOutputMarkupPlaceholderTag(true);
WebComponentUtil.addDisabledClassBehavior(finish);
add(finish);

AjaxSubmitButton next = new AjaxSubmitButton(ID_NEXT) {

@Override
Expand All @@ -103,6 +123,15 @@ protected void onError(AjaxRequestTarget target) {
next.add(nextLabel);
}

@Override
public VisibleEnableBehaviour getNextBehaviour() {
return new VisibleEnableBehaviour(() -> !isFinishVisible());
}

private boolean isFinishVisible() {
return getWizard().getNextPanel() == null;
}

private VisibleBehaviour getExitVisibility() {
return new VisibleBehaviour(() -> isExitButtonVisible());
}
Expand Down Expand Up @@ -150,6 +179,9 @@ public boolean onNextPerformed(AjaxRequestTarget target) {
return false;
}

protected void onFinishPerformed(AjaxRequestTarget target) {
}

public boolean onBackPerformed(AjaxRequestTarget target) {
WizardModel model = getWizard();
if (model.hasPrevious()) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,7 @@ public class WrapperContext {
@Experimental
private Map<String, LookupTableType> lookupTableCache = new HashMap();

private GuiObjectDetailsPageType detailsPageTypeConfiguration;
private List<ContainerPanelConfigurationType> detailsPageTypeConfiguration;
private Collection<VirtualContainersSpecificationType> virtualContainers = new ArrayList<>();

public WrapperContext(Task task, OperationResult result) {
Expand Down Expand Up @@ -215,7 +215,7 @@ public Collection<VirtualContainersSpecificationType> getVirtualContainers() {
if (detailsPageTypeConfiguration == null) {
return virtualContainers;
}
List<ContainerPanelConfigurationType> containerPanelConfigurationTypes = detailsPageTypeConfiguration.getPanel();
List<ContainerPanelConfigurationType> containerPanelConfigurationTypes = detailsPageTypeConfiguration;
if (containerPanelConfigurationTypes.isEmpty()) {
return virtualContainers;
}
Expand Down Expand Up @@ -246,11 +246,7 @@ public VirtualContainersSpecificationType findVirtualContainerConfiguration(Item
return null;
}

public GuiObjectDetailsPageType getDetailsPageTypeConfiguration() {
return detailsPageTypeConfiguration;
}

public void setDetailsPageTypeConfiguration(GuiObjectDetailsPageType detailsPageTypeConfiguration) {
public void setDetailsPageTypeConfiguration(List<ContainerPanelConfigurationType> detailsPageTypeConfiguration) {
this.detailsPageTypeConfiguration = detailsPageTypeConfiguration;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
import java.io.Serializable;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.List;

import com.evolveum.midpoint.gui.api.factory.wrapper.PrismObjectWrapperFactory;
Expand Down Expand Up @@ -70,7 +71,7 @@ protected PrismObjectWrapper<O> load() {
OperationResult result = task.getResult();
WrapperContext ctx = new WrapperContext(task, result);
ctx.setCreateIfEmpty(true);
ctx.setDetailsPageTypeConfiguration(detailsPageConfigurationModel.getObject());
ctx.setDetailsPageTypeConfiguration(getPanelConfigurations());
if (isReadonly()) {
ctx.setReadOnly(isReadonly());
}
Expand Down Expand Up @@ -110,6 +111,13 @@ protected O load() {
};
}

private List<ContainerPanelConfigurationType> getPanelConfigurations() {
GuiObjectDetailsPageType detailsPage = detailsPageConfigurationModel.getObject();
if (detailsPage == null) {
return Collections.emptyList();
}
return detailsPage.getPanel();
}
private void loadParentOrgs(PrismObject<O> object) {
Task task = getModelServiceLocator().createSimpleTask(OPERATION_LOAD_PARENT_ORG);
OperationResult subResult = task.getResult();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,10 +6,7 @@
*/
package com.evolveum.midpoint.gui.impl.page.admin.focus.component;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.List;
import java.util.*;
import java.util.stream.Collectors;
import javax.xml.namespace.QName;

Expand Down Expand Up @@ -473,12 +470,12 @@ public WebMarkupContainer createPanel(String panelId) {
}

private ContainerPanelConfigurationType getBasicShadowPanelConfiguration(ShadowType shadowType) {
GuiShadowDetailsPageType detailsPageType = findShadowDetailsPageConfiguration(shadowType);
if (detailsPageType == null) {
List<ContainerPanelConfigurationType> panelConfigs = findShadowDetailsPageConfiguration(shadowType);
if (panelConfigs.isEmpty()) {
return null;
}

List<ContainerPanelConfigurationType> basicPanelConfig = detailsPageType.getPanel().stream().filter(p -> p.getIdentifier().equals("shadowBasic")).collect(Collectors.toList());
List<ContainerPanelConfigurationType> basicPanelConfig = panelConfigs.stream().filter(p -> p.getIdentifier().equals("shadowBasic")).collect(Collectors.toList());
if (basicPanelConfig.size() == 1) {
return basicPanelConfig.get(0);
}
Expand All @@ -487,8 +484,12 @@ private ContainerPanelConfigurationType getBasicShadowPanelConfiguration(ShadowT
return null;
}

private GuiShadowDetailsPageType findShadowDetailsPageConfiguration(ShadowType shadowType) {
return getPageBase().getCompiledGuiProfile().findShadowDetailsConfiguration(createResourceShadowCoordinates(shadowType));
private List<ContainerPanelConfigurationType> findShadowDetailsPageConfiguration(ShadowType shadowType) {
GuiShadowDetailsPageType shadowDetailsPage = getPageBase().getCompiledGuiProfile().findShadowDetailsConfiguration(createResourceShadowCoordinates(shadowType));
if (shadowDetailsPage == null) {
return Collections.emptyList();
}
return shadowDetailsPage.getPanel();
}

private ResourceShadowCoordinates createResourceShadowCoordinates(ShadowType shadow) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@
import com.evolveum.midpoint.gui.api.util.ModelServiceLocator;
import com.evolveum.midpoint.gui.api.util.WebModelServiceUtils;
import com.evolveum.midpoint.gui.impl.page.admin.assignmentholder.AssignmentHolderDetailsModel;
import com.evolveum.midpoint.gui.impl.page.admin.resource.component.ResourceObjectTypeDetailsPanel;
import com.evolveum.midpoint.gui.impl.page.admin.resource.component.wizard.basic.ObjectClassWrapper;
import com.evolveum.midpoint.prism.*;
import com.evolveum.midpoint.prism.delta.ObjectDelta;
Expand Down Expand Up @@ -132,13 +133,21 @@ private PrismContainerWrapper<ConnectorConfigurationType> createConfigContainerW

WrapperContext ctx = new WrapperContext(task, result);
ctx.setShowEmpty(true);
ctx.setDetailsPageTypeConfiguration(getObjectDetailsPageConfiguration().getObject());
ctx.setDetailsPageTypeConfiguration(getResourceDetailsPageConfiguration());
configuration = getModelServiceLocator().createItemWrapper(connectorConfigurationType, ItemStatus.ADDED, ctx);
}

return configuration;
}

private List<ContainerPanelConfigurationType> getResourceDetailsPageConfiguration() {
GuiObjectDetailsPageType resourceDetailsPage = getObjectDetailsPageConfiguration().getObject(); //TODO shouldn't be resource details page type?
if (resourceDetailsPage == null) {
return Collections.emptyList();
}
return resourceDetailsPage.getPanel();
}

public LoadableModel<PrismContainerWrapper<ConnectorConfigurationType>> getConfigurationModel() {
return configurationModel;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@
<!DOCTYPE html>
<html xmlns:wicket="http://wicket.apache.org">
<wicket:panel>
<div wicket:id="topButtons"/>
<div class="d-flex flex-wrap justify-content-between my-3">
<div class="d-flex flex-wrap gap-2">
<wicket:enclosure child="intent">
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,19 +12,27 @@
import com.evolveum.midpoint.gui.api.util.WebComponentUtil;
import com.evolveum.midpoint.gui.impl.page.admin.resource.ResourceDetailsModel;

import com.evolveum.midpoint.gui.impl.page.admin.resource.component.wizard.objectType.ResourceObjectTypeWizardPreviewPanel.ResourceObjectTypePreviewTileType;
import com.evolveum.midpoint.gui.impl.page.admin.resource.component.wizard.objectType.synchronization.SynchronizationConfigWizardPanel;
import com.evolveum.midpoint.schema.processor.*;

import com.evolveum.midpoint.schema.util.ShadowUtil;

import com.evolveum.midpoint.util.exception.ConfigurationException;

import com.evolveum.midpoint.web.component.AjaxIconButton;
import com.evolveum.midpoint.web.component.util.VisibleBehaviour;

import org.apache.wicket.AttributeModifier;
import org.apache.wicket.ajax.AjaxRequestTarget;
import org.apache.wicket.ajax.form.OnChangeAjaxBehavior;
import org.apache.wicket.ajax.markup.html.AjaxLink;
import org.apache.wicket.behavior.AttributeAppender;
import org.apache.wicket.markup.html.basic.Label;
import org.apache.wicket.markup.html.form.Form;
import org.apache.wicket.markup.repeater.RepeatingView;
import org.apache.wicket.model.IModel;
import org.apache.wicket.model.Model;
import org.apache.wicket.model.PropertyModel;

import com.evolveum.midpoint.gui.api.component.autocomplete.AutoCompleteQNamePanel;
Expand Down Expand Up @@ -62,6 +70,7 @@ enum Operation {

private static final String DOT_CLASS = ResourceContentPanel.class.getName() + ".";

private static final String ID_TOP_TABLE_BUTTONS = "topButtons";
private static final String ID_INTENT = "intent";
private static final String ID_REAL_OBJECT_CLASS = "realObjectClass";
private static final String ID_OBJECT_CLASS = "objectClass";
Expand Down Expand Up @@ -118,6 +127,24 @@ private ResourceContentStorage getContentStorage(ShadowKindType kind, String sea
protected void initLayout() {
setOutputMarkupId(true);

RepeatingView topButtons = new RepeatingView(ID_TOP_TABLE_BUTTONS);
topButtons.setOutputMarkupId(true);
topButtons.add(new VisibleBehaviour(() -> isTopTableButtonsVisible()));
add(topButtons);

AjaxIconButton synchConfButton = new AjaxIconButton(
topButtons.newChildId(),
Model.of(ResourceObjectTypePreviewTileType.SYNCHRONIZATION_CONFIG.getIcon()),
getPageBase().createStringResource(ResourceObjectTypePreviewTileType.SYNCHRONIZATION_CONFIG)) {
@Override
public void onClick(AjaxRequestTarget target) {
// SynchronizationConfigWizardPanel synchPanel = new SynchronizationConfigWizardPanel()
}
};
synchConfButton.showTitleAsLabel(true);
synchConfButton.add(AttributeAppender.append("class", "btn btn-default btn-lg"));
topButtons.add(synchConfButton);

final Form mainForm = new MidpointForm(ID_MAIN_FORM);
mainForm.setOutputMarkupId(true);
mainForm.addOrReplace(initTable(getObjectWrapperModel()));
Expand Down Expand Up @@ -284,6 +311,10 @@ protected void onBeforeRender() {

}

private boolean isTopTableButtonsVisible() {
return true;
}

private List<QName> createObjectClassChoices(IModel<PrismObjectWrapper<ResourceType>> model) {
ResourceSchema refinedSchema;
try {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -34,16 +34,7 @@ protected IModel<String> getNextLabelModel() {
return super.getNextLabelModel();
}

@Override
public boolean onNextPerformed(AjaxRequestTarget target) {
if (getWizard().getNextPanel() == null) {
onFinishWizardPerformed(target);
return false;
}
return super.onNextPerformed(target);
}

protected void onFinishWizardPerformed(AjaxRequestTarget target) {
protected void onFinishPerformed(AjaxRequestTarget target) {
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -108,7 +108,7 @@ public boolean onBackPerformed(AjaxRequestTarget target) {
}

@Override
protected void onFinishWizardPerformed(AjaxRequestTarget target) {
protected void onFinishPerformed(AjaxRequestTarget target) {
BasicResourceWizardPanel.this.onFinishBasicWizardPerformed(target);
}
});
Expand All @@ -123,14 +123,14 @@ protected void onFinishWizardPerformed(AjaxRequestTarget target) {
steps.add(new PartialConfigurationStepPanel(getResourceModel()));
steps.add(new DiscoveryStepPanel(getResourceModel()) {
@Override
protected void onFinishWizardPerformed(AjaxRequestTarget target) {
protected void onFinishPerformed(AjaxRequestTarget target) {
BasicResourceWizardPanel.this.onFinishBasicWizardPerformed(target);
}
});
} else {
steps.add(new ConfigurationStepPanel(getResourceModel()) {
@Override
protected void onFinishWizardPerformed(AjaxRequestTarget target) {
protected void onFinishPerformed(AjaxRequestTarget target) {
BasicResourceWizardPanel.this.onFinishBasicWizardPerformed(target);
}
});
Expand All @@ -139,7 +139,7 @@ protected void onFinishWizardPerformed(AjaxRequestTarget target) {
if (capabilities.getSchema() != null) {
steps.add(new SelectObjectClassesStepPanel(getResourceModel()) {
@Override
protected void onFinishWizardPerformed(AjaxRequestTarget target) {
protected void onFinishPerformed(AjaxRequestTarget target) {
BasicResourceWizardPanel.this.onFinishBasicWizardPerformed(target);
}
});
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -258,10 +258,4 @@ protected SelectableBean<ObjectClassWrapper> createObjectWrapper(ObjectClassWrap
protected IModel<String> getNextLabelModel() {
return getPageBase().createStringResource("SelectObjectClassesStepPanel.nextLabel");
}

@Override
public boolean onNextPerformed(AjaxRequestTarget target) {
onFinishWizardPerformed(target);
return false;
}
}

0 comments on commit 32c974f

Please sign in to comment.