diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/users/PageMergeObjects.html b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/users/PageMergeObjects.html
index bc9306fdcc1..4e68f1a32b3 100644
--- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/users/PageMergeObjects.html
+++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/users/PageMergeObjects.html
@@ -17,9 +17,7 @@
-
\ No newline at end of file
diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/users/PageMergeObjects.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/users/PageMergeObjects.java
index 3a296238b7a..d02b8ab2b89 100644
--- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/users/PageMergeObjects.java
+++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/users/PageMergeObjects.java
@@ -30,13 +30,14 @@ public class PageMergeObjects extends PageBase {
private static final String ID_MERGE_PANEL = "mergePanel";
private F mergeObject;
private F mergeWithObject;
-
+ private Class type;
public PageMergeObjects(){
}
- public PageMergeObjects(F mergeObject, F mergeWithObject){
+ public PageMergeObjects(F mergeObject, F mergeWithObject, Class type){
this.mergeObject = mergeObject;
this.mergeWithObject = mergeWithObject;
+ this.type = type;
initLayout();
}
@@ -47,7 +48,7 @@ private void initLayout(){
warningMessage.setOutputMarkupId(true);
add(warningMessage);
} else {
- MergeObjectsPanel mergePanel = new MergeObjectsPanel(ID_MERGE_PANEL, mergeObject, mergeWithObject);
+ MergeObjectsPanel mergePanel = new MergeObjectsPanel(ID_MERGE_PANEL, mergeObject, mergeWithObject, type);
mergePanel.setOutputMarkupId(true);
add(mergePanel);
}
diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/users/PageUsers.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/users/PageUsers.java
index 8ffa133b651..1f073e78bc3 100644
--- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/users/PageUsers.java
+++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/users/PageUsers.java
@@ -431,7 +431,7 @@ private void deleteConfirmedPerformed(AjaxRequestTarget target) {
getTable().clearCache();
}
- private void mergePerformed(AjaxRequestTarget target, UserType selectedUser) {
+ private void mergePerformed(AjaxRequestTarget target, final UserType selectedUser) {
List supportedTypes = new ArrayList<>();
supportedTypes.add(UserType.COMPLEX_TYPE);
ObjectBrowserPanel panel = new ObjectBrowserPanel(
@@ -440,9 +440,9 @@ private void mergePerformed(AjaxRequestTarget target, UserType selectedUser) {
private static final long serialVersionUID = 1L;
@Override
- protected void addPerformed(AjaxRequestTarget target, QName type, List selected) {
- super.addPerformed(target, type, selected);
-// mergeConfirmedPerformed(selectedUser, );
+ protected void onSelectPerformed(AjaxRequestTarget target, ObjectType user) {
+ hideMainPopup(target);
+ mergeConfirmedPerformed(selectedUser, (UserType) user, target);
}
};
@@ -451,6 +451,7 @@ protected void addPerformed(AjaxRequestTarget target, QName type, List selected)
}
private void mergeConfirmedPerformed(UserType mergeObject, UserType mergeWithObject, AjaxRequestTarget target) {
+ setResponsePage(new PageMergeObjects(mergeObject, mergeWithObject, UserType.class));
}
private void unlockPerformed(AjaxRequestTarget target, UserType selectedUser) {
diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/users/component/MergeObjectDetailsPanel.html b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/users/component/MergeObjectDetailsPanel.html
new file mode 100644
index 00000000000..e82021b36ec
--- /dev/null
+++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/users/component/MergeObjectDetailsPanel.html
@@ -0,0 +1,23 @@
+
+
+
+
+
+
+
+
+
diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/users/component/MergeObjectDetailsPanel.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/users/component/MergeObjectDetailsPanel.java
new file mode 100644
index 00000000000..ee54d57650f
--- /dev/null
+++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/users/component/MergeObjectDetailsPanel.java
@@ -0,0 +1,81 @@
+/**
+ * Copyright (c) 2010-2016 Evolveum
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package com.evolveum.midpoint.web.page.admin.users.component;
+
+import com.evolveum.midpoint.gui.api.component.BasePanel;
+import com.evolveum.midpoint.prism.PrismObject;
+import com.evolveum.midpoint.prism.PrismReference;
+import com.evolveum.midpoint.prism.path.ItemPath;
+import com.evolveum.midpoint.web.component.prism.ObjectWrapper;
+import com.evolveum.midpoint.xml.ns._public.common.common_3.*;
+import org.apache.wicket.markup.html.basic.Label;
+import org.apache.wicket.model.IModel;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * Created by honchar.
+ */
+public class MergeObjectDetailsPanel extends BasePanel {
+ private static final String ID_OBJECT_NAME = "objectName";
+ private static final String ID_OBJECT_FULLNAME = "objectFullName";
+ private static final String ID_OBJECT_ASSIGNMENTS_COUNT = "objectAssignmentsCount";
+ private static final String ID_OBJECT_PROJECTIONS_COUNT = "objectProjectionsCount";
+
+ private F mergeObject;
+
+ public MergeObjectDetailsPanel(String id, F mergeObject, Class type){
+ super(id);
+ this.mergeObject = mergeObject;
+ initLayout(type);
+ }
+
+ private void initLayout(Class type){
+ setOutputMarkupId(true);
+ Label nameLabel = new Label(ID_OBJECT_NAME, mergeObject.getName());
+ add(nameLabel);
+
+ Label fullNameLabel;
+ if (UserType.class.equals(type)){
+ fullNameLabel = new Label(ID_OBJECT_FULLNAME, ((UserType) mergeObject).getFullName());
+ } else {
+ fullNameLabel = new Label(ID_OBJECT_FULLNAME, ((AbstractRoleType) mergeObject).getDisplayName());
+ }
+ add(fullNameLabel);
+
+ Label assignmentsCount = new Label(ID_OBJECT_ASSIGNMENTS_COUNT, getAssignmentsCount());
+ add(assignmentsCount);
+
+ Label projectionsCount = new Label(ID_OBJECT_PROJECTIONS_COUNT, getProjectionsCount());
+ add(projectionsCount);
+
+ }
+
+ private int getProjectionsCount(){
+ if (mergeObject == null){
+ return 0;
+ }
+ List referenceTypes = mergeObject.getLinkRef();
+ return referenceTypes == null ? 0 : referenceTypes.size();
+ }
+
+ private int getAssignmentsCount(){
+ return mergeObject != null ?
+ (mergeObject.getAssignment() != null ? mergeObject.getAssignment().size() : 0)
+ : 0;
+ }
+}
diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/users/component/MergeObjectsPanel.html b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/users/component/MergeObjectsPanel.html
index 71ce6922c3a..56a17addf7e 100644
--- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/users/component/MergeObjectsPanel.html
+++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/users/component/MergeObjectsPanel.html
@@ -1,10 +1,47 @@
-
-
-
-
-
-
-
+
+
-
-
\ No newline at end of file
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/users/component/MergeObjectsPanel.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/users/component/MergeObjectsPanel.java
index 47bb7dbb18f..d0594eb370e 100644
--- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/users/component/MergeObjectsPanel.java
+++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/users/component/MergeObjectsPanel.java
@@ -22,11 +22,40 @@
* Created by honchar.
*/
public class MergeObjectsPanel extends BasePanel{
+ private static final String ID_MERGE_OBJECT_DETAILS_PANEL = "mergeObjectDetailsPanel";
+ private static final String ID_MERGE_WITH_OBJECT_DETAILS_PANEL = "mergeWithObjectDetailsPanel";
+ private static final String ID_MERGE_RESULT_OBJECT_DETAILS_PANEL = "mergeResultObjectDetailsPanel";
+ private static final String ID_PLUS_ICON = "mergeObjectDetailsPanel";
+ private static final String ID_EQUAL_ICON = "mergeObjectDetailsPanel";
+
+ private F mergeObject;
+ private F mergeWithObject;
+ private Class type;
+
public MergeObjectsPanel(String id){
super(id);
}
- public MergeObjectsPanel(String id, F mergeObject, F mergeWithObject){
+ public MergeObjectsPanel(String id, F mergeObject, F mergeWithObject, Class type){
super(id);
+ this.mergeObject = mergeObject;
+ this.mergeWithObject = mergeWithObject;
+ this.type = type;
+ initLayout();
+ }
+
+ private void initLayout(){
+ MergeObjectDetailsPanel mergeObjectPanel = new MergeObjectDetailsPanel(ID_MERGE_OBJECT_DETAILS_PANEL,
+ mergeObject, type);
+ mergeObjectPanel.setOutputMarkupId(true);
+ add(mergeObjectPanel);
+
+ MergeObjectDetailsPanel mergeWithObjectPanel = new MergeObjectDetailsPanel(ID_MERGE_WITH_OBJECT_DETAILS_PANEL,
+ mergeWithObject, type);
+ mergeWithObjectPanel.setOutputMarkupId(true);
+ add(mergeWithObjectPanel);
+
+
+
}
}