All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.yaoqiang.collaboration.CollaborationActions Maven / Gradle / Ivy

There is a newer version: 2.2.18
Show newest version
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 ADD_GROUP = "addGroup";
	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 (ADD_GROUP.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