package org.limewire.ui.swing.friends.actions;
import java.awt.event.ActionEvent;
import org.limewire.friend.api.FriendConnection;
import org.limewire.friend.api.FriendConnectionEvent;
import org.limewire.listener.EventBean;
import org.limewire.listener.EventUtils;
import org.limewire.ui.swing.action.AbstractAction;
import org.limewire.ui.swing.friends.AddFriendDialog;
import org.limewire.ui.swing.util.I18n;
import com.google.inject.Inject;
public class AddFriendAction extends AbstractAction {
private final EventBean<FriendConnectionEvent> connectionEventBean;
/**
* Creates add friend action.
* <p>
* Action is disabled if <code>friendConnection</code> is null or does not
* support adding friends, see
* {@link FriendConnection#supportsAddRemoveFriend()} or is not logged in.
*
* @param friendConnection can be null, action will be constructed in a
* disabled state then
*/
@Inject
public AddFriendAction(EventBean<FriendConnectionEvent> connectionEventBean) {
super(I18n.tr("Add Friend..."));
this.connectionEventBean = connectionEventBean;
}
@Override
public void actionPerformed(ActionEvent e) {
FriendConnection friendConnection = EventUtils.getSource(connectionEventBean);
assert friendConnection != null;
new AddFriendDialog(friendConnection);
}
}