You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@syncope.apache.org by fm...@apache.org on 2015/12/31 09:20:14 UTC
[4/4] syncope git commit: [SYNCOPE-156] provides material button for
types by changing to be compliant to the standard use of search tables +
fixes some notifications & icons
[SYNCOPE-156] provides material button for types by changing to be compliant to the standard use of search tables + fixes some notifications & icons
Project: http://git-wip-us.apache.org/repos/asf/syncope/repo
Commit: http://git-wip-us.apache.org/repos/asf/syncope/commit/6a93860d
Tree: http://git-wip-us.apache.org/repos/asf/syncope/tree/6a93860d
Diff: http://git-wip-us.apache.org/repos/asf/syncope/diff/6a93860d
Branch: refs/heads/master
Commit: 6a93860d8deab4a2c1e5cf2c8e75e64c8c5eb27d
Parents: e599033
Author: fmartelli <fa...@gmail.com>
Authored: Thu Dec 31 09:19:54 2015 +0100
Committer: fmartelli <fa...@gmail.com>
Committed: Thu Dec 31 09:19:54 2015 +0100
----------------------------------------------------------------------
.../console/pages/AbstractStatusModalPage.java | 5 +-
.../pages/AnyDisplayAttributesModalPage.java | 8 +-
.../console/pages/BulkActionModalPage.java | 7 +-
.../pages/BulkActionResultModalPage.java | 10 +-
.../pages/DisplayAttributesModalPage.java | 25 +--
.../pages/GroupDisplayAttributesModalPage.java | 11 +-
.../syncope/client/console/pages/Realms.java | 8 +-
.../client/console/pages/ResultStatusModal.java | 168 +++++++++----------
.../syncope/client/console/pages/Roles.java | 25 +--
.../client/console/pages/SecurityQuestions.java | 33 +---
.../client/console/pages/StatusModal.java | 14 +-
.../syncope/client/console/pages/Types.java | 109 +-----------
.../pages/UserDisplayAttributesModalPage.java | 11 +-
.../console/panels/AbstractModalPanel.java | 24 ++-
.../console/panels/AbstractResourceModal.java | 6 +-
.../console/panels/AbstractTypesPanel.java | 83 ++-------
.../console/panels/ActionDataTablePanel.java | 2 +-
.../console/panels/AjaxDataTablePanel.java | 6 +-
.../console/panels/AnyTypeClassModalPanel.java | 6 +-
.../console/panels/AnyTypeClassesPanel.java | 65 ++++---
.../console/panels/AnyTypeDetailsPanel.java | 19 +--
.../console/panels/AnyTypeModalPanel.java | 34 +---
.../client/console/panels/AnyTypePanel.java | 143 +++++++++++-----
.../client/console/panels/ConnectorModal.java | 2 +-
.../client/console/panels/DataTablePanel.java | 3 +-
.../console/panels/FailureMessageModal.java | 5 +-
.../console/panels/GroupSearchResultPanel.java | 2 +-
.../client/console/panels/ModalPanel.java | 5 +-
.../console/panels/NotificationPanel.java | 6 +-
.../syncope/client/console/panels/Realm.java | 7 +-
.../client/console/panels/RealmModalPanel.java | 14 +-
.../panels/RelationshipTypeDetailsPanel.java | 18 +-
.../panels/RelationshipTypeModalPanel.java | 36 +---
.../console/panels/RelationshipTypePanel.java | 144 +++++++++++-----
.../client/console/panels/ResourceModal.java | 62 +++----
.../console/panels/RoleSearchResultPanel.java | 4 +
.../client/console/panels/SchemaModalPanel.java | 2 +-
.../client/console/panels/SchemasPanel.java | 38 ++++-
.../panels/SecurityQuestionDetailsPanel.java | 6 +-
.../panels/SecurityQuestionModalPanel.java | 21 ++-
.../console/panels/SecurityQuestionsPanel.java | 117 +++++++++----
.../console/panels/UserSearchResultPanel.java | 21 +--
.../panels/search/AbstractSearchPanel.java | 29 ----
.../client/console/rest/ResourceRestClient.java | 2 +-
.../client/console/topology/Topology.java | 132 ++++++++-------
.../console/topology/TopologyNodePanel.java | 24 ++-
.../markup/html/bootstrap/dialog/BaseModal.java | 27 ++-
.../wizards/AbstractModalPanelBuilder.java | 86 ++++++++++
.../client/console/wizards/AjaxWizard.java | 5 +-
.../console/wizards/AjaxWizardBuilder.java | 53 +-----
.../client/console/wizards/WizardMgtPanel.java | 42 +++--
.../console/wizards/any/GroupWizardBuilder.java | 4 +-
.../client/console/wizards/any/Resources.java | 2 +-
.../console/wizards/role/RoleWizardBuilder.java | 4 +-
.../syncope/client/console/pages/BasePage.html | 18 +-
.../syncope/client/console/pages/Logs.html | 2 +-
.../syncope/client/console/pages/Roles.html | 7 -
.../client/console/pages/SecurityQuestions.html | 7 -
.../syncope/client/console/pages/Types.html | 24 ---
.../console/panels/AbstractTypesPanel.html | 40 -----
.../console/panels/AnyTypePanel.properties | 18 ++
.../console/panels/AnyTypePanel_it.properties | 18 ++
.../panels/AnyTypePanel_pt_BR.properties | 18 ++
.../panels/RelationshipTypePanel.properties | 18 ++
.../panels/RelationshipTypePanel_it.properties | 18 ++
.../RelationshipTypePanel_pt_BR.properties | 18 ++
.../client/console/panels/SchemasPanel.html | 5 +
.../panels/SecurityQuestionsPanel.properties | 18 ++
.../panels/SecurityQuestionsPanel_it.properties | 18 ++
.../SecurityQuestionsPanel_pt_BR.properties | 18 ++
.../panels/search/AbstractSearchPanel.html | 1 -
71 files changed, 1074 insertions(+), 937 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/syncope/blob/6a93860d/client/console/src/main/java/org/apache/syncope/client/console/pages/AbstractStatusModalPage.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/pages/AbstractStatusModalPage.java b/client/console/src/main/java/org/apache/syncope/client/console/pages/AbstractStatusModalPage.java
index f46ec67..20c71b7 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/pages/AbstractStatusModalPage.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/pages/AbstractStatusModalPage.java
@@ -18,16 +18,17 @@
*/
package org.apache.syncope.client.console.pages;
+import java.io.Serializable;
import org.apache.syncope.client.console.panels.AbstractModalPanel;
import org.apache.syncope.client.console.wicket.markup.html.bootstrap.dialog.BaseModal;
import org.apache.wicket.PageReference;
import org.apache.wicket.markup.html.panel.Fragment;
-public class AbstractStatusModalPage extends AbstractModalPanel {
+public class AbstractStatusModalPage<T extends Serializable> extends AbstractModalPanel<T> {
private static final long serialVersionUID = 6633408683036028540L;
- public AbstractStatusModalPage(final BaseModal<?> modal, final PageReference pageRef) {
+ public AbstractStatusModalPage(final BaseModal<T> modal, final PageReference pageRef) {
super(modal, pageRef);
add(new Fragment("pwdMgtFields", "emptyFragment", this));
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/6a93860d/client/console/src/main/java/org/apache/syncope/client/console/pages/AnyDisplayAttributesModalPage.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/pages/AnyDisplayAttributesModalPage.java b/client/console/src/main/java/org/apache/syncope/client/console/pages/AnyDisplayAttributesModalPage.java
index 1995014..ec43ddc 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/pages/AnyDisplayAttributesModalPage.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/pages/AnyDisplayAttributesModalPage.java
@@ -18,6 +18,7 @@
*/
package org.apache.syncope.client.console.pages;
+import java.io.Serializable;
import java.util.List;
import org.apache.syncope.client.console.commons.Constants;
import org.apache.syncope.client.console.wicket.markup.html.bootstrap.dialog.BaseModal;
@@ -30,8 +31,7 @@ import org.apache.wicket.PageReference;
*
* @param <T> anyTO
*/
-@SuppressWarnings({ "unchecked", "rawtypes" })
-public class AnyDisplayAttributesModalPage<T extends AnyTO> extends DisplayAttributesModalPage {
+public class AnyDisplayAttributesModalPage<T extends Serializable> extends DisplayAttributesModalPage<T> {
private static final long serialVersionUID = 5194630813773543054L;
@@ -40,7 +40,7 @@ public class AnyDisplayAttributesModalPage<T extends AnyTO> extends DisplayAttri
private final String type;
public AnyDisplayAttributesModalPage(
- final BaseModal<?> modal,
+ final BaseModal<T> modal,
final PageReference pageRef,
final List<String> schemaNames,
final List<String> dSchemaNames,
@@ -66,7 +66,7 @@ public class AnyDisplayAttributesModalPage<T extends AnyTO> extends DisplayAttri
}
@Override
- public Class getTOClass() {
+ public Class<? extends AnyTO> getTOClass() {
return AnyObjectTO.class;
}
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/6a93860d/client/console/src/main/java/org/apache/syncope/client/console/pages/BulkActionModalPage.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/pages/BulkActionModalPage.java b/client/console/src/main/java/org/apache/syncope/client/console/pages/BulkActionModalPage.java
index 9a16098..da5aac2 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/pages/BulkActionModalPage.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/pages/BulkActionModalPage.java
@@ -45,12 +45,12 @@ import org.apache.wicket.model.IModel;
import org.apache.wicket.model.ResourceModel;
import org.springframework.beans.BeanUtils;
-public class BulkActionModalPage<T, S> extends AbstractModalPanel {
+public class BulkActionModalPage<T extends Serializable, S> extends AbstractModalPanel<T> {
private static final long serialVersionUID = 4114026480146090962L;
public BulkActionModalPage(
- final BaseModal<?> modal,
+ final BaseModal<T> modal,
final PageReference pageRef,
final Collection<T> items,
final List<IColumn<T, S>> columns,
@@ -88,8 +88,7 @@ public class BulkActionModalPage<T, S> extends AbstractModalPanel {
Integer.MAX_VALUE).setVisible(items != null && !items.isEmpty()));
@SuppressWarnings("rawtypes")
- final ActionLinksPanel<Serializable> actionPanel =
- ActionLinksPanel.builder(pageRef).build("actions");
+ final ActionLinksPanel<Serializable> actionPanel = ActionLinksPanel.builder(pageRef).build("actions");
add(actionPanel);
for (ActionLink.ActionType action : actions) {
http://git-wip-us.apache.org/repos/asf/syncope/blob/6a93860d/client/console/src/main/java/org/apache/syncope/client/console/pages/BulkActionResultModalPage.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/pages/BulkActionResultModalPage.java b/client/console/src/main/java/org/apache/syncope/client/console/pages/BulkActionResultModalPage.java
index c659ddc..aa6a63e 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/pages/BulkActionResultModalPage.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/pages/BulkActionResultModalPage.java
@@ -18,6 +18,7 @@
*/
package org.apache.syncope.client.console.pages;
+import java.io.Serializable;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;
@@ -39,15 +40,14 @@ import org.apache.wicket.model.IModel;
/**
* Show user or group status after performing a successful operation.
*
- * @param <T> type of the object that will be rendered in columns
- * @param <S> type of the sorting parameter
+ * @param <E> type of the inner model object
*/
-public class BulkActionResultModalPage<T, S> extends AbstractModalPanel {
+public class BulkActionResultModalPage<E extends Serializable> extends AbstractModalPanel<E> {
private static final long serialVersionUID = 2646115294319713724L;
- public BulkActionResultModalPage(
- final BaseModal<?> modal,
+ public <T extends Serializable, S> BulkActionResultModalPage(
+ final BaseModal<E> modal,
final PageReference pageRef,
final Collection<T> items,
final List<IColumn<T, S>> columns,
http://git-wip-us.apache.org/repos/asf/syncope/blob/6a93860d/client/console/src/main/java/org/apache/syncope/client/console/pages/DisplayAttributesModalPage.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/pages/DisplayAttributesModalPage.java b/client/console/src/main/java/org/apache/syncope/client/console/pages/DisplayAttributesModalPage.java
index a6c0298..a1ea8b9 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/pages/DisplayAttributesModalPage.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/pages/DisplayAttributesModalPage.java
@@ -18,6 +18,7 @@
*/
package org.apache.syncope.client.console.pages;
+import java.io.Serializable;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@@ -49,8 +50,7 @@ import org.apache.wicket.model.ResourceModel;
*
* @param <T> anyTO
*/
-@SuppressWarnings({ "unchecked", "rawtypes" })
-public abstract class DisplayAttributesModalPage<T extends AnyTO> extends AbstractModalPanel {
+public abstract class DisplayAttributesModalPage<T extends Serializable> extends AbstractModalPanel<T> {
private static final long serialVersionUID = -4274117450918385110L;
@@ -105,8 +105,8 @@ public abstract class DisplayAttributesModalPage<T extends AnyTO> extends Abstra
}
};
- final Form form = new Form(FORM);
- form.setModel(new CompoundPropertyModel(this));
+ final Form<DisplayAttributesModalPage<T>> form = new Form<>(FORM);
+ form.setModel(new CompoundPropertyModel<>(this));
selectedDetails = prefMan.getList(getRequest(), getPrefDetailView());
@@ -114,7 +114,8 @@ public abstract class DisplayAttributesModalPage<T extends AnyTO> extends Abstra
selectedDerSchemas = prefMan.getList(getRequest(), getPrefDerivedAttributeView());
- final CheckGroup dgroup = new CheckGroup("dCheckGroup", new PropertyModel(this, "selectedDetails"));
+ final CheckGroup<String> dgroup
+ = new CheckGroup<>("dCheckGroup", new PropertyModel<List<String>>(this, "selectedDetails"));
form.add(dgroup);
final ListView<String> details = new ListView<String>("details", fnames) {
@@ -123,7 +124,7 @@ public abstract class DisplayAttributesModalPage<T extends AnyTO> extends Abstra
@Override
protected void populateItem(final ListItem<String> item) {
- item.add(new Check("dcheck", item.getModel()));
+ item.add(new Check<>("dcheck", item.getModel()));
item.add(new Label("dname", new ResourceModel(item.getModelObject(), item.getModelObject())));
}
};
@@ -138,7 +139,8 @@ public abstract class DisplayAttributesModalPage<T extends AnyTO> extends Abstra
final Fragment fragment = new Fragment("plainSchemas", "sfragment", form);
form.add(fragment);
- final CheckGroup sgroup = new CheckGroup("psCheckGroup", new PropertyModel(this, "selectedPlainSchemas"));
+ final CheckGroup<String> sgroup
+ = new CheckGroup<>("psCheckGroup", new PropertyModel<List<String>>(this, "selectedPlainSchemas"));
fragment.add(sgroup);
final ListView<String> schemas = new ListView<String>("plainSchemas", names) {
@@ -147,7 +149,7 @@ public abstract class DisplayAttributesModalPage<T extends AnyTO> extends Abstra
@Override
protected void populateItem(final ListItem<String> item) {
- item.add(new Check("scheck", item.getModel()));
+ item.add(new Check<>("scheck", item.getModel()));
item.add(new Label("sname", new ResourceModel(item.getModelObject(), item.getModelObject())));
}
};
@@ -163,7 +165,8 @@ public abstract class DisplayAttributesModalPage<T extends AnyTO> extends Abstra
final Fragment fragment = new Fragment("dschemas", "dsfragment", form);
form.add(fragment);
- final CheckGroup dsgroup = new CheckGroup("dsCheckGroup", new PropertyModel(this, "selectedDerSchemas"));
+ final CheckGroup<String> dsgroup
+ = new CheckGroup<>("dsCheckGroup", new PropertyModel<List<String>>(this, "selectedDerSchemas"));
fragment.add(dsgroup);
final ListView<String> derSchemas = new ListView<String>("derSchemas", dsnames) {
@@ -172,7 +175,7 @@ public abstract class DisplayAttributesModalPage<T extends AnyTO> extends Abstra
@Override
protected void populateItem(final ListItem<String> item) {
- item.add(new Check("dscheck", item.getModel()));
+ item.add(new Check<>("dscheck", item.getModel()));
item.add(new Label("dsname", new ResourceModel(item.getModelObject(), item.getModelObject())));
}
};
@@ -237,6 +240,6 @@ public abstract class DisplayAttributesModalPage<T extends AnyTO> extends Abstra
public abstract String getPrefDerivedAttributeView();
- public abstract Class getTOClass();
+ public abstract Class<? extends AnyTO> getTOClass();
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/6a93860d/client/console/src/main/java/org/apache/syncope/client/console/pages/GroupDisplayAttributesModalPage.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/pages/GroupDisplayAttributesModalPage.java b/client/console/src/main/java/org/apache/syncope/client/console/pages/GroupDisplayAttributesModalPage.java
index 09dbb06..6167c99 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/pages/GroupDisplayAttributesModalPage.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/pages/GroupDisplayAttributesModalPage.java
@@ -18,24 +18,27 @@
*/
package org.apache.syncope.client.console.pages;
+import java.io.Serializable;
import java.util.List;
import org.apache.syncope.client.console.commons.Constants;
import org.apache.syncope.client.console.wicket.markup.html.bootstrap.dialog.BaseModal;
+import org.apache.syncope.common.lib.to.AnyTO;
import org.apache.syncope.common.lib.to.GroupTO;
import org.apache.wicket.PageReference;
/**
* Modal window with Display group attributes form.
+ *
+ * @param <T>
*/
-@SuppressWarnings({ "unchecked", "rawtypes" })
-public class GroupDisplayAttributesModalPage extends DisplayAttributesModalPage {
+public class GroupDisplayAttributesModalPage<T extends Serializable> extends DisplayAttributesModalPage<T> {
private static final long serialVersionUID = 5194630813773543054L;
public static final String[] GROUP_DEFAULT_SELECTION = { "key", "name" };
public GroupDisplayAttributesModalPage(
- final BaseModal<?> modal,
+ final BaseModal<T> modal,
final PageReference pageRef,
final List<String> schemaNames,
final List<String> dSchemaNames) {
@@ -58,7 +61,7 @@ public class GroupDisplayAttributesModalPage extends DisplayAttributesModalPage
}
@Override
- public Class getTOClass() {
+ public Class<? extends AnyTO> getTOClass() {
return GroupTO.class;
}
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/6a93860d/client/console/src/main/java/org/apache/syncope/client/console/pages/Realms.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/pages/Realms.java b/client/console/src/main/java/org/apache/syncope/client/console/pages/Realms.java
index 19c3e0a..25a2064 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/pages/Realms.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/pages/Realms.java
@@ -73,7 +73,6 @@ public class Realms extends BasePage {
public void onClose(final AjaxRequestTarget target) {
target.add(realmSidebarPanel.reloadRealmTree());
target.add(updateRealmContent(realmSidebarPanel.getCurrentRealm()));
-
modal.show(false);
}
});
@@ -148,12 +147,13 @@ public class Realms extends BasePage {
realmRestClient.delete(realmTO.getFullPath());
target.add(realmSidebarPanel.reloadRealmTree());
target.add(updateRealmContent(realmSidebarPanel.getCurrentRealm()));
- info(getString(Constants.OPERATION_SUCCEEDED));
+ getSession().info(getString(Constants.OPERATION_SUCCEEDED));
} catch (Exception e) {
LOG.error("While deleting realm", e);
- error(getString(Constants.ERROR) + ": " + e.getMessage());
+ // Excape line breaks
+ getSession().error(getString(Constants.ERROR) + ": " + e.getMessage().replace("\n", " "));
}
- BasePage.class.cast(getPage()).getNotificationPanel().refresh(target);
+ getNotificationPanel().refresh(target);
}
});
return content;
http://git-wip-us.apache.org/repos/asf/syncope/blob/6a93860d/client/console/src/main/java/org/apache/syncope/client/console/pages/ResultStatusModal.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/pages/ResultStatusModal.java b/client/console/src/main/java/org/apache/syncope/client/console/pages/ResultStatusModal.java
index bd90381..9507941 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/pages/ResultStatusModal.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/pages/ResultStatusModal.java
@@ -64,7 +64,7 @@ import org.apache.wicket.request.resource.ContextRelativeResource;
*
* @param <T> anyTO
*/
-public final class ResultStatusModal<T extends AnyTO> extends AbstractModalPanel {
+public final class ResultStatusModal<T extends AnyTO> extends AbstractModalPanel<T> {
private static final long serialVersionUID = 2646115294319713723L;
@@ -157,87 +157,87 @@ public final class ResultStatusModal<T extends AnyTO> extends AbstractModalPanel
final ListView<PropagationStatus> propRes = new ListView<PropagationStatus>("resources",
propagations) {
- private static final long serialVersionUID = -1020475259727720708L;
+ private static final long serialVersionUID = -1020475259727720708L;
+
+ @Override
+ protected void populateItem(final ListItem<PropagationStatus> item) {
+ final PropagationStatus propTO = (PropagationStatus) item.getDefaultModelObject();
+
+ final ListView<String> attributes = getConnObjectView(propTO);
+
+ final Fragment attrhead;
+ if (attributes.getModelObject() == null || attributes.getModelObject().isEmpty()) {
+ attrhead = new Fragment("attrhead", "emptyAttrHeadFrag", this);
+ } else {
+ attrhead = new Fragment("attrhead", "attrHeadFrag", this);
+ }
+
+ item.add(attrhead);
+ item.add(attributes);
+
+ attrhead.add(new Label("resource", propTO.getResource()));
+
+ attrhead.add(new Label("propagation", propTO.getStatus() == null
+ ? "UNDEFINED" : propTO.getStatus().toString()));
+
+ final Image image;
+ final String alt, title;
+
+ final BaseModal<T> failureWindow = new BaseModal<>("failureWindow");
+
+ final AjaxLink<?> failureWindowLink = new AjaxLink<Void>("showFailureWindow") {
+
+ private static final long serialVersionUID = -7978723352517770644L;
@Override
- protected void populateItem(final ListItem<PropagationStatus> item) {
- final PropagationStatus propTO = (PropagationStatus) item.getDefaultModelObject();
-
- final ListView<String> attributes = getConnObjectView(propTO);
-
- final Fragment attrhead;
- if (attributes.getModelObject() == null || attributes.getModelObject().isEmpty()) {
- attrhead = new Fragment("attrhead", "emptyAttrHeadFrag", this);
- } else {
- attrhead = new Fragment("attrhead", "attrHeadFrag", this);
- }
-
- item.add(attrhead);
- item.add(attributes);
-
- attrhead.add(new Label("resource", propTO.getResource()));
-
- attrhead.add(new Label("propagation", propTO.getStatus() == null
- ? "UNDEFINED" : propTO.getStatus().toString()));
-
- final Image image;
- final String alt, title;
-
- final BaseModal<?> failureWindow = new BaseModal<>("failureWindow");
-
- final AjaxLink<?> failureWindowLink = new AjaxLink<Void>("showFailureWindow") {
-
- private static final long serialVersionUID = -7978723352517770644L;
-
- @Override
- public void onClick(final AjaxRequestTarget target) {
- failureWindow.show(target);
- }
- };
-
- switch (propTO.getStatus()) {
-
- case SUCCESS:
- case CREATED:
- image = new Image("icon",
- new ContextRelativeResource(IMG_PREFIX + Status.ACTIVE.toString()
- + Constants.PNG_EXT));
- alt = "success icon";
- title = "success";
- failureWindow.setVisible(false);
- failureWindowLink.setEnabled(false);
- break;
-
- default:
- image = new Image("icon",
- new ContextRelativeResource(IMG_PREFIX + Status.SUSPENDED.toString()
- + Constants.PNG_EXT));
- alt = "failure icon";
- title = "failure";
- }
-
- image.add(new Behavior() {
-
- private static final long serialVersionUID = 1469628524240283489L;
-
- @Override
- public void onComponentTag(final Component component, final ComponentTag tag) {
- tag.put("alt", alt);
- tag.put("title", title);
- }
- });
- final FailureMessageModal executionFailureMessagePage;
- if (propTO.getFailureReason() == null) {
- executionFailureMessagePage = new FailureMessageModal(
- modal, pageRef, StringUtils.EMPTY);
- } else {
- executionFailureMessagePage = new FailureMessageModal(
- modal, pageRef, propTO.getFailureReason());
- }
-
- failureWindow.setContent(executionFailureMessagePage);
+ public void onClick(final AjaxRequestTarget target) {
+ failureWindow.show(target);
}
};
+
+ switch (propTO.getStatus()) {
+
+ case SUCCESS:
+ case CREATED:
+ image = new Image("icon",
+ new ContextRelativeResource(IMG_PREFIX + Status.ACTIVE.toString()
+ + Constants.PNG_EXT));
+ alt = "success icon";
+ title = "success";
+ failureWindow.setVisible(false);
+ failureWindowLink.setEnabled(false);
+ break;
+
+ default:
+ image = new Image("icon",
+ new ContextRelativeResource(IMG_PREFIX + Status.SUSPENDED.toString()
+ + Constants.PNG_EXT));
+ alt = "failure icon";
+ title = "failure";
+ }
+
+ image.add(new Behavior() {
+
+ private static final long serialVersionUID = 1469628524240283489L;
+
+ @Override
+ public void onComponentTag(final Component component, final ComponentTag tag) {
+ tag.put("alt", alt);
+ tag.put("title", title);
+ }
+ });
+ final FailureMessageModal<T> executionFailureMessagePage;
+ if (propTO.getFailureReason() == null) {
+ executionFailureMessagePage = new FailureMessageModal<>(
+ modal, pageRef, StringUtils.EMPTY);
+ } else {
+ executionFailureMessagePage = new FailureMessageModal<>(
+ modal, pageRef, propTO.getFailureReason());
+ }
+
+ failureWindow.setContent(executionFailureMessagePage);
+ }
+ };
fragment.add(propRes);
}
@@ -343,14 +343,12 @@ public final class ResultStatusModal<T extends AnyTO> extends AbstractModalPanel
if (attr == null || attr.getValues() == null || attr.getValues().isEmpty()) {
value = "";
+ } else if (ConnIdSpecialAttributeName.PASSWORD.equals(attrName)) {
+ value = "********";
} else {
- if (ConnIdSpecialAttributeName.PASSWORD.equals(attrName)) {
- value = "********";
- } else {
- value = attr.getValues().size() > 1
- ? attr.getValues().toString()
- : attr.getValues().get(0);
- }
+ value = attr.getValues().size() > 1
+ ? attr.getValues().toString()
+ : attr.getValues().get(0);
}
Component label = new Label("value", value.length() > 50 ? value.substring(0, 50) + "..." : value).
http://git-wip-us.apache.org/repos/asf/syncope/blob/6a93860d/client/console/src/main/java/org/apache/syncope/client/console/pages/Roles.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/pages/Roles.java b/client/console/src/main/java/org/apache/syncope/client/console/pages/Roles.java
index 7910c9a..8f7e7f1 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/pages/Roles.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/pages/Roles.java
@@ -18,20 +18,12 @@
*/
package org.apache.syncope.client.console.pages;
-import static org.apache.wicket.Component.ENABLE;
-
import org.apache.syncope.client.console.panels.RoleSearchResultPanel;
import org.apache.syncope.client.console.wicket.markup.html.bootstrap.dialog.BaseModal;
-import org.apache.syncope.client.console.wizards.AjaxWizard;
import org.apache.syncope.client.console.wizards.WizardMgtPanel;
import org.apache.syncope.client.console.wizards.role.RoleHandler;
import org.apache.syncope.client.console.wizards.role.RoleWizardBuilder;
import org.apache.syncope.common.lib.to.RoleTO;
-import org.apache.syncope.common.lib.types.StandardEntitlement;
-import org.apache.wicket.ajax.AjaxRequestTarget;
-import org.apache.wicket.ajax.markup.html.AjaxLink;
-import org.apache.wicket.authroles.authorization.strategies.role.metadata.MetaDataRoleAuthorizationStrategy;
-import org.apache.wicket.event.Broadcast;
import org.apache.wicket.markup.html.WebMarkupContainer;
import org.apache.wicket.markup.html.basic.Label;
import org.apache.wicket.model.Model;
@@ -54,21 +46,8 @@ public class Roles extends BasePage {
private static final long serialVersionUID = -5960765294082359003L;
- }.addNewItemPanelBuilder(new RoleWizardBuilder(BaseModal.CONTENT_ID, new RoleTO(), getPageReference()), false).
- build("roles");
-
- final AjaxLink<RoleTO> createLink = new AjaxLink<RoleTO>("add") {
-
- private static final long serialVersionUID = 1L;
-
- @Override
- public void onClick(final AjaxRequestTarget target) {
- send(roleSearchResultPanel, Broadcast.EXACT, new AjaxWizard.NewItemActionEvent<RoleTO>(null, target));
- }
- };
-
- content.add(createLink);
- MetaDataRoleAuthorizationStrategy.authorize(createLink, ENABLE, StandardEntitlement.ROLE_CREATE);
+ }.addNewItemPanelBuilder(new RoleWizardBuilder(BaseModal.CONTENT_ID, new RoleTO(), getPageReference()), true)
+ .build("roles");
content.add(roleSearchResultPanel);
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/6a93860d/client/console/src/main/java/org/apache/syncope/client/console/pages/SecurityQuestions.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/pages/SecurityQuestions.java b/client/console/src/main/java/org/apache/syncope/client/console/pages/SecurityQuestions.java
index 6b0df50..83686bc 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/pages/SecurityQuestions.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/pages/SecurityQuestions.java
@@ -18,21 +18,13 @@
*/
package org.apache.syncope.client.console.pages;
-import de.agilecoders.wicket.core.markup.html.bootstrap.dialog.Modal;
-import org.apache.syncope.client.console.SyncopeConsoleSession;
-import org.apache.syncope.client.console.panels.SecurityQuestionModalPanel;
import org.apache.syncope.client.console.panels.SecurityQuestionsPanel;
import org.apache.syncope.client.console.wicket.markup.html.bootstrap.dialog.BaseModal;
import org.apache.syncope.common.lib.to.SecurityQuestionTO;
-import org.apache.syncope.common.lib.types.StandardEntitlement;
import org.apache.wicket.ajax.AjaxRequestTarget;
-import org.apache.wicket.ajax.markup.html.AjaxLink;
-import org.apache.wicket.authroles.authorization.strategies.role.metadata.MetaDataRoleAuthorizationStrategy;
-import org.apache.wicket.extensions.ajax.markup.html.IndicatingAjaxLink;
import org.apache.wicket.extensions.ajax.markup.html.modal.ModalWindow;
import org.apache.wicket.markup.html.WebMarkupContainer;
import org.apache.wicket.markup.html.basic.Label;
-import org.apache.wicket.model.ResourceModel;
import org.apache.wicket.request.mapper.parameter.PageParameters;
public class SecurityQuestions extends BasePage {
@@ -55,30 +47,7 @@ public class SecurityQuestions extends BasePage {
addWindowWindowClosedCallback(securityQuestionModal);
add(securityQuestionModal);
- final AjaxLink<Void> createLink = new IndicatingAjaxLink<Void>("createSecurityQuestion") {
-
- private static final long serialVersionUID = -7978723352517770644L;
-
- @Override
- public void onClick(final AjaxRequestTarget target) {
- securityQuestionModal.header(new ResourceModel("createSecurityQuestion"));
- securityQuestionModal.setFormModel(new SecurityQuestionTO());
- securityQuestionModal.size(Modal.Size.Large);
- target.add(securityQuestionModal.setContent(
- new SecurityQuestionModalPanel(securityQuestionModal, getPageReference(), true)));
- securityQuestionModal.addSumbitButton();
- securityQuestionModal.show(true);
- }
- };
- content.add(createLink);
-
- if (SyncopeConsoleSession.get().owns(StandardEntitlement.SECURITY_QUESTION_CREATE)) {
- MetaDataRoleAuthorizationStrategy.authorize(
- createLink, ENABLE, StandardEntitlement.SECURITY_QUESTION_CREATE);
- }
-
- securityQuestionsPanel = new SecurityQuestionsPanel(
- "securityQuestionPanel", getPageReference(), securityQuestionModal);
+ securityQuestionsPanel = new SecurityQuestionsPanel("securityQuestionPanel", getPageReference());
securityQuestionsPanel.setOutputMarkupId(true);
content.add(securityQuestionsPanel);
http://git-wip-us.apache.org/repos/asf/syncope/blob/6a93860d/client/console/src/main/java/org/apache/syncope/client/console/pages/StatusModal.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/pages/StatusModal.java b/client/console/src/main/java/org/apache/syncope/client/console/pages/StatusModal.java
index d59088a..5718dab 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/pages/StatusModal.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/pages/StatusModal.java
@@ -64,7 +64,7 @@ import org.apache.wicket.model.Model;
import org.apache.wicket.model.ResourceModel;
import org.apache.wicket.model.StringResourceModel;
-public class StatusModal<T extends AnyTO> extends AbstractStatusModalPage {
+public class StatusModal<T extends Serializable> extends AbstractStatusModalPage<T> {
private static final long serialVersionUID = -9148734710505211261L;
@@ -103,15 +103,15 @@ public class StatusModal<T extends AnyTO> extends AbstractStatusModalPage {
private final List<IColumn<StatusBean, String>> columns;
public StatusModal(
- final BaseModal<?> modal,
+ final BaseModal<T> modal,
final PageReference pageRef,
- final AnyTO attributableTO) {
+ final AnyTO anyTO) {
- this(modal, pageRef, attributableTO, false);
+ this(modal, pageRef, anyTO, false);
}
public StatusModal(
- final BaseModal<?> modal,
+ final BaseModal<T> modal,
final PageReference pageRef,
final AnyTO anyTO,
final boolean statusOnly) {
@@ -547,8 +547,8 @@ public class StatusModal<T extends AnyTO> extends AbstractStatusModalPage {
final ResourceAssociationAction type,
final Collection<StatusBean> selection) {
- final IndicatingAjaxButton goon =
- new IndicatingAjaxButton("continue", new ResourceModel("continue", "Continue")) {
+ final IndicatingAjaxButton goon
+ = new IndicatingAjaxButton("continue", new ResourceModel("continue", "Continue")) {
private static final long serialVersionUID = -2341391430136818027L;
http://git-wip-us.apache.org/repos/asf/syncope/blob/6a93860d/client/console/src/main/java/org/apache/syncope/client/console/pages/Types.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/pages/Types.java b/client/console/src/main/java/org/apache/syncope/client/console/pages/Types.java
index f1d2bbb..4869a98 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/pages/Types.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/pages/Types.java
@@ -18,39 +18,24 @@
*/
package org.apache.syncope.client.console.pages;
-import de.agilecoders.wicket.core.markup.html.bootstrap.dialog.Modal;
import de.agilecoders.wicket.core.markup.html.bootstrap.tabs.AjaxBootstrapTabbedPanel;
import java.util.ArrayList;
import java.util.List;
-import org.apache.syncope.client.console.SyncopeConsoleSession;
-import org.apache.syncope.client.console.panels.AnyTypeClassModalPanel;
import org.apache.syncope.client.console.panels.AnyTypeClassesPanel;
-import org.apache.syncope.client.console.panels.AnyTypeModalPanel;
import org.apache.syncope.client.console.panels.AnyTypePanel;
-import org.apache.syncope.client.console.panels.ModalPanel;
-import org.apache.syncope.client.console.panels.RelationshipTypeModalPanel;
import org.apache.syncope.client.console.panels.RelationshipTypePanel;
import org.apache.syncope.client.console.panels.SchemasPanel;
import org.apache.syncope.client.console.wicket.markup.html.bootstrap.dialog.BaseModal;
import org.apache.syncope.common.lib.to.AbstractSchemaTO;
import org.apache.wicket.ajax.AjaxRequestTarget;
-import org.apache.wicket.ajax.markup.html.AjaxLink;
-import org.apache.wicket.authroles.authorization.strategies.role.metadata.MetaDataRoleAuthorizationStrategy;
import org.apache.wicket.extensions.markup.html.tabs.AbstractTab;
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.panel.Panel;
import org.apache.wicket.model.Model;
-import org.apache.wicket.model.ResourceModel;
import org.apache.wicket.request.mapper.parameter.PageParameters;
-import org.apache.syncope.client.console.panels.SchemaModalPanel;
import org.apache.syncope.common.lib.to.AnyTypeClassTO;
-import org.apache.syncope.common.lib.to.AnyTypeTO;
-import org.apache.syncope.common.lib.to.PlainSchemaTO;
-import org.apache.syncope.common.lib.to.RelationshipTypeTO;
-import org.apache.syncope.common.lib.types.StandardEntitlement;
-import org.apache.wicket.extensions.ajax.markup.html.IndicatingAjaxLink;
import org.apache.wicket.extensions.ajax.markup.html.modal.ModalWindow;
public class Types extends BasePage {
@@ -61,10 +46,6 @@ public class Types extends BasePage {
private final BaseModal<AnyTypeClassTO> anyTypeClassModal;
- private final BaseModal<AnyTypeTO> anyTypeModal;
-
- private final BaseModal<RelationshipTypeTO> relationshipTypeModal;
-
private final AjaxBootstrapTabbedPanel<ITab> tabbedPanel;
private enum Type {
@@ -72,6 +53,7 @@ public class Types extends BasePage {
ANYTYPECLASS,
ANYTYPE,
RELATIONSHIPTYPE;
+
}
public Types(final PageParameters parameters) {
@@ -79,8 +61,6 @@ public class Types extends BasePage {
this.schemaModal = new BaseModal<>("schemaModal");
this.anyTypeClassModal = new BaseModal<>("anyTypeClassModal");
- this.anyTypeModal = new BaseModal<>("anyTypeModal");
- this.relationshipTypeModal = new BaseModal<>("relationshipTypeModal");
final WebMarkupContainer content = new WebMarkupContainer("content");
content.add(new Label("header", "Types"));
@@ -88,50 +68,11 @@ public class Types extends BasePage {
tabbedPanel = new AjaxBootstrapTabbedPanel<>("tabbedPanel", buildTabList());
content.add(tabbedPanel);
- final AjaxLink<Void> createSchemaLink =
- buildCreateLink("createSchema", schemaModal, Type.SCHEMA);
- content.add(createSchemaLink);
-
- if (SyncopeConsoleSession.get().owns(StandardEntitlement.SCHEMA_CREATE)) {
- MetaDataRoleAuthorizationStrategy.authorize(createSchemaLink, ENABLE, StandardEntitlement.SCHEMA_CREATE);
- }
-
- final AjaxLink<Void> createAnyTypeClassLink =
- buildCreateLink("createAnyTypeClass", anyTypeClassModal, Type.ANYTYPECLASS);
- content.add(createAnyTypeClassLink);
-
- if (SyncopeConsoleSession.get().owns(StandardEntitlement.ANYTYPECLASS_CREATE)) {
- MetaDataRoleAuthorizationStrategy.authorize(
- createAnyTypeClassLink, ENABLE, StandardEntitlement.ANYTYPECLASS_CREATE);
- }
-
- final AjaxLink<Void> createAnyTypeLink =
- buildCreateLink("createAnyType", anyTypeModal, Type.ANYTYPE);
- content.add(createAnyTypeLink);
-
- if (SyncopeConsoleSession.get().owns(StandardEntitlement.ANYTYPE_CREATE)) {
- MetaDataRoleAuthorizationStrategy.authorize(
- createAnyTypeLink, ENABLE, StandardEntitlement.ANYTYPE_CREATE);
- }
-
- final AjaxLink<Void> createRelationshipTypeLink =
- buildCreateLink("createRelationshipType", relationshipTypeModal, Type.RELATIONSHIPTYPE);
- content.add(createRelationshipTypeLink);
-
- if (SyncopeConsoleSession.get().owns(StandardEntitlement.RELATIONSHIPTYPE_CREATE)) {
- MetaDataRoleAuthorizationStrategy.authorize(
- createRelationshipTypeLink, ENABLE, StandardEntitlement.RELATIONSHIPTYPE_CREATE);
- }
-
add(content);
addWindowWindowClosedCallback(schemaModal);
addWindowWindowClosedCallback(anyTypeClassModal);
- addWindowWindowClosedCallback(anyTypeModal);
- addWindowWindowClosedCallback(relationshipTypeModal);
add(schemaModal);
add(anyTypeClassModal);
- add(anyTypeModal);
- add(relationshipTypeModal);
}
private List<ITab> buildTabList() {
@@ -144,7 +85,7 @@ public class Types extends BasePage {
@Override
public Panel getPanel(final String panelId) {
- return new RelationshipTypePanel(panelId, getPageReference(), relationshipTypeModal);
+ return new RelationshipTypePanel(panelId, getPageReference());
}
});
@@ -154,7 +95,7 @@ public class Types extends BasePage {
@Override
public Panel getPanel(final String panelId) {
- return new AnyTypePanel(panelId, getPageReference(), anyTypeModal);
+ return new AnyTypePanel(panelId, getPageReference());
}
});
@@ -181,50 +122,6 @@ public class Types extends BasePage {
return tabs;
}
- private AjaxLink<Void> buildCreateLink(final String label, final BaseModal<?> modal, final Type type) {
-
- final AjaxLink<Void> createLink = new IndicatingAjaxLink<Void>(label) {
-
- private static final long serialVersionUID = -7978723352517770644L;
-
- @Override
- public void onClick(final AjaxRequestTarget target) {
- modal.header(new ResourceModel(label));
- target.add(modal.setContent(buildModalPanel(type)));
- modal.addSumbitButton();
- modal.show(true);
- }
- };
-
- return createLink;
- }
-
- private ModalPanel buildModalPanel(final Type type) {
- final ModalPanel panel;
- switch (type) {
- case ANYTYPECLASS:
- anyTypeClassModal.setFormModel(new AnyTypeClassTO());
- anyTypeClassModal.size(Modal.Size.Large);
- panel = new AnyTypeClassModalPanel(anyTypeClassModal, getPageReference(), true);
- break;
- case ANYTYPE:
- anyTypeModal.setFormModel(new AnyTypeTO());
- anyTypeModal.size(Modal.Size.Large);
- panel = new AnyTypeModalPanel(anyTypeModal, getPageReference(), true);
- break;
- case RELATIONSHIPTYPE:
- relationshipTypeModal.setFormModel(new RelationshipTypeTO());
- relationshipTypeModal.size(Modal.Size.Medium);
- panel = new RelationshipTypeModalPanel(relationshipTypeModal, getPageReference(), true);
- break;
- case SCHEMA:
- default:
- schemaModal.setFormModel(new PlainSchemaTO());
- panel = new SchemaModalPanel(schemaModal, getPageReference(), true);
- }
- return panel;
- }
-
private void addWindowWindowClosedCallback(final BaseModal<?> modal) {
modal.setWindowClosedCallback(new ModalWindow.WindowClosedCallback() {
http://git-wip-us.apache.org/repos/asf/syncope/blob/6a93860d/client/console/src/main/java/org/apache/syncope/client/console/pages/UserDisplayAttributesModalPage.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/pages/UserDisplayAttributesModalPage.java b/client/console/src/main/java/org/apache/syncope/client/console/pages/UserDisplayAttributesModalPage.java
index 0529f9f..307e61c 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/pages/UserDisplayAttributesModalPage.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/pages/UserDisplayAttributesModalPage.java
@@ -18,24 +18,27 @@
*/
package org.apache.syncope.client.console.pages;
+import java.io.Serializable;
import java.util.List;
import org.apache.syncope.client.console.commons.Constants;
import org.apache.syncope.client.console.wicket.markup.html.bootstrap.dialog.BaseModal;
+import org.apache.syncope.common.lib.to.AnyTO;
import org.apache.syncope.common.lib.to.UserTO;
import org.apache.wicket.PageReference;
/**
* Modal window with Display user attributes form.
+ *
+ * @param <T>
*/
-@SuppressWarnings({ "unchecked", "rawtypes" })
-public class UserDisplayAttributesModalPage extends DisplayAttributesModalPage {
+public class UserDisplayAttributesModalPage<T extends Serializable> extends DisplayAttributesModalPage<T> {
private static final long serialVersionUID = 5194630813773543054L;
public static final String[] USER_DEFAULT_SELECTION = { "key", "username", "status" };
public UserDisplayAttributesModalPage(
- final BaseModal<?> modal,
+ final BaseModal<T> modal,
final PageReference pageRef,
final List<String> schemaNames,
final List<String> dSchemaNames) {
@@ -58,7 +61,7 @@ public class UserDisplayAttributesModalPage extends DisplayAttributesModalPage {
}
@Override
- public Class getTOClass() {
+ public Class<? extends AnyTO> getTOClass() {
return UserTO.class;
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/6a93860d/client/console/src/main/java/org/apache/syncope/client/console/panels/AbstractModalPanel.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/panels/AbstractModalPanel.java b/client/console/src/main/java/org/apache/syncope/client/console/panels/AbstractModalPanel.java
index 3811873..dae4216 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/panels/AbstractModalPanel.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/panels/AbstractModalPanel.java
@@ -18,8 +18,11 @@
*/
package org.apache.syncope.client.console.panels;
+import java.io.Serializable;
import org.apache.syncope.client.console.wicket.markup.head.MetaHeaderItem;
import org.apache.syncope.client.console.wicket.markup.html.bootstrap.dialog.BaseModal;
+import org.apache.wicket.Component;
+import org.apache.wicket.MarkupContainer;
import org.apache.wicket.PageReference;
import org.apache.wicket.ajax.AjaxRequestTarget;
import org.apache.wicket.markup.head.HeaderItem;
@@ -30,13 +33,13 @@ import org.apache.wicket.markup.html.panel.Panel;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-public class AbstractModalPanel extends Panel implements ModalPanel {
+public class AbstractModalPanel<T extends Serializable> extends Panel implements ModalPanel<T> {
private static final long serialVersionUID = 8611724965544132636L;
protected static final Logger LOG = LoggerFactory.getLogger(AbstractModalPanel.class);
- protected final BaseModal<?> modal;
+ protected final BaseModal<T> modal;
protected static final String CANCEL = "cancel";
@@ -50,13 +53,23 @@ public class AbstractModalPanel extends Panel implements ModalPanel {
protected final HeaderItem meta = new MetaHeaderItem("X-UA-Compatible", "IE=edge");
- public AbstractModalPanel(final BaseModal<?> modal, final PageReference pageRef) {
+ public AbstractModalPanel(final BaseModal<T> modal, final PageReference pageRef) {
super(BaseModal.getContentId());
this.pageRef = pageRef;
this.modal = modal;
}
@Override
+ public final MarkupContainer add(final Component... childs) {
+ return super.add(childs);
+ }
+
+ @Override
+ public final MarkupContainer addOrReplace(final Component... childs) {
+ return super.addOrReplace(childs);
+ }
+
+ @Override
public void renderHead(final IHeaderResponse response) {
super.renderHead(response);
response.render(new PriorityHeaderItem(meta));
@@ -75,4 +88,9 @@ public class AbstractModalPanel extends Panel implements ModalPanel {
public void onError(final AjaxRequestTarget target, final Form<?> form) {
modal.getNotificationPanel().refresh(target);
}
+
+ @Override
+ public T getItem() {
+ return modal.getFormModel();
+ }
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/6a93860d/client/console/src/main/java/org/apache/syncope/client/console/panels/AbstractResourceModal.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/panels/AbstractResourceModal.java b/client/console/src/main/java/org/apache/syncope/client/console/panels/AbstractResourceModal.java
index 68fcc19..a4446ff 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/panels/AbstractResourceModal.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/panels/AbstractResourceModal.java
@@ -33,14 +33,16 @@ import org.apache.wicket.markup.html.form.Form;
/**
* Modal window with Resource form.
+ *
+ * @param <T>
*/
-public abstract class AbstractResourceModal extends AbstractModalPanel {
+public abstract class AbstractResourceModal<T extends Serializable> extends AbstractModalPanel<T> {
private static final long serialVersionUID = 1734415311027284221L;
protected final List<ITab> tabs;
- public AbstractResourceModal(final BaseModal<?> modal, final PageReference pageRef) {
+ public AbstractResourceModal(final BaseModal<T> modal, final PageReference pageRef) {
super(modal, pageRef);
this.tabs = new ArrayList<>();
http://git-wip-us.apache.org/repos/asf/syncope/blob/6a93860d/client/console/src/main/java/org/apache/syncope/client/console/panels/AbstractTypesPanel.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/panels/AbstractTypesPanel.java b/client/console/src/main/java/org/apache/syncope/client/console/panels/AbstractTypesPanel.java
index cad794e..fd9f547 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/panels/AbstractTypesPanel.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/panels/AbstractTypesPanel.java
@@ -18,83 +18,20 @@
*/
package org.apache.syncope.client.console.panels;
-import java.util.List;
-import org.apache.syncope.client.console.PreferenceManager;
-import org.apache.syncope.client.console.commons.Constants;
-import org.apache.syncope.client.console.wicket.extensions.markup.html.repeater.data.table.AjaxFallbackDataTable;
-import org.apache.syncope.client.console.wicket.markup.html.form.SelectChoiceRenderer;
+import de.agilecoders.wicket.core.markup.html.bootstrap.dialog.Modal;
+import org.apache.syncope.client.console.commons.SearchableDataProvider;
+import org.apache.syncope.client.console.rest.BaseRestClient;
import org.apache.syncope.common.lib.AbstractBaseBean;
-import org.apache.wicket.PageReference;
-import org.apache.wicket.ajax.AjaxRequestTarget;
-import org.apache.wicket.ajax.form.AjaxFormComponentUpdatingBehavior;
-import org.apache.wicket.extensions.markup.html.repeater.data.table.IColumn;
-import org.apache.wicket.extensions.markup.html.repeater.util.SortableDataProvider;
-import org.apache.wicket.markup.html.WebMarkupContainer;
-import org.apache.wicket.markup.html.form.DropDownChoice;
-import org.apache.wicket.markup.html.form.Form;
-import org.apache.wicket.markup.html.panel.Panel;
-import org.apache.wicket.model.PropertyModel;
-public class AbstractTypesPanel<T extends AbstractBaseBean> extends Panel {
+public abstract class AbstractTypesPanel<T extends AbstractBaseBean, DP extends SearchableDataProvider<T>>
+ extends AbstractSearchResultPanel<T, T, DP, BaseRestClient> {
private static final long serialVersionUID = 7890071604330629259L;
- protected final PreferenceManager prefMan = new PreferenceManager();
-
- protected final PageReference pageRef;
-
- protected int pageRows;
-
- public AbstractTypesPanel(final String id, final PageReference pageRef) {
- super(id);
- this.pageRef = pageRef;
- }
-
- protected void buildDataTable(final WebMarkupContainer container, final List<IColumn<T, String>> tableCols,
- final SortableDataProvider<T, String> provider, final String paginatorKey) {
-
- final WebMarkupContainer tableContainer = new WebMarkupContainer("tableContainer");
-
- tableContainer.setOutputMarkupId(true);
- container.add(tableContainer);
-
- final AjaxFallbackDataTable<T, String> table =
- new AjaxFallbackDataTable<>("datatable",
- tableCols, provider, pageRows, tableContainer);
-
- table.setOutputMarkupId(true);
- tableContainer.add(table);
- container.add(getPaginatorForm(tableContainer, table, "paginator", this, paginatorKey));
- }
-
- protected Form<Void> getPaginatorForm(final WebMarkupContainer webContainer,
- final AjaxFallbackDataTable<T, String> dataTable,
- final String formname, final Panel panel, final String rowsPerPagePrefName) {
-
- final Form<Void> form = new Form<>(formname);
-
- final DropDownChoice<Integer> rowChooser = new DropDownChoice<>("rowsChooser",
- new PropertyModel<Integer>(panel, "pageRows"), prefMan.getPaginatorChoices(),
- new SelectChoiceRenderer<Integer>());
-
- rowChooser.add(new AjaxFormComponentUpdatingBehavior(Constants.ON_CHANGE) {
-
- private static final long serialVersionUID = -1107858522700306810L;
-
- @Override
- protected void onUpdate(final AjaxRequestTarget target) {
- prefMan.set(getRequest(), getResponse(), rowsPerPagePrefName, rowChooser.getInput());
- dataTable.setItemsPerPage(rowChooser.getModelObject());
- target.add(webContainer);
- }
- });
-
- form.add(rowChooser);
- return form;
- }
-
- protected int getPageRows() {
- return pageRows;
+ public AbstractTypesPanel(final String id, final Builder<T, T, BaseRestClient> builder) {
+ super(id, builder);
+ setFooterVisibility(true);
+ modal.addSumbitButton();
+ modal.size(Modal.Size.Large);
}
}
-
http://git-wip-us.apache.org/repos/asf/syncope/blob/6a93860d/client/console/src/main/java/org/apache/syncope/client/console/panels/ActionDataTablePanel.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/panels/ActionDataTablePanel.java b/client/console/src/main/java/org/apache/syncope/client/console/panels/ActionDataTablePanel.java
index 8c063b2..65e9ca1 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/panels/ActionDataTablePanel.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/panels/ActionDataTablePanel.java
@@ -40,7 +40,7 @@ import org.apache.wicket.markup.html.WebMarkupContainer;
import org.apache.wicket.markup.html.form.Form;
import org.apache.wicket.model.ResourceModel;
-public class ActionDataTablePanel<T, S> extends DataTablePanel<T, S> {
+public class ActionDataTablePanel<T extends Serializable, S> extends DataTablePanel<T, S> {
private static final long serialVersionUID = -8826989026203543957L;
http://git-wip-us.apache.org/repos/asf/syncope/blob/6a93860d/client/console/src/main/java/org/apache/syncope/client/console/panels/AjaxDataTablePanel.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/panels/AjaxDataTablePanel.java b/client/console/src/main/java/org/apache/syncope/client/console/panels/AjaxDataTablePanel.java
index f740fc3..6a5b596 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/panels/AjaxDataTablePanel.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/panels/AjaxDataTablePanel.java
@@ -45,11 +45,11 @@ import org.apache.wicket.markup.html.form.CheckGroup;
import org.apache.wicket.markup.html.form.Form;
import org.apache.wicket.markup.html.panel.Fragment;
-public final class AjaxDataTablePanel<T, S> extends DataTablePanel<T, S> {
+public final class AjaxDataTablePanel<T extends Serializable, S> extends DataTablePanel<T, S> {
private static final long serialVersionUID = -7264400471578272966L;
- public static class Builder<T, S> implements Serializable {
+ public static class Builder<T extends Serializable, S> implements Serializable {
private static final long serialVersionUID = 8876232177473972722L;
@@ -148,7 +148,7 @@ public final class AjaxDataTablePanel<T, S> extends DataTablePanel<T, S> {
super(id);
- final BaseModal<?> bulkModalWin = new BaseModal<>("bulkModal");
+ final BaseModal<T> bulkModalWin = new BaseModal<>("bulkModal");
add(bulkModalWin);
bulkModalWin.setWindowClosedCallback(new ModalWindow.WindowClosedCallback() {
http://git-wip-us.apache.org/repos/asf/syncope/blob/6a93860d/client/console/src/main/java/org/apache/syncope/client/console/panels/AnyTypeClassModalPanel.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/panels/AnyTypeClassModalPanel.java b/client/console/src/main/java/org/apache/syncope/client/console/panels/AnyTypeClassModalPanel.java
index a5eae89..02063f3 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/panels/AnyTypeClassModalPanel.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/panels/AnyTypeClassModalPanel.java
@@ -30,7 +30,7 @@ import org.apache.wicket.markup.html.form.Form;
import org.apache.wicket.model.CompoundPropertyModel;
import org.apache.wicket.model.PropertyModel;
-public class AnyTypeClassModalPanel extends AbstractModalPanel {
+public class AnyTypeClassModalPanel extends AbstractModalPanel<AnyTypeClassTO> {
private static final long serialVersionUID = 1086997609984272599L;
@@ -51,8 +51,8 @@ public class AnyTypeClassModalPanel extends AbstractModalPanel {
antTypeClassForm.setModel(new CompoundPropertyModel<>(anyTypeClassTO));
antTypeClassForm.setOutputMarkupId(true);
- final AjaxTextFieldPanel key =
- new AjaxTextFieldPanel("key", getString("key"), new PropertyModel<String>(anyTypeClassTO, "key"));
+ final AjaxTextFieldPanel key = new AjaxTextFieldPanel("key", getString("key"), new PropertyModel<String>(
+ anyTypeClassTO, "key"));
key.addRequiredLabel();
key.setEnabled(anyTypeClassTO.getKey() == null || anyTypeClassTO.getKey().isEmpty());
antTypeClassForm.add(key);
http://git-wip-us.apache.org/repos/asf/syncope/blob/6a93860d/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 f5dba79..1948904 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
@@ -18,6 +18,7 @@
*/
package org.apache.syncope.client.console.panels;
+import de.agilecoders.wicket.core.markup.html.bootstrap.dialog.Modal;
import java.io.Serializable;
import java.util.List;
import org.apache.syncope.client.console.SyncopeConsoleSession;
@@ -38,6 +39,7 @@ import org.apache.wicket.markup.html.form.ListChoice;
import org.apache.wicket.markup.html.panel.Panel;
import org.apache.wicket.model.IModel;
import org.apache.wicket.model.Model;
+import org.apache.wicket.model.ResourceModel;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -53,7 +55,6 @@ public class AnyTypeClassesPanel extends Panel {
public AnyTypeClassesPanel(final String id, final PageReference pageRef, final BaseModal<AnyTypeClassTO> modal) {
super(id);
-
this.setOutputMarkupId(true);
final WebMarkupContainer container = new WebMarkupContainer("container");
@@ -124,6 +125,20 @@ public class AnyTypeClassesPanel extends Panel {
@Override
public void onClick(final AjaxRequestTarget target, final Serializable ignore) {
+ modal.header(new ResourceModel("createAnyTypeClass"));
+ modal.setFormModel(new AnyTypeClassTO());
+ modal.size(Modal.Size.Large);
+ target.add(modal.setContent(new AnyTypeClassModalPanel(modal, pageRef, true)));
+ modal.addSumbitButton();
+ modal.show(true);
+ }
+ }, ActionLink.ActionType.CREATE, StandardEntitlement.ANYTYPECLASS_CREATE).addWithRoles(
+ new ActionLink<Serializable>() {
+
+ private static final long serialVersionUID = -3722207913631435501L;
+
+ @Override
+ public void onClick(final AjaxRequestTarget target, final Serializable ignore) {
if (anyTypeClasses != null && anyTypeClasses.getModelObject() != null) {
modal.header(Model.of(anyTypeClasses.getModelObject().getKey()));
modal.setFormModel(anyTypeClasses.getModelObject());
@@ -133,30 +148,32 @@ public class AnyTypeClassesPanel extends Panel {
}
}
}, ActionLink.ActionType.EDIT, StandardEntitlement.ANYTYPECLASS_UPDATE).addWithRoles(
- new ActionLink<Serializable>() {
-
- private static final long serialVersionUID = -3722207913631435501L;
-
- @Override
- public void onClick(final AjaxRequestTarget target, final Serializable ignore) {
- try {
- if (anyTypeClasses != null && anyTypeClasses.getModelObject() != null) {
- SyncopeConsoleSession.get()
- .getService(AnyTypeClassService.class).delete(anyTypeClasses.getModelObject().getKey());
- anyTypeClasses.setModelObject(null);
- anyTypeClasses.setChoices(SyncopeConsoleSession.get().getService(AnyTypeClassService.class).
- list());
- target.add(anyTypeClasses);
- target.add(updateAnyTypeClassDetails(new AnyTypeClassTO(), true));
- info(getString(Constants.OPERATION_SUCCEEDED));
+ new ActionLink<Serializable>() {
+
+ private static final long serialVersionUID = -3722207913631435501L;
+
+ @Override
+ public void onClick(final AjaxRequestTarget target, final Serializable ignore) {
+ try {
+ if (anyTypeClasses != null && anyTypeClasses.getModelObject() != null) {
+ SyncopeConsoleSession.get()
+ .getService(AnyTypeClassService.class).delete(anyTypeClasses.getModelObject().
+ getKey());
+ anyTypeClasses.setModelObject(null);
+ anyTypeClasses.setChoices(SyncopeConsoleSession.get().getService(
+ AnyTypeClassService.class).
+ list());
+ target.add(anyTypeClasses);
+ target.add(updateAnyTypeClassDetails(new AnyTypeClassTO(), true));
+ info(getString(Constants.OPERATION_SUCCEEDED));
+ }
+ } catch (Exception e) {
+ LOG.error("While deleting AnyTypeClass", e);
+ error(getString(Constants.ERROR) + ": " + e.getMessage());
+ }
+ ((AbstractBasePage) getPage()).getNotificationPanel().refresh(target);
}
- } catch (Exception e) {
- LOG.error("While deleting AnyTypeClass", e);
- error(getString(Constants.ERROR) + ": " + e.getMessage());
- }
- ((AbstractBasePage) getPage()).getNotificationPanel().refresh(target);
- }
- }, ActionLink.ActionType.DELETE, StandardEntitlement.ANYTYPECLASS_DELETE);
+ }, ActionLink.ActionType.DELETE, StandardEntitlement.ANYTYPECLASS_DELETE);
container.add(actionLinks.build("editRemove"));
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/6a93860d/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 f5d5a97..8bda922 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
@@ -24,7 +24,6 @@ import java.util.List;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.collections4.Transformer;
import org.apache.syncope.client.console.SyncopeConsoleSession;
-import org.apache.syncope.client.console.wicket.markup.html.bootstrap.dialog.BaseModal;
import org.apache.syncope.client.console.wicket.markup.html.form.AjaxDropDownChoicePanel;
import org.apache.syncope.client.console.wicket.markup.html.form.AjaxPalettePanel;
import org.apache.syncope.client.console.wicket.markup.html.form.AjaxTextFieldPanel;
@@ -43,32 +42,30 @@ public class AnyTypeDetailsPanel extends Panel {
private static final long serialVersionUID = 8131650329622035501L;
- private final AnyTypeTO anyTypeTO;
-
- public AnyTypeDetailsPanel(final String id, final BaseModal<AnyTypeTO> modal) {
+ public AnyTypeDetailsPanel(final String id, final AnyTypeTO anyTypeTO) {
super(id);
- this.anyTypeTO = modal.getFormModel();
-
final WebMarkupContainer container = new WebMarkupContainer("container");
container.setOutputMarkupId(true);
add(container);
final Form<AnyTypeTO> form = new Form<>("form");
- form.setModel(new CompoundPropertyModel<>(this.anyTypeTO));
+ form.setModel(new CompoundPropertyModel<>(anyTypeTO));
container.add(form);
- final AjaxTextFieldPanel key =
- new AjaxTextFieldPanel("key", getString("key"), new PropertyModel<String>(this.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);
final AjaxDropDownChoicePanel<AnyTypeKind> kind = new AjaxDropDownChoicePanel<>(
- "kind", getString("kind"), new PropertyModel<AnyTypeKind>(this.anyTypeTO, "kind"));
+ "kind", getString("kind"), new PropertyModel<AnyTypeKind>(anyTypeTO, "kind"));
kind.setChoices(Arrays.asList(AnyTypeKind.values()));
- kind.setModelObject(AnyTypeKind.ANY_OBJECT);
kind.setOutputMarkupId(true);
+ if (anyTypeTO.getKind() == null) {
+ kind.setModelObject(AnyTypeKind.ANY_OBJECT);
+ }
kind.setEnabled(false);
form.add(kind);
http://git-wip-us.apache.org/repos/asf/syncope/blob/6a93860d/client/console/src/main/java/org/apache/syncope/client/console/panels/AnyTypeModalPanel.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/panels/AnyTypeModalPanel.java b/client/console/src/main/java/org/apache/syncope/client/console/panels/AnyTypeModalPanel.java
index 76acff0..0ec02d0 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/panels/AnyTypeModalPanel.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/panels/AnyTypeModalPanel.java
@@ -18,44 +18,24 @@
*/
package org.apache.syncope.client.console.panels;
-import org.apache.syncope.client.console.SyncopeConsoleSession;
-import org.apache.syncope.client.console.commons.Constants;
import org.apache.syncope.client.console.wicket.markup.html.bootstrap.dialog.BaseModal;
import org.apache.syncope.common.lib.to.AnyTypeTO;
-import org.apache.syncope.common.rest.api.service.AnyTypeService;
import org.apache.wicket.PageReference;
-import org.apache.wicket.ajax.AjaxRequestTarget;
-import org.apache.wicket.markup.html.form.Form;
-public class AnyTypeModalPanel extends AbstractModalPanel {
+public class AnyTypeModalPanel extends AbstractModalPanel<AnyTypeTO> {
private static final long serialVersionUID = -4603032036433309900L;
- private final boolean createFlag;
+ protected final AnyTypeTO anyTypeTO;
- public AnyTypeModalPanel(final BaseModal<AnyTypeTO> modal, final PageReference pageRef, final boolean createFlag) {
+ public AnyTypeModalPanel(final BaseModal<AnyTypeTO> modal, final AnyTypeTO anyTypeTO, final PageReference pageRef) {
super(modal, pageRef);
-
- this.createFlag = createFlag;
- add(new AnyTypeDetailsPanel("anyTypeDetailsPanel", modal));
+ this.anyTypeTO = anyTypeTO;
+ add(new AnyTypeDetailsPanel("anyTypeDetailsPanel", this.anyTypeTO));
}
@Override
- public void onSubmit(final AjaxRequestTarget target, final Form<?> form) {
- try {
- final AnyTypeTO updateAnyTypeTO = AnyTypeTO.class.cast(form.getModelObject());
-
- if (createFlag) {
- SyncopeConsoleSession.get().getService(AnyTypeService.class).create(updateAnyTypeTO);
- } else {
- SyncopeConsoleSession.get().getService(AnyTypeService.class).update(updateAnyTypeTO);
- }
- info(getString(Constants.OPERATION_SUCCEEDED));
- modal.close(target);
- } catch (Exception e) {
- LOG.error("While creating or updating AnyTypeTO", e);
- error(getString(Constants.ERROR) + ": " + e.getMessage());
- modal.getNotificationPanel().refresh(target);
- }
+ public AnyTypeTO getItem() {
+ return this.anyTypeTO;
}
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/6a93860d/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 ccdfd77..e445746 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
@@ -18,68 +18,135 @@
*/
package org.apache.syncope.client.console.panels;
+import static org.apache.syncope.client.console.panels.AbstractModalPanel.LOG;
+import static org.apache.wicket.Component.ENABLE;
+
import java.io.Serializable;
import java.lang.reflect.Field;
import java.lang.reflect.Modifier;
import java.util.ArrayList;
+import java.util.Collection;
import java.util.Collections;
import java.util.Iterator;
import java.util.List;
import org.apache.commons.lang3.StringUtils;
import org.apache.syncope.client.console.SyncopeConsoleSession;
import org.apache.syncope.client.console.commons.Constants;
+import org.apache.syncope.client.console.commons.SearchableDataProvider;
import org.apache.syncope.client.console.commons.SortableDataProviderComparator;
import org.apache.syncope.client.console.pages.AbstractBasePage;
+import org.apache.syncope.client.console.panels.AnyTypePanel.AnyTypeProvider;
+import org.apache.syncope.client.console.rest.BaseRestClient;
import org.apache.syncope.client.console.wicket.markup.html.bootstrap.dialog.BaseModal;
import org.apache.syncope.client.console.wicket.markup.html.form.ActionLink;
import org.apache.syncope.client.console.wicket.markup.html.form.ActionLinksPanel;
+import org.apache.syncope.client.console.wizards.AbstractModalPanelBuilder;
+import org.apache.syncope.client.console.wizards.AjaxWizard;
+import org.apache.syncope.client.console.wizards.WizardMgtPanel;
import org.apache.syncope.common.lib.to.AnyTypeTO;
import org.apache.syncope.common.lib.types.StandardEntitlement;
import org.apache.syncope.common.rest.api.service.AnyTypeService;
import org.apache.wicket.PageReference;
import org.apache.wicket.ajax.AjaxRequestTarget;
+import org.apache.wicket.authroles.authorization.strategies.role.metadata.MetaDataRoleAuthorizationStrategy;
+import org.apache.wicket.event.Broadcast;
import org.apache.wicket.extensions.markup.html.repeater.data.grid.ICellPopulator;
-import org.apache.wicket.extensions.markup.html.repeater.data.sort.SortOrder;
import org.apache.wicket.extensions.markup.html.repeater.data.table.AbstractColumn;
import org.apache.wicket.extensions.markup.html.repeater.data.table.IColumn;
import org.apache.wicket.extensions.markup.html.repeater.data.table.PropertyColumn;
-import org.apache.wicket.extensions.markup.html.repeater.util.SortableDataProvider;
-import org.apache.wicket.markup.html.WebMarkupContainer;
+import org.apache.wicket.markup.html.form.Form;
import org.apache.wicket.markup.repeater.Item;
import org.apache.wicket.model.CompoundPropertyModel;
import org.apache.wicket.model.IModel;
-import org.apache.wicket.model.Model;
import org.apache.wicket.model.ResourceModel;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-public class AnyTypePanel extends AbstractTypesPanel<AnyTypeTO> {
+public class AnyTypePanel extends AbstractTypesPanel<AnyTypeTO, AnyTypeProvider> {
private static final long serialVersionUID = 3905038169553185171L;
- private static final Logger LOG = LoggerFactory.getLogger(AnyTypePanel.class);
+ private final String pageID = "AnyTypes";
- private static final String PAGINATOR_ROWS_KEYS = Constants.PREF_ANYTYPE_PAGINATOR_ROWS;
+ public AnyTypePanel(final String id, final Builder<AnyTypeTO, AnyTypeTO, BaseRestClient> builder) {
+ super(id, builder);
+ }
- private final BaseModal<AnyTypeTO> modal;
+ public AnyTypePanel(final String id, final PageReference pageRef) {
+ super(id, new Builder<AnyTypeTO, AnyTypeTO, BaseRestClient>(null, pageRef) {
- public AnyTypePanel(final String id, final PageReference pageReference, final BaseModal<AnyTypeTO> modal) {
- super(id, pageReference);
+ private static final long serialVersionUID = 8769126634538601689L;
- this.pageRows = prefMan.getPaginatorRows(getRequest(), PAGINATOR_ROWS_KEYS);
- this.modal = modal;
+ @Override
+ protected WizardMgtPanel<AnyTypeTO> newInstance(final String id) {
+ return new AnyTypePanel(id, this);
+ }
+ });
- final WebMarkupContainer container = new WebMarkupContainer("container");
- container.setOutputMarkupId(true);
- add(container);
+ this.addNewItemPanelBuilder(new AbstractModalPanelBuilder<AnyTypeTO>(
+ BaseModal.CONTENT_ID, new AnyTypeTO(), pageRef) {
- buildDataTable(container,
- getColumns(container, pageReference), new AnyTypePanel.AnyTypeProvider(), PAGINATOR_ROWS_KEYS);
+ private static final long serialVersionUID = -6388405037134399367L;
+ @Override
+ public ModalPanel<AnyTypeTO> build(final int index, final boolean edit) {
+ final AnyTypeTO modelObject = newModelObject();
+ return new AnyTypeModalPanel(modal, modelObject, pageRef) {
+
+ private static final long serialVersionUID = -6227956682141146095L;
+
+ @Override
+ public void onSubmit(final AjaxRequestTarget target, final Form<?> form) {
+ try {
+ if (getOriginalItem() == null || StringUtils.isBlank(getOriginalItem().getKey())) {
+ SyncopeConsoleSession.get().getService(AnyTypeService.class).create(modelObject);
+ } else {
+ SyncopeConsoleSession.get().getService(AnyTypeService.class).update(modelObject);
+ }
+ info(getString(Constants.OPERATION_SUCCEEDED));
+ modal.close(target);
+ } catch (Exception e) {
+ LOG.error("While creating or updating AnyTypeTO", e);
+ error(getString(Constants.ERROR) + ": " + e.getMessage());
+ modal.getNotificationPanel().refresh(target);
+ }
+ }
+ };
+ }
+
+ @Override
+ protected void onCancelInternal(final AnyTypeTO modelObject) {
+ }
+
+ @Override
+ protected void onApplyInternal(final AnyTypeTO modelObject) {
+ }
+ }, true);
+
+ initResultTable();
+ MetaDataRoleAuthorizationStrategy.authorize(addAjaxLink, ENABLE, StandardEntitlement.ANYTYPE_CREATE);
+ }
+
+ @Override
+ protected AnyTypeProvider dataProvider() {
+ return new AnyTypeProvider(rows);
+ }
+
+ @Override
+ protected String paginatorRowsKey() {
+ return Constants.PREF_ANYTYPE_PAGINATOR_ROWS;
+ }
+
+ @Override
+ protected Collection<ActionLink.ActionType> getBulkActions() {
+ return Collections.<ActionLink.ActionType>emptyList();
+ }
+
+ @Override
+ protected String getPageId() {
+ return pageID;
}
- private <T extends AnyTypeModalPanel> List<IColumn<AnyTypeTO, String>> getColumns(
- final WebMarkupContainer webContainer, final PageReference pageReference) {
+ @Override
+ protected List<IColumn<AnyTypeTO, String>> getColumns() {
final List<IColumn<AnyTypeTO, String>> columns = new ArrayList<>();
@@ -88,9 +155,8 @@ public class AnyTypePanel extends AbstractTypesPanel<AnyTypeTO> {
if (field != null && !Modifier.isStatic(field.getModifiers())) {
final String fieldName = field.getName();
if (field.getType().isArray()) {
- final IColumn<AnyTypeTO, String> column =
- new PropertyColumn<AnyTypeTO, String>(
- new ResourceModel(field.getName()), field.getName()) {
+ final IColumn<AnyTypeTO, String> column = new PropertyColumn<AnyTypeTO, String>(
+ new ResourceModel(field.getName()), field.getName()) {
private static final long serialVersionUID = 3282547854226892169L;
@@ -108,9 +174,8 @@ public class AnyTypePanel extends AbstractTypesPanel<AnyTypeTO> {
columns.add(column);
} else {
- final IColumn<AnyTypeTO, String> column =
- new PropertyColumn<AnyTypeTO, String>(
- new ResourceModel(field.getName()), field.getName(), field.getName()) {
+ final IColumn<AnyTypeTO, String> column = new PropertyColumn<AnyTypeTO, String>(
+ new ResourceModel(field.getName()), field.getName(), field.getName()) {
private static final long serialVersionUID = 3282547854226892169L;
@@ -143,9 +208,8 @@ public class AnyTypePanel extends AbstractTypesPanel<AnyTypeTO> {
public void populateItem(final Item<ICellPopulator<AnyTypeTO>> item, final String componentId,
final IModel<AnyTypeTO> model) {
- final AnyTypeTO anyTypeTO = model.getObject();
-
- final ActionLinksPanel.Builder<Serializable> actionLinks = ActionLinksPanel.builder(pageReference);
+ final ActionLinksPanel.Builder<Serializable> actionLinks
+ = ActionLinksPanel.builder(page.getPageReference());
actionLinks.setDisableIndicator(true);
actionLinks.addWithRoles(new ActionLink<Serializable>() {
@@ -153,11 +217,8 @@ public class AnyTypePanel extends AbstractTypesPanel<AnyTypeTO> {
@Override
public void onClick(final AjaxRequestTarget target, final Serializable ignore) {
- modal.header(Model.of(anyTypeTO.getKey()));
- modal.setFormModel(anyTypeTO);
- target.add(modal.setContent(new AnyTypeModalPanel(modal, pageReference, false)));
- modal.addSumbitButton();
- modal.show(true);
+ send(AnyTypePanel.this, Broadcast.EXACT,
+ new AjaxWizard.EditItemActionEvent<AnyTypeTO>(model.getObject(), target));
}
}, ActionLink.ActionType.EDIT, StandardEntitlement.ANYTYPE_UPDATE).addWithRoles(
new ActionLink<Serializable>() {
@@ -167,9 +228,10 @@ public class AnyTypePanel extends AbstractTypesPanel<AnyTypeTO> {
@Override
public void onClick(final AjaxRequestTarget target, final Serializable ignore) {
try {
- SyncopeConsoleSession.get().getService(AnyTypeService.class).delete(anyTypeTO.getKey());
+ SyncopeConsoleSession.get().
+ getService(AnyTypeService.class).delete(model.getObject().getKey());
info(getString(Constants.OPERATION_SUCCEEDED));
- target.add(webContainer);
+ target.add(container);
} catch (Exception e) {
LOG.error("While deleting AnyTypeTO", e);
error(getString(Constants.ERROR) + ": " + e.getMessage());
@@ -186,15 +248,14 @@ public class AnyTypePanel extends AbstractTypesPanel<AnyTypeTO> {
}
- private final class AnyTypeProvider extends SortableDataProvider<AnyTypeTO, String> {
+ protected final class AnyTypeProvider extends SearchableDataProvider<AnyTypeTO> {
private static final long serialVersionUID = -185944053385660794L;
private final SortableDataProviderComparator<AnyTypeTO> comparator;
- private AnyTypeProvider() {
- super();
- setSort("key", SortOrder.ASCENDING);
+ private AnyTypeProvider(final int paginatorRows) {
+ super(paginatorRows);
comparator = new SortableDataProviderComparator<>(this);
}