Package client

Source Code of client.Menu

package client;

import java.awt.MenuItem;
import java.awt.PopupMenu;
import java.awt.event.ActionListener;
import java.util.Iterator;

import network.Host;

import util.Constants;
import util.Globals;


public class Menu
{
  PopupMenu popupMenu = new PopupMenu("Actions");
    MenuItem menuItemMensaje = new MenuItem(Constants.MENU_ACTION_SEND_TEXT_MSG);
    MenuItem menuItemImage = new MenuItem(Constants.MENU_ACTION_SEND_IMAGE_MSG);
    MenuItem menuItemSalir = new MenuItem(Constants.MENU_ACTION_EXIT_APP_MSG);
   
  PopupMenu messagePopupMenu = new PopupMenu("Enviar mensaje a...");
  PopupMenu imagePopupMenu = new PopupMenu("Enviar imagen a...");
 
  PopupMenu statusPopupMenu = new PopupMenu("Mi estado...");
    MenuItem onlineItemMensaje = new MenuItem(Constants.MENU_ACTION_SET_ONLINE_MSG);
    MenuItem offlineItemMensaje = new MenuItem(Constants.MENU_ACTION_SET_OFFLINE_MSG);

  ActionListener listener = null;
 
    /**
     * Popup menu principal del tray-icon
     * @param listener
     * @return
     */
    public PopupMenu createPopupMenu(ActionListener aListener)
    {
      listener = aListener;
     
        //Create the popup menu and add some menu item to it
        menuItemMensaje.setActionCommand(Constants.MENU_ACTION_SEND_TEXT_CMD);
        menuItemMensaje.addActionListener(listener);
       
        menuItemImage.setActionCommand(Constants.MENU_ACTION_SEND_IMAGE_CMD);
        menuItemImage.addActionListener(listener);       
       
        menuItemSalir.setActionCommand(Constants.MENU_ACTION_EXIT_APP_CMD);
        menuItemSalir.addActionListener(listener);
       
        generateHostsSubMenu(messagePopupMenu, Constants.MENU_ACTION_SEND_FAST_TEXT_CMD, listener);
        generateHostsSubMenu(imagePopupMenu, Constants.MENU_ACTION_SEND_FAST_IMAGE_CMD, listener);
       
        onlineItemMensaje.setActionCommand(Constants.MENU_ACTION_SET_ONLINE_CMD);
        onlineItemMensaje.addActionListener(listener);
        statusPopupMenu.add(onlineItemMensaje);

        offlineItemMensaje.setActionCommand(Constants.MENU_ACTION_SET_OFFLINE_CMD);
        offlineItemMensaje.addActionListener(listener);
        statusPopupMenu.add(offlineItemMensaje);       
       
        //Add the menu item to the popup menu
        // popupMenu.add(menuItemLanSearch); esto ya no es necesario
        // popupMenu.addSeparator();
        popupMenu.add(menuItemMensaje);
        popupMenu.add(messagePopupMenu);
        popupMenu.addSeparator();
        popupMenu.add(menuItemImage);
        popupMenu.add(imagePopupMenu);
        popupMenu.addSeparator();
        popupMenu.add(statusPopupMenu);
        popupMenu.addSeparator();
        popupMenu.add(menuItemSalir);

        return popupMenu;
    }

    /**
     * Genera una entrada por host existente en el pop-up menu a fin de enviar mensajes/imagenes rapidos
     * @param popupMenu
     * @param action
     * @param listener
     */
    private void generateHostsSubMenu(PopupMenu popupMenu, String action, ActionListener listener)
    {
        Iterator<Host> it = Globals.hosts.iterator();
        while (it.hasNext())
        {
            Host host = it.next();
            if (!host.isConnected())
              continue;
            MenuItem menuItemMensaje = new MenuItem(host.getHostName());
            menuItemMensaje.setActionCommand(action);
            menuItemMensaje.addActionListener(listener);
            popupMenu.add(menuItemMensaje);
        }
    }
   
    /**
     * Recarga el contenido del popupmenu según los hosts online
     */
    public void updatePopupSubMenu()
    {
      messagePopupMenu.removeAll();
      generateHostsSubMenu(messagePopupMenu, Constants.MENU_ACTION_SEND_FAST_TEXT_CMD, listener);
      imagePopupMenu.removeAll();
      generateHostsSubMenu(imagePopupMenu, Constants.MENU_ACTION_SEND_FAST_IMAGE_CMD, listener);
    }
   
   
}
TOP

Related Classes of client.Menu

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.