/* * Created by JFormDesigner on Mon Apr 29 15:30:35 CEST 2013 */ package op.care.med.inventory; import com.jgoodies.forms.factories.CC; import com.jgoodies.forms.layout.FormLayout; import op.OPDE; import op.tools.SYSCalendar; import op.tools.SYSTools; import org.apache.commons.collections.Closure; import org.joda.time.DateTime; import javax.swing.*; import java.awt.event.*; import java.text.DateFormat; import java.util.Date; /** * @author Torsten Löhr */ public class PnlExpiry extends JPanel { Date expiry; private final Closure action; public PnlExpiry(Date expiry, String title, Closure action) { this.expiry = expiry; this.action = action; initComponents(); lblTitle.setText(title); cbExpiry.setSelected(expiry != null); txtExpiry.setEnabled(expiry != null); cbExpiry.setText(SYSTools.xx("misc.msg.expires")); if (expiry != null) { txtExpiry.setText(DateFormat.getDateInstance().format(expiry)); } else { txtExpiry.setText(null); } } private void cbExpiryItemStateChanged(ItemEvent e) { txtExpiry.setEnabled(e.getStateChange() == ItemEvent.SELECTED); if (e.getStateChange() == ItemEvent.SELECTED){ txtExpiry.requestFocus(); } } private void txtExpiryFocusLost(FocusEvent e) { try { DateTime myExpiry = SYSCalendar.parseExpiryDate(txtExpiry.getText()); if (myExpiry.isBeforeNow()) { throw new Exception("date must not be in the past"); } expiry = myExpiry.toDate(); txtExpiry.setText(DateFormat.getDateInstance().format(expiry)); } catch (Exception ex) { expiry = null; txtExpiry.setText(null); } } private void txtExpiryActionPerformed(ActionEvent e) { txtExpiryFocusLost(null); } private void btnSaveActionPerformed(ActionEvent e) { action.execute(cbExpiry.isSelected() ? expiry : null); } private void initComponents() { // JFormDesigner - Component initialization - DO NOT MODIFY //GEN-BEGIN:initComponents lblTitle = new JLabel(); cbExpiry = new JCheckBox(); txtExpiry = new JTextField(); btnSave = new JButton(); //======== this ======== setLayout(new FormLayout( "2*(default, $lcgap), default:grow, 2*($lcgap, default)", "default, 2*($lgap, 14dlu), $lgap, default")); //---- lblTitle ---- lblTitle.setText("text"); lblTitle.setFont(lblTitle.getFont().deriveFont(lblTitle.getFont().getSize() + 4f)); add(lblTitle, CC.xywh(3, 3, 5, 1)); //---- cbExpiry ---- cbExpiry.setText("text"); cbExpiry.addItemListener(e -> cbExpiryItemStateChanged(e)); add(cbExpiry, CC.xy(3, 5)); //---- txtExpiry ---- txtExpiry.addFocusListener(new FocusAdapter() { @Override public void focusLost(FocusEvent e) { txtExpiryFocusLost(e); } }); txtExpiry.addActionListener(e -> txtExpiryActionPerformed(e)); add(txtExpiry, CC.xy(5, 5, CC.DEFAULT, CC.FILL)); //---- btnSave ---- btnSave.setText(null); btnSave.setContentAreaFilled(false); btnSave.setBorderPainted(false); btnSave.setBorder(null); btnSave.setIcon(new ImageIcon(getClass().getResource("/artwork/22x22/apply.png"))); btnSave.addActionListener(e -> btnSaveActionPerformed(e)); add(btnSave, CC.xy(7, 5)); // JFormDesigner - End of component initialization //GEN-END:initComponents } // JFormDesigner - Variables declaration - DO NOT MODIFY //GEN-BEGIN:variables private JLabel lblTitle; private JCheckBox cbExpiry; private JTextField txtExpiry; private JButton btnSave; // JFormDesigner - End of variables declaration //GEN-END:variables }