1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 package org.xnap.plugin.opennap.action;
21
22 import java.awt.event.ActionEvent;
23
24 import org.xnap.XNap;
25 import org.xnap.gui.StatusBar;
26 import org.xnap.gui.util.FocusManager;
27 import org.xnap.peer.action.AbstractChatAction;
28 import org.xnap.plugin.opennap.OpenNapPlugin;
29 import org.xnap.plugin.opennap.net.OpenNapServer;
30 import org.xnap.plugin.opennap.user.OpenNapGlobalUser;
31 import org.xnap.plugin.opennap.user.OpenNapUser;
32
33 /***
34 * This class provides an action that opens a private channel for a
35 * {@link OpenNapUser} object.
36 */
37 public class OpenNapChatAction extends AbstractChatAction
38 {
39
40
41
42
43
44 private OpenNapGlobalUser user;
45 private OpenNapServer preferredServer;
46
47
48
49 public OpenNapChatAction(OpenNapUser user)
50 {
51 this.user = user.getParent();
52 this.preferredServer = user.getServer();
53 }
54
55 public OpenNapChatAction(OpenNapGlobalUser user)
56 {
57 this.user = user;
58
59 user.lookup();
60 }
61
62
63
64 public void actionPerformed(ActionEvent event)
65 {
66 preferredServer = user.getConnectedServer(preferredServer);
67 if (preferredServer != null) {
68 OpenNapPlugin.getMessageHandler().getPrivateChannel
69 (preferredServer.getUser(user.getName()));
70 FocusManager.setFocusTo("chat", event);
71 }
72 else {
73 StatusBar.setText(XNap.tr("User is not available!"));
74 }
75 }
76
77 }