📄 modelformfield.java
字号:
if (retVal instanceof Boolean) {
Boolean boolVal = (Boolean) retVal;
condTrue = boolVal.booleanValue();
} else {
throw new IllegalArgumentException("Return value from use-when condition eval was not a Boolean: "
+ retVal.getClass().getName() + " [" + retVal + "] on the field " + this.name + " of form " + this.modelForm.name);
}
return condTrue;
} catch (EvalError e) {
String errMsg = "Error evaluating BeanShell use-when condition [" + this.useWhen + "] on the field "
+ this.name + " of form " + this.modelForm.name + ": " + e.toString();
Debug.logError(e, errMsg, module);
throw new IllegalArgumentException(errMsg);
}
}
}
/**
* @return
*/
public String getWidgetStyle() {
if (UtilValidate.isNotEmpty(this.widgetStyle)) {
return this.widgetStyle;
} else {
return this.modelForm.getDefaultWidgetStyle();
}
}
/**
* @return
*/
public String getTooltipStyle() {
if (UtilValidate.isNotEmpty(this.tooltipStyle)) {
return this.tooltipStyle;
} else {
return this.modelForm.getDefaultTooltipStyle();
}
}
/**
* @param string
*/
public void setAttributeName(String string) {
attributeName = string;
}
/**
* @param string
*/
public void setEntityName(String string) {
entityName = string;
}
/**
* @param string
*/
public void setEntryName(String string) {
entryAcsr = new FlexibleMapAccessor(string);
}
/**
* @param string
*/
public void setFieldName(String string) {
fieldName = string;
}
/**
* @param string
*/
public void setMapName(String string) {
this.mapAcsr = new FlexibleMapAccessor(string);
}
/**
* @param string
*/
public void setName(String string) {
name = string;
}
/**
* @param string
*/
public void setParameterName(String string) {
parameterName = string;
}
/**
* @param i
*/
public void setPosition(int i) {
position = new Integer(i);
}
/**
* @param string
*/
public void setRedWhen(String string) {
redWhen = string;
}
/**
* @param string
*/
public void setServiceName(String string) {
serviceName = string;
}
/**
* @param string
*/
public void setTitle(String string) {
this.title = new FlexibleStringExpander(string);
}
/**
* @param string
*/
public void setTitleStyle(String string) {
this.titleStyle = string;
}
/**
* @param string
*/
public void setTooltip(String string) {
this.tooltip = new FlexibleStringExpander(string);
}
/**
* @param string
*/
public void setUseWhen(String string) {
this.useWhen = new FlexibleStringExpander(string);
}
/**
* @param string
*/
public void setWidgetStyle(String string) {
this.widgetStyle = string;
}
/**
* @param string
*/
public void setTooltipStyle(String string) {
this.tooltipStyle = string;
}
public static abstract class FieldInfo {
public static final int DISPLAY = 1;
public static final int HYPERLINK = 2;
public static final int TEXT = 3;
public static final int TEXTAREA = 4;
public static final int DATE_TIME = 5;
public static final int DROP_DOWN = 6;
public static final int CHECK = 7;
public static final int RADIO = 8;
public static final int SUBMIT = 9;
public static final int RESET = 10;
public static final int HIDDEN = 11;
public static final int IGNORED = 12;
public static final int TEXTQBE = 13;
public static final int DATEQBE = 14;
public static final int RANGEQBE = 15;
public static final int LOOKUP = 16;
public static final int FILE = 17;
// the numbering here represents the priority of the source;
//when setting a new fieldInfo on a modelFormField it will only set
//the new one if the fieldSource is less than or equal to the existing
//fieldSource, which should always be passed as one of the following...
public static final int SOURCE_EXPLICIT = 1;
public static final int SOURCE_AUTO_ENTITY = 2;
public static final int SOURCE_AUTO_SERVICE = 3;
public static Map fieldTypeByName = new HashMap();
static {
fieldTypeByName.put("display", new Integer(1));
fieldTypeByName.put("hyperlink", new Integer(2));
fieldTypeByName.put("text", new Integer(3));
fieldTypeByName.put("textarea", new Integer(4));
fieldTypeByName.put("date-time", new Integer(5));
fieldTypeByName.put("drop-down", new Integer(6));
fieldTypeByName.put("check", new Integer(7));
fieldTypeByName.put("radio", new Integer(8));
fieldTypeByName.put("submit", new Integer(9));
fieldTypeByName.put("reset", new Integer(10));
fieldTypeByName.put("hidden", new Integer(11));
fieldTypeByName.put("ignored", new Integer(12));
fieldTypeByName.put("text-find", new Integer(13));
fieldTypeByName.put("date-find", new Integer(14));
fieldTypeByName.put("range-find", new Integer(15));
fieldTypeByName.put("lookup", new Integer(16));
fieldTypeByName.put("file", new Integer(17));
}
protected int fieldType;
protected int fieldSource;
protected ModelFormField modelFormField;
/** Don't allow the Default Constructor */
protected FieldInfo() {}
/** Value Constructor */
public FieldInfo(int fieldSource, int fieldType, ModelFormField modelFormField) {
this.fieldType = fieldType;
this.fieldSource = fieldSource;
this.modelFormField = modelFormField;
}
/** XML Constructor */
public FieldInfo(Element element, ModelFormField modelFormField) {
this.fieldSource = FieldInfo.SOURCE_EXPLICIT;
this.fieldType = findFieldTypeFromName(element.getTagName());
this.modelFormField = modelFormField;
}
/**
* @return
*/
public ModelFormField getModelFormField() {
return modelFormField;
}
/**
* @return
*/
public int getFieldType() {
return fieldType;
}
/**
* @return
*/
public int getFieldSource() {
return this.fieldSource;
}
public static int findFieldTypeFromName(String name) {
Integer fieldTypeInt = (Integer) FieldInfo.fieldTypeByName.get(name);
if (fieldTypeInt != null) {
return fieldTypeInt.intValue();
} else {
throw new IllegalArgumentException("Could not get fieldType for field type name " + name);
}
}
public abstract void renderFieldString(StringBuffer buffer, Map context, FormStringRenderer formStringRenderer);
}
public static abstract class FieldInfoWithOptions extends FieldInfo {
protected FieldInfoWithOptions() {
super();
}
protected String noCurrentSelectedKey;
protected List optionSources = new LinkedList();
public FieldInfoWithOptions(int fieldSource, int fieldType, ModelFormField modelFormField) {
super(fieldSource, fieldType, modelFormField);
}
public FieldInfoWithOptions(Element element, ModelFormField modelFormField) {
super(element, modelFormField);
noCurrentSelectedKey = element.getAttribute("no-current-selected-key");
// read all option and entity-options sub-elements, maintaining order
List childElements = UtilXml.childElementList(element, null);
Iterator childElementIter = childElements.iterator();
while (childElementIter.hasNext()) {
Element childElement = (Element) childElementIter.next();
if ("option".equals(childElement.getTagName())) {
this.addOptionSource(new SingleOption(childElement, this));
} else if ("list-options".equals(childElement.getTagName())) {
this.addOptionSource(new ListOptions(childElement, this));
} else if ("entity-options".equals(childElement.getTagName())) {
this.addOptionSource(new EntityOptions(childElement, this));
}
}
}
public List getAllOptionValues(Map context, GenericDelegator delegator) {
List optionValues = new LinkedList();
Iterator optionSourceIter = this.optionSources.iterator();
while (optionSourceIter.hasNext()) {
OptionSource optionSource = (OptionSource) optionSourceIter.next();
optionSource.addOptionValues(optionValues, context, delegator);
}
return optionValues;
}
public static String getDescriptionForOptionKey(String key, List allOptionValues) {
if (UtilValidate.isEmpty(key)) {
return "";
}
if (UtilValidate.isEmpty(allOptionValues)) {
return key;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -