You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@syncope.apache.org by md...@apache.org on 2016/01/12 17:50:52 UTC

syncope git commit: [SYNCOPE-755] Only unassigned AnyTypeClasses have to be available to be assigned to types

Repository: syncope
Updated Branches:
  refs/heads/master 4ed984ef6 -> fb416d2d1


[SYNCOPE-755] Only unassigned AnyTypeClasses have to be available to be assigned to types


Project: http://git-wip-us.apache.org/repos/asf/syncope/repo
Commit: http://git-wip-us.apache.org/repos/asf/syncope/commit/fb416d2d
Tree: http://git-wip-us.apache.org/repos/asf/syncope/tree/fb416d2d
Diff: http://git-wip-us.apache.org/repos/asf/syncope/diff/fb416d2d

Branch: refs/heads/master
Commit: fb416d2d1744459b9f52fb3f6b4c38a3e27834e5
Parents: 4ed984e
Author: Marco Di Sabatino Di Diodoro <md...@apache.org>
Authored: Tue Jan 12 17:49:59 2016 +0100
Committer: Marco Di Sabatino Di Diodoro <md...@apache.org>
Committed: Tue Jan 12 17:50:34 2016 +0100

----------------------------------------------------------------------
 .../console/panels/AnyTypeClassesPanel.java     |  2 +-
 .../console/panels/AnyTypeDetailsPanel.java     | 35 ++++++++++++++------
 .../client/console/panels/AnyTypePanel.java     |  6 ++--
 3 files changed, 29 insertions(+), 14 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/syncope/blob/fb416d2d/client/console/src/main/java/org/apache/syncope/client/console/panels/AnyTypeClassesPanel.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/panels/AnyTypeClassesPanel.java b/client/console/src/main/java/org/apache/syncope/client/console/panels/AnyTypeClassesPanel.java
index be9d3c0..a079462 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/panels/AnyTypeClassesPanel.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/panels/AnyTypeClassesPanel.java
@@ -101,8 +101,8 @@ public class AnyTypeClassesPanel extends AbstractTypesPanel<AnyTypeClassTO, AnyT
                         } catch (Exception e) {
                             LOG.error("While creating or updating AnyTypeClassTO", e);
                             error(getString(Constants.ERROR) + ": " + e.getMessage());
-                            modal.getNotificationPanel().refresh(target);
                         }
+                        modal.getNotificationPanel().refresh(target);
                     }
                 };
             }

http://git-wip-us.apache.org/repos/asf/syncope/blob/fb416d2d/client/console/src/main/java/org/apache/syncope/client/console/panels/AnyTypeDetailsPanel.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/panels/AnyTypeDetailsPanel.java b/client/console/src/main/java/org/apache/syncope/client/console/panels/AnyTypeDetailsPanel.java
index 8bda922..1226ddb 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/panels/AnyTypeDetailsPanel.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/panels/AnyTypeDetailsPanel.java
@@ -31,6 +31,7 @@ import org.apache.syncope.common.lib.to.AnyTypeClassTO;
 import org.apache.syncope.common.lib.to.AnyTypeTO;
 import org.apache.syncope.common.lib.types.AnyTypeKind;
 import org.apache.syncope.common.rest.api.service.AnyTypeClassService;
+import org.apache.syncope.common.rest.api.service.AnyTypeService;
 import org.apache.wicket.markup.html.WebMarkupContainer;
 import org.apache.wicket.markup.html.form.Form;
 import org.apache.wicket.markup.html.panel.Panel;
@@ -42,8 +43,11 @@ public class AnyTypeDetailsPanel extends Panel {
 
     private static final long serialVersionUID = 8131650329622035501L;
 
+    private final AnyTypeTO anyTypeTO;
+
     public AnyTypeDetailsPanel(final String id, final AnyTypeTO anyTypeTO) {
         super(id);
+        this.anyTypeTO = anyTypeTO;
 
         final WebMarkupContainer container = new WebMarkupContainer("container");
         container.setOutputMarkupId(true);
@@ -53,8 +57,8 @@ public class AnyTypeDetailsPanel extends Panel {
         form.setModel(new CompoundPropertyModel<>(anyTypeTO));
         container.add(form);
 
-        final AjaxTextFieldPanel key
-                = new AjaxTextFieldPanel("key", getString("key"), new PropertyModel<String>(anyTypeTO, "key"));
+        final AjaxTextFieldPanel key =
+                new AjaxTextFieldPanel("key", getString("key"), new PropertyModel<String>(anyTypeTO, "key"));
         key.addRequiredLabel();
         key.setEnabled(key.getModelObject() == null || key.getModelObject().isEmpty());
         form.add(key);
@@ -71,14 +75,25 @@ public class AnyTypeDetailsPanel extends Panel {
 
         form.add(new AjaxPalettePanel.Builder<String>().setAllowOrder(true).build("classes",
                 new PropertyModel<List<String>>(anyTypeTO, "classes"),
-                new ListModel<>(CollectionUtils.collect(
-                        SyncopeConsoleSession.get().getService(AnyTypeClassService.class).list(),
-                        new Transformer<AnyTypeClassTO, String>() {
+                new ListModel<>(getAvailableAnyTypeClasses())).setOutputMarkupId(true));
+    }
+
+    private List<String> getAvailableAnyTypeClasses() {
+        final List<String> availableAnyTypeClasses = CollectionUtils.collect(
+                SyncopeConsoleSession.get().getService(AnyTypeClassService.class).list(),
+                new Transformer<AnyTypeClassTO, String>() {
 
-                    @Override
-                    public String transform(final AnyTypeClassTO input) {
-                        return input.getKey();
-                    }
-                }, new ArrayList<String>()))).setOutputMarkupId(true));
+            @Override
+            public String transform(final AnyTypeClassTO input) {
+                return input.getKey();
+            }
+        }, new ArrayList<String>());
+
+        for (AnyTypeTO itemTO : SyncopeConsoleSession.get().getService(AnyTypeService.class).list()) {
+            if (anyTypeTO.getKey() == null || !anyTypeTO.getKey().equals(itemTO.getKey())) {
+                availableAnyTypeClasses.removeAll(itemTO.getClasses());
+            }
+        }
+        return availableAnyTypeClasses;
     }
 }

http://git-wip-us.apache.org/repos/asf/syncope/blob/fb416d2d/client/console/src/main/java/org/apache/syncope/client/console/panels/AnyTypePanel.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/panels/AnyTypePanel.java b/client/console/src/main/java/org/apache/syncope/client/console/panels/AnyTypePanel.java
index 3bea20a..a89e469 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/panels/AnyTypePanel.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/panels/AnyTypePanel.java
@@ -104,8 +104,8 @@ public class AnyTypePanel extends AbstractTypesPanel<AnyTypeTO, AnyTypeProvider>
                         } catch (Exception e) {
                             LOG.error("While creating or updating AnyTypeTO", e);
                             error(getString(Constants.ERROR) + ": " + e.getMessage());
-                            modal.getNotificationPanel().refresh(target);
                         }
+                        modal.getNotificationPanel().refresh(target);
                     }
                 };
             }
@@ -203,8 +203,8 @@ public class AnyTypePanel extends AbstractTypesPanel<AnyTypeTO, AnyTypeProvider>
             public void populateItem(final Item<ICellPopulator<AnyTypeTO>> item, final String componentId,
                     final IModel<AnyTypeTO> model) {
 
-                final ActionLinksPanel.Builder<Serializable> actionLinks
-                        = ActionLinksPanel.builder(page.getPageReference());
+                final ActionLinksPanel.Builder<Serializable> actionLinks =
+                        ActionLinksPanel.builder(page.getPageReference());
                 actionLinks.setDisableIndicator(true);
                 actionLinks.addWithRoles(new ActionLink<Serializable>() {