/* * OffenePflege * Copyright (C) 2006-2012 Torsten Löhr * This program is free software; you can redistribute it and/or modify it under the terms of the * GNU General Public License V2 as published by the Free Software Foundation * * This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even * the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General * Public License for more details. * * You should have received a copy of the GNU General Public License along with this program; if not, write to * the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110, USA * www.offene-pflege.de * ------------------------ * Auf deutsch (freie Übersetzung. Rechtlich gilt die englische Version) * Dieses Programm ist freie Software. Sie können es unter den Bedingungen der GNU General Public License, * wie von der Free Software Foundation veröffentlicht, weitergeben und/oder modifizieren, gemäß Version 2 der Lizenz. * * Die Veröffentlichung dieses Programms erfolgt in der Hoffnung, daß es Ihnen von Nutzen sein wird, aber * OHNE IRGENDEINE GARANTIE, sogar ohne die implizite Garantie der MARKTREIFE oder der VERWENDBARKEIT FÜR EINEN * BESTIMMTEN ZWECK. Details finden Sie in der GNU General Public License. * * Sie sollten ein Exemplar der GNU General Public License zusammen mit diesem Programm erhalten haben. Falls nicht, * schreiben Sie an die Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110, USA. * */ package op.care.prescription; import com.jgoodies.forms.factories.CC; import com.jgoodies.forms.layout.FormLayout; import com.jidesoft.swing.JideButton; import com.jidesoft.swing.JideLabel; import com.jidesoft.swing.JideTabbedPane; import entity.prescription.PrescriptionSchedule; import gui.interfaces.CleanablePanel; import op.OPDE; import op.threads.DisplayMessage; import op.tools.SYSCalendar; import op.tools.SYSConst; import op.tools.SYSTools; import org.apache.commons.collections.Closure; import org.joda.time.LocalDate; import javax.swing.*; import javax.swing.border.EtchedBorder; import javax.swing.border.LineBorder; import java.awt.*; import java.awt.event.*; import java.math.BigDecimal; import java.text.DateFormat; import java.util.ArrayList; import java.util.Date; /** * @author tloehr */ public class PnlScheduleDose extends JPanel { private int MIN = 0; private int MAX = 1; private int DEFAULT = 2; private int[] dailyModel = new int[]{1, 365, 1}; private int[] weeklyModel = new int[]{1, 52, 1}; private int[] monthlyModel = new int[]{1, 12, 1}; private int[] perMonthModel = new int[]{1, 31, 1}; private int[] weekdayModel = new int[]{1, 5, 1}; private boolean ignoreEvent = false; private PrescriptionSchedule schedule; private Closure actionBlock; private double splitRegularPos; private final int TAB_DAILY = 0; private final int TAB_WEEKLY = 1; private final int TAB_MONTHLY = 2; public PnlScheduleDose(PrescriptionSchedule schedule, Closure actionBlock) { // super("nursingrecords.prescription.pnlscheduledose"); super(); this.actionBlock = actionBlock; // this.currentSelectedTime = null; this.schedule = schedule; initComponents(); initPanel(); } private void btnToTimeActionPerformed(ActionEvent e) { splitRegularPos = SYSTools.showSide(splitRegular, SYSTools.RIGHT_LOWER_SIDE, SYSTools.SPEED_NORMAL); if (SYSTools.parseDecimal(txtTimeDose.getText()).equals(BigDecimal.ZERO)) { txtTimeDose.setText(SYSTools.formatBigDecimal(BigDecimal.ONE)); } } private void btnToTimeOfDayActionPerformed(ActionEvent e) { splitRegularPos = SYSTools.showSide(splitRegular, SYSTools.LEFT_UPPER_SIDE, SYSTools.SPEED_NORMAL); if (!isAtLeastOneTxtFieldNotZero()) { txtTimeDose.setText(SYSTools.formatBigDecimal(BigDecimal.ONE)); } } private void panelMainComponentResized(ComponentEvent e) { SYSTools.showSide(splitRegular, splitRegularPos); } private void cmbUhrzeitItemStateChanged(ItemEvent e) { // currentSelectedTime = (Date) e.getItem(); lblTimeDose.setText(SYSTools.xx("nursingrecords.prescription.pnlscheduledose.lblTimeDose") + " " + DateFormat.getTimeInstance(DateFormat.SHORT).format(e.getItem()) + " " + SYSTools.xx("misc.msg.Time.short")); } private void btnJedenTagActionPerformed(ActionEvent e) { txtEveryDay.setText("1"); } private void btnJedeWocheActionPerformed(ActionEvent e) { txtEveryWeek.setText("1"); } private void btnJedenMonatActionPerformed(ActionEvent e) { txtEveryMonth.setText("1"); } private void txtLDateFocusLost(FocusEvent evt) { SYSCalendar.handleDateFocusLost(evt, new LocalDate(), new LocalDate().plusWeeks(4)); } private void txtEveryMonthFocusLost(FocusEvent e) { SYSTools.handleIntegerFocusLost(e, monthlyModel[MIN], monthlyModel[MAX], monthlyModel[DEFAULT]); } private void txtEveryWDayOfMonthFocusLost(FocusEvent e) { if (cmbWDay.getSelectedIndex() == 0) { SYSTools.handleIntegerFocusLost(e, perMonthModel[MIN], perMonthModel[MAX], perMonthModel[DEFAULT]); } else { SYSTools.handleIntegerFocusLost(e, weekdayModel[MIN], weekdayModel[MAX], weekdayModel[DEFAULT]); } } private void txtEveryWeekFocusLost(FocusEvent e) { SYSTools.handleIntegerFocusLost(e, weeklyModel[MIN], weeklyModel[MAX], weeklyModel[DEFAULT]); } private void txtEveryDayFocusLost(FocusEvent e) { SYSTools.handleIntegerFocusLost(e, dailyModel[MIN], dailyModel[MAX], dailyModel[DEFAULT]); } private void txtDoubleFocusLost(FocusEvent e) { SYSTools.handleBigDecimalFocusLost(e, BigDecimal.ZERO, new BigDecimal(10000), BigDecimal.ONE); } private void txtActionPerformed(ActionEvent e) { if (e.getSource().equals(txtVeryEarly)) { txtMorning.requestFocus(); } else if (e.getSource().equals(txtMorning)) { txtNoon.requestFocus(); } else if (e.getSource().equals(txtNoon)) { txtAfternoon.requestFocus(); } else if (e.getSource().equals(txtAfternoon)) { txtEvening.requestFocus(); } else if (e.getSource().equals(txtEvening)) { txtVeryLate.requestFocus(); } else if (e.getSource().equals(txtVeryLate)) { txtVeryEarly.requestFocus(); } } private void initPanel() { tabWdh.setTitleAt(0, SYSTools.xx("misc.msg.daily")); tabWdh.setTitleAt(1, SYSTools.xx("misc.msg.weekly")); tabWdh.setTitleAt(2, SYSTools.xx("misc.msg.monthly")); lblLDate.setText(SYSTools.xx("nursingrecords.prescription.pnlscheduledose.lblLDate") + " "); lblOnThe.setText(SYSTools.xx("nursingrecords.prescription.pnlscheduledose.lblOnThe")); lblMonth.setText(SYSTools.xx("misc.msg.months")); lblEach.setText(SYSTools.xx("misc.msg.every")); lblEvery1.setText(SYSTools.xx("misc.msg.every")); lblEvery2.setText(SYSTools.xx("misc.msg.every")); lblWeeksAt.setText(SYSTools.xx("misc.msg.weeks") + " " + SYSTools.xx("misc.msg.atchrono")); lblDays.setText(SYSTools.xx("misc.msg.Days2")); ArrayList<Date> timelist = SYSCalendar.getTimeList(); cmbUhrzeit.setModel(new DefaultComboBoxModel(timelist.toArray())); cmbUhrzeit.setRenderer(SYSCalendar.getTimeRenderer()); String[] wdaymodel = new String[]{SYSTools.xx("misc.msg.dayOfMonth"), SYSTools.xx("misc.msg.monday"), SYSTools.xx("misc.msg.tuesday"), SYSTools.xx("misc.msg.wednesday"), SYSTools.xx("misc.msg.thursday"), SYSTools.xx("misc.msg.friday"), SYSTools.xx("misc.msg.saturday"), SYSTools.xx("misc.msg.sunday")}; cmbWDay.setModel(new DefaultComboBoxModel(wdaymodel)); lblMon.setText(SYSTools.xx("misc.msg.monday")); lblTue.setText(SYSTools.xx("misc.msg.tuesday")); lblWed.setText(SYSTools.xx("misc.msg.wednesday")); lblThu.setText(SYSTools.xx("misc.msg.thursday")); lblFri.setText(SYSTools.xx("misc.msg.friday")); lblSat.setText(SYSTools.xx("misc.msg.saturday")); lblSun.setText(SYSTools.xx("misc.msg.sunday")); lblVeryEarly.setText(SYSTools.xx("misc.msg.earlyinthemorning.long")); lblMorning.setText(SYSTools.xx("misc.msg.morning.long")); lblNoon.setText(SYSTools.xx("misc.msg.noon.long")); lblAfternoon.setText(SYSTools.xx("misc.msg.afternoon.long")); lblEvening.setText(SYSTools.xx("misc.msg.evening.long")); lblVeryLate.setText(SYSTools.xx("misc.msg.lateatnight.long")); txtEveryDay.setText("1"); txtEveryWeek.setText("1"); txtEveryMonth.setText("1"); txtEveryWDayOfMonth.setText("1"); // txtEveryDay.setText(schedule.getTaeglich().toString()); // txtEveryWeek.setText(schedule.getWoechentlich().toString()); // txtEveryMonth.setText(schedule.getMonatlich().toString()); // txtEveryWDayOfMonth.setText(schedule.getTagNum().toString()); tabWdh.setSelectedIndex(TAB_DAILY); if (schedule.getWoechentlich() > 0) { cbMon.setSelected(schedule.getMon() > 0); cbTue.setSelected(schedule.getTue() > 0); cbWed.setSelected(schedule.getWed() > 0); cbThu.setSelected(schedule.getThu() > 0); cbFri.setSelected(schedule.getFri() > 0); cbSat.setSelected(schedule.getSat() > 0); cbSun.setSelected(schedule.getSun() > 0); tabWdh.setSelectedIndex(TAB_WEEKLY); } if (schedule.getMonatlich() > 0) { if (schedule.getTagNum() > 0) { txtEveryWDayOfMonth.setText(Short.toString(schedule.getTagNum())); cmbWDay.setSelectedIndex(0); } else { if (schedule.getMon() > 0) { cmbWDay.setSelectedIndex(1); txtEveryWDayOfMonth.setText(Short.toString(schedule.getMon())); } else if (schedule.getTue() > 0) { cmbWDay.setSelectedIndex(2); txtEveryWDayOfMonth.setText(Short.toString(schedule.getTue())); } else if (schedule.getWed() > 0) { cmbWDay.setSelectedIndex(3); txtEveryWDayOfMonth.setText(Short.toString(schedule.getWed())); } else if (schedule.getThu() > 0) { cmbWDay.setSelectedIndex(4); txtEveryWDayOfMonth.setText(Short.toString(schedule.getThu())); } else if (schedule.getFri() > 0) { cmbWDay.setSelectedIndex(5); txtEveryWDayOfMonth.setText(Short.toString(schedule.getFri())); } else if (schedule.getSat() > 0) { cmbWDay.setSelectedIndex(6); txtEveryWDayOfMonth.setText(Short.toString(schedule.getSat())); } else if (schedule.getSun() > 0) { cmbWDay.setSelectedIndex(7); txtEveryWDayOfMonth.setText(Short.toString(schedule.getSun())); } } tabWdh.setSelectedIndex(TAB_MONTHLY); } // jdcLDatum.setMinSelectableDate(new Date()); // jdcLDatum.setDate(new Date(Math.max(schedule.getLDatum().getTime(), SYSCalendar.startOfDay()))); LocalDate scheduleLDate = new LocalDate(schedule.getLDatum()); LocalDate today = new LocalDate(); LocalDate ldate = new LocalDate(SYSCalendar.max(scheduleLDate, today)); txtLDate.setText(DateFormat.getDateInstance().format(ldate.toDate())); txtVeryEarly.setText(SYSTools.formatBigDecimal(schedule.getNachtMo().setScale(2, BigDecimal.ROUND_HALF_UP))); txtMorning.setText(SYSTools.formatBigDecimal(schedule.getMorgens().setScale(2, BigDecimal.ROUND_HALF_UP))); txtNoon.setText(SYSTools.formatBigDecimal(schedule.getMittags().setScale(2, BigDecimal.ROUND_HALF_UP))); txtAfternoon.setText(SYSTools.formatBigDecimal(schedule.getNachmittags().setScale(2, BigDecimal.ROUND_HALF_UP))); txtEvening.setText(SYSTools.formatBigDecimal(schedule.getAbends().setScale(2, BigDecimal.ROUND_HALF_UP))); txtVeryLate.setText(SYSTools.formatBigDecimal(schedule.getNachtAb().setScale(2, BigDecimal.ROUND_HALF_UP))); txtTimeDose.setText(SYSTools.formatBigDecimal(schedule.getUhrzeitDosis().setScale(2, BigDecimal.ROUND_HALF_UP))); txtMorning.setBackground(SYSConst.lightblue); txtNoon.setBackground(SYSConst.gold7); txtAfternoon.setBackground(SYSConst.melonrindgreen); txtEvening.setBackground(SYSConst.bermuda_sand); txtVeryLate.setBackground(SYSConst.bluegrey); Date now = null; if (schedule.getUhrzeitDosis().compareTo(BigDecimal.ZERO) > 0) { splitRegularPos = 0.0d; now = schedule.getUhrzeit(); } else { now = new Date(); splitRegularPos = 1.0d; } for (Date zeit : timelist) { if (SYSCalendar.compareTime(zeit, now) >= 0) { now = zeit; break; } } cmbUhrzeit.setSelectedItem(now); lblTimeDose.setText(SYSTools.xx("nursingrecords.prescription.pnlscheduledose.lblTimeDose") + " " + DateFormat.getTimeInstance(DateFormat.SHORT).format(now) + " " + SYSTools.xx("misc.msg.Time.short")); panelMainComponentResized(null); } /** * This method is called from within the constructor to * initialize the form. * WARNING: Do NOT modify this code. The content of this method is * always regenerated by the PrinterForm Editor. */ // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents private void initComponents() { panelMain = new JPanel(); splitRegular = new JSplitPane(); pnlTageszeit = new JPanel(); lblVeryEarly = new JideLabel(); lblMorning = new JideLabel(); lblNoon = new JideLabel(); lblAfternoon = new JideLabel(); lblEvening = new JideLabel(); lblVeryLate = new JideLabel(); txtVeryEarly = new JTextField(); txtMorning = new JTextField(); txtNoon = new JTextField(); txtAfternoon = new JTextField(); txtEvening = new JTextField(); txtVeryLate = new JTextField(); btnToTime = new JButton(); pnlUhrzeit = new JPanel(); lblTimeDose = new JideLabel(); btnToTimeOfDay = new JButton(); txtTimeDose = new JTextField(); cmbUhrzeit = new JComboBox(); tabWdh = new JideTabbedPane(); pnlDaily = new JPanel(); lblEvery1 = new JLabel(); txtEveryDay = new JTextField(); lblDays = new JLabel(); btnEveryDay = new JideButton(); pnlWeekly = new JPanel(); panel3 = new JPanel(); lblEvery2 = new JLabel(); txtEveryWeek = new JTextField(); lblWeeksAt = new JLabel(); btnEveryWeek = new JideButton(); lblMon = new JideLabel(); lblTue = new JideLabel(); lblWed = new JideLabel(); lblThu = new JideLabel(); lblFri = new JideLabel(); lblSat = new JideLabel(); lblSun = new JideLabel(); cbMon = new JCheckBox(); cbTue = new JCheckBox(); cbWed = new JCheckBox(); cbThu = new JCheckBox(); cbFri = new JCheckBox(); cbSat = new JCheckBox(); cbSun = new JCheckBox(); pnlMonthly = new JPanel(); lblEach = new JLabel(); txtEveryMonth = new JTextField(); lblMonth = new JLabel(); btnEveryMonth = new JideButton(); lblOnThe = new JLabel(); txtEveryWDayOfMonth = new JTextField(); cmbWDay = new JComboBox(); panel2 = new JPanel(); lblLDate = new JLabel(); txtLDate = new JTextField(); btnSave = new JButton(); //======== this ======== setLayout(new BorderLayout()); //======== panelMain ======== { panelMain.setBorder(new LineBorder(Color.black, 2, true)); panelMain.addComponentListener(new ComponentAdapter() { @Override public void componentResized(ComponentEvent e) { panelMainComponentResized(e); } }); panelMain.setLayout(new FormLayout( "$rgap, $lcgap, 223dlu, $lcgap, $rgap", "$rgap, 2*($lgap, pref), 2*($lgap, default), $lgap, $rgap")); //======== splitRegular ======== { splitRegular.setDividerSize(0); splitRegular.setEnabled(false); splitRegular.setDividerLocation(300); splitRegular.setDoubleBuffered(true); //======== pnlTageszeit ======== { pnlTageszeit.setFont(new Font("Arial", Font.PLAIN, 14)); pnlTageszeit.setBorder(new EtchedBorder()); pnlTageszeit.setLayout(new FormLayout( "6*(28dlu, $lcgap), default", "fill:default, $lgap, fill:default")); //---- lblVeryEarly ---- lblVeryEarly.setText("Nachts, fr\u00fch morgens"); lblVeryEarly.setOrientation(1); lblVeryEarly.setFont(new Font("Arial", Font.PLAIN, 14)); lblVeryEarly.setClockwise(false); lblVeryEarly.setHorizontalTextPosition(SwingConstants.LEFT); pnlTageszeit.add(lblVeryEarly, CC.xy(1, 1)); //---- lblMorning ---- lblMorning.setForeground(new Color(0, 0, 204)); lblMorning.setText("Morgens"); lblMorning.setOrientation(1); lblMorning.setFont(new Font("Arial", Font.PLAIN, 14)); lblMorning.setClockwise(false); lblMorning.setHorizontalTextPosition(SwingConstants.LEFT); pnlTageszeit.add(lblMorning, CC.xy(3, 1)); //---- lblNoon ---- lblNoon.setForeground(new Color(255, 102, 0)); lblNoon.setText("Mittags"); lblNoon.setOrientation(1); lblNoon.setFont(new Font("Arial", Font.PLAIN, 14)); lblNoon.setClockwise(false); lblNoon.setHorizontalTextPosition(SwingConstants.LEFT); pnlTageszeit.add(lblNoon, CC.xy(5, 1)); //---- lblAfternoon ---- lblAfternoon.setForeground(new Color(0, 153, 51)); lblAfternoon.setText("Nachmittag"); lblAfternoon.setOrientation(1); lblAfternoon.setFont(new Font("Arial", Font.PLAIN, 14)); lblAfternoon.setClockwise(false); lblAfternoon.setHorizontalTextPosition(SwingConstants.LEFT); pnlTageszeit.add(lblAfternoon, CC.xy(7, 1)); //---- lblEvening ---- lblEvening.setForeground(new Color(255, 0, 51)); lblEvening.setText("Abends"); lblEvening.setOrientation(1); lblEvening.setFont(new Font("Arial", Font.PLAIN, 14)); lblEvening.setClockwise(false); lblEvening.setHorizontalTextPosition(SwingConstants.LEFT); pnlTageszeit.add(lblEvening, CC.xy(9, 1)); //---- lblVeryLate ---- lblVeryLate.setText("Nacht, sp\u00e4t abends"); lblVeryLate.setOrientation(1); lblVeryLate.setFont(new Font("Arial", Font.PLAIN, 14)); lblVeryLate.setClockwise(false); lblVeryLate.setHorizontalTextPosition(SwingConstants.LEFT); pnlTageszeit.add(lblVeryLate, CC.xy(11, 1)); //---- txtVeryEarly ---- txtVeryEarly.setHorizontalAlignment(SwingConstants.RIGHT); txtVeryEarly.setText("0.0"); txtVeryEarly.setFont(new Font("Arial", Font.PLAIN, 14)); txtVeryEarly.addFocusListener(new FocusAdapter() { @Override public void focusGained(FocusEvent e) { txtFocusGained(e); } @Override public void focusLost(FocusEvent e) { txtDoubleFocusLost(e); } }); txtVeryEarly.addActionListener(e -> txtActionPerformed(e)); pnlTageszeit.add(txtVeryEarly, CC.xy(1, 3)); //---- txtMorning ---- txtMorning.setHorizontalAlignment(SwingConstants.RIGHT); txtMorning.setText("1.0"); txtMorning.setFont(new Font("Arial", Font.PLAIN, 14)); txtMorning.addFocusListener(new FocusAdapter() { @Override public void focusGained(FocusEvent e) { txtFocusGained(e); } @Override public void focusLost(FocusEvent e) { txtDoubleFocusLost(e); } }); txtMorning.addActionListener(e -> txtActionPerformed(e)); pnlTageszeit.add(txtMorning, CC.xy(3, 3)); //---- txtNoon ---- txtNoon.setHorizontalAlignment(SwingConstants.RIGHT); txtNoon.setText("0.0"); txtNoon.setFont(new Font("Arial", Font.PLAIN, 14)); txtNoon.addFocusListener(new FocusAdapter() { @Override public void focusGained(FocusEvent e) { txtFocusGained(e); } @Override public void focusLost(FocusEvent e) { txtDoubleFocusLost(e); } }); txtNoon.addActionListener(e -> txtActionPerformed(e)); pnlTageszeit.add(txtNoon, CC.xy(5, 3)); //---- txtAfternoon ---- txtAfternoon.setHorizontalAlignment(SwingConstants.RIGHT); txtAfternoon.setText("0.0"); txtAfternoon.setFont(new Font("Arial", Font.PLAIN, 14)); txtAfternoon.addFocusListener(new FocusAdapter() { @Override public void focusGained(FocusEvent e) { txtFocusGained(e); } @Override public void focusLost(FocusEvent e) { txtDoubleFocusLost(e); } }); txtAfternoon.addActionListener(e -> txtActionPerformed(e)); pnlTageszeit.add(txtAfternoon, CC.xy(7, 3)); //---- txtEvening ---- txtEvening.setHorizontalAlignment(SwingConstants.RIGHT); txtEvening.setText("0.0"); txtEvening.setFont(new Font("Arial", Font.PLAIN, 14)); txtEvening.addFocusListener(new FocusAdapter() { @Override public void focusGained(FocusEvent e) { txtFocusGained(e); } @Override public void focusLost(FocusEvent e) { txtDoubleFocusLost(e); } }); txtEvening.addActionListener(e -> txtActionPerformed(e)); pnlTageszeit.add(txtEvening, CC.xy(9, 3)); //---- txtVeryLate ---- txtVeryLate.setHorizontalAlignment(SwingConstants.RIGHT); txtVeryLate.setText("0.0"); txtVeryLate.setFont(new Font("Arial", Font.PLAIN, 14)); txtVeryLate.addFocusListener(new FocusAdapter() { @Override public void focusGained(FocusEvent e) { txtFocusGained(e); } @Override public void focusLost(FocusEvent e) { txtDoubleFocusLost(e); } }); txtVeryLate.addActionListener(e -> txtActionPerformed(e)); pnlTageszeit.add(txtVeryLate, CC.xy(11, 3)); //---- btnToTime ---- btnToTime.setIcon(new ImageIcon(getClass().getResource("/artwork/22x22/clock.png"))); btnToTime.addActionListener(e -> btnToTimeActionPerformed(e)); pnlTageszeit.add(btnToTime, CC.xy(13, 3)); } splitRegular.setLeftComponent(pnlTageszeit); //======== pnlUhrzeit ======== { pnlUhrzeit.setBorder(new EtchedBorder()); pnlUhrzeit.setLayout(new FormLayout( "default, $ugap, 28dlu, $ugap, pref", "default:grow, $rgap, default")); //---- lblTimeDose ---- lblTimeDose.setText("Dosis zur Uhrzeit"); lblTimeDose.setOrientation(1); lblTimeDose.setFont(new Font("Arial", Font.PLAIN, 14)); lblTimeDose.setClockwise(false); lblTimeDose.setHorizontalTextPosition(SwingConstants.LEFT); pnlUhrzeit.add(lblTimeDose, CC.xy(3, 1, CC.DEFAULT, CC.BOTTOM)); //---- btnToTimeOfDay ---- btnToTimeOfDay.setIcon(new ImageIcon(getClass().getResource("/artwork/22x22/bw/1rightarrow.png"))); btnToTimeOfDay.addActionListener(e -> btnToTimeOfDayActionPerformed(e)); pnlUhrzeit.add(btnToTimeOfDay, CC.xy(1, 3)); //---- txtTimeDose ---- txtTimeDose.setHorizontalAlignment(SwingConstants.RIGHT); txtTimeDose.setText("0.0"); txtTimeDose.setFont(new Font("Arial", Font.PLAIN, 14)); txtTimeDose.addFocusListener(new FocusAdapter() { @Override public void focusGained(FocusEvent e) { txtFocusGained(e); } @Override public void focusLost(FocusEvent e) { txtDoubleFocusLost(e); } }); pnlUhrzeit.add(txtTimeDose, CC.xy(3, 3)); //---- cmbUhrzeit ---- cmbUhrzeit.addItemListener(e -> cmbUhrzeitItemStateChanged(e)); pnlUhrzeit.add(cmbUhrzeit, CC.xy(5, 3)); } splitRegular.setRightComponent(pnlUhrzeit); } panelMain.add(splitRegular, CC.xy(3, 3)); //======== tabWdh ======== { //======== pnlDaily ======== { pnlDaily.setFont(new Font("Arial", Font.PLAIN, 14)); pnlDaily.setLayout(new FormLayout( "2*(default), $rgap, $lcgap, 40dlu, $rgap, default", "default, $lgap, pref, $lgap, default")); //---- lblEvery1 ---- lblEvery1.setText("alle"); lblEvery1.setFont(new Font("Arial", Font.PLAIN, 14)); pnlDaily.add(lblEvery1, CC.xy(2, 3)); //---- txtEveryDay ---- txtEveryDay.setFont(new Font("Arial", Font.PLAIN, 14)); txtEveryDay.addFocusListener(new FocusAdapter() { @Override public void focusLost(FocusEvent e) { txtEveryDayFocusLost(e); } }); pnlDaily.add(txtEveryDay, CC.xy(5, 3)); //---- lblDays ---- lblDays.setText("Tage"); lblDays.setFont(new Font("Arial", Font.PLAIN, 14)); pnlDaily.add(lblDays, CC.xy(7, 3)); //---- btnEveryDay ---- btnEveryDay.setText("Jeden Tag"); btnEveryDay.setButtonStyle(3); btnEveryDay.setFont(new Font("Arial", Font.BOLD, 14)); btnEveryDay.setForeground(Color.blue); btnEveryDay.addActionListener(e -> btnJedenTagActionPerformed(e)); pnlDaily.add(btnEveryDay, CC.xywh(2, 5, 6, 1)); } tabWdh.addTab("T\u00e4glich", pnlDaily); //======== pnlWeekly ======== { pnlWeekly.setFont(new Font("Arial", Font.PLAIN, 14)); pnlWeekly.setLayout(new FormLayout( "default, 7*(13dlu), $lcgap, default:grow", "$ugap, $lgap, default, $lgap, pref, $lgap, default:grow, $lgap, $rgap")); //======== panel3 ======== { panel3.setLayout(new FormLayout( "default, $rgap, 40dlu, $rgap, 2*(default)", "default:grow, $lgap, default")); //---- lblEvery2 ---- lblEvery2.setText("alle"); lblEvery2.setFont(new Font("Arial", Font.PLAIN, 14)); panel3.add(lblEvery2, CC.xy(1, 1)); //---- txtEveryWeek ---- txtEveryWeek.addFocusListener(new FocusAdapter() { @Override public void focusLost(FocusEvent e) { txtEveryWeekFocusLost(e); } }); panel3.add(txtEveryWeek, CC.xy(3, 1)); //---- lblWeeksAt ---- lblWeeksAt.setText("Wochen am"); lblWeeksAt.setFont(new Font("Arial", Font.PLAIN, 14)); panel3.add(lblWeeksAt, CC.xy(5, 1)); //---- btnEveryWeek ---- btnEveryWeek.setText("Jede Woche"); btnEveryWeek.setFont(new Font("Arial", Font.BOLD, 14)); btnEveryWeek.setButtonStyle(3); btnEveryWeek.setForeground(Color.blue); btnEveryWeek.addActionListener(e -> btnJedeWocheActionPerformed(e)); panel3.add(btnEveryWeek, CC.xywh(1, 3, 5, 1)); } pnlWeekly.add(panel3, CC.xywh(2, 3, 9, 1)); //---- lblMon ---- lblMon.setText("montags"); lblMon.setOrientation(1); lblMon.setFont(new Font("Arial", Font.PLAIN, 14)); lblMon.setClockwise(false); lblMon.setHorizontalTextPosition(SwingConstants.LEFT); pnlWeekly.add(lblMon, CC.xy(2, 5, CC.CENTER, CC.BOTTOM)); //---- lblTue ---- lblTue.setText("dienstags"); lblTue.setOrientation(1); lblTue.setFont(new Font("Arial", Font.PLAIN, 14)); lblTue.setClockwise(false); lblTue.setHorizontalTextPosition(SwingConstants.LEFT); pnlWeekly.add(lblTue, CC.xy(3, 5, CC.CENTER, CC.BOTTOM)); //---- lblWed ---- lblWed.setText("mittwochs"); lblWed.setOrientation(1); lblWed.setFont(new Font("Arial", Font.PLAIN, 14)); lblWed.setClockwise(false); lblWed.setHorizontalTextPosition(SwingConstants.LEFT); pnlWeekly.add(lblWed, CC.xy(4, 5, CC.CENTER, CC.BOTTOM)); //---- lblThu ---- lblThu.setText("donnerstags"); lblThu.setOrientation(1); lblThu.setFont(new Font("Arial", Font.PLAIN, 14)); lblThu.setClockwise(false); lblThu.setHorizontalTextPosition(SwingConstants.LEFT); pnlWeekly.add(lblThu, CC.xy(5, 5, CC.CENTER, CC.BOTTOM)); //---- lblFri ---- lblFri.setText("freitags"); lblFri.setOrientation(1); lblFri.setFont(new Font("Arial", Font.PLAIN, 14)); lblFri.setClockwise(false); lblFri.setHorizontalTextPosition(SwingConstants.LEFT); pnlWeekly.add(lblFri, CC.xy(6, 5, CC.CENTER, CC.BOTTOM)); //---- lblSat ---- lblSat.setText("samstags"); lblSat.setOrientation(1); lblSat.setFont(new Font("Arial", Font.PLAIN, 14)); lblSat.setClockwise(false); lblSat.setHorizontalTextPosition(SwingConstants.LEFT); pnlWeekly.add(lblSat, CC.xy(7, 5, CC.CENTER, CC.BOTTOM)); //---- lblSun ---- lblSun.setText("sonntags"); lblSun.setOrientation(1); lblSun.setFont(new Font("Arial", Font.PLAIN, 14)); lblSun.setClockwise(false); lblSun.setHorizontalTextPosition(SwingConstants.LEFT); pnlWeekly.add(lblSun, CC.xy(8, 5, CC.CENTER, CC.BOTTOM)); //---- cbMon ---- cbMon.setBorder(BorderFactory.createEmptyBorder()); cbMon.setMargin(new Insets(0, 0, 0, 0)); cbMon.setSelected(true); cbMon.addActionListener(e -> cbMonActionPerformed(e)); pnlWeekly.add(cbMon, CC.xy(2, 7, CC.CENTER, CC.DEFAULT)); //---- cbTue ---- cbTue.setBorder(BorderFactory.createEmptyBorder()); cbTue.setMargin(new Insets(0, 0, 0, 0)); cbTue.addActionListener(e -> cbTueActionPerformed(e)); pnlWeekly.add(cbTue, CC.xy(3, 7, CC.CENTER, CC.DEFAULT)); //---- cbWed ---- cbWed.setBorder(BorderFactory.createEmptyBorder()); cbWed.setMargin(new Insets(0, 0, 0, 0)); cbWed.addActionListener(e -> cbWedActionPerformed(e)); pnlWeekly.add(cbWed, CC.xy(4, 7, CC.CENTER, CC.DEFAULT)); //---- cbThu ---- cbThu.setBorder(BorderFactory.createEmptyBorder()); cbThu.setMargin(new Insets(0, 0, 0, 0)); cbThu.addActionListener(e -> cbThuActionPerformed(e)); pnlWeekly.add(cbThu, CC.xy(5, 7, CC.CENTER, CC.DEFAULT)); //---- cbFri ---- cbFri.setBorder(BorderFactory.createEmptyBorder()); cbFri.setMargin(new Insets(0, 0, 0, 0)); cbFri.addActionListener(e -> cbFriActionPerformed(e)); pnlWeekly.add(cbFri, CC.xy(6, 7, CC.CENTER, CC.DEFAULT)); //---- cbSat ---- cbSat.setBorder(BorderFactory.createEmptyBorder()); cbSat.setMargin(new Insets(0, 0, 0, 0)); cbSat.addActionListener(e -> cbSatActionPerformed(e)); pnlWeekly.add(cbSat, CC.xy(7, 7, CC.CENTER, CC.DEFAULT)); //---- cbSun ---- cbSun.setBorder(BorderFactory.createEmptyBorder()); cbSun.setMargin(new Insets(0, 0, 0, 0)); cbSun.addActionListener(e -> cbSunActionPerformed(e)); pnlWeekly.add(cbSun, CC.xy(8, 7, CC.CENTER, CC.DEFAULT)); } tabWdh.addTab("W\u00f6chentlich", pnlWeekly); //======== pnlMonthly ======== { pnlMonthly.setFont(new Font("Arial", Font.PLAIN, 14)); pnlMonthly.setLayout(new FormLayout( "default, $lcgap, pref, $lcgap, 40dlu, $lcgap, pref, $lcgap, 61dlu, $lcgap, default", "2*(default, $lgap), default")); //---- lblEach ---- lblEach.setText("jeden"); lblEach.setFont(new Font("Arial", Font.PLAIN, 14)); lblEach.setHorizontalAlignment(SwingConstants.TRAILING); pnlMonthly.add(lblEach, CC.xy(3, 3)); //---- txtEveryMonth ---- txtEveryMonth.setFont(new Font("Arial", Font.PLAIN, 14)); txtEveryMonth.addFocusListener(new FocusAdapter() { @Override public void focusLost(FocusEvent e) { txtEveryMonthFocusLost(e); } }); pnlMonthly.add(txtEveryMonth, CC.xy(5, 3)); //---- lblMonth ---- lblMonth.setText("Monat"); lblMonth.setFont(new Font("Arial", Font.PLAIN, 14)); pnlMonthly.add(lblMonth, CC.xy(7, 3)); //---- btnEveryMonth ---- btnEveryMonth.setText("Jeden Monat"); btnEveryMonth.setFont(new Font("Arial", Font.BOLD, 14)); btnEveryMonth.setButtonStyle(3); btnEveryMonth.setForeground(Color.blue); btnEveryMonth.addActionListener(e -> btnJedenMonatActionPerformed(e)); pnlMonthly.add(btnEveryMonth, CC.xy(9, 3)); //---- lblOnThe ---- lblOnThe.setText("jeweils am"); lblOnThe.setFont(new Font("Arial", Font.PLAIN, 14)); lblOnThe.setHorizontalAlignment(SwingConstants.TRAILING); pnlMonthly.add(lblOnThe, CC.xy(3, 5)); //---- txtEveryWDayOfMonth ---- txtEveryWDayOfMonth.setFont(new Font("Arial", Font.PLAIN, 14)); txtEveryWDayOfMonth.addFocusListener(new FocusAdapter() { @Override public void focusLost(FocusEvent e) { txtEveryWDayOfMonthFocusLost(e); } }); pnlMonthly.add(txtEveryWDayOfMonth, CC.xy(5, 5)); //---- cmbWDay ---- cmbWDay.setFont(new Font("Arial", Font.PLAIN, 14)); pnlMonthly.add(cmbWDay, CC.xywh(7, 5, 3, 1)); } tabWdh.addTab("Monatlich", pnlMonthly); } panelMain.add(tabWdh, CC.xy(3, 5, CC.FILL, CC.FILL)); //======== panel2 ======== { panel2.setLayout(new BoxLayout(panel2, BoxLayout.X_AXIS)); //---- lblLDate ---- lblLDate.setText("Erst einplanen ab dem "); lblLDate.setFont(new Font("Arial", Font.PLAIN, 14)); panel2.add(lblLDate); //---- txtLDate ---- txtLDate.setFont(new Font("Arial", Font.PLAIN, 14)); txtLDate.addFocusListener(new FocusAdapter() { @Override public void focusLost(FocusEvent e) { txtLDateFocusLost(e); } }); panel2.add(txtLDate); } panelMain.add(panel2, CC.xy(3, 7)); //---- btnSave ---- btnSave.setIcon(new ImageIcon(getClass().getResource("/artwork/22x22/apply.png"))); btnSave.addActionListener(e -> btnSaveActionPerformed(e)); panelMain.add(btnSave, CC.xy(3, 9, CC.RIGHT, CC.DEFAULT)); } add(panelMain, BorderLayout.CENTER); }// </editor-fold>//GEN-END:initComponents private void cbSunActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_cbSunActionPerformed if (!(cbSun.isSelected() || cbSat.isSelected() || cbFri.isSelected() || cbThu.isSelected() || cbWed.isSelected() || cbTue.isSelected() || cbMon.isSelected())) { OPDE.getDisplayManager().addSubMessage(new DisplayMessage("nursingrecords.prescription.pnlscheduledose.error.atLeastOneWeekDay")); ((JCheckBox) evt.getSource()).setSelected(true); } }//GEN-LAST:event_cbSunActionPerformed private void cbSatActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_cbSatActionPerformed if (!(cbSun.isSelected() || cbSat.isSelected() || cbFri.isSelected() || cbThu.isSelected() || cbWed.isSelected() || cbTue.isSelected() || cbMon.isSelected())) { OPDE.getDisplayManager().addSubMessage(new DisplayMessage("nursingrecords.prescription.pnlscheduledose.error.atLeastOneWeekDay")); ((JCheckBox) evt.getSource()).setSelected(true); } }//GEN-LAST:event_cbSatActionPerformed private void cbFriActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_cbFriActionPerformed if (!(cbSun.isSelected() || cbSat.isSelected() || cbFri.isSelected() || cbThu.isSelected() || cbWed.isSelected() || cbTue.isSelected() || cbMon.isSelected())) { OPDE.getDisplayManager().addSubMessage(new DisplayMessage("nursingrecords.prescription.pnlscheduledose.error.atLeastOneWeekDay")); ((JCheckBox) evt.getSource()).setSelected(true); } }//GEN-LAST:event_cbFriActionPerformed private void cbThuActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_cbThuActionPerformed if (!(cbSun.isSelected() || cbSat.isSelected() || cbFri.isSelected() || cbThu.isSelected() || cbWed.isSelected() || cbTue.isSelected() || cbMon.isSelected())) { OPDE.getDisplayManager().addSubMessage(new DisplayMessage("nursingrecords.prescription.pnlscheduledose.error.atLeastOneWeekDay")); ((JCheckBox) evt.getSource()).setSelected(true); } }//GEN-LAST:event_cbThuActionPerformed private void cbWedActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_cbWedActionPerformed if (!(cbSun.isSelected() || cbSat.isSelected() || cbFri.isSelected() || cbThu.isSelected() || cbWed.isSelected() || cbTue.isSelected() || cbMon.isSelected())) { OPDE.getDisplayManager().addSubMessage(new DisplayMessage("nursingrecords.prescription.pnlscheduledose.error.atLeastOneWeekDay")); ((JCheckBox) evt.getSource()).setSelected(true); } }//GEN-LAST:event_cbWedActionPerformed private void cbTueActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_cbTueActionPerformed if (!(cbSun.isSelected() || cbSat.isSelected() || cbFri.isSelected() || cbThu.isSelected() || cbWed.isSelected() || cbTue.isSelected() || cbMon.isSelected())) { OPDE.getDisplayManager().addSubMessage(new DisplayMessage("nursingrecords.prescription.pnlscheduledose.error.atLeastOneWeekDay")); ((JCheckBox) evt.getSource()).setSelected(true); } }//GEN-LAST:event_cbTueActionPerformed private void cbMonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_cbMonActionPerformed if (!(cbSun.isSelected() || cbSat.isSelected() || cbFri.isSelected() || cbThu.isSelected() || cbWed.isSelected() || cbTue.isSelected() || cbMon.isSelected())) { OPDE.getDisplayManager().addSubMessage(new DisplayMessage("nursingrecords.prescription.pnlscheduledose.error.atLeastOneWeekDay")); ((JCheckBox) evt.getSource()).setSelected(true); } }//GEN-LAST:event_cbMonActionPerformed private void btnSaveActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnSaveActionPerformed try { save(); actionBlock.execute(schedule); } catch (NumberFormatException nfe) { OPDE.getDisplayManager().addSubMessage(new DisplayMessage("nursingrecords.prescription.pnlscheduledose.error.wrongDoseEntry")); } }//GEN-LAST:event_btnSaveActionPerformed public void save() throws NumberFormatException { boolean splitSetToTime = splitRegularPos == 0d; if (!isAtLeastOneTxtFieldNotZero() && SYSTools.parseDecimal(txtTimeDose.getText()).equals(BigDecimal.ZERO)) { throw new NumberFormatException("All Doses are ZERO"); } schedule.setNachtMo(splitSetToTime ? BigDecimal.ZERO : SYSTools.parseDecimal(txtVeryEarly.getText())); schedule.setMorgens(splitSetToTime ? BigDecimal.ZERO : SYSTools.parseDecimal(txtMorning.getText())); schedule.setMittags(splitSetToTime ? BigDecimal.ZERO : SYSTools.parseDecimal(txtNoon.getText())); schedule.setNachmittags(splitSetToTime ? BigDecimal.ZERO : SYSTools.parseDecimal(txtAfternoon.getText())); schedule.setAbends(splitSetToTime ? BigDecimal.ZERO : SYSTools.parseDecimal(txtEvening.getText())); schedule.setNachtAb(splitSetToTime ? BigDecimal.ZERO : SYSTools.parseDecimal(txtVeryLate.getText())); schedule.setUhrzeitDosis(splitSetToTime ? SYSTools.parseDecimal(txtTimeDose.getText()) : BigDecimal.ZERO); schedule.setUhrzeit(splitSetToTime ? (Date) cmbUhrzeit.getSelectedItem() : null); schedule.setMaxAnzahl(0); schedule.setMaxEDosis(BigDecimal.ZERO); schedule.setTaeglich(tabWdh.getSelectedIndex() == TAB_DAILY ? Short.parseShort(txtEveryDay.getText()) : (short) 0); schedule.setWoechentlich(tabWdh.getSelectedIndex() == TAB_WEEKLY ? Short.parseShort(txtEveryWeek.getText()) : (short) 0); schedule.setMonatlich(tabWdh.getSelectedIndex() == TAB_MONTHLY ? Short.parseShort(txtEveryMonth.getText()) : (short) 0); LocalDate day; try { day = new LocalDate(SYSCalendar.parseDate(txtLDate.getText())); } catch (NumberFormatException ex) { day = new LocalDate(); } schedule.setLDatum(day.toDate()); schedule.setMon(tabWdh.getSelectedIndex() == TAB_WEEKLY && cbMon.isSelected() ? (short) 1 : (short) 0); schedule.setTue(tabWdh.getSelectedIndex() == TAB_WEEKLY && cbTue.isSelected() ? (short) 1 : (short) 0); schedule.setWed(tabWdh.getSelectedIndex() == TAB_WEEKLY && cbWed.isSelected() ? (short) 1 : (short) 0); schedule.setThu(tabWdh.getSelectedIndex() == TAB_WEEKLY && cbThu.isSelected() ? (short) 1 : (short) 0); schedule.setFri(tabWdh.getSelectedIndex() == TAB_WEEKLY && cbFri.isSelected() ? (short) 1 : (short) 0); schedule.setSat(tabWdh.getSelectedIndex() == TAB_WEEKLY && cbSat.isSelected() ? (short) 1 : (short) 0); schedule.setSun(tabWdh.getSelectedIndex() == TAB_WEEKLY && cbSun.isSelected() ? (short) 1 : (short) 0); if (tabWdh.getSelectedIndex() == TAB_MONTHLY) { short s = Short.parseShort(txtEveryWDayOfMonth.getText()); schedule.setTagNum(cmbWDay.getSelectedIndex() == 0 ? s : (short) 0); if (cmbWDay.getSelectedIndex() == 1) { schedule.setMon(s); } else if (cmbWDay.getSelectedIndex() == 2) { schedule.setTue(s); } else if (cmbWDay.getSelectedIndex() == 3) { schedule.setWed(s); } else if (cmbWDay.getSelectedIndex() == 4) { schedule.setThu(s); } else if (cmbWDay.getSelectedIndex() == 5) { schedule.setFri(s); } else if (cmbWDay.getSelectedIndex() == 6) { schedule.setSat(s); } else if (cmbWDay.getSelectedIndex() == 7) { schedule.setSun(s); } } } private void txtFocusGained(java.awt.event.FocusEvent evt) {//GEN-FIRST:event_txtFocusGained SYSTools.markAllTxt((JTextField) evt.getSource()); }//GEN-LAST:event_txtFocusGained // private void txtMaxTimesCaretUpdate(javax.swing.event.CaretEvent evt) {//GEN-FIRST:event_txtMaxTimesCaretUpdate // if (ignoreEvent) { // return; // } // try { // Integer.parseInt(((JTextField) evt.getSource()).getText()); // btnSave.setEnabled(true); // } catch (NumberFormatException nfe) { // btnSave.setEnabled(false); // } // }//GEN-LAST:event_txtMaxTimesCaretUpdate private boolean isAtLeastOneTxtFieldNotZero() { BigDecimal result = SYSTools.parseDecimal(txtVeryEarly.getText()).add( SYSTools.parseDecimal(txtMorning.getText()) ).add( SYSTools.parseDecimal(txtNoon.getText()) ).add( SYSTools.parseDecimal(txtAfternoon.getText()) ).add( SYSTools.parseDecimal(txtEvening.getText()) ).add( SYSTools.parseDecimal(txtVeryLate.getText()) ); return result.compareTo(BigDecimal.ZERO) > 0; } private void txtUhrzeitActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_txtUhrzeitActionPerformed }//GEN-LAST:event_txtUhrzeitActionPerformed // Variables declaration - do not modify//GEN-BEGIN:variables private JPanel panelMain; private JSplitPane splitRegular; private JPanel pnlTageszeit; private JideLabel lblVeryEarly; private JideLabel lblMorning; private JideLabel lblNoon; private JideLabel lblAfternoon; private JideLabel lblEvening; private JideLabel lblVeryLate; private JTextField txtVeryEarly; private JTextField txtMorning; private JTextField txtNoon; private JTextField txtAfternoon; private JTextField txtEvening; private JTextField txtVeryLate; private JButton btnToTime; private JPanel pnlUhrzeit; private JideLabel lblTimeDose; private JButton btnToTimeOfDay; private JTextField txtTimeDose; private JComboBox cmbUhrzeit; private JideTabbedPane tabWdh; private JPanel pnlDaily; private JLabel lblEvery1; private JTextField txtEveryDay; private JLabel lblDays; private JideButton btnEveryDay; private JPanel pnlWeekly; private JPanel panel3; private JLabel lblEvery2; private JTextField txtEveryWeek; private JLabel lblWeeksAt; private JideButton btnEveryWeek; private JideLabel lblMon; private JideLabel lblTue; private JideLabel lblWed; private JideLabel lblThu; private JideLabel lblFri; private JideLabel lblSat; private JideLabel lblSun; private JCheckBox cbMon; private JCheckBox cbTue; private JCheckBox cbWed; private JCheckBox cbThu; private JCheckBox cbFri; private JCheckBox cbSat; private JCheckBox cbSun; private JPanel pnlMonthly; private JLabel lblEach; private JTextField txtEveryMonth; private JLabel lblMonth; private JideButton btnEveryMonth; private JLabel lblOnThe; private JTextField txtEveryWDayOfMonth; private JComboBox cmbWDay; private JPanel panel2; private JLabel lblLDate; private JTextField txtLDate; private JButton btnSave; // End of variables declaration//GEN-END:variables }