
org.yaoqiang.collaboration.CollaborationActions Maven / Gradle / Ivy
package org.yaoqiang.collaboration;
import java.awt.Component;
import java.awt.event.ActionEvent;
import javax.swing.AbstractAction;
import javax.swing.Action;
import javax.swing.JOptionPane;
import org.jivesoftware.smack.RosterEntry;
import org.jivesoftware.smack.XMPPException;
import org.yaoqiang.collaboration.dialog.CollaborationDialog;
/**
* CollaborationActions
*
* @author Shi Yaoqiang([email protected])
*/
public class CollaborationActions extends AbstractAction {
private static final long serialVersionUID = -5287274971562802038L;
public static final String ADD_CONTACT = "addContact";
public static final String DELETE = "delete";
private String type = "";
public CollaborationActions(String type) {
this.type = type;
putValue(Action.NAME, type);
}
public static CollaborationActions getAction(String type) {
return new CollaborationActions(type);
}
public void actionPerformed(ActionEvent e) {
MainPanel mainPanel = getMainPanel(e);
CollaborationDialog dialog = mainPanel.getDialog();
if (ADD_CONTACT.equals(type)) {
dialog.initDialog().editObject(null, type);
} else if (DELETE.equals(type)) {
RosterEntry entry = mainPanel.getSelectedEntry();
if (entry != null) {
int option = JOptionPane.showConfirmDialog(null, "Are you sure you want to delete Contact '" + entry.getUser() + "'?",
"Confirm Contact Delete", JOptionPane.YES_NO_OPTION);
if (option == JOptionPane.YES_OPTION) {
try {
MainPanel.getConnection().getRoster().removeEntry(entry);
mainPanel.getSelectedGroupPane().removeContactItem(entry);
} catch (XMPPException e1) {
e1.printStackTrace();
}
}
}
}
}
public MainPanel getMainPanel(ActionEvent e) {
if (e.getSource() instanceof Component) {
Component component = (Component) e.getSource();
while (component != null && !(component instanceof MainPanel)) {
component = component.getParent();
}
return (MainPanel) component;
}
return null;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy