32 lines
1.3 KiB
Plaintext
32 lines
1.3 KiB
Plaintext
<%@page import="org.openxava.model.meta.MetaProperty"%>
|
|
<%
|
|
String propertyKey = request.getParameter("propertyKey");
|
|
MetaProperty p = (MetaProperty) request.getAttribute(propertyKey);
|
|
Object description = null;
|
|
int baseIndex = 1;
|
|
int value = 0;
|
|
Object ovalue = request.getAttribute(propertyKey + ".value");
|
|
MetaProperty validValuesProperty = (MetaProperty) request.getAttribute(propertyKey + ".validValuesProperty");
|
|
if (validValuesProperty == null) validValuesProperty = p;
|
|
if (validValuesProperty.hasValidValues()) {
|
|
if (p.isNumber()) {
|
|
value = ovalue==null?0:((Integer) ovalue).intValue();
|
|
}
|
|
else {
|
|
// We assume that if it isn't Number then it's an Enum of Java 5, we use instropection
|
|
// to allow this code run in a Java 1.4 servlet container.
|
|
baseIndex = 0;
|
|
if (ovalue == null) {
|
|
value = -1;
|
|
}
|
|
else if (ovalue instanceof Number) { // Directly the ordinal
|
|
value = ((Number) ovalue).intValue();
|
|
}
|
|
else { // An object of enum type
|
|
value = ((Integer) org.openxava.util.XObjects.execute(ovalue, "ordinal")).intValue();
|
|
}
|
|
}
|
|
int labelIndex = p != validValuesProperty && validValuesProperty.getMetaModel().isAnnotatedEJB3()?value - 1:value;
|
|
description = labelIndex == -1?"":validValuesProperty.getValidValueLabel(labelIndex);
|
|
}
|
|
%> |