Author: chris.laprun(a)jboss.com
Date: 2009-05-25 05:22:12 -0400 (Mon, 25 May 2009)
New Revision: 13408
Modified:
branches/JBoss_Portal_Branch_2_7/core-admin/src/main/org/jboss/portal/core/admin/ui/ControlPropertyBean.java
branches/JBoss_Portal_Branch_2_7/core-admin/src/resources/portal-admin-war/WEB-INF/classes/Resource.properties
branches/JBoss_Portal_Branch_2_7/core-admin/src/resources/portal-admin-war/WEB-INF/faces-config.xml
branches/JBoss_Portal_Branch_2_7/faces/src/main/org/jboss/portal/faces/gui/ManagedBean.java
Log:
- JBEPP-83:
+ Added forgotten bean context to dashboardmgr instance
+ MessageValidationHandler instances can choose which error message to use
+ PropertyValidator implementations can provide their own ValidationErrorHandler for
more flexibility
+ ControlPropertyBean now provides better error message
Modified:
branches/JBoss_Portal_Branch_2_7/core-admin/src/main/org/jboss/portal/core/admin/ui/ControlPropertyBean.java
===================================================================
---
branches/JBoss_Portal_Branch_2_7/core-admin/src/main/org/jboss/portal/core/admin/ui/ControlPropertyBean.java 2009-05-25
08:10:28 UTC (rev 13407)
+++
branches/JBoss_Portal_Branch_2_7/core-admin/src/main/org/jboss/portal/core/admin/ui/ControlPropertyBean.java 2009-05-25
09:22:12 UTC (rev 13408)
@@ -24,6 +24,8 @@
package org.jboss.portal.core.admin.ui;
import org.jboss.portal.core.model.portal.PortalObject;
+import org.jboss.portal.common.util.ParameterValidation;
+import org.jboss.portal.faces.gui.ManagedBean;
import javax.faces.event.ValueChangeEvent;
@@ -51,6 +53,12 @@
{
return name; // no-op as we want to allow / and . in paths
}
+
+ @Override
+ public ParameterValidation.ValidationErrorHandler
getValidationErrorHandler(String name, String targetForErrorMessage)
+ {
+ return new MessageValidationHandler(null, targetForErrorMessage, name,
getObjectTypeName(), ManagedBean.INVALID_PATH);
+ }
});
}
Modified:
branches/JBoss_Portal_Branch_2_7/core-admin/src/resources/portal-admin-war/WEB-INF/classes/Resource.properties
===================================================================
---
branches/JBoss_Portal_Branch_2_7/core-admin/src/resources/portal-admin-war/WEB-INF/classes/Resource.properties 2009-05-25
08:10:28 UTC (rev 13407)
+++
branches/JBoss_Portal_Branch_2_7/core-admin/src/resources/portal-admin-war/WEB-INF/classes/Resource.properties 2009-05-25
09:22:12 UTC (rev 13408)
@@ -326,6 +326,7 @@
COORDINATION_ALIAS=alias binding
INVALID_NAME_ERROR=''{0}'' is an invalid {1} name: Cannot be null, empty
or contain '/', '.', '\\', '<', '>',
'(', ')', '=' or '%5c'
+INVALID_PATH_ERROR=''{0}'' is an invalid {1} path: Cannot be null, empty
or contain '\\', '<', '>', '(', ')',
'=' or '%5c'
NO_SELECTED_PORTLET_ERROR=No portlet was selected!
DUPLICATE_ERROR=A {1} named ''{0}'' already exists!
bean_support_unexpected_error=Unexpected error:
Modified:
branches/JBoss_Portal_Branch_2_7/core-admin/src/resources/portal-admin-war/WEB-INF/faces-config.xml
===================================================================
---
branches/JBoss_Portal_Branch_2_7/core-admin/src/resources/portal-admin-war/WEB-INF/faces-config.xml 2009-05-25
08:10:28 UTC (rev 13407)
+++
branches/JBoss_Portal_Branch_2_7/core-admin/src/resources/portal-admin-war/WEB-INF/faces-config.xml 2009-05-25
09:22:12 UTC (rev 13408)
@@ -187,6 +187,11 @@
<property-name>domainConfigurator</property-name>
<value>#{applicationScope.AuthorizationDomainRegistry.portalobject.configurator}</value>
</managed-property>
+ <managed-property>
+ <property-name>beanContext</property-name>
+
<property-class>org.jboss.portal.faces.gui.BeanContext</property-class>
+ <value>#{beanContext}</value>
+ </managed-property>
</managed-bean>
<!-- The instance manager managed bean -->
Modified:
branches/JBoss_Portal_Branch_2_7/faces/src/main/org/jboss/portal/faces/gui/ManagedBean.java
===================================================================
---
branches/JBoss_Portal_Branch_2_7/faces/src/main/org/jboss/portal/faces/gui/ManagedBean.java 2009-05-25
08:10:28 UTC (rev 13407)
+++
branches/JBoss_Portal_Branch_2_7/faces/src/main/org/jboss/portal/faces/gui/ManagedBean.java 2009-05-25
09:22:12 UTC (rev 13408)
@@ -38,6 +38,7 @@
protected BeanContext beanContext;
public static final String INVALID_NAME = "INVALID_NAME_ERROR";
+ public static final String INVALID_PATH = "INVALID_PATH_ERROR";
public static final String DUPLICATE = "DUPLICATE_ERROR";
public static interface PropertyValidator
@@ -49,6 +50,8 @@
boolean isAlreadyExisting(String propertyName);
String doSimpleChecks(String name);
+
+ ParameterValidation.ValidationErrorHandler getValidationErrorHandler(String name,
String targetForErrorMessage);
}
private PropertyValidator validator = new DefaultPropertyValidator();
@@ -95,7 +98,7 @@
// "sanitize" name: if it's invalid, return null and output
message
name = ParameterValidation.sanitizeFromPatternWithHandler(name,
ParameterValidation.XSS_CHECK,
- new MessageValidationHandler(null, targetForErrorMessage, name,
objectTypeName));
+ validator.getValidationErrorHandler(name, targetForErrorMessage));
// we got an invalid name, fail!
if (name == null)
@@ -169,23 +172,30 @@
}
}
- private class MessageValidationHandler extends
ParameterValidation.ValidationErrorHandler
+ protected class MessageValidationHandler extends
ParameterValidation.ValidationErrorHandler
{
private String targetForErrorMessage;
private String validatedName;
private String objectTypeName;
+ private String errorMessageKey;
- private MessageValidationHandler(String defaultValue, String targetForErrorMessage,
String validatedName, String objectTypeName)
+ public MessageValidationHandler(String defaultValue, String targetForErrorMessage,
String validatedName, String objectTypeName)
{
+ this(defaultValue, targetForErrorMessage, validatedName, objectTypeName,
INVALID_NAME);
+ }
+
+ public MessageValidationHandler(String defaultValue, String targetForErrorMessage,
String validatedName, String objectTypeName, String errorMessageKey)
+ {
super(defaultValue);
this.targetForErrorMessage = targetForErrorMessage;
this.validatedName = validatedName;
this.objectTypeName = objectTypeName;
+ this.errorMessageKey = errorMessageKey;
}
protected String internalValidationErrorHandling(String s)
{
- beanContext.createTargetedErrorMessage(targetForErrorMessage, INVALID_NAME,
validatedName, getLocalizedType(objectTypeName));
+ beanContext.createTargetedErrorMessage(targetForErrorMessage, errorMessageKey,
validatedName, getLocalizedType(objectTypeName));
return null;
}
}
@@ -212,5 +222,10 @@
// if name contains . or /, it's invalid for a Portal object
return (name.indexOf('.') != -1 || name.indexOf('/') != -1) ?
null : name;
}
+
+ public ParameterValidation.ValidationErrorHandler getValidationErrorHandler(String
name, String targetForErrorMessage)
+ {
+ return new MessageValidationHandler(null, targetForErrorMessage, name,
getObjectTypeName());
+ }
}
}