1 package org.columba.mail.gui.config.template; 17 18 import java.awt.BorderLayout ; 19 import java.awt.Dimension ; 20 import java.awt.GridLayout ; 21 import java.awt.event.ActionEvent ; 22 import java.awt.event.ActionListener ; 23 import java.awt.event.KeyEvent ; 24 25 import javax.swing.BorderFactory ; 26 import javax.swing.JButton ; 27 import javax.swing.JComponent ; 28 import javax.swing.JDialog ; 29 import javax.swing.JFrame ; 30 import javax.swing.JList ; 31 import javax.swing.JPanel ; 32 import javax.swing.JScrollPane ; 33 import javax.swing.KeyStroke ; 34 import javax.swing.SwingConstants ; 35 import javax.swing.event.ListSelectionEvent ; 36 import javax.swing.event.ListSelectionListener ; 37 38 import org.columba.core.gui.base.ButtonWithMnemonic; 39 import org.columba.core.gui.base.SingleSideEtchedBorder; 40 import org.columba.core.help.HelpManager; 41 import org.columba.mail.message.IHeaderList; 42 import org.columba.mail.util.MailResourceLoader; 43 44 45 50 51 public class ChooseTemplateDialog extends JDialog implements ActionListener , 52 ListSelectionListener { 53 boolean result; 54 JList list; 55 Object uid; 56 IHeaderList headerList; 57 JButton okButton; 58 59 public ChooseTemplateDialog(JFrame parent, IHeaderList list) { 60 super(parent, true); 61 62 this.headerList = list; 63 64 initComponents(); 65 66 updateComponents(true); 67 68 pack(); 69 setLocationRelativeTo(null); 70 setVisible(true); 71 } 72 73 protected JPanel createButtonPanel() { 74 JPanel bottom = new JPanel (); 75 bottom.setLayout(new BorderLayout ()); 76 bottom.setBorder(new SingleSideEtchedBorder(SwingConstants.TOP)); 77 78 ButtonWithMnemonic cancelButton = new ButtonWithMnemonic(MailResourceLoader.getString( 81 "global", "cancel")); 82 83 cancelButton.addActionListener(this); 85 cancelButton.setActionCommand("CANCEL"); 87 okButton = new ButtonWithMnemonic(MailResourceLoader.getString( 88 "global", "ok")); 89 90 okButton.addActionListener(this); 92 okButton.setActionCommand("OK"); okButton.setDefaultCapable(true); 94 okButton.setEnabled(false); 95 getRootPane().setDefaultButton(okButton); 96 97 ButtonWithMnemonic helpButton = new ButtonWithMnemonic(MailResourceLoader.getString( 98 "global", "help")); 99 100 HelpManager.getInstance().enableHelpOnButton(helpButton, 102 "template_dialog"); 103 HelpManager.getInstance().enableHelpKey(getRootPane(), 104 "template_dialog"); 105 106 JPanel buttonPanel = new JPanel (); 107 buttonPanel.setBorder(BorderFactory.createEmptyBorder(12, 12, 12, 12)); 108 buttonPanel.setLayout(new GridLayout (1, 3, 6, 0)); 109 buttonPanel.add(okButton); 110 buttonPanel.add(cancelButton); 111 buttonPanel.add(helpButton); 112 113 bottom.add(buttonPanel, BorderLayout.EAST); 115 116 return bottom; 117 } 118 119 protected void initComponents() { 120 list = new JList ( headerList.getUids()); 121 list.addListSelectionListener(this); 122 list.setPreferredSize(new Dimension (200, 300)); 123 list.setCellRenderer(new HeaderCellRenderer(headerList)); 124 125 JPanel panel = new JPanel (); 126 panel.setBorder(BorderFactory.createEmptyBorder(12, 12, 12, 12)); 127 panel.setLayout(new BorderLayout ()); 128 129 JScrollPane scrollPane = new JScrollPane (list); 130 panel.add(scrollPane, BorderLayout.CENTER); 131 132 getContentPane().setLayout(new BorderLayout ()); 133 134 getContentPane().add(panel, BorderLayout.CENTER); 135 136 getContentPane().add(createButtonPanel(), BorderLayout.SOUTH); 137 getRootPane().registerKeyboardAction(this, "CANCEL", 138 KeyStroke.getKeyStroke(KeyEvent.VK_ESCAPE, 0), 139 JComponent.WHEN_IN_FOCUSED_WINDOW); 140 } 141 142 protected void updateComponents(boolean b) { 143 if (b) { 144 } else { 146 } 148 } 149 150 public void actionPerformed(ActionEvent arg0) { 151 String action = arg0.getActionCommand(); 152 153 if (action.equals("CANCEL")) { 154 result = false; 155 setVisible(false); 156 } else if (action.equals("OK")) { 157 result = true; 158 uid = list.getSelectedValue(); 159 setVisible(false); 160 } 161 } 162 163 166 public boolean isResult() { 167 return result; 168 } 169 170 173 public Object getUid() { 174 return uid; 175 } 176 177 180 public void valueChanged(ListSelectionEvent ev) { 181 Object selection = list.getSelectedValue(); 182 183 if (selection != null) { 184 okButton.setEnabled(true); 185 } else { 186 okButton.setEnabled(false); 187 } 188 } 189 } 190 | Popular Tags |