1 package paolomind.multitalk.component; 2 3 import java.awt.event.ActionEvent; 4 import java.awt.event.ActionListener; 5 import paolomind.multitalk.netmessage.Sender; 6 import paolomind.multitalk.plugin.ToolInterface; 7 import paolomind.multitalk.plugin.ToolManager; 8 9 /** 10 * Un toolManager che implementa l' AWT ActionListener. 11 * Associando l'oggetto ad un Button o AbstractButton, cattura l'evento d'azione 12 * per selezionare un tool in base al ActionCommand 13 * associato all'evento scatenato 14 * @author paolo 15 * 16 */ 17 public class ActionCommandTool extends ToolManager implements ActionListener { 18 19 /** 20 * costruttore. 21 * @param s 22 * il sender associato a cui spedire i messaggi 23 */ 24 public ActionCommandTool(final Sender s) { 25 super(s); 26 } 27 28 /** 29 * costruttore. 30 * @param name 31 * il nome del toolmanager (la stringa verrà scritta nel 32 * messaggio come info) 33 * @param s 34 * il sender associato a cui spedire i messaggi 35 */ 36 public ActionCommandTool(final String name, final Sender s) { 37 super(name, s); 38 } 39 40 /** 41 * Catturato l'evento, seleziona il tool. 42 * @param e evento catturato, 43 * tale evento deve aver specificato l'ActionCommand 44 * con l' id del tool da selezionare 45 * @see java.awt.event.ActionListener#actionPerformed(java.awt.event.ActionEvent) 46 */ 47 public final void actionPerformed(final ActionEvent e) { 48 if (this.select(e.getActionCommand())) { 49 this.select(); 50 } 51 } 52 53 /** 54 * Metodo che si occupa di assegnare l'ActionListner ad un java.awt.Button e 55 * inizializzare l'ActionCommand. 56 * @param t tool da associare al bottone 57 * @param b il bottone da inizializzare 58 * @return il bottone inizializzato (non è necessario reperirlo) 59 */ 60 public final java.awt.Button setupAction(final ToolInterface t, 61 final java.awt.Button b) { 62 this.register(t); 63 b.setActionCommand(t.getSelfId()); 64 b.addActionListener(this); 65 return b; 66 } 67 68 /** 69 * Metodo che si occupa di assegnare l'ActionListener 70 * ad un javax.swing.AbstractButton e 71 * inizializzare l'ActionCommand. 72 * @param t tool da associare al bottone 73 * @param b il bottone da inizializzare 74 * @return il bottone inizializzato (non è necessario reperirlo) 75 */ 76 public final javax.swing.AbstractButton setupAction(final ToolInterface t, 77 final javax.swing.AbstractButton b) { 78 this.register(t); 79 b.setActionCommand(t.getSelfId()); 80 b.addActionListener(this); 81 return b; 82 } 83 }