1 17 package org.columba.core.gui.util; 18 19 import java.awt.event.ActionEvent ; 20 import java.awt.event.ActionListener ; 21 import java.net.URL ; 22 23 import javax.swing.JMenuItem ; 24 import javax.swing.JPopupMenu ; 25 26 import org.columba.core.desktop.ColumbaDesktop; 27 28 public class URLController implements ActionListener { 29 private String address; 30 private URL link; 31 32 public JPopupMenu createContactMenu(String contact) { 34 JPopupMenu popup = new JPopupMenu (); 35 JMenuItem menuItem = new JMenuItem ("Add Contact to Addressbook"); 36 menuItem.addActionListener(this); 37 menuItem.setActionCommand("CONTACT"); 38 popup.add(menuItem); 39 menuItem = new JMenuItem ("Compose Message for " + contact); 40 menuItem.setActionCommand("COMPOSE"); 41 menuItem.addActionListener(this); 42 popup.add(menuItem); 43 44 return popup; 45 } 46 47 public JPopupMenu createLinkMenu() { 49 JPopupMenu popup = new JPopupMenu (); 50 JMenuItem menuItem = new JMenuItem ("Open"); 51 menuItem.addActionListener(this); 52 menuItem.setActionCommand("OPEN"); 53 popup.add(menuItem); 54 menuItem = new JMenuItem ("Open with..."); 55 menuItem.setActionCommand("OPEN_WITH"); 56 menuItem.addActionListener(this); 57 popup.add(menuItem); 58 popup.addSeparator(); 59 menuItem = new JMenuItem ("Open with internal browser"); 60 menuItem.setActionCommand("OPEN_WITHINTERNALBROWSER"); 61 menuItem.addActionListener(this); 62 popup.add(menuItem); 63 64 return popup; 65 } 66 67 public void setAddress(String s) { 68 this.address = s; 69 } 70 71 public String getAddress() { 72 return address; 73 } 74 75 public URL getLink() { 76 return link; 77 } 78 79 public void setLink(URL u) { 80 this.link = u; 81 } 82 83 88 public void compose(String address) { 89 91 } 93 94 99 public void contact(String address) { 100 } 102 103 public JPopupMenu createMenu(URL url) { 104 if (url.getProtocol().equalsIgnoreCase("mailto")) { 105 setAddress(url.getFile()); 107 108 JPopupMenu menu = createContactMenu(url.getFile()); 109 110 return menu; 111 } else { 112 setLink(url); 113 114 JPopupMenu menu = createLinkMenu(); 115 116 return menu; 117 } 118 } 119 120 public void open(URL url) { 121 ColumbaDesktop.getInstance().browse(url); 122 } 123 124 public void actionPerformed(ActionEvent e) { 125 String action = e.getActionCommand(); 126 127 if (action.equals("COMPOSE")) { 128 compose(getAddress()); 129 } else if (action.equals("CONTACT")) { 130 contact(getAddress()); 131 } else if (action.equals("OPEN")) { 132 open(getLink()); 133 } else if (action.equals("OPEN_WITHINTERNALBROWSER")) { 134 } 136 } 137 } 138 | Popular Tags |