📄 modelformfield.java
字号:
this.setFieldInfo(dateTimeField);
} else if (modelParam.type.indexOf("Date") != -1) {
ModelFormField.DateTimeField dateTimeField = new ModelFormField.DateTimeField(ModelFormField.FieldInfo.SOURCE_AUTO_SERVICE, this);
dateTimeField.setType("date");
this.setFieldInfo(dateTimeField);
} else if (modelParam.type.indexOf("Time") != -1) {
ModelFormField.DateTimeField dateTimeField = new ModelFormField.DateTimeField(ModelFormField.FieldInfo.SOURCE_AUTO_SERVICE, this);
dateTimeField.setType("time");
this.setFieldInfo(dateTimeField);
} else {
ModelFormField.TextField textField = new ModelFormField.TextField(ModelFormField.FieldInfo.SOURCE_AUTO_SERVICE, this);
this.setFieldInfo(textField);
}
}
return true;
}
public boolean induceFieldInfoFromEntityField(String defaultFieldType) {
if (UtilValidate.isEmpty(this.getEntityName()) || UtilValidate.isEmpty(this.getFieldName())) {
return false;
}
GenericDelegator delegator = this.getModelForm().getDelegator();
ModelEntity modelEntity = delegator.getModelEntity(this.getEntityName());
if (modelEntity != null) {
ModelField modelField = modelEntity.getField(this.getFieldName());
if (modelField != null) {
// okay, populate using the entity field info...
this.induceFieldInfoFromEntityField(modelEntity, modelField, defaultFieldType);
return true;
}
}
return false;
}
public boolean induceFieldInfoFromEntityField(ModelEntity modelEntity, ModelField modelField, String defaultFieldType) {
if (modelEntity == null || modelField == null) {
return false;
}
this.entityName = modelEntity.getEntityName();
this.fieldName = modelField.getName();
if ("find".equals(defaultFieldType)) {
if ("id".equals(modelField.getType()) || "id-ne".equals(modelField.getType())) {
ModelFormField.TextFindField textField = new ModelFormField.TextFindField(ModelFormField.FieldInfo.SOURCE_AUTO_ENTITY, this);
textField.setSize(20);
textField.setMaxlength(new Integer(20));
this.setFieldInfo(textField);
} else if ("id-long".equals(modelField.getType()) || "id-long-ne".equals(modelField.getType())) {
ModelFormField.TextFindField textField = new ModelFormField.TextFindField(ModelFormField.FieldInfo.SOURCE_AUTO_ENTITY, this);
textField.setSize(40);
textField.setMaxlength(new Integer(60));
this.setFieldInfo(textField);
} else if ("id-vlong".equals(modelField.getType()) || "id-vlong-ne".equals(modelField.getType())) {
ModelFormField.TextFindField textField = new ModelFormField.TextFindField(ModelFormField.FieldInfo.SOURCE_AUTO_ENTITY, this);
textField.setSize(60);
textField.setMaxlength(new Integer(250));
this.setFieldInfo(textField);
} else if ("very-short".equals(modelField.getType())) {
ModelFormField.TextField textField = new ModelFormField.TextField(ModelFormField.FieldInfo.SOURCE_AUTO_ENTITY, this);
textField.setSize(6);
textField.setMaxlength(new Integer(10));
this.setFieldInfo(textField);
} else if ("name".equals(modelField.getType()) || "short-varchar".equals(modelField.getType())) {
ModelFormField.TextFindField textField = new ModelFormField.TextFindField(ModelFormField.FieldInfo.SOURCE_AUTO_ENTITY, this);
textField.setSize(40);
textField.setMaxlength(new Integer(60));
this.setFieldInfo(textField);
} else if (
"value".equals(modelField.getType())
|| "comment".equals(modelField.getType())
|| "description".equals(modelField.getType())
|| "long-varchar".equals(modelField.getType())
|| "url".equals(modelField.getType())
|| "email".equals(modelField.getType())) {
ModelFormField.TextFindField textField = new ModelFormField.TextFindField(ModelFormField.FieldInfo.SOURCE_AUTO_ENTITY, this);
textField.setSize(60);
textField.setMaxlength(new Integer(250));
this.setFieldInfo(textField);
} else if (
"floating-point".equals(modelField.getType()) || "currency-amount".equals(modelField.getType()) || "numeric".equals(modelField.getType())) {
ModelFormField.RangeFindField textField = new ModelFormField.RangeFindField(ModelFormField.FieldInfo.SOURCE_AUTO_ENTITY, this);
textField.setSize(6);
this.setFieldInfo(textField);
} else if ("date-time".equals(modelField.getType()) || "date".equals(modelField.getType()) || "time".equals(modelField.getType())) {
ModelFormField.DateFindField dateTimeField = new ModelFormField.DateFindField(ModelFormField.FieldInfo.SOURCE_AUTO_ENTITY, this);
if ("date-time".equals(modelField.getType())) {
dateTimeField.setType("timestamp");
} else if ("date".equals(modelField.getType())) {
dateTimeField.setType("date");
} else if ("time".equals(modelField.getType())) {
dateTimeField.setType("time");
}
this.setFieldInfo(dateTimeField);
} else {
ModelFormField.TextFindField textField = new ModelFormField.TextFindField(ModelFormField.FieldInfo.SOURCE_AUTO_ENTITY, this);
this.setFieldInfo(textField);
}
} else if ("display".equals(defaultFieldType)) {
ModelFormField.DisplayField displayField = new ModelFormField.DisplayField(ModelFormField.FieldInfo.SOURCE_AUTO_SERVICE, this);
this.setFieldInfo(displayField);
} else if ("hidden".equals(defaultFieldType)) {
ModelFormField.HiddenField hiddenField = new ModelFormField.HiddenField(ModelFormField.FieldInfo.SOURCE_AUTO_SERVICE, this);
this.setFieldInfo(hiddenField);
} else {
if ("id".equals(modelField.getType()) || "id-ne".equals(modelField.getType())) {
ModelFormField.TextField textField = new ModelFormField.TextField(ModelFormField.FieldInfo.SOURCE_AUTO_ENTITY, this);
textField.setSize(20);
textField.setMaxlength(new Integer(20));
this.setFieldInfo(textField);
} else if ("id-long".equals(modelField.getType()) || "id-long-ne".equals(modelField.getType())) {
ModelFormField.TextField textField = new ModelFormField.TextField(ModelFormField.FieldInfo.SOURCE_AUTO_ENTITY, this);
textField.setSize(40);
textField.setMaxlength(new Integer(60));
this.setFieldInfo(textField);
} else if ("id-vlong".equals(modelField.getType()) || "id-vlong-ne".equals(modelField.getType())) {
ModelFormField.TextField textField = new ModelFormField.TextField(ModelFormField.FieldInfo.SOURCE_AUTO_ENTITY, this);
textField.setSize(60);
textField.setMaxlength(new Integer(250));
this.setFieldInfo(textField);
} else if ("indicator".equals(modelField.getType())) {
ModelFormField.DropDownField dropDownField = new ModelFormField.DropDownField(ModelFormField.FieldInfo.SOURCE_AUTO_ENTITY, this);
dropDownField.setAllowEmpty(false);
dropDownField.addOptionSource(new ModelFormField.SingleOption("Y", null, dropDownField));
dropDownField.addOptionSource(new ModelFormField.SingleOption("N", null, dropDownField));
this.setFieldInfo(dropDownField);
//ModelFormField.TextField textField = new ModelFormField.TextField(ModelFormField.FieldInfo.SOURCE_AUTO_ENTITY, this);
//textField.setSize(1);
//textField.setMaxlength(new Integer(1));
//this.setFieldInfo(textField);
} else if ("very-short".equals(modelField.getType())) {
ModelFormField.TextField textField = new ModelFormField.TextField(ModelFormField.FieldInfo.SOURCE_AUTO_ENTITY, this);
textField.setSize(6);
textField.setMaxlength(new Integer(10));
this.setFieldInfo(textField);
} else if ("very-long".equals(modelField.getType())) {
ModelFormField.TextareaField textareaField = new ModelFormField.TextareaField(ModelFormField.FieldInfo.SOURCE_AUTO_ENTITY, this);
textareaField.setCols(60);
textareaField.setRows(2);
this.setFieldInfo(textareaField);
} else if ("name".equals(modelField.getType()) || "short-varchar".equals(modelField.getType())) {
ModelFormField.TextField textField = new ModelFormField.TextField(ModelFormField.FieldInfo.SOURCE_AUTO_ENTITY, this);
textField.setSize(40);
textField.setMaxlength(new Integer(60));
this.setFieldInfo(textField);
} else if (
"value".equals(modelField.getType())
|| "comment".equals(modelField.getType())
|| "description".equals(modelField.getType())
|| "long-varchar".equals(modelField.getType())
|| "url".equals(modelField.getType())
|| "email".equals(modelField.getType())) {
ModelFormField.TextField textField = new ModelFormField.TextField(ModelFormField.FieldInfo.SOURCE_AUTO_ENTITY, this);
textField.setSize(60);
textField.setMaxlength(new Integer(250));
this.setFieldInfo(textField);
} else if (
"floating-point".equals(modelField.getType()) || "currency-amount".equals(modelField.getType()) || "numeric".equals(modelField.getType())) {
ModelFormField.TextField textField = new ModelFormField.TextField(ModelFormField.FieldInfo.SOURCE_AUTO_ENTITY, this);
textField.setSize(6);
this.setFieldInfo(textField);
} else if ("date-time".equals(modelField.getType()) || "date".equals(modelField.getType()) || "time".equals(modelField.getType())) {
ModelFormField.DateTimeField dateTimeField = new ModelFormField.DateTimeField(ModelFormField.FieldInfo.SOURCE_AUTO_ENTITY, this);
if ("date-time".equals(modelField.getType())) {
dateTimeField.setType("timestamp");
} else if ("date".equals(modelField.getType())) {
dateTimeField.setType("date");
} else if ("time".equals(modelField.getType())) {
dateTimeField.setType("time");
}
this.setFieldInfo(dateTimeField);
} else {
ModelFormField.TextField textField = new ModelFormField.TextField(ModelFormField.FieldInfo.SOURCE_AUTO_ENTITY, this);
this.setFieldInfo(textField);
}
}
return true;
}
public void renderFieldString(StringBuffer buffer, Map context, FormStringRenderer formStringRenderer) {
this.fieldInfo.renderFieldString(buffer, context, formStringRenderer);
}
/**
* @return
*/
public FieldInfo getFieldInfo() {
return fieldInfo;
}
/**
* @return
*/
public ModelForm getModelForm() {
return modelForm;
}
/**
* @param fieldInfo
*/
public void setFieldInfo(FieldInfo fieldInfo) {
if (fieldInfo == null)
return;
// field info is a little different, check source for priority
if (this.fieldInfo == null || (fieldInfo.getFieldSource() <= this.fieldInfo.getFieldSource())) {
this.fieldInfo = fieldInfo;
this.fieldInfo.modelFormField = this;
}
}
/**
* Gets the name of the Service Attribute (aka Parameter) that corresponds
* with this field. This can be used to get additional information about the field.
* Use the getServiceName() method to get the Entity name that the field is in.
*
* @return
*/
public String getAttributeName() {
if (UtilValidate.isNotEmpty(this.attributeName)) {
return this.attributeName;
} else {
return this.name;
}
}
/**
* @return
*/
public String getEntityName() {
if (UtilValidate.isNotEmpty(this.entityName)) {
return this.entityName;
} else {
return this.modelForm.getDefaultEntityName();
}
}
/**
* @return
*/
public String getEntryName() {
if (this.entryAcsr != null && !this.entryAcsr.isEmpty()) {
return this.entryAcsr.getOriginalName();
} else {
return this.name;
}
}
/**
* Gets the entry from the context that corresponds to this field; if this
* form is being rendered in an error condition (ie isError in the context
* is true) then the value will be retreived from the parameters Map in
* the context.
*
* @param context
* @return
*/
public String getEntry(Map context) {
return this.getEntry(context, "");
}
public String getEntry(Map context, String defaultValue) {
Boolean isError = (Boolean) context.get("isError");
Boolean useRequestParameters = (Boolean) context.get("useRequestParameters");
// if useRequestParameters is TRUE then parameters will always be used, if FALSE then parameters will never be used
// if isError is TRUE and useRequestParameters is not FALSE (ie is null or TRUE) then parameters will be used
if ((Boolean.TRUE.equals(isError) && !Boolean.FALSE.equals(useRequestParameters)) || (Boolean.TRUE.equals(useRequestParameters))) {
//Debug.logInfo("Getting entry, isError true so getting from parameters for field " + this.getName() + " of form " + this.modelForm.getName(), module);
Map parameters = (Map) context.get("parameters");
if (parameters != null && parameters.get(this.getParameterName(context)) != null) {
return (String) parameters.get(this.getParameterName(context));
} else {
return defaultValue;
}
} else {
//Debug.logInfo("Getting entry, isError false so getting from Map in context for field " + this.getName() + " of form " + this.modelForm.getName(), module);
Map dataMap = this.getMap(context);
if (dataMap == null) {
//Debug.logInfo("Getting entry, no Map found with name " + this.getMapName() + ", using context for field " + this.getName() + " of form " + this.modelForm.getName(), module);
dataMap = context;
}
Object retVal = null;
if (this.entryAcsr != null && !this.entryAcsr.isEmpty()) {
//Debug.logInfo("Getting entry, using entryAcsr for field " + this.getName() + " of form " + this.modelForm.getName(), module);
retVal = this.entryAcsr.get(dataMap);
} else {
//Debug.logInfo("Getting entry, no entryAcsr so using field name " + this.name + " for field " + this.getName() + " of form " + this.modelForm.getName(), module);
// if no entry name was specified, use the field's name
retVal = dataMap.get(this.name);
}
if (retVal != null) {
return retVal.toString();
} else {
return defaultValue;
}
}
}
public Map getMap(Map context) {
if (this.mapAcsr == null || this.mapAcsr.isEmpty()) {
//Debug.logInfo("Getting Map from default of the form because of no mapAcsr for field " + this.getName(), module);
return this.modelForm.getDefaultMap(context);
} else {
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -