1 package org.columba.mail.gui.message.action; 19 20 import java.awt.event.ActionEvent ; 21 import java.awt.event.ActionListener ; 22 import java.util.Observable ; 23 import java.util.Observer ; 24 25 import javax.swing.ButtonGroup ; 26 import javax.swing.JRadioButtonMenuItem ; 27 28 import org.columa.core.config.IDefaultItem; 29 import org.columba.api.gui.frame.IFrameMediator; 30 import org.columba.core.config.DefaultItem; 31 import org.columba.core.gui.menu.IMenu; 32 import org.columba.core.xml.XmlElement; 33 import org.columba.mail.config.MailConfig; 34 35 41 public class HeadersMenu extends IMenu implements ActionListener , Observer { 42 43 private XmlElement element; 44 45 private JRadioButtonMenuItem defaultMenuItem; 46 47 private JRadioButtonMenuItem customMenuItem; 48 49 private JRadioButtonMenuItem allMenuItem; 50 51 55 public HeadersMenu(IFrameMediator controller) { 56 super(controller, "Show Headers","show_headers_menu"); 57 58 ButtonGroup group = new ButtonGroup (); 59 60 defaultMenuItem = new JRadioButtonMenuItem ("Default"); 61 defaultMenuItem.setActionCommand("DEFAULT"); 62 defaultMenuItem.addActionListener(this); 63 group.add(defaultMenuItem); 64 65 add(defaultMenuItem); 66 67 customMenuItem = new JRadioButtonMenuItem ("Custom"); 68 customMenuItem.setActionCommand("CUSTOM"); 69 customMenuItem.addActionListener(this); 70 group.add(customMenuItem); 71 add(customMenuItem); 72 73 allMenuItem = new JRadioButtonMenuItem ("Compact"); 74 allMenuItem.setActionCommand("ALL"); 75 allMenuItem.addActionListener(this); 76 group.add(allMenuItem); 77 add(allMenuItem); 78 79 element = MailConfig.getInstance().get("options").getElement( 80 "/options/headerviewer"); 81 element.addObserver(this); 82 83 update(element, null); 84 } 85 86 public void actionPerformed(ActionEvent e) { 87 String action = e.getActionCommand(); 88 89 if (action.equals("DEFAULT")) { 90 element.addAttribute("style", "0"); 91 92 new ViewMessageAction(getFrameMediator()).actionPerformed(null); 93 } else if (action.equals("CUSTOM")) { 94 element.addAttribute("style", "1"); 95 96 new ViewMessageAction(getFrameMediator()).actionPerformed(null); 97 } else if (action.equals("ALL")) { 98 element.addAttribute("style", "2"); 99 100 new ViewMessageAction(getFrameMediator()).actionPerformed(null); 101 } 102 } 103 104 110 public void update(Observable arg0, Object arg1) { 111 IDefaultItem item = new DefaultItem(element); 112 int style = item.getIntegerWithDefault("style", 0); 113 switch (style) { 114 case 0: 115 defaultMenuItem.setSelected(true); 116 break; 117 case 1: 118 customMenuItem.setSelected(true); 119 break; 120 case 2: 121 allMenuItem.setSelected(true); 122 break; 123 } 124 } 125 } | Popular Tags |