package entity.prescription; import op.OPDE; import op.tools.SYSConst; import op.tools.SYSTools; import javax.persistence.EntityManager; import javax.persistence.Query; import javax.swing.*; import java.awt.*; import java.util.ArrayList; /** * Created by IntelliJ IDEA. * User: tloehr * Date: 01.12.11 * Time: 17:17 * To change this template use File | Settings | File Templates. */ public class DosageFormTools { public static final short STATE_UPR1 = 0; public static final short STATE_UPRn = 1; public static final short STATE_DONT_CALC = 2; public static final String[] UPR_STATES = new String[]{SYSTools.xx("state_upr1"), SYSTools.xx("state_uprn"), SYSTools.xx("state_dont_calc")}; public static ArrayList<DosageForm> getAll() { EntityManager em = OPDE.createEM(); Query query = em.createQuery("SELECT a FROM DosageForm a "); ArrayList<DosageForm> listDF = new ArrayList<DosageForm>(query.getResultList()); em.close(); return listDF; } /** * @param maxlen maximale Zeichenlänge pro Zeile. maxlen < 1 heisst egal. * @return */ public static ListCellRenderer getRenderer(int maxlen) { final int max = maxlen; return (jList, o, i, isSelected, cellHasFocus) -> { String text; if (o == null) { text = SYSTools.toHTML("<i>" + SYSTools.xx("misc.commands.noselection") + "</i>"); } else if (o instanceof DosageForm) { DosageForm form = (DosageForm) o; text = toPrettyString(form); text += ", " + SYSTools.xx("misc.msg.upr") + " " + UPR_STATES[form.getUPRState()]; } else { text = o.toString(); } if (max > 0) { text = SYSTools.left(text, max); } return new DefaultListCellRenderer().getListCellRendererComponent(jList, text, i, isSelected, cellHasFocus); }; } public static String getUsageText(DosageForm form) { String result = ""; if (form == null) { result = "?"; } else if (!form.getUsageText().isEmpty()) { result = form.getUsageText(); } else { result = SYSConst.UNITS[form.getUsageUnit()]; } return result; } public static String toPrettyString(DosageForm form) { return (SYSTools.catchNull(form.getPreparation()).isEmpty() ? form.getUsageText() : form.getPreparation() + SYSTools.catchNull(form.getUsageText(), ", ", "")); } public static String getPackageText(DosageForm form) { String result = "<null>"; if (form != null) { if (SYSTools.catchNull(form.getPreparation()).isEmpty()) { result = SYSConst.UNITS[form.getPackUnit()] + " " + form.getUsageText(); } else { result = SYSConst.UNITS[form.getPackUnit()] + " " + form.getPreparation(); } } return result; } }