Skip to content

Commit

Permalink
Merge branch 'master' into feature/boot-cleanup
Browse files Browse the repository at this point in the history
  • Loading branch information
virgo47 committed Apr 27, 2020
2 parents 16bfa77 + eca047f commit 47eb0f2
Show file tree
Hide file tree
Showing 221 changed files with 15,235 additions and 9,832 deletions.
Expand Up @@ -6,10 +6,9 @@
-->

<wicket:panel xmlns:wicket="http://wicket.apache.org">
<div wicket:id="warningMessage"/>
<form wicket:id="form">
<div wicket:id="tabsPanel"/>

<div wicket:id="warningMessage" class="form-control-static" />
<p align="right">
<a class="btn btn-default btn-sm" wicket:id="cancelButton"/>
<a class="btn btn-default btn-sm" wicket:id="assignButton"/>
Expand Down
Expand Up @@ -7,26 +7,23 @@
package com.evolveum.midpoint.gui.api.component;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import javax.xml.namespace.QName;

import com.evolveum.midpoint.gui.api.component.tabs.PanelTab;
import com.evolveum.midpoint.web.component.util.SelectableBean;
import org.apache.wicket.Component;
import org.apache.wicket.ajax.AjaxRequestTarget;
import org.apache.wicket.behavior.AttributeAppender;
import org.apache.wicket.extensions.markup.html.tabs.ITab;
import org.apache.wicket.markup.html.WebMarkupContainer;
import org.apache.wicket.markup.html.basic.Label;
import org.apache.wicket.markup.html.form.Form;
import org.apache.wicket.model.IModel;
import org.apache.wicket.model.StringResourceModel;

import com.evolveum.midpoint.gui.api.component.result.MessagePanel;
import com.evolveum.midpoint.gui.api.component.tabs.CountablePanelTab;
import com.evolveum.midpoint.gui.api.component.tabs.PanelTab;
import com.evolveum.midpoint.gui.api.model.LoadableModel;
import com.evolveum.midpoint.gui.api.prism.PrismContainerWrapper;
import com.evolveum.midpoint.gui.api.util.WebComponentUtil;
Expand All @@ -36,14 +33,9 @@
import com.evolveum.midpoint.web.component.TabbedPanel;
import com.evolveum.midpoint.web.component.dialog.Popupable;
import com.evolveum.midpoint.web.component.util.EnableBehaviour;
import com.evolveum.midpoint.web.component.util.SelectableBeanImpl;
import com.evolveum.midpoint.web.component.util.SelectableBean;
import com.evolveum.midpoint.web.component.util.VisibleBehaviour;
import com.evolveum.midpoint.xml.ns._public.common.common_3.AssignmentType;
import com.evolveum.midpoint.xml.ns._public.common.common_3.ObjectReferenceType;
import com.evolveum.midpoint.xml.ns._public.common.common_3.OrgType;
import com.evolveum.midpoint.xml.ns._public.common.common_3.ResourceType;
import com.evolveum.midpoint.xml.ns._public.common.common_3.RoleType;
import com.evolveum.midpoint.xml.ns._public.common.common_3.ServiceType;
import com.evolveum.midpoint.xml.ns._public.common.common_3.*;

/**
* Created by honchar.
Expand Down Expand Up @@ -77,10 +69,10 @@ protected void onInitialize(){
tabPanel.setOutputMarkupPlaceholderTag(true);
form.add(tabPanel);

Label warningMessage = new Label(ID_WARNING_MESSAGE, this :: getWarningMessageModel);
MessagePanel warningMessage = new MessagePanel(ID_WARNING_MESSAGE, MessagePanel.MessagePanelType.WARN, getWarningMessageModel());
warningMessage.setOutputMarkupId(true);
warningMessage.add(new VisibleBehaviour(() -> getWarningMessageModel() != null));
form.add(warningMessage);
add(warningMessage);

AjaxButton cancelButton = new AjaxButton(ID_CANCEL_BUTTON,
createStringResource("userBrowserDialog.button.cancelButton")) {
Expand Down Expand Up @@ -109,18 +101,18 @@ public void onClick(AjaxRequestTarget target) {
if (assignmentPanel == null){
return;
}

(((AbstractAssignmentPopupTabPanel) assignmentPanel).getSelectedAssignmentsMap()).forEach((k, v) ->
selectedAssignmentsMap.putIfAbsent((String)k, (AssignmentType) v));


if (AbstractAssignmentPopupTabPanel.class.isAssignableFrom(assignmentPanel.getClass())) {
Map<String, AssignmentType> map = (((AbstractAssignmentPopupTabPanel) assignmentPanel).getSelectedAssignmentsMap());
map.forEach(selectedAssignmentsMap::putIfAbsent);
}
});
List<AssignmentType> assignments = new ArrayList<>(selectedAssignmentsMap.values());
getPageBase().hideMainPopup(target);
addPerformed(target, assignments);
}
};
addButton.add(AttributeAppender.append("title", getAddButtonTitleModel()));
addButton.add(new EnableBehaviour(() -> isAssignButtonEnabled()));
addButton.add(new EnableBehaviour(this::isAssignButtonEnabled));
addButton.setOutputMarkupId(true);
form.add(addButton);
}
Expand Down Expand Up @@ -401,7 +393,7 @@ protected boolean isEntitlementAssignment(){
}

private int getTabPanelSelectedCount(WebMarkupContainer panel){
if (panel != null && panel instanceof AbstractAssignmentPopupTabPanel){
if (panel instanceof AbstractAssignmentPopupTabPanel){
return ((AbstractAssignmentPopupTabPanel) panel).getSelectedObjectsList().size();
}
return 0;
Expand All @@ -428,7 +420,6 @@ private TabbedPanel getTabbedPanel(){
}

protected void addPerformed(AjaxRequestTarget target, List<AssignmentType> newAssignmentsList) {
getPageBase().hideMainPopup(target);
}

private IModel<String> getAddButtonTitleModel(){
Expand Down
@@ -0,0 +1,25 @@
<!--
~ Copyright (c) 2020 Evolveum
~
~ This work is dual-licensed under the Apache License 2.0
~ and European Union Public License. See LICENSE file for details.
-->
<html xmlns:wicket="http://wicket.apache.org">
<body>
<wicket:panel>
<div class="feedback-message box box-solid" wicket:id="detailsBox">
<div class="box-header">
<i class="icon fa " wicket:id="iconType"></i>
<b class="box-title" wicket:id="message">
</b>
<div class="box-tools pull-right">
<div wicket:id="close" data-widget="remove" class="btn btn-box-tool">
<i class="fa fa-times"/>
</div>
</div>
</div>

</div>
</wicket:panel>
</body>
</html>
@@ -0,0 +1,111 @@
/*
* Copyright (c) 2020 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.api.component.result;

import java.io.Serializable;

import org.apache.wicket.AttributeModifier;
import org.apache.wicket.ajax.AjaxRequestTarget;
import org.apache.wicket.ajax.markup.html.AjaxLink;
import org.apache.wicket.behavior.AttributeAppender;
import org.apache.wicket.markup.html.WebMarkupContainer;
import org.apache.wicket.markup.html.basic.Label;
import org.apache.wicket.model.IModel;
import org.apache.wicket.model.PropertyModel;

import com.evolveum.midpoint.gui.api.component.BasePanel;

public class MessagePanel extends BasePanel<String> {

private static final String ID_MESSAGE = "message";

public enum MessagePanelType {INFO, WARN, SUCCESS, ERROR}

private MessagePanelType type;

public MessagePanel(String id, MessagePanelType type, IModel<String> model) {
super(id, model);
this.type = type;

}

@Override
protected void onInitialize() {
super.onInitialize();
initLayout();
}

public void initLayout() {

WebMarkupContainer detailsBox = new WebMarkupContainer("detailsBox");
detailsBox.setOutputMarkupId(true);
detailsBox.add(AttributeModifier.append("class", createHeaderCss()));
add(detailsBox);

initHeader(detailsBox);

}

private IModel<String> createHeaderCss() {

return (IModel<String>) () -> {
switch (type) {
case INFO:
return " box-info";
case SUCCESS:
return " box-success";
case ERROR:
return " box-danger";
case WARN: // TODO:
default:
return " box-warning";
}
};
}

private void initHeader(WebMarkupContainer box) {
WebMarkupContainer iconType = new WebMarkupContainer("iconType");
iconType.setOutputMarkupId(true);
iconType.add(new AttributeAppender("class", (IModel) () -> {

switch (type) {
case INFO:
return " fa-info";
case SUCCESS:
return " fa-check";
case ERROR:
return " fa-ban";
case WARN:
default:
return " fa-warning";
}
}));

box.add(iconType);

Label message = new Label(ID_MESSAGE, getModel());
box.add(message);

AjaxLink<Void> close = new AjaxLink<Void>("close") {

private static final long serialVersionUID = 1L;

@Override
public void onClick(AjaxRequestTarget target) {
close(target);

}
};

box.add(close);
}

public void close(AjaxRequestTarget target){
this.setVisible(false);
target.add(this);
}
}

0 comments on commit 47eb0f2

Please sign in to comment.