/*
* Created by JFormDesigner on Thu Mar 07 10:20:20 CET 2013
*/
package op.care.med.structure;
import com.jgoodies.forms.factories.CC;
import com.jgoodies.forms.layout.FormLayout;
import entity.nursingprocess.Intervention;
import entity.nursingprocess.InterventionTools;
import entity.prescription.DosageForm;
import op.OPDE;
import op.threads.DisplayMessage;
import gui.GUITools;
import op.tools.PopupPanel;
import op.tools.SYSConst;
import op.tools.SYSTools;
import javax.swing.*;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
import java.util.Arrays;
/**
* @author Torsten Löhr
*/
public class PnlDosageForm extends PopupPanel {
public static final String internalClassID = "opde.medication.pnlDosageForm";
private DosageForm form;
private JTextField txtDailyPlan, txtSameAs;
public PnlDosageForm(DosageForm form) {
this.form = form;
initComponents();
initPanel();
}
private void cmbUsageUnitItemStateChanged(ItemEvent e) {
if (e.getStateChange() == ItemEvent.SELECTED) {
if (cmbPackUnit.getSelectedIndex() == cmbUsageUnit.getSelectedIndex()) {
cmbUPR.setSelectedIndex(0);
cmbUPR.setEnabled(false);
} else {
cmbUPR.setEnabled(true);
}
}
}
private void cmbPackUnitItemStateChanged(ItemEvent e) {
if (e.getStateChange() == ItemEvent.SELECTED) {
if (cmbPackUnit.getSelectedIndex() == cmbUsageUnit.getSelectedIndex()) {
cmbUPR.setSelectedIndex(0);
cmbUPR.setEnabled(false);
} else {
cmbUPR.setEnabled(true);
}
}
}
private void initComponents() {
// JFormDesigner - Component initialization - DO NOT MODIFY //GEN-BEGIN:initComponents
lblPreparation = new JLabel();
txtPreparation = new JTextField();
lblUsage = new JLabel();
txtUsageText = new JTextField();
lblUsageUnit = new JLabel();
cmbUsageUnit = new JComboBox();
lblPackUnit = new JLabel();
cmbPackUnit = new JComboBox();
lblIntervention = new JLabel();
cmbIntervention = new JComboBox();
lblDailyPlan = new JLabel();
lblEquiv = new JLabel();
lblUPRState = new JLabel();
cmbUPR = new JComboBox();
//======== this ========
setLayout(new FormLayout(
"2*(default, $lcgap), default:grow, $lcgap, default",
"9*(default, $lgap), default"));
//---- lblPreparation ----
lblPreparation.setText("preparation");
add(lblPreparation, CC.xy(3, 3));
add(txtPreparation, CC.xy(5, 3));
//---- lblUsage ----
lblUsage.setText("usageText");
add(lblUsage, CC.xy(3, 5));
add(txtUsageText, CC.xy(5, 5));
//---- lblUsageUnit ----
lblUsageUnit.setText("usageUnit");
add(lblUsageUnit, CC.xy(3, 7));
//---- cmbUsageUnit ----
cmbUsageUnit.addItemListener(e -> cmbUsageUnitItemStateChanged(e));
add(cmbUsageUnit, CC.xy(5, 7));
//---- lblPackUnit ----
lblPackUnit.setText("packUnit");
add(lblPackUnit, CC.xy(3, 9));
//---- cmbPackUnit ----
cmbPackUnit.addItemListener(e -> cmbPackUnitItemStateChanged(e));
add(cmbPackUnit, CC.xy(5, 9));
//---- lblIntervention ----
lblIntervention.setText("Intervention");
add(lblIntervention, CC.xy(3, 11));
add(cmbIntervention, CC.xy(5, 11));
//---- lblDailyPlan ----
lblDailyPlan.setText("dailyPlan");
add(lblDailyPlan, CC.xy(3, 13));
//---- lblEquiv ----
lblEquiv.setText("equiv");
add(lblEquiv, CC.xy(3, 15));
//---- lblUPRState ----
lblUPRState.setText("UPR_STATE");
add(lblUPRState, CC.xy(3, 17));
add(cmbUPR, CC.xy(5, 17));
// JFormDesigner - End of component initialization //GEN-END:initComponents
}
private void initPanel() {
lblPreparation.setText(SYSTools.xx("opde.medication.pnlDosageForm.preparation"));
lblUsage.setText(SYSTools.xx("opde.medication.pnlDosageForm.usagetext"));
lblUsageUnit.setText(SYSTools.xx("opde.medication.pnlDosageForm.usageUnit"));
lblPackUnit.setText(SYSTools.xx("opde.medication.pnlDosageForm.packUnit"));
lblIntervention.setText(SYSTools.xx("opde.medication.pnlDosageForm.intervention"));
lblDailyPlan.setText(SYSTools.xx("opde.medication.pnlDosageForm.dailyPlan"));
lblEquiv.setText(SYSTools.xx("opde.medication.pnlDosageForm.sameas"));
lblUPRState.setText(SYSTools.xx("opde.medication.pnlDosageForm.uprstate"));
cmbUPR.setModel(new DefaultComboBoxModel(new String[]{SYSTools.xx("state_upr1"), SYSTools.xx("state_uprn"), SYSTools.xx("state_dont_calc")}));
cmbUPR.setSelectedIndex(form.getUPRState());
cmbIntervention.setModel(new DefaultComboBoxModel(InterventionTools.findBy(InterventionTools.TYPE_PRESCRIPTION).toArray()));
cmbUsageUnit.setModel(new DefaultComboBoxModel(Arrays.copyOfRange(SYSConst.UNITS, 1, SYSConst.UNITS.length - 1)));
cmbPackUnit.setModel(new DefaultComboBoxModel(Arrays.copyOfRange(SYSConst.UNITS, 1, SYSConst.UNITS.length - 1)));
txtDailyPlan = GUITools.createIntegerTextField(0, 20, 0);
add(txtDailyPlan, CC.xy(5, 13));
txtSameAs = GUITools.createIntegerTextField(0, 100, 0);
add(txtSameAs, CC.xy(5, 15));
txtUsageText.setText(form.getUsageText());
txtPreparation.setText(form.getPreparation());
cmbPackUnit.setSelectedIndex(form.getPackUnit() - 1);
cmbUsageUnit.setSelectedIndex(form.getUsageUnit() - 1);
cmbUPR.setEnabled(cmbPackUnit.getSelectedIndex() != cmbUsageUnit.getSelectedIndex());
if (form.getIntervention() != null) {
cmbIntervention.setSelectedItem(form.getIntervention());
} else {
cmbIntervention.setSelectedIndex(0);
}
txtDailyPlan.setText(Short.toString(form.getDailyPlan()));
txtSameAs.setText(Integer.toString(form.getSameAs()));
}
@Override
public Object getResult() {
form.setPreparation(txtPreparation.getText());
form.setUsageText(txtUsageText.getText());
form.setPackUnit(Short.parseShort(Integer.toString(cmbPackUnit.getSelectedIndex() + 1)));
form.setUsageUnit(Short.parseShort(Integer.toString(cmbUsageUnit.getSelectedIndex() + 1)));
form.setSameas(Integer.parseInt(txtSameAs.getText()));
form.setDailyPlan(Short.parseShort(txtDailyPlan.getText()));
form.setIntervention((Intervention) cmbIntervention.getSelectedItem());
form.setUPRState(Short.parseShort(Integer.toString(cmbUPR.getSelectedIndex())));
return form;
}
@Override
public boolean isSaveOK() {
if (SYSTools.catchNull(txtPreparation.getText()).trim().isEmpty() && SYSTools.catchNull(txtUsageText.getText()).trim().isEmpty()) {
OPDE.getDisplayManager().addSubMessage(new DisplayMessage("opde.medication.pnlDosageForm.notbothmustbeempty", DisplayMessage.WARNING));
return false;
}
if (SYSTools.catchNull(txtSameAs.getText()).trim().isEmpty()) {
OPDE.getDisplayManager().addSubMessage(new DisplayMessage("misc.msg.emptyentry", DisplayMessage.WARNING));
return false;
}
if (SYSTools.catchNull(txtDailyPlan.getText()).trim().isEmpty()) {
OPDE.getDisplayManager().addSubMessage(new DisplayMessage("misc.msg.emptyentry", DisplayMessage.WARNING));
return false;
}
return true;
}
@Override
public void setStartFocus() {
txtPreparation.requestFocus();
}
// JFormDesigner - Variables declaration - DO NOT MODIFY //GEN-BEGIN:variables
private JLabel lblPreparation;
private JTextField txtPreparation;
private JLabel lblUsage;
private JTextField txtUsageText;
private JLabel lblUsageUnit;
private JComboBox cmbUsageUnit;
private JLabel lblPackUnit;
private JComboBox cmbPackUnit;
private JLabel lblIntervention;
private JComboBox cmbIntervention;
private JLabel lblDailyPlan;
private JLabel lblEquiv;
private JLabel lblUPRState;
private JComboBox cmbUPR;
// JFormDesigner - End of variables declaration //GEN-END:variables
}