View Javadoc

1   package paolomind.multitalk.toolwrapper;
2   
3   import java.awt.AWTEvent;
4   import java.awt.event.KeyEvent;
5   import java.awt.event.MouseEvent;
6   import java.util.Properties;
7   
8   import paolomind.multitalk.netmessage.IMessageFactory;
9   import paolomind.multitalk.netmessage.IMessage;
10  import paolomind.multitalk.netmessage.MessageException;
11  import paolomind.multitalk.netmessage.Sender;
12  import paolomind.multitalk.plugin.ToolInterface;
13  
14  /**
15   * una classe tool per rimandare tutti gli eventi ad un sender.
16   * @author paolo
17   *
18   */
19  public final class EchoEventToolWrapper implements ToolInterface {
20  
21    /** */
22    private String name;
23  
24    /** */
25    private Sender sender;
26  
27    /** */
28    private IMessageFactory mfactory;
29  
30    /**
31     * costruttore vuoto.
32     */
33    public EchoEventToolWrapper() {
34    }
35  
36    /**
37     * @param e
38     *            event
39     */
40    private void logevent(final AWTEvent e) {
41      if (sender != null) {
42        IMessage m = mfactory.createMessage();
43        if (e != null) {
44          m.addInfo(name + ":" + e.paramString());
45        } else {
46          m.addInfo(name + ": null");
47        }
48        m.addInfo(this.getSelfId());
49        sender.send(m);
50      }
51    }
52  
53    /**
54     * @param m messaggio
55     */
56    private void logevent(final IMessage m) {
57      if (sender != null) {
58        sender.send(m);
59      }
60    }
61  
62    /**
63     * costruttore.
64     * @param pname il nome da dare al tool di echo
65     */
66    public EchoEventToolWrapper(final String pname) {
67      this();
68      this.name = pname;
69    }
70  
71    /**
72     * invocato quando il tool viene selezionato.
73     * @see paolomind.multitalk.plugin.ToolInterface#select()
74     */
75    public void select() {
76      logevent((AWTEvent) null);
77    }
78  
79    /**
80     * restituisce il proprio id.
81     * @return  il proprio id.
82     * @see paolomind.commons.NamedObject#getSelfId()
83     */
84    public String getSelfId() {
85      return name;
86    }
87  
88    /**
89     * @param e evento del mouse
90     * @see java.awt.event.MouseListener#mouseClicked(java.awt.event.MouseEvent)
91     */
92    public void mouseClicked(final MouseEvent e) {
93      logevent(e);
94    }
95  
96    /**
97     * @param e evento del mouse
98     * @see java.awt.event.MouseListener#mouseEntered(java.awt.event.MouseEvent)
99     */
100   public void mouseEntered(final MouseEvent e) {
101     logevent(e);
102   }
103 
104   /**
105    * @param e evento del mouse
106    * @see java.awt.event.MouseListener#mouseExited(java.awt.event.MouseEvent)
107    */
108   public void mouseExited(final MouseEvent e) {
109     logevent(e);
110   }
111 
112   /**
113    * @param e evento del mouse
114    * @see java.awt.event.MouseListener#mousePressed(java.awt.event.MouseEvent)
115    */
116   public void mousePressed(final MouseEvent e) {
117     logevent(e);
118   }
119 
120   /**
121    * @param e evento del mouse
122    * @see java.awt.event.MouseListener#mouseReleased(java.awt.event.MouseEvent)
123    */
124   public void mouseReleased(final MouseEvent e) {
125     logevent(e);
126   }
127 
128   /**
129    * @param e evento del mouse
130    * @see java.awt.event.MouseMotionListener#mouseDragged(java.awt.event.MouseEvent)
131    */
132   public void mouseDragged(final MouseEvent e) {
133     logevent(e);
134   }
135 
136   /**
137    * @param e evento del mouse
138    * @see java.awt.event.MouseMotionListener#mouseMoved(java.awt.event.MouseEvent)
139    */
140   public void mouseMoved(final MouseEvent e) {
141     logevent(e);
142   }
143 
144   /**
145    * @param e evento della tastiera
146    * @see java.awt.event.KeyListener#keyPressed(java.awt.event.KeyEvent)
147    */
148   public void keyPressed(final KeyEvent e) {
149     logevent(e);
150   }
151 
152   /**
153    * @param e evento della tastiera
154    * @see java.awt.event.KeyListener#keyReleased(java.awt.event.KeyEvent)
155    */
156   public void keyReleased(final KeyEvent e) {
157     logevent(e);
158   }
159 
160   /**
161    * @param e evento della tastiera
162    * @see java.awt.event.KeyListener#keyTyped(java.awt.event.KeyEvent)
163    */
164   public void keyTyped(final KeyEvent e) {
165     logevent(e);
166   }
167 
168   /**
169    * ricezione di un messaggio.
170    *
171    * @param m
172    *            il messaggio da ricevere
173    * @throws MessageException
174    *             rilancia l'accezione in caso di errori nel messaggio
175    *
176    * @see paolomind.multitalk.netmessage.Receiver#receive(paolomind.multitalk.netmessage.IMessage)
177    */
178   public void receive(final IMessage m) throws MessageException {
179     logevent(m);
180   }
181 
182   /**
183    * Non ha proprietà specifiche.
184    * @return null
185    * @see paolomind.multitalk.plugin.ToolInterface#getPropertes()
186    */
187   public Properties getPropertes() {
188     return null;
189   }
190 
191   /**
192    * setta l'id.
193    * @param pname l'id con cui sarĂ  identificato l'oggetto
194    * @see paolomind.commons.NamedObject#setSelfId(java.lang.String)
195    */
196   public void setSelfId(final String pname) {
197     this.name = pname;
198   }
199 
200   /**
201    * il sender a cui inviare i messaggi di log.
202    * @param psender il sender a cui inviare i messaggi di log
203    */
204   public void setSender(final Sender psender) {
205     this.sender = psender;
206   }
207 
208   /**
209    * la factory per creare messaggi.
210    * @param pfactory la factory dei messaggi
211    */
212   public void setMessageFactory(final IMessageFactory pfactory) {
213     this.mfactory = pfactory;
214   }
215 }