You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@syncope.apache.org by il...@apache.org on 2014/06/03 16:48:51 UTC

svn commit: r1599592 - in /syncope/trunk: ./ console/src/main/java/org/apache/syncope/console/pages/ console/src/main/java/org/apache/syncope/console/pages/panels/ console/src/main/java/org/apache/syncope/console/wicket/markup/html/form/ console/src/ma...

Author: ilgrosso
Date: Tue Jun  3 14:48:51 2014
New Revision: 1599592

URL: http://svn.apache.org/r1599592
Log:
[SYNCOPE-498] Primitive type values are always mandatory in wicket: converting primitive classes to wrapper before instantiating SpinnerFieldPanel

Modified:
    syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/AbstractBasePage.java
    syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/ApprovalModalPage.java
    syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/ConnectorModalPage.java
    syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/ReportletConfModalPage.java
    syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/panels/AttributesPanel.java
    syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/panels/NotificationPanel.java
    syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/panels/PolicyBeanPanel.java
    syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/panels/ResourceConnConfPanel.java
    syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/panels/ResourceDetailsPanel.java
    syncope/trunk/console/src/main/java/org/apache/syncope/console/wicket/markup/html/form/FieldPanel.java
    syncope/trunk/console/src/main/java/org/apache/syncope/console/wicket/markup/html/form/SpinnerFieldPanel.java
    syncope/trunk/console/src/main/resources/org/apache/syncope/console/wicket/markup/html/form/SpinnerFieldPanel.html
    syncope/trunk/pom.xml

Modified: syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/AbstractBasePage.java
URL: http://svn.apache.org/viewvc/syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/AbstractBasePage.java?rev=1599592&r1=1599591&r2=1599592&view=diff
==============================================================================
--- syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/AbstractBasePage.java (original)
+++ syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/AbstractBasePage.java Tue Jun  3 14:48:51 2014
@@ -98,10 +98,7 @@ public class AbstractBasePage extends We
 
     public AbstractBasePage(final PageParameters parameters) {
         super(parameters);
-        setupFeedbackPanel();
-    }
 
-    protected final void setupFeedbackPanel() {
         feedbackPanel = new NotificationPanel(Constants.FEEDBACK);
         feedbackPanel.setOutputMarkupId(true);
         add(feedbackPanel);

Modified: syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/ApprovalModalPage.java
URL: http://svn.apache.org/viewvc/syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/ApprovalModalPage.java?rev=1599592&r1=1599591&r2=1599592&view=diff
==============================================================================
--- syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/ApprovalModalPage.java (original)
+++ syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/ApprovalModalPage.java Tue Jun  3 14:48:51 2014
@@ -142,7 +142,7 @@ public class ApprovalModalPage extends B
                             case Long:
                                 field = new SpinnerFieldPanel<Long>("value", label.getDefaultModelObjectAsString(),
                                         Long.class, new Model<Long>(NumberUtils.toLong(prop.getValue())),
-                                        null, null, false);
+                                        null, null);
                                 break;
 
                             case String:

Modified: syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/ConnectorModalPage.java
URL: http://svn.apache.org/viewvc/syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/ConnectorModalPage.java?rev=1599592&r1=1599591&r2=1599592&view=diff
==============================================================================
--- syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/ConnectorModalPage.java (original)
+++ syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/ConnectorModalPage.java Tue Jun  3 14:48:51 2014
@@ -191,7 +191,7 @@ public class ConnectorModalPage extends 
 
         final SpinnerFieldPanel<Integer> connRequestTimeout =
                 new SpinnerFieldPanel<Integer>("connRequestTimeout", "connRequestTimeout", Integer.class,
-                        new PropertyModel<Integer>(connInstanceTO, "connRequestTimeout"), 0, null, true);
+                        new PropertyModel<Integer>(connInstanceTO, "connRequestTimeout"), 0, null);
         connRequestTimeout.getField().add(new RangeValidator<Integer>(0, Integer.MAX_VALUE));
         connectorForm.add(connRequestTimeout);
 
@@ -200,28 +200,28 @@ public class ConnectorModalPage extends 
         }
         final SpinnerFieldPanel<Integer> poolMaxObjects =
                 new SpinnerFieldPanel<Integer>("poolMaxObjects", "poolMaxObjects", Integer.class,
-                        new PropertyModel<Integer>(connInstanceTO.getPoolConf(), "maxObjects"), 0, null, true);
+                        new PropertyModel<Integer>(connInstanceTO.getPoolConf(), "maxObjects"), 0, null);
         poolMaxObjects.getField().add(new RangeValidator<Integer>(0, Integer.MAX_VALUE));
         connectorForm.add(poolMaxObjects);
         final SpinnerFieldPanel<Integer> poolMinIdle =
                 new SpinnerFieldPanel<Integer>("poolMinIdle", "poolMinIdle", Integer.class,
-                        new PropertyModel<Integer>(connInstanceTO.getPoolConf(), "minIdle"), 0, null, true);
+                        new PropertyModel<Integer>(connInstanceTO.getPoolConf(), "minIdle"), 0, null);
         poolMinIdle.getField().add(new RangeValidator<Integer>(0, Integer.MAX_VALUE));
         connectorForm.add(poolMinIdle);
         final SpinnerFieldPanel<Integer> poolMaxIdle =
                 new SpinnerFieldPanel<Integer>("poolMaxIdle", "poolMaxIdle", Integer.class,
-                        new PropertyModel<Integer>(connInstanceTO.getPoolConf(), "maxIdle"), 0, null, true);
+                        new PropertyModel<Integer>(connInstanceTO.getPoolConf(), "maxIdle"), 0, null);
         poolMaxIdle.getField().add(new RangeValidator<Integer>(0, Integer.MAX_VALUE));
         connectorForm.add(poolMaxIdle);
         final SpinnerFieldPanel<Long> poolMaxWait =
                 new SpinnerFieldPanel<Long>("poolMaxWait", "poolMaxWait", Long.class,
-                        new PropertyModel<Long>(connInstanceTO.getPoolConf(), "maxWait"), 0L, null, true);
+                        new PropertyModel<Long>(connInstanceTO.getPoolConf(), "maxWait"), 0L, null);
         poolMaxWait.getField().add(new RangeValidator<Long>(0L, Long.MAX_VALUE));
         connectorForm.add(poolMaxWait);
         final SpinnerFieldPanel<Long> poolMinEvictableIdleTime =
                 new SpinnerFieldPanel<Long>("poolMinEvictableIdleTime", "poolMinEvictableIdleTime", Long.class,
                         new PropertyModel<Long>(connInstanceTO.getPoolConf(), "minEvictableIdleTimeMillis"),
-                        0L, null, true);
+                        0L, null);
         poolMinEvictableIdleTime.getField().add(new RangeValidator<Long>(0L, Long.MAX_VALUE));
         connectorForm.add(poolMinEvictableIdleTime);
 
@@ -323,13 +323,17 @@ public class ConnectorModalPage extends 
                             try {
                                 propertySchemaClass =
                                 ClassUtils.forName(property.getSchema().getType(), ClassUtils.getDefaultClassLoader());
+                                if (ClassUtils.isPrimitiveOrWrapper(propertySchemaClass)) {
+                                    propertySchemaClass =
+                                    org.apache.commons.lang3.ClassUtils.primitiveToWrapper(propertySchemaClass);
+                                }
                             } catch (Exception e) {
                                 LOG.error("Error parsing attribute type", e);
                                 propertySchemaClass = String.class;
                             }
                             if (ClassUtils.isAssignable(Number.class, propertySchemaClass)) {
                                 field = new SpinnerFieldPanel<Number>("panel", label.getDefaultModelObjectAsString(),
-                                        (Class<Number>) propertySchemaClass, new Model<Number>(), null, null, false);
+                                        (Class<Number>) propertySchemaClass, new Model<Number>(), null, null);
 
                                 required = property.getSchema().isRequired();
                             } else if (ClassUtils.isAssignable(Boolean.class, propertySchemaClass)) {
@@ -509,7 +513,7 @@ public class ConnectorModalPage extends 
             for (ConnConfPropSchema key : bundleTO.getProperties()) {
                 final ConnConfProperty propertyTO = new ConnConfProperty();
                 propertyTO.setSchema(key);
-                if (connInstanceTO.getId() != 0 
+                if (connInstanceTO.getId() != 0
                         && connInstanceTO.getConfigurationMap().containsKey(key.getName())
                         && connInstanceTO.getConfigurationMap().get(key.getName()).getValues() != null) {
                     propertyTO.getValues().addAll(connInstanceTO.getConfigurationMap().get(key.getName()).getValues());

Modified: syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/ReportletConfModalPage.java
URL: http://svn.apache.org/viewvc/syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/ReportletConfModalPage.java?rev=1599592&r1=1599591&r2=1599592&view=diff
==============================================================================
--- syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/ReportletConfModalPage.java (original)
+++ syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/ReportletConfModalPage.java Tue Jun  3 14:48:51 2014
@@ -206,7 +206,7 @@ public class ReportletConfModalPage exte
         if (ClassUtils.isAssignable(Boolean.class, type)) {
             result = new AjaxCheckBoxPanel(id, fieldName, model);
         } else if (ClassUtils.isAssignable(Number.class, type)) {
-            result = new SpinnerFieldPanel<Number>(id, fieldName, (Class<Number>) type, model, null, null, false);
+            result = new SpinnerFieldPanel<Number>(id, fieldName, (Class<Number>) type, model, null, null);
         } else if (Date.class.equals(type)) {
             result = new DateTimeFieldPanel(id, fieldName, model, SyncopeConstants.DEFAULT_DATE_PATTERN);
         } else if (type.isEnum()) {

Modified: syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/panels/AttributesPanel.java
URL: http://svn.apache.org/viewvc/syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/panels/AttributesPanel.java?rev=1599592&r1=1599591&r2=1599592&view=diff
==============================================================================
--- syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/panels/AttributesPanel.java (original)
+++ syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/panels/AttributesPanel.java Tue Jun  3 14:48:51 2014
@@ -266,10 +266,10 @@ public class AttributesPanel extends Pan
                     panel.addRequiredLabel();
                 }
                 break;
-                
+
             case Long:
                 panel = new SpinnerFieldPanel<Long>("panel", schemaTO.getName(),
-                        Long.class, new Model<Long>(), null, null, false);
+                        Long.class, new Model<Long>(), null, null);
 
                 if (required) {
                     panel.addRequiredLabel();
@@ -278,15 +278,16 @@ public class AttributesPanel extends Pan
 
             case Double:
                 panel = new SpinnerFieldPanel<Double>("panel", schemaTO.getName(),
-                        Double.class, new Model<Double>(), null, null, false);
+                        Double.class, new Model<Double>(), null, null);
 
                 if (required) {
                     panel.addRequiredLabel();
                 }
                 break;
-                
+
             default:
                 panel = new AjaxTextFieldPanel("panel", schemaTO.getName(), new Model<String>());
+
                 if (required) {
                     panel.addRequiredLabel();
                 }

Modified: syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/panels/NotificationPanel.java
URL: http://svn.apache.org/viewvc/syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/panels/NotificationPanel.java?rev=1599592&r1=1599591&r2=1599592&view=diff
==============================================================================
--- syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/panels/NotificationPanel.java (original)
+++ syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/panels/NotificationPanel.java Tue Jun  3 14:48:51 2014
@@ -18,6 +18,7 @@
  */
 package org.apache.syncope.console.pages.panels;
 
+import org.apache.commons.lang3.StringUtils;
 import org.apache.wicket.AttributeModifier;
 import org.apache.wicket.ajax.AjaxRequestTarget;
 import org.apache.wicket.feedback.FeedbackMessage;
@@ -29,55 +30,43 @@ public class NotificationPanel extends F
 
     private static final long serialVersionUID = 5895940553202128621L;
 
-    private final String cssClass = "notificationpanel";
+    private static final String CSS_CLASS = "notificationpanel";
 
-    private String additionalCSSClass = "notificationpanel_top_right";
+    private static final String DEFAULT_ADDITIONAL_CSS_CLASS = "notificationpanel_top_right";
 
-    // Create a notifcation panel with the default additional class, specified as a field variable
-    public NotificationPanel(final String id) {
-        super(id);
-
-        init(id, additionalCSSClass);
-    }
-
-    // Create a notifcation panel with a custom additional class, overwriting the field variable
-    public NotificationPanel(final String id, final String additionalCSSClass) {
-        super(id);
+    private final String additionalCSSClass;
 
-        this.additionalCSSClass = additionalCSSClass;
-
-        init(id, additionalCSSClass);
+    public NotificationPanel(final String id) {
+        this(id, null, null);
     }
 
     public NotificationPanel(final String id, final String additionalCSSClass,
             final IFeedbackMessageFilter feedbackMessageFilter) {
+
         super(id, feedbackMessageFilter);
 
-        this.additionalCSSClass = additionalCSSClass;
+        this.additionalCSSClass = StringUtils.isBlank(additionalCSSClass)
+                ? DEFAULT_ADDITIONAL_CSS_CLASS
+                : additionalCSSClass;
 
-        init(id, additionalCSSClass);
-    }
-
-    private void init(final String id, final String additionalCSSClass) {
         // set custom markup id and ouput it, to find the component later on in the js function
         setMarkupId(id);
         setOutputMarkupId(true);
 
         // Add the additional cssClass and hide the element by default
-        add(new AttributeModifier("class", new Model<String>(cssClass + " " + additionalCSSClass)));
+        add(new AttributeModifier("class", new Model<String>(this.CSS_CLASS + " " + this.additionalCSSClass)));
         add(new AttributeModifier("style", new Model<String>("opacity: 0;")));
     }
 
     /**
-     * Method to refresh the notification panel
+     * Method to refresh the notification panel.
      *
-     * if there are any feedback messages for the user, find the gravest level, format the notification panel
-     * accordingly and show it
+     * If there are any feedback messages for the user, find the gravest level, format the notification panel
+     * accordingly and show it.
      *
      * @param target AjaxRequestTarget to add panel and the calling javascript function
      */
     public void refresh(final AjaxRequestTarget target) {
-
         // any feedback at all in the current form?
         if (anyMessage()) {
             int highestFeedbackLevel = FeedbackMessage.INFO;
@@ -93,22 +82,23 @@ public class NotificationPanel extends F
             // add the css classes to the notification panel, 
             // including the border css which represents the highest level of feedback
             add(new AttributeModifier("class",
-                    new Model<String>(cssClass
+                    new Model<String>(CSS_CLASS
                             + " " + additionalCSSClass
-                            + " notificationpanel_border_" + String.valueOf(highestFeedbackLevel))));
+                            + " notificationpanel_border_" + highestFeedbackLevel)));
 
             // refresh the panel and call the js function with the panel markup id 
             // and the total count of messages
             target.add(this);
-            target.appendJavaScript("showNotification('" + getMarkupId() + "', " + getCurrentMessages().size() + ");");
+            if (anyMessage(FeedbackMessage.ERROR)) {
+                target.appendJavaScript(
+                        "$('div#" + getMarkupId() + "').fadeTo('normal', 1.0);");
+            } else {
+                target.appendJavaScript(
+                        "showNotification('" + getMarkupId() + "', " + getCurrentMessages().size() + ");");
+            }
         }
     }
 
-    /**
-     * Returns css class for the single rows of the panel
-     *
-     * @param message
-     */
     @Override
     protected String getCSSClass(final FeedbackMessage message) {
         return "notificationpanel_row_" + message.getLevelAsString();

Modified: syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/panels/PolicyBeanPanel.java
URL: http://svn.apache.org/viewvc/syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/panels/PolicyBeanPanel.java?rev=1599592&r1=1599591&r2=1599592&view=diff
==============================================================================
--- syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/panels/PolicyBeanPanel.java (original)
+++ syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/panels/PolicyBeanPanel.java Tue Jun  3 14:48:51 2014
@@ -227,7 +227,7 @@ public class PolicyBeanPanel extends Pan
                     } else if (ClassUtils.isAssignable(Number.class, field.getType())) {
                         component = new SpinnerFieldPanel<Number>("field", field.getName(),
                                 (Class<Number>) field.getType(), new PropertyModel<Number>(policy, field.getName()),
-                                null, null, false);
+                                null, null);
                         item.add(component);
 
                         item.add(getActivationControl(component,

Modified: syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/panels/ResourceConnConfPanel.java
URL: http://svn.apache.org/viewvc/syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/panels/ResourceConnConfPanel.java?rev=1599592&r1=1599591&r2=1599592&view=diff
==============================================================================
--- syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/panels/ResourceConnConfPanel.java (original)
+++ syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/panels/ResourceConnConfPanel.java Tue Jun  3 14:48:51 2014
@@ -157,7 +157,7 @@ public class ResourceConnConfPanel exten
                             if (ClassUtils.isAssignable(Number.class, propertySchemaClass)) {
                                 Class<Number> numberClass = (Class<Number>) propertySchemaClass;
                                 field = new SpinnerFieldPanel<Number>("panel", label.getDefaultModelObjectAsString(),
-                                        numberClass, new Model<Number>(), null, null, false);
+                                        numberClass, new Model<Number>(), null, null);
 
                                 required = property.getSchema().isRequired();
                             } else if (ClassUtils.isAssignable(Boolean.class, propertySchemaClass)) {

Modified: syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/panels/ResourceDetailsPanel.java
URL: http://svn.apache.org/viewvc/syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/panels/ResourceDetailsPanel.java?rev=1599592&r1=1599591&r2=1599592&view=diff
==============================================================================
--- syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/panels/ResourceDetailsPanel.java (original)
+++ syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/panels/ResourceDetailsPanel.java Tue Jun  3 14:48:51 2014
@@ -84,7 +84,7 @@ public class ResourceDetailsPanel extend
 
         final SpinnerFieldPanel<Integer> propagationPriority =
                 new SpinnerFieldPanel<Integer>("propagationPriority", "propagationPriority", Integer.class,
-                        new PropertyModel<Integer>(resourceTO, "propagationPriority"), null, null, false);
+                        new PropertyModel<Integer>(resourceTO, "propagationPriority"), null, null);
         add(propagationPriority);
 
         final AjaxDropDownChoicePanel<PropagationMode> propagationMode = new AjaxDropDownChoicePanel<PropagationMode>(

Modified: syncope/trunk/console/src/main/java/org/apache/syncope/console/wicket/markup/html/form/FieldPanel.java
URL: http://svn.apache.org/viewvc/syncope/trunk/console/src/main/java/org/apache/syncope/console/wicket/markup/html/form/FieldPanel.java?rev=1599592&r1=1599591&r2=1599592&view=diff
==============================================================================
--- syncope/trunk/console/src/main/java/org/apache/syncope/console/wicket/markup/html/form/FieldPanel.java (original)
+++ syncope/trunk/console/src/main/java/org/apache/syncope/console/wicket/markup/html/form/FieldPanel.java Tue Jun  3 14:48:51 2014
@@ -127,7 +127,7 @@ public abstract class FieldPanel<T> exte
     }
 
     @Override
-    public FieldPanel<T> setModelObject(T object) {
+    public FieldPanel<T> setModelObject(final T object) {
         field.setModelObject(object);
         return this;
     }

Modified: syncope/trunk/console/src/main/java/org/apache/syncope/console/wicket/markup/html/form/SpinnerFieldPanel.java
URL: http://svn.apache.org/viewvc/syncope/trunk/console/src/main/java/org/apache/syncope/console/wicket/markup/html/form/SpinnerFieldPanel.java?rev=1599592&r1=1599591&r2=1599592&view=diff
==============================================================================
--- syncope/trunk/console/src/main/java/org/apache/syncope/console/wicket/markup/html/form/SpinnerFieldPanel.java (original)
+++ syncope/trunk/console/src/main/java/org/apache/syncope/console/wicket/markup/html/form/SpinnerFieldPanel.java Tue Jun  3 14:48:51 2014
@@ -25,12 +25,12 @@ import org.apache.commons.lang3.math.Num
 import org.apache.syncope.console.commons.Constants;
 import org.apache.wicket.ajax.AjaxRequestTarget;
 import org.apache.wicket.ajax.form.AjaxFormComponentUpdatingBehavior;
-import org.apache.wicket.ajax.markup.html.AjaxLink;
 import org.apache.wicket.markup.html.basic.Label;
 import org.apache.wicket.markup.html.form.TextField;
 import org.apache.wicket.markup.html.list.ListItem;
 import org.apache.wicket.model.IModel;
 import org.apache.wicket.model.Model;
+import org.springframework.util.StringUtils;
 
 public class SpinnerFieldPanel<T extends Number> extends FieldPanel<T> {
 
@@ -44,8 +44,9 @@ public class SpinnerFieldPanel<T extends
 
     private final T max;
 
+    @SuppressWarnings("unchecked")
     public SpinnerFieldPanel(final String id, final String name, final Class<T> reference, final IModel<T> model,
-            final T min, final T max, final boolean disableVisible) {
+            final T min, final T max) {
 
         super(id, name, model);
         this.reference = reference;
@@ -70,21 +71,6 @@ public class SpinnerFieldPanel<T extends
             });
         }
 
-        AjaxLink<Void> spinnerFieldDisable = new AjaxLink<Void>("spinnerFieldDisable") {
-
-            private static final long serialVersionUID = -7978723352517770644L;
-
-            @Override
-            public void onClick(final AjaxRequestTarget target) {
-                // nothing to do
-            }
-
-        };
-        spinnerFieldDisable.setMarkupId("spinnerFieldDisable-" + uuid);
-        spinnerFieldDisable.setOutputMarkupPlaceholderTag(true);
-        spinnerFieldDisable.setVisible(disableVisible);
-        add(spinnerFieldDisable);
-
         final StringBuilder statements = new StringBuilder();
         statements.append("jQuery(function() {").
                 append("var spinner = $('#").append(uuid).append("').spinner();").
@@ -100,16 +86,7 @@ public class SpinnerFieldPanel<T extends
                     append("$('#").append(uuid).append("').spinner(").
                     append("'option', 'max', ").append(this.max).append(");");
         }
-        statements.
-                append("$('#spinnerFieldDisable-").append(uuid).append("').click(function() {").
-                append("if (spinner.spinner('option', 'disabled')) {").
-                append("spinner.spinner('enable');").
-                append("} else {").
-                append("spinner.spinner('disable');").
-                append("spinner.spinner('value', null)").
-                append("}").
-                append("});").
-                append("});");
+        statements.append("});");
         Label spinnerFieldJS = new Label("spinnerFieldJS", statements.toString());
         spinnerFieldJS.setEscapeModelStrings(false);
         add(spinnerFieldJS);
@@ -122,22 +99,21 @@ public class SpinnerFieldPanel<T extends
             private static final long serialVersionUID = 527651414610325237L;
 
             @Override
-            @SuppressWarnings("unchecked")
             public T getObject() {
                 T value = null;
 
-                if (list != null && !list.isEmpty()) {
+                if (list != null && !list.isEmpty() && StringUtils.hasText(list.get(0).toString())) {
                     value = reference.equals(Integer.class)
-                            ? (T) Integer.valueOf(NumberUtils.toInt(list.get(0).toString()))
+                            ? reference.cast(NumberUtils.toInt(list.get(0).toString()))
                             : reference.equals(Long.class)
-                            ? (T) Short.valueOf(NumberUtils.toShort(list.get(0).toString()))
+                            ? reference.cast(NumberUtils.toLong(list.get(0).toString()))
                             : reference.equals(Short.class)
-                            ? (T) Long.valueOf(NumberUtils.toLong(list.get(0).toString()))
+                            ? reference.cast(NumberUtils.toShort(list.get(0).toString()))
                             : reference.equals(Float.class)
-                            ? (T) Float.valueOf(NumberUtils.toFloat(list.get(0).toString()))
-                            : reference.equals(Byte.class)
-                            ? (T) Byte.valueOf(NumberUtils.toByte(list.get(0).toString()))
-                            : (T) Double.valueOf(NumberUtils.toDouble(list.get(0).toString()));
+                            ? reference.cast(NumberUtils.toFloat(list.get(0).toString()))
+                            : reference.equals(byte.class)
+                            ? reference.cast(NumberUtils.toByte(list.get(0).toString()))
+                            : reference.cast(NumberUtils.toDouble(list.get(0).toString()));
                 }
 
                 return value;
@@ -163,7 +139,6 @@ public class SpinnerFieldPanel<T extends
             private static final long serialVersionUID = 6799404673615637845L;
 
             @Override
-            @SuppressWarnings("unchecked")
             public T getObject() {
                 T number = null;
 
@@ -172,20 +147,19 @@ public class SpinnerFieldPanel<T extends
                 if (obj != null && !obj.toString().isEmpty()) {
                     if (obj instanceof String) {
                         number = reference.equals(Integer.class)
-                                ? (T) Integer.valueOf((String) obj)
+                                ? reference.cast(Integer.valueOf((String) obj))
                                 : reference.equals(Long.class)
-                                ? (T) Short.valueOf((String) obj)
+                                ? reference.cast(Short.valueOf((String) obj))
                                 : reference.equals(Short.class)
-                                ? (T) Long.valueOf((String) obj)
+                                ? reference.cast(Long.valueOf((String) obj))
                                 : reference.equals(Float.class)
-                                ? (T) Float.valueOf((String) obj)
-                                : reference.equals(Byte.class)
-                                ? (T) Byte.valueOf((String) obj)
-                                : (T) Double.valueOf((String) obj);
-
+                                ? reference.cast(Float.valueOf((String) obj))
+                                : reference.equals(byte.class)
+                                ? reference.cast(Byte.valueOf((String) obj))
+                                : reference.cast(Double.valueOf((String) obj));
                     } else if (obj instanceof Number) {
                         // Don't parse anything
-                        number = (T) obj;
+                        number = reference.cast(obj);
                     }
                 }
 
@@ -204,8 +178,7 @@ public class SpinnerFieldPanel<T extends
 
     @Override
     public SpinnerFieldPanel<T> clone() {
-        SpinnerFieldPanel<T> panel = new SpinnerFieldPanel<T>(
-                id, name, reference, model, min, max, isRequiredLabelAdded);
+        SpinnerFieldPanel<T> panel = new SpinnerFieldPanel<T>(id, name, reference, model, min, max);
 
         panel.setRequired(isRequired());
         panel.setReadOnly(isReadOnly());

Modified: syncope/trunk/console/src/main/resources/org/apache/syncope/console/wicket/markup/html/form/SpinnerFieldPanel.html
URL: http://svn.apache.org/viewvc/syncope/trunk/console/src/main/resources/org/apache/syncope/console/wicket/markup/html/form/SpinnerFieldPanel.html?rev=1599592&r1=1599591&r2=1599592&view=diff
==============================================================================
--- syncope/trunk/console/src/main/resources/org/apache/syncope/console/wicket/markup/html/form/SpinnerFieldPanel.html (original)
+++ syncope/trunk/console/src/main/resources/org/apache/syncope/console/wicket/markup/html/form/SpinnerFieldPanel.html Tue Jun  3 14:48:51 2014
@@ -24,11 +24,6 @@ under the License.
       <div style="display: table-cell;">
         <input wicket:id="spinnerField"/>
       </div>
-      <div style="display: table-cell;vertical-align: middle;padding-left: 5px;">
-        <a wicket:id="spinnerFieldDisable">
-          <img src="img/disable.png" alt="Toggle disable/enable" title="Toggle disable/enable"/>
-        </a>
-      </div>
     </div>
   </wicket:extend>
 </html>

Modified: syncope/trunk/pom.xml
URL: http://svn.apache.org/viewvc/syncope/trunk/pom.xml?rev=1599592&r1=1599591&r2=1599592&view=diff
==============================================================================
--- syncope/trunk/pom.xml (original)
+++ syncope/trunk/pom.xml Tue Jun  3 14:48:51 2014
@@ -356,7 +356,7 @@ under the License.
 
     <jasypt.version>1.9.2</jasypt.version>
  
-    <jquery.version>1.11.0-1</jquery.version>
+    <jquery.version>1.11.1</jquery.version>
     <jquery-ui.version>1.10.4</jquery-ui.version>
     <highlightjs.version>7.3-1</highlightjs.version>
     <codemirror.version>3.23</codemirror.version>