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 }