/*
*
* Copyright (c) 2000-2009 by Rodney Kinney, Brent Easton
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Library General Public
* License (LGPL) as published by the Free Software Foundation.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Library General Public License for more details.
*
* You should have received a copy of the GNU Library General Public
* License along with this library; if not, copies are available
* at http://www.opensource.org.
*/
package VASSAL.chat.ui;
import java.awt.event.ActionEvent;
import javax.swing.AbstractAction;
import javax.swing.Action;
import javax.swing.JTree;
import VASSAL.chat.ChatServerConnection;
import VASSAL.chat.Room;
import VASSAL.i18n.Resources;
/**
* When invoked, will join a game room on the server
*/
public class JoinRoomAction extends AbstractAction {
private static final long serialVersionUID = 1L;
private Room r;
private ChatServerConnection client;
public JoinRoomAction(Room r, ChatServerConnection client) {
super(Resources.getString("Chat.join_room")); //$NON-NLS-1$
this.r = r;
this.client = client;
setEnabled(r != null && !r.equals(client.getRoom()));
}
public void actionPerformed(ActionEvent evt) {
client.setRoom(r);
}
public static RoomActionFactory factory(final ChatServerConnection chatClient) {
return new RoomActionFactory() {
public Action getAction(Room p, JTree tree) {
return new JoinRoomAction(p, chatClient);
}
};
}
}