Package sc

Source Code of sc.Tray

package sc;

import java.awt.AWTException;
import java.awt.Image;
import java.awt.MenuItem;
import java.awt.PopupMenu;
import java.awt.SystemTray;
import java.awt.TrayIcon;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

public class Tray {

  private static SystemTray tray;
  private static MenuItem showHide;
  private static Image baseimage;
  private static TrayIcon trayicon;
  private static MenuItem openForum;
  private static MenuItem joinChat;
  private static MenuItem joinVent;
 
  public static void initialise()
  {
    if (!SystemTray.isSupported())
      return;

    tray = SystemTray.getSystemTray();

    ActionListener listener = new ActionListener() {
      public void actionPerformed(ActionEvent e)
      {
        String cmd = e.getActionCommand();
        if (cmd == "Show Member List")
        {
          Harlequin.getInstance().setVisible(true);
          showHide.setLabel("Hide Member List");
        }
        else if (cmd == "Hide Member List")
        {
          Harlequin.getInstance().setVisible(false);
          showHide.setLabel("Show Member List");
        }
        else if (cmd == "Open Forum")
        {
          OpenURL.openForum();
        }
        else if (cmd == "Join Chat")
        {
          OpenURL.joinChat();
        }
        else if (cmd == "Join Vent")
        {
          OpenURL.joinVent();
        }
        else if (cmd == "Configuration...")
        {
          Configuration.open();
        }
        else if (cmd == "Exit Harlequin")
          System.exit(0);
      }
    };

   
    PopupMenu popup = new PopupMenu();
    showHide = new MenuItem("Show Member List");
    showHide.addActionListener(listener);
    popup.add(showHide);
       
    openForum = new MenuItem("Open Forum");
    openForum.addActionListener(listener);
    popup.add(openForum);
   
    joinChat = new MenuItem("Join Chat");
    joinChat.addActionListener(listener);
    popup.add(joinChat);
   
    joinVent = new MenuItem("Join Vent");
    joinVent.addActionListener(listener);
    popup.add(joinVent);

    MenuItem item = new MenuItem("Configuration...");
    item.addActionListener(listener);
    popup.add(item);
    popup.addSeparator();
    item = new MenuItem("Exit Harlequin");
    item.addActionListener(listener);
    popup.add(item);

    baseimage = Images.getImage("/images/harlequin.png");
    trayicon = new TrayIcon(baseimage, Configuration.properties.getProperty("client.title"),
        popup);

    trayicon.setImageAutoSize(true);
    trayicon.addActionListener(new ActionListener() {
      public void actionPerformed(ActionEvent e)
      {
        String cmd = e.getActionCommand();
        if (cmd == "OK")
          return;
        showHideItem(!Harlequin.getInstance().isVisible());
        Harlequin.getInstance().setVisible(!Harlequin.getInstance().isVisible());
      }
    });
   

    enableOpenForum(false);   
    enableJoinChat(false);
    enableJoinVent(false);

    try
    {
      tray.add(trayicon);
    }
    catch (AWTException e)
    {
      Log.info("TrayIcon could not be added.");
    }
  }
 
  public static void showHideItem(boolean hide)
  {
    if (hide)
      showHide.setLabel("Hide Member List");
    else
      showHide.setLabel("Show Member List");
  }
 
  public static void event(String msg)
  {
    if (Member.userMember() == null)
      return;
    Log.info(msg);
    trayicon.displayMessage(Harlequin.CLIENT_TITLE, msg, TrayIcon.MessageType.INFO);
  }
 
  public static void enableOpenForum(boolean enable)
  {
    openForum.setEnabled(enable)
  }
 
  public static void enableJoinChat(boolean enable)
  {
    joinChat.setEnabled(enable)
  }
 
  public static void enableJoinVent(boolean enable)
  {
    joinVent.setEnabled(enable)
  }
 
  public static void setToolTip(String tooltip)
  {
    trayicon.setToolTip(tooltip);
  }
}
TOP

Related Classes of sc.Tray

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.