1 package org.lucane.applications.jmail.base; 2 3 22 23 import java.awt.*; 24 import java.awt.event.*; 25 import java.util.*; 26 import javax.mail.*; 27 import javax.swing.*; 28 29 import org.lucane.applications.jmail.JMailPlugin; 30 import org.lucane.client.widgets.ManagedWindow; 31 32 33 public class JMailWindow extends ManagedWindow { 34 35 private ResourceBundle msgBundle; 36 37 private JMenuBar menuBar; 38 39 40 private JMenu fileMenu; 41 42 43 private JMenu newMenu; 44 45 46 private JMenuItem newMsgMenuItem; 47 48 49 private JMenuItem newFolderMenuItem; 50 51 52 private JMenuItem openMenuItem; 53 54 private JMenuItem saveMenuItem; 55 56 private JMenu folderMenu; 57 private JMenuItem folderNewMenuItem; 58 private JMenuItem folderDeleteMenuItem; 59 60 private JMenuItem printMenuItem; 61 62 63 64 private JMenuItem exitMenuItem; 65 66 67 private JMenu editMenu; 68 69 70 private JMenuItem moveMenuItem; 71 72 73 private JMenuItem copyMenuItem; 74 75 76 private JMenuItem deleteMenuItem; 77 78 79 private JMenu messageMenu; 80 81 82 private JMenuItem newMsgMenuItem2; 83 84 85 private JMenuItem replyMenuItem; 86 87 88 private JMenuItem replyallMenuItem; 89 90 91 private JMenuItem forwardMenuItem; 92 93 private MainPanel panel; 94 95 96 private Profile profile; 97 98 private JMailWindowListener listener; 99 100 private JMailPlugin plugin; 101 102 107 public JMailWindow(JMailPlugin plugin) { 108 super(plugin, plugin.getTitle()); 109 this.plugin = plugin; 110 111 this.msgBundle = plugin.getBundle(); 112 this.profile = plugin.getProfile(); 113 114 init(); 115 if (profile.getType().compareTo("pop3") == 0) 116 setFolderMenuItemsEnabled(false); 117 118 setPanel(); 119 120 addWindowListener(listener); 121 setPreferredSize(new Dimension(800, 600)); 122 show(); 123 124 if (profile.getType().compareTo("pop3") != 0) { 125 FolderListener f = new FolderListener(profile, panel); 126 f.start(); 127 } 128 } 129 130 131 private void init() { 132 listener = new JMailWindowListener(); 133 134 135 menuBar = new JMenuBar(); 136 137 fileMenu = new JMenu(msgBundle.getString("common.fileMenu")); 138 fileMenu.setMnemonic('F'); 139 140 newMenu = new JMenu(msgBundle.getString("JMailWindow.newMenuLabel")); 141 newMenu.setMnemonic('N'); 142 fileMenu.add(newMenu); 143 144 newMsgMenuItem = 145 newMenu.add(msgBundle.getString("common.mail")); 146 newMsgMenuItem.setAccelerator( 147 KeyStroke.getKeyStroke('N', Event.CTRL_MASK)); 148 newMsgMenuItem.addActionListener(listener); 149 150 newMenu.addSeparator(); 151 152 newFolderMenuItem = 153 newMenu.add( 154 msgBundle.getString("common.folder")); 155 newFolderMenuItem.setMnemonic('R'); 156 newFolderMenuItem.addActionListener(listener); 157 158 openMenuItem = 159 fileMenu.add(msgBundle.getString("common.open")); 160 openMenuItem.setAccelerator( 161 KeyStroke.getKeyStroke('O', Event.CTRL_MASK)); 162 openMenuItem.setMnemonic('O'); 163 openMenuItem.setEnabled(false); 164 openMenuItem.addActionListener(listener); 165 166 saveMenuItem = 167 fileMenu.add(msgBundle.getString("common.save")); 168 saveMenuItem.setAccelerator( 169 KeyStroke.getKeyStroke('S', Event.CTRL_MASK)); 170 saveMenuItem.setMnemonic('E'); 171 saveMenuItem.setEnabled(false); 172 saveMenuItem.addActionListener(listener); 173 174 fileMenu.addSeparator(); 175 176 folderMenu = 177 new JMenu(msgBundle.getString("common.folder")); 178 folderMenu.setMnemonic('D'); 179 fileMenu.add(folderMenu); 180 181 folderNewMenuItem = 182 folderMenu.add( 183 msgBundle.getString("common.new")); 184 folderNewMenuItem.addActionListener(listener); 185 186 folderDeleteMenuItem = 187 folderMenu.add( 188 msgBundle.getString("common.delete")); 189 folderDeleteMenuItem.setEnabled(false); 190 folderDeleteMenuItem.addActionListener(listener); 191 192 fileMenu.addSeparator(); 193 194 printMenuItem = 195 fileMenu.add(msgBundle.getString("common.print")); 196 printMenuItem.setAccelerator( 197 KeyStroke.getKeyStroke('P', Event.CTRL_MASK)); 198 printMenuItem.setMnemonic('I'); 199 printMenuItem.setEnabled(false); 200 printMenuItem.addActionListener(listener); 201 202 fileMenu.addSeparator(); 203 204 exitMenuItem = 205 fileMenu.add(msgBundle.getString("JMailWindow.exitMenuItemLabel")); 206 exitMenuItem.setAccelerator( 207 KeyStroke.getKeyStroke('Q', Event.CTRL_MASK)); 208 exitMenuItem.setMnemonic('Q'); 209 exitMenuItem.addActionListener(listener); 210 211 fileMenu = menuBar.add(fileMenu); 212 213 editMenu = new JMenu(msgBundle.getString("JMailWindow.editMenuLabel")); 214 editMenu.setMnemonic('E'); 215 216 moveMenuItem = 217 editMenu.add(msgBundle.getString("JMailWindow.moveMenuItemLabel")); 218 moveMenuItem.setAccelerator( 219 KeyStroke.getKeyStroke('V', Event.CTRL_MASK + Event.SHIFT_MASK)); 220 moveMenuItem.setMnemonic('D'); 221 moveMenuItem.setEnabled(false); 222 moveMenuItem.addActionListener(listener); 223 224 copyMenuItem = 225 editMenu.add(msgBundle.getString("JMailWindow.copyMenuItemLabel")); 226 copyMenuItem.setMnemonic('C'); 227 copyMenuItem.setEnabled(false); 228 copyMenuItem.addActionListener(listener); 229 230 editMenu.addSeparator(); 231 232 deleteMenuItem = 233 editMenu.add( 234 msgBundle.getString("common.delete")); 235 deleteMenuItem.setMnemonic('E'); 236 deleteMenuItem.setEnabled(false); 237 deleteMenuItem.addActionListener(listener); 238 239 editMenu = menuBar.add(editMenu); 240 241 messageMenu = 242 new JMenu(msgBundle.getString("common.mail")); 243 messageMenu.setMnemonic('M'); 244 245 newMsgMenuItem2 = 246 messageMenu.add( 247 msgBundle.getString("JMailWindow.newMsgMenuItem2Label")); 248 newMsgMenuItem2.setAccelerator( 249 KeyStroke.getKeyStroke('N', Event.CTRL_MASK)); 250 newMsgMenuItem2.setMnemonic('N'); 251 newMsgMenuItem2.addActionListener(listener); 252 253 messageMenu.addSeparator(); 254 255 replyMenuItem = 256 messageMenu.add( 257 msgBundle.getString("common.reply")); 258 replyMenuItem.setAccelerator( 259 KeyStroke.getKeyStroke('R', Event.CTRL_MASK)); 260 replyMenuItem.setMnemonic('R'); 261 replyMenuItem.setEnabled(false); 262 replyMenuItem.addActionListener(listener); 263 264 replyallMenuItem = 265 messageMenu.add( 266 msgBundle.getString("common.replyAll")); 267 replyallMenuItem.setAccelerator( 268 KeyStroke.getKeyStroke('R', Event.CTRL_MASK + Event.SHIFT_MASK)); 269 replyallMenuItem.setMnemonic('t'); 270 replyallMenuItem.setEnabled(false); 271 replyallMenuItem.addActionListener(listener); 272 273 forwardMenuItem = 274 messageMenu.add( 275 msgBundle.getString("JMailWindow.forwardMenuItemLabel")); 276 forwardMenuItem.setAccelerator( 277 KeyStroke.getKeyStroke('F', Event.CTRL_MASK)); 278 forwardMenuItem.setMnemonic('f'); 279 forwardMenuItem.setEnabled(false); 280 forwardMenuItem.addActionListener(listener); 281 282 messageMenu = menuBar.add(messageMenu); 283 284 setJMenuBar(menuBar); 285 } 286 287 293 protected final void setMenuItemsEnabled(boolean b) { 294 openMenuItem.setEnabled(b); 295 saveMenuItem.setEnabled(b); 296 deleteMenuItem.setEnabled(b); 299 replyMenuItem.setEnabled(b); 300 replyallMenuItem.setEnabled(b); 301 forwardMenuItem.setEnabled(b); 302 } 303 304 310 protected final void setFolderMenuItemsEnabled(boolean b) { 311 folderMenu.setEnabled(b); 312 newFolderMenuItem.setEnabled(b); 313 folderNewMenuItem.setEnabled(b); 314 folderDeleteMenuItem.setEnabled(b); 315 moveMenuItem.setEnabled(b); 316 copyMenuItem.setEnabled(b); 317 } 318 319 320 private void exit() { 321 panel.disconnect(); 322 323 this.dispose(); 324 plugin.exit(); 325 } 326 327 328 private void update() { 329 panel.disconnect(); 330 setPanel(); 331 SwingUtilities.updateComponentTreeUI(getContentPane()); 332 } 333 334 335 private void setPanel() { 336 panel = new MainPanel(plugin, this, profile, msgBundle); 337 setContentPane(panel); 338 } 339 340 341 private final class JMailWindowListener 342 extends WindowAdapter 343 implements ActionListener { 344 350 public final void windowClosing(WindowEvent e) { 351 exit(); 352 } 353 354 360 public final void actionPerformed(ActionEvent e) { 361 JMenuItem i = (JMenuItem) e.getSource(); 362 363 if (i == newMsgMenuItem || i == newMsgMenuItem2) { 364 SendMessageDialog sm = new SendMessageDialog(plugin, profile, msgBundle); 365 sm.dispose(); 366 } else if (i == newFolderMenuItem || i == folderNewMenuItem) 367 panel.newFolder(); 368 369 else if (i == folderDeleteMenuItem) 370 panel.deleteFolder(); 371 372 else if (i == openMenuItem) { 373 Message currentMessage = panel.getCurrent(); 374 375 new ReadMessageFrame( 376 plugin, 377 panel.getStore(), 378 panel.getCurrentFolder(), 379 panel, 380 profile, 381 currentMessage, 382 panel.getMailContent(currentMessage).toString(), 383 msgBundle, 384 panel.isAttachmentVisible()); 385 } else if (i == saveMenuItem) 386 panel.save(); 387 388 else if (i == printMenuItem) { 389 390 } 391 else if (i == exitMenuItem) 392 exit(); 393 394 else if (i == moveMenuItem) 395 panel.moveMsg(); 396 397 else if (i == copyMenuItem) 398 panel.copyMsg(); 399 400 else if (i == deleteMenuItem) 401 panel.delete(); 402 403 else if (i == replyMenuItem) 404 panel.reply(); 405 406 else if (i == replyallMenuItem) 407 panel.replyall(); 408 409 else if (i == forwardMenuItem) 410 panel.forward(); 411 412 } 413 } 414 } 415 | Popular Tags |