1 package org.votech.ds6.widgets;
2
3 import java.util.Map;
4
5 import org.votech.plastic.managers.PlasticApplication;
6 import org.votech.plastic.outgoing.messages.Message;
7
8 /**
9 * A MessageSource constructs a {@link Message} when the menu item is selected, and
10 * processes any object returned by the message recipient.
11 * @author jdt
12 *
13 */
14 public interface MessageSource {
15
16 /**
17 * Construct a message to be sent when the menu is activated.
18 * @param destination the destination of the message - could be useful to some MessageSources. Could be null if the message is to be broadcast.
19 * @return
20 */
21 Message getMessage(PlasticApplication destination);
22
23 /**
24 * Perform any post-processing on the message response.
25 * @param sender who sent us this
26 * @param result the result!
27 */
28
29 void processReturnValue(PlasticApplication sender, Object result);
30 /**
31 * Perform any post-processing on the message response if we broadcast to all.
32 * @param result
33 */
34 void processReturnValues(Map<PlasticApplication, Object> result);
35
36 }