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.AbstractBrowseAction;
28 import org.xnap.plugin.opennap.net.OpenNapMetaBrowse;
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 import org.xnap.search.SearchManager;
33
34 /***
35 * This class provides an action that opens a private channel for a
36 * {@link OpenNapUser} object.
37 */
38 public class OpenNapBrowseAction extends AbstractBrowseAction
39 {
40
41
42
43
44
45 private OpenNapGlobalUser user;
46 private OpenNapServer preferredServer;
47
48
49
50 public OpenNapBrowseAction(OpenNapUser user)
51 {
52 this.user = user.getParent();
53 this.preferredServer = user.getServer();
54 }
55
56 public OpenNapBrowseAction(OpenNapGlobalUser user)
57 {
58 this.user = user;
59
60 user.lookup();
61 }
62
63
64
65 public void actionPerformed(ActionEvent event)
66 {
67 preferredServer = user.getConnectedServer(preferredServer);
68 if (preferredServer != null) {
69 SearchManager.getInstance().handle
70 (new OpenNapMetaBrowse(preferredServer.getUser(user.getName())));
71 FocusManager.setFocusTo("search", event);
72 }
73 else {
74 StatusBar.setText(XNap.tr("User is not available!"));
75 }
76 }
77
78 }