Skip to content

Commit

Permalink
added simulation result button to task details page
Browse files Browse the repository at this point in the history
  • Loading branch information
1azyman committed Mar 3, 2023
1 parent cfd8212 commit 998b8d3
Show file tree
Hide file tree
Showing 2 changed files with 55 additions and 24 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -7,18 +7,16 @@

package com.evolveum.midpoint.gui.impl.page.admin.component;

import static com.evolveum.midpoint.prism.Referencable.getOid;

import static java.util.Collections.singletonList;

import static com.evolveum.midpoint.prism.Referencable.getOid;

import java.io.InputStream;
import java.time.Duration;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;

import com.evolveum.midpoint.authentication.api.util.AuthUtil;

import org.apache.wicket.ajax.AjaxRequestTarget;
import org.apache.wicket.ajax.AjaxSelfUpdatingTimerBehavior;
import org.apache.wicket.behavior.AttributeAppender;
Expand All @@ -27,7 +25,11 @@
import org.apache.wicket.markup.repeater.RepeatingView;
import org.apache.wicket.model.IModel;
import org.apache.wicket.model.Model;
import org.apache.wicket.request.mapper.parameter.PageParameters;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;

import com.evolveum.midpoint.authentication.api.util.AuthUtil;
import com.evolveum.midpoint.gui.api.GuiStyleConstants;
import com.evolveum.midpoint.gui.api.model.LoadableModel;
import com.evolveum.midpoint.gui.api.prism.ItemStatus;
Expand All @@ -40,6 +42,8 @@
import com.evolveum.midpoint.gui.impl.component.icon.CompositedIcon;
import com.evolveum.midpoint.gui.impl.component.icon.CompositedIconBuilder;
import com.evolveum.midpoint.gui.impl.component.icon.IconCssStyle;
import com.evolveum.midpoint.gui.impl.page.admin.simulation.PageSimulationResult;
import com.evolveum.midpoint.gui.impl.page.admin.simulation.SimulationPage;
import com.evolveum.midpoint.gui.impl.prism.wrapper.PrismReferenceValueWrapperImpl;
import com.evolveum.midpoint.model.api.authentication.GuiProfiledPrincipal;
import com.evolveum.midpoint.prism.PrismObject;
Expand Down Expand Up @@ -72,9 +76,6 @@
import com.evolveum.midpoint.web.util.TaskOperationUtils;
import com.evolveum.midpoint.xml.ns._public.common.common_3.*;

import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;

public class TaskOperationalButtonsPanel extends AssignmentHolderOperationalButtonsPanel<TaskType> {

private static final Trace LOGGER = TraceManager.getTrace(TaskOperationalButtonsPanel.class);
Expand Down Expand Up @@ -235,6 +236,7 @@ private void initLayout() {

createManageLivesyncTokenButton(taskButtons);
createDownloadReportButton(taskButtons);
createShowSimulationResultButton(taskButtons);
createCleanupPerformanceButton(taskButtons);
createCleanupResultsButton(taskButtons);

Expand All @@ -248,7 +250,6 @@ private void initLayout() {
add(refreshingButtons);
refreshingButtonsContainer.add(refreshingButtons);


AjaxSelfUpdatingTimerBehavior behavior = new AjaxSelfUpdatingTimerBehavior(Duration.ofMillis(getRefreshInterval())) {
private static final long serialVersionUID = 1L;

Expand Down Expand Up @@ -313,7 +314,6 @@ protected void runNowPerformed(AjaxRequestTarget target, PrismObject<TaskType> t
afterOperation(target, result);
}


private void createResumeButton(RepeatingView repeatingView) {
AjaxIconButton resume = new AjaxIconButton(repeatingView.newChildId(), Model.of(GuiStyleConstants.CLASS_RESUME_MENU_ITEM), createStringResource("pageTaskEdit.button.resume")) {
@Override
Expand Down Expand Up @@ -377,6 +377,44 @@ public boolean isEnabled() {
repeatingView.add(manageLivesyncToken);
}

private void createShowSimulationResultButton(RepeatingView repeatingView) {
AjaxButton download = new AjaxButton(repeatingView.newChildId(), createStringResource("PageTask.simulationResult")) {

private static final long serialVersionUID = 1L;

@Override
public void onClick(AjaxRequestTarget target) {
showSimulationResultPerformed();
}
};
download.add(new VisibleBehaviour(this::isSimulationResultAvailable));
download.add(AttributeAppender.append("class", "btn-primary"));
repeatingView.add(download);
}

private ObjectReferenceType getSimulationResultReference() {
TaskType task = getModelObject().getObject().asObjectable();
TaskActivityStateType activityState = task.getActivityState();
if (activityState == null || activityState.getActivity() == null) {
return null;
}

ActivitySimulationStateType simulation = activityState.getActivity().getSimulation();
return simulation != null ? simulation.getResultRef() : null;
}

private void showSimulationResultPerformed() {
ObjectReferenceType resultRef = getSimulationResultReference();

PageParameters params = new PageParameters();
params.set(SimulationPage.PAGE_PARAMETER_RESULT_OID, resultRef.getOid());
getPageBase().navigateToNext(PageSimulationResult.class, params);
}

private boolean isSimulationResultAvailable() {
return getSimulationResultReference() != null;
}

private void createDownloadReportButton(RepeatingView repeatingView) {
final AjaxDownloadBehaviorFromStream ajaxDownloadBehavior = new AjaxDownloadBehaviorFromStream() {
private static final long serialVersionUID = 1L;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,13 @@
*/
package com.evolveum.midpoint.gui.impl.page.admin.task.component;

import java.util.Collection;
import java.util.Collections;

import org.apache.wicket.Component;

import com.evolveum.midpoint.gui.api.model.LoadableModel;
import com.evolveum.midpoint.gui.impl.page.admin.AbstractObjectMainPanel;
import com.evolveum.midpoint.gui.impl.page.admin.ObjectDetailsModels;
import com.evolveum.midpoint.gui.impl.page.admin.task.TaskDetailsModel;
import com.evolveum.midpoint.model.api.context.ModelContext;
import com.evolveum.midpoint.model.api.util.ModelContextUtil;
Expand All @@ -23,18 +27,12 @@
import com.evolveum.midpoint.web.application.PanelType;
import com.evolveum.midpoint.web.component.model.operationStatus.ModelOperationStatusDto;
import com.evolveum.midpoint.web.component.model.operationStatus.ModelOperationStatusPanel;
import com.evolveum.midpoint.web.component.util.VisibleEnableBehaviour;
import com.evolveum.midpoint.web.component.util.VisibleBehaviour;
import com.evolveum.midpoint.web.page.admin.server.RefreshableTabPanel;
import com.evolveum.midpoint.xml.ns._public.common.common_3.ContainerPanelConfigurationType;
import com.evolveum.midpoint.xml.ns._public.common.common_3.LensContextType;

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

import org.apache.wicket.Component;

import java.util.Collection;
import java.util.Collections;

/**
* @author semancik
*/
Expand Down Expand Up @@ -91,12 +89,7 @@ protected ModelOperationStatusDto load() {
}

ModelOperationStatusPanel panel = new ModelOperationStatusPanel(ID_MODEL_OPERATION_STATUS_PANEL, operationStatusModel);
panel.add(new VisibleEnableBehaviour() {
@Override
public boolean isVisible() {
return lensContextType != null;
}
});
panel.add(new VisibleBehaviour(() -> lensContextType != null));
add(panel);
}

Expand All @@ -108,7 +101,7 @@ public boolean isVisible() {

@Override
public Collection<Component> getComponentsToUpdate() {
return Collections.<Component>singleton(this);
return Collections.singleton(this);
}

}

0 comments on commit 998b8d3

Please sign in to comment.