1 package org.columba.mail.gui.config.filter.plugins; 17 18 import java.awt.event.ActionEvent ; 19 import java.awt.event.ActionListener ; 20 import java.text.DateFormat ; 21 import java.text.ParseException ; 22 import java.util.Date ; 23 24 import javax.swing.JButton ; 25 import javax.swing.JComboBox ; 26 import javax.swing.JDialog ; 27 28 import org.columba.api.plugin.IExtensionHandler; 29 import org.columba.core.filter.FilterCriteria; 30 import org.columba.core.gui.dialog.DateChooserDialog; 31 import org.columba.mail.gui.config.filter.CriteriaList; 32 import org.frapuccino.swing.ActiveWindowTracker; 33 34 public class DateCriteriaRow extends DefaultCriteriaRow implements 35 ActionListener { 36 private JComboBox matchComboBox; 37 38 private JButton dateButton; 39 40 private Date date; 41 42 public static DateFormat dateFormat = DateFormat.getDateInstance(); 43 44 public DateCriteriaRow(IExtensionHandler pluginHandler, 45 CriteriaList criteriaList, FilterCriteria c) { 46 super(pluginHandler, criteriaList, c); 47 } 48 49 public void updateComponents(boolean b) { 50 super.updateComponents(b); 51 52 if (b) { 53 matchComboBox.setSelectedItem(criteria.getCriteriaString()); 54 try { 55 date = dateFormat.parse(criteria.getPatternString()); 56 } catch (ParseException e) { 57 date = new Date (); 59 } 60 61 dateButton.setText(dateFormat.format(date)); 63 } else { 64 criteria 65 .setCriteriaString((String ) matchComboBox.getSelectedItem()); 66 67 criteria.setPatternString((String ) dateButton.getText()); 69 } 70 } 71 72 public void initComponents() { 73 super.initComponents(); 74 75 matchComboBox = new JComboBox (); 76 matchComboBox.addItem("before"); 77 matchComboBox.addItem("after"); 78 79 addComponent(matchComboBox); 80 81 dateButton = new JButton ("date"); 82 dateButton.setActionCommand("DATE"); 83 dateButton.addActionListener(this); 84 85 addComponent(dateButton); 86 } 87 88 public void actionPerformed(ActionEvent ev) { 89 String action = ev.getActionCommand(); 90 91 if (action.equals("DATE")) { 92 93 DateChooserDialog dialog = new DateChooserDialog((JDialog ) ActiveWindowTracker.findActiveWindow()); 94 95 dialog.setDate(date); 96 dialog.setVisible(true); 97 98 if (dialog.success() == true) { 99 date = dialog.getDate(); 101 dateButton.setText(dateFormat.format(date)); 102 } else { 103 } 105 } 106 } 107 } 108 | Popular Tags |