1 17 package org.columba.mail.gui.composer; 18 19 import java.awt.Component ; 20 21 import javax.swing.ImageIcon ; 22 import javax.swing.JComboBox ; 23 import javax.swing.JLabel ; 24 import javax.swing.JList ; 25 import javax.swing.ListCellRenderer ; 26 27 import org.columba.core.resourceloader.IconKeys; 28 import org.columba.core.resourceloader.ImageLoader; 29 import org.columba.mail.config.AccountItem; 30 import org.columba.ristretto.message.Address; 31 32 40 41 public class AccountView extends JComboBox { 42 AccountController controller; 43 44 public AccountView(AccountController controller) { 45 super(); 46 this.controller = controller; 47 48 setRenderer(new AccountListRenderer()); 49 } 50 } 51 52 53 class AccountListRenderer extends JLabel implements ListCellRenderer { 54 protected ImageIcon image1; 55 protected ImageIcon image2; 56 57 public AccountListRenderer() { 58 setOpaque(true); 59 image1 = ImageLoader.getSmallIcon(IconKeys.COMPUTER); 60 image2 = ImageLoader.getSmallIcon(IconKeys.SERVER); 61 } 62 63 public Component getListCellRendererComponent(JList list, Object value, 64 int index, boolean isSelected, boolean cellHasFocus) { 65 if (isSelected) { 66 setBackground(list.getSelectionBackground()); 67 setForeground(list.getSelectionForeground()); 68 } else { 69 setBackground(list.getBackground()); 70 setForeground(list.getForeground()); 71 } 72 73 if (value != null) { 74 AccountItem item = (AccountItem) value; 75 String accountName = item.getName(); 76 Address identity = item.getIdentity().getAddress(); 77 78 setText(accountName + ": " + identity.toString()); 79 81 if (item.isPopAccount()) { 82 setIcon(image1); 83 } else { 84 setIcon(image2); 85 } 86 } 87 88 return this; 89 } 90 } 91 | Popular Tags |