package org.msh.tb.misc; import org.jboss.seam.annotations.Factory; import org.jboss.seam.annotations.In; import org.jboss.seam.annotations.Name; import org.jboss.seam.faces.FacesMessages; import org.jboss.seam.international.Messages; import org.msh.etbm.commons.transactionlog.mapping.LogInfo; import org.msh.tb.EntityHomeEx; import org.msh.tb.application.App; import org.msh.tb.entities.FieldValue; import org.msh.tb.entities.enums.TbField; import java.util.Map; @Name("fieldValueHome") @LogInfo(roleName="FIELDS", entityClass=FieldValue.class) public class FieldValueHome extends EntityHomeEx { private static final long serialVersionUID = 3191726641746083855L; private TbField field; @In(required=false) FieldsQuery fieldsQuery; @In(create=true) FacesMessages facesMessages; @Factory("fieldValue") public FieldValue getFieldValue() { return getInstance(); } /* (non-Javadoc) * @see com.rmemoria.utils.EntityHomeEx#persist() */ @Override public String persist() { FieldValue fld = getInstance(); if (fld.getField() == null) fld.setField(field); if (fld.isOther()) { String val = fld.getOtherDescription(); if ((val == null) || (val.isEmpty())) { Map msgs = Messages.instance(); facesMessages.add(msgs.get("FieldValue.otherDescription") + ": " + msgs.get("javax.faces.component.UIInput.REQUIRED")); return "error"; } } FieldsOptions foptions = (FieldsOptions) App.getComponent("fieldOptions"); foptions.refresh(); return super.persist(); } @Override public String remove() { String ret = super.remove(); if (ret.equals("removed")) { getEntityManager().flush(); if (fieldsQuery != null) fieldsQuery.refreshLists(); } return ret; } /** * @param field the field to set */ public void setField(TbField field) { this.field = field; } /** * @return the field */ public TbField getField() { return field; } }