📄 modelformfield.java
字号:
|| modelParam.type.indexOf("Integer") != -1) { ModelFormField.RangeFindField textField = new ModelFormField.RangeFindField(ModelFormField.FieldInfo.SOURCE_AUTO_SERVICE, this); textField.setSize(6); this.setFieldInfo(textField); } else if (modelParam.type.indexOf("Timestamp") != -1) { ModelFormField.DateFindField dateTimeField = new ModelFormField.DateFindField(ModelFormField.FieldInfo.SOURCE_AUTO_SERVICE, this); dateTimeField.setType("timestamp"); this.setFieldInfo(dateTimeField); } else if (modelParam.type.indexOf("Date") != -1) { ModelFormField.DateFindField dateTimeField = new ModelFormField.DateFindField(ModelFormField.FieldInfo.SOURCE_AUTO_SERVICE, this); dateTimeField.setType("date"); this.setFieldInfo(dateTimeField); } else if (modelParam.type.indexOf("Time") != -1) { ModelFormField.DateFindField dateTimeField = new ModelFormField.DateFindField(ModelFormField.FieldInfo.SOURCE_AUTO_SERVICE, this); dateTimeField.setType("time"); this.setFieldInfo(dateTimeField); } else { ModelFormField.TextFindField textField = new ModelFormField.TextFindField(ModelFormField.FieldInfo.SOURCE_AUTO_SERVICE, 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 { // default to "edit" if (modelParam.type.indexOf("Double") != -1 || modelParam.type.indexOf("Float") != -1 || modelParam.type.indexOf("Long") != -1 || modelParam.type.indexOf("Integer") != -1) { ModelFormField.TextField textField = new ModelFormField.TextField(ModelFormField.FieldInfo.SOURCE_AUTO_SERVICE, this); textField.setSize(6); this.setFieldInfo(textField); } else if (modelParam.type.indexOf("Timestamp") != -1) { ModelFormField.DateTimeField dateTimeField = new ModelFormField.DateTimeField(ModelFormField.FieldInfo.SOURCE_AUTO_SERVICE, this); dateTimeField.setType("timestamp"); 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"); Locale locale = (Locale) context.get("locale"); if (locale == null) locale = Locale.getDefault(); // 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); boolean dataMapIsContext = false; 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;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -