package org.jivesoftware.spark.roar.displaytype; import java.awt.Frame; import java.awt.event.ActionEvent; import javax.swing.AbstractAction; import javax.swing.BorderFactory; import org.jivesoftware.smack.packet.Message; import org.jivesoftware.spark.SparkManager; import org.jivesoftware.spark.roar.RoarProperties; import org.jivesoftware.spark.roar.gui.SparkToaster; import org.jivesoftware.spark.ui.ChatFrame; import org.jivesoftware.spark.ui.ChatRoom; /** * Handles Popups looking like Toasts in lower right corner going upwards * * @author wolf.posdorfer * */ public class SparkToasterHandler implements RoarDisplayType { public SparkToasterHandler() { } @Override public void messageReceived(ChatRoom room, Message message) { int time = RoarProperties.getInstance().getDuration(); SparkToaster toaster = new SparkToaster(); toaster.setDisplayTime(time); toaster.setBorder(BorderFactory.createBevelBorder(0)); toaster.setTitle(room.getTabTitle()); toaster.setCustomAction(new AbstractAction() { private static final long serialVersionUID = 8327372636443172019L; @Override public void actionPerformed(ActionEvent e) { ChatFrame chatFrame = SparkManager.getChatManager() .getChatContainer().getChatFrame(); chatFrame.setState(Frame.NORMAL); chatFrame.setVisible(true); } }); toaster.showToaster(room.getTabIcon(), message.getBody()); } @Override public void messageSent(ChatRoom room, Message message) { // i dont care } @Override public void closingRoarPanel(int x, int y) { // i dont care } @Override public String toString() { return "SparkToaster"; } public static String getName() { return "SparkToaster"; } public static String getLocalizedName() { return "SparkToaster"; } }