View Javadoc

1   /*
2    *  XNap - A P2P framework and client.
3    *
4    *  See the file AUTHORS for copyright information.
5    *
6    *  This program is free software; you can redistribute it and/or modify
7    *  it under the terms of the GNU General Public License as published by
8    *  the Free Software Foundation.
9    *
10   *  This program is distributed in the hope that it will be useful,
11   *  but WITHOUT ANY WARRANTY; without even the implied warranty of
12   *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13   *  GNU General Public License for more details.
14   *
15   *  You should have received a copy of the GNU General Public License
16   *  along with this program; if not, write to the Free Software
17   *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
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      //--- Constant(s) ---
42      
43      //--- Data field(s) ---
44      
45      private OpenNapGlobalUser user;
46  	private OpenNapServer preferredServer;
47  
48      //--- Constructor(s) ---
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      //--- Method(s) ---
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  }