Package sc

Source Code of sc.TopPanel

package sc;

import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.Image;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseEvent;

import javax.swing.Icon;
import javax.swing.ImageIcon;
import javax.swing.JMenuItem;
import javax.swing.JPopupMenu;
import javax.swing.event.PopupMenuEvent;
import javax.swing.event.PopupMenuListener;

public class TopPanel extends BasePanel
{
  private static final long serialVersionUID = 1L;
  private static JPopupMenu popupMenu;
  private Image menuicon;
  private Image nameicon;
  private Image venticon;
  private Image chaticon;
  private Image rankicon;
  private static JMenuItem openForum;
  private static JMenuItem joinChat;
  private static JMenuItem joinVent;
  private static TopPanel instance;
 
  public TopPanel()
  {   
    ActionListener menuListener = new ActionListener() {
      public void actionPerformed(ActionEvent e)
      {
        String cmd = e.getActionCommand();
        if (cmd == "Hide Member List")
        {
          Harlequin.getInstance().setVisible(false);
          Tray.showHideItem(false);
        }
        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);
      }
    };

    JPopupMenu.setDefaultLightWeightPopupEnabled(false);
    popupMenu = new JPopupMenu("Menu");
   
    JMenuItem item = new JMenuItem("Hide Member List");
    item.addActionListener(menuListener);
    popupMenu.add(item);
   
    Icon icon = new ImageIcon(Images.getImage("/images/forum.png"));
    openForum = new JMenuItem("Open Forum", icon);
    openForum.addActionListener(menuListener);
    popupMenu.add(openForum);
   
    icon = new ImageIcon(Images.getImage("/images/inchat.png"));
    joinChat = new JMenuItem("Join Chat", icon);
    joinChat.addActionListener(menuListener);
    popupMenu.add(joinChat);
   
    icon = new ImageIcon(Images.getImage("/images/ventrilo.png"));
    joinVent = new JMenuItem("Join Vent", icon);
    joinVent.addActionListener(menuListener);
    popupMenu.add(joinVent);
   
    icon = new ImageIcon(Configuration.icon);
    item = new JMenuItem("Configuration...", icon);
    item.addActionListener(menuListener);
    popupMenu.add(item);
   
    popupMenu.addSeparator();
    item = new JMenuItem("Exit Harlequin");
    item.addActionListener(menuListener);
    popupMenu.add(item);
   
    popupMenu.addPopupMenuListener(new PopupMenuListener() {

      public void popupMenuCanceled(PopupMenuEvent e){}

      public void popupMenuWillBecomeInvisible(PopupMenuEvent e)
      {
        menuicon = Images.getImage("/images/menu0.png");
        repaint();
      }

      public void popupMenuWillBecomeVisible(PopupMenuEvent e)
      {
        menuicon = Images.getImage("/images/menu1.png");
        repaint();
      }
     
    });
    add(popupMenu);   
   
    menuicon = Images.getImage("/images/menu0.png");
    nameicon = Images.getImage("/images/sort1.png");
    venticon = Images.getImage("/images/sort0.png");
    chaticon = Images.getImage("/images/sort0.png");
    rankicon = Images.getImage("/images/sort0.png");
   
    setPreferredSize(new Dimension(100, 19));
   
    enableOpenForum(false);   
    enableJoinChat(false);
    enableJoinVent(false);
   
    instance = this;
  }
   
  public void paintComponent(Graphics g)
    {
    int w = getWidth();
    int pw = w;
    Member user = Member.userMember();
    if (user != null)
      pw = user.getWidth();
   
    // Tile the background image
    Image bg = Images.getImage("/images/panel.png");
    for (int x = 0; x < w; x += 37)
      g.drawImage(bg, x, 0, this);
   
    g.drawImage(menuicon, 0, 0, this);
    g.drawImage(nameicon, 30, 0, this);
    g.drawImage(venticon, pw - 60, 0, this);
    g.drawImage(chaticon, pw - 40, 0, this);
    g.drawImage(rankicon, pw - 20, 0, this);
  }

  public void mouseClicked(MouseEvent e)
  {
    int x = e.getX();
    if (x < 30)
      popupMenu.show(this, 6, 18);
    else if (x > 30 && x < BasePanel.width() - 60)
    { 
      PanelControl.sortByName();
      nameicon = Images.getImage("/images/sort1.png");
      venticon = Images.getImage("/images/sort0.png");
      chaticon = Images.getImage("/images/sort0.png");
      rankicon = Images.getImage("/images/sort0.png");
    }
    else if (x > BasePanel.width() - 60 && x < BasePanel.width() - 40)
    { 
      PanelControl.sortByVent();
      nameicon = Images.getImage("/images/sort0.png");
      venticon = Images.getImage("/images/sort1.png");
      chaticon = Images.getImage("/images/sort0.png");
      rankicon = Images.getImage("/images/sort0.png");
    }
    else if (x > BasePanel.width() - 40 && x < BasePanel.width() - 20)
    { 
      PanelControl.sortByChat();
      nameicon = Images.getImage("/images/sort0.png");
      venticon = Images.getImage("/images/sort0.png");
      chaticon = Images.getImage("/images/sort1.png");
      rankicon = Images.getImage("/images/sort0.png");
    }
    else if (x > BasePanel.width() - 20)
    { 
      PanelControl.sortByRank();
      nameicon = Images.getImage("/images/sort0.png");
      venticon = Images.getImage("/images/sort0.png");
      chaticon = Images.getImage("/images/sort0.png");
      rankicon = Images.getImage("/images/sort1.png");
    }
    repaint();
  }
 
  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 update()
  {
    TopPanel.instance.repaint();
  }
 
  public static void hidePopupMenu()
  {
    popupMenu.setVisible(false);
  }
}
TOP

Related Classes of sc.TopPanel

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.