package jadex.bdi.examples.alarmclock; import jadex.bdi.planlib.GuiCreator; import jadex.bdi.runtime.Plan; import jadex.commons.SUtil; import java.awt.Toolkit; import javax.swing.JFrame; import javax.swing.JOptionPane; import javax.swing.SwingUtilities; /** * Play a beep. */ public class BeepPlan extends Plan { //-------- methods -------- /** * The body method is called on the * instatiated plan instance from the scheduler. */ public void body() { Alarm alarm = (Alarm)getParameter("alarm").getValue(); final JFrame parent = ((GuiCreator)getBeliefbase().getBelief("gui").getFact()).getFrame(); // Hack! final String message = alarm.getMessage()!=null ? SUtil.wrapText(alarm.getMessage()) : null; SwingUtilities.invokeLater(new Runnable() { public void run() { Toolkit.getDefaultToolkit().beep(); JOptionPane.showMessageDialog(parent, message, "Alarm is due", JOptionPane.INFORMATION_MESSAGE); } }); } }