⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 menumanager.java

📁 myjxta是用jxta开发的一个p2p通讯软件 有聊天 文件共享 视频3大功能 界面采用swing
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
/* *  Copyright (c) 2001 Sun Microsystems, Inc.  All rights *  reserved. * *  Redistribution and use in source and binary forms, with or without *  modification, are permitted provided that the following conditions *  are met: * *  1. Redistributions of source code must retain the above copyright *  notice, this list of conditions and the following disclaimer. * *  2. Redistributions in binary form must reproduce the above copyright *  notice, this list of conditions and the following disclaimer in *  the documentation and/or other materials provided with the *  distribution. * *  3. The end-user documentation included with the redistribution, *  if any, must include the following acknowledgment: *  "This product includes software developed by the *  Sun Microsystems, Inc. for Project JXTA." *  Alternately, this acknowledgment may appear in the software itself, *  if and wherever such third-party acknowledgments normally appear. * *  4. The names "Sun", "Sun Microsystems, Inc.", "JXTA" and "Project JXTA" *  must not be used to endorse or promote products derived from this *  software without prior written permission. For written *  permission, please contact Project JXTA at http://www.jxta.org. * *  5. Products derived from this software may not be called "JXTA", *  nor may "JXTA" appear in their name, without prior written *  permission of Sun. * *  THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED *  WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES *  OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE *  DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR *  ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, *  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT *  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF *  USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND *  ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, *  OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT *  OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF *  SUCH DAMAGE. *  ==================================================================== * *  This software consists of voluntary contributions made by many *  individuals on behalf of Project JXTA.  For more *  information on Project JXTA, please see *  <http://www.jxta.org/>. * *  This license is based on the BSD license adopted by the Apache Foundation. * *  $Id: MenuManager.java,v 1.27 2006/07/15 23:13:58 nano Exp $ */package net.jxta.myjxta.ui;import net.jxta.myjxta.View;import net.jxta.myjxta.plugin.Plugin;import net.jxta.myjxta.plugin.PluginAction;import net.jxta.myjxta.plugin.PluginContainer;import net.jxta.myjxta.ui.action.*;import net.jxta.myjxta.util.Resources;import javax.swing.*;import javax.swing.event.MenuEvent;import javax.swing.event.MenuListener;import java.awt.*;import java.awt.event.ActionEvent;import java.awt.event.KeyEvent;import java.util.HashMap;import java.util.Iterator;import java.util.ResourceBundle;import java.util.Set;/** * @author james todd [gonzo at jxta dot org] * @version $Id: MenuManager.java,v 1.27 2006/07/15 23:13:58 nano Exp $ */public final class MenuManager {    public static final String PLUGIN_MENU_CHAT_ONE_TO_ONE_SECURE = "MenuManager.chat.oneToOne.secure";    private static final ResourceBundle STRINGS = Resources.getStrings();    private View view = null;    private final HashMap<JMenuItem, Action> g_actions = new HashMap<JMenuItem, Action>();        private final HashMap<String,Action> g_pluginActions = new HashMap<String,Action>();    private static MenuManager g_theInstance = null;    /**     * Singleton - only one Main-Menu Menumanager is possible     *     * @param p_view     * @return the one and only instance     */    public static MenuManager getInstance(View p_view) {        if (g_theInstance == null) {            g_theInstance = new MenuManager(p_view);        }        return g_theInstance;    }    abstract class AbstractMenuListener            implements MenuListener {        JMenu m = null;        AbstractMenuListener(JMenu m) {            this.m = m;        }        public void menuCanceled(MenuEvent me) {        }        public void menuDeselected(MenuEvent me) {        }    }    private MenuManager(View view) {        this.view = view;    }    public JMenuBar getMenuBar() {        JMenuBar mb = new JMenuBar();        mb.add(buildFileMenu());        mb.add(getActionMenu());        mb.add(buildPluginsMenu());        mb.add(Box.createHorizontalGlue());        mb.add(buildHelpMenu());        return mb;    }    public JMenu getActionMenu() {        return buildActionMenu();    }    private JMenu buildFileMenu() {        JMenu m = new JMenu(STRINGS.getString("menu.file"));        m.setMnemonic(KeyEvent.VK_F);        m.add(buildPreferencesMenu());        m.add(buildExitMenu());        return m;    }    private JMenuItem buildImportMenu() {        String l = STRINGS.getString("menu.import");        return buildMenuItem(l, KeyEvent.VK_I,                STRINGS.getString("tip.import"),                new ImportAction(l, this.view));    }    private JMenuItem buildExportMenu() {        String l = STRINGS.getString("menu.export");        return buildMenuItem(l, KeyEvent.VK_E,                STRINGS.getString("tip.export"),                new ExportAction(l, this.view));    }    private JMenuItem buildPreferencesMenu() {        String l = STRINGS.getString("menu.preferences");        JMenuItem item;        item = buildMenuItem(l, KeyEvent.VK_P,                STRINGS.getString("tip.preferences"),                new PreferencesAction(l, this.view));        item.setEnabled(true);        return item;    }    private JMenuItem buildExitMenu() {        String l = STRINGS.getString("menu.exit");        AbstractAction exitAction = new ExitAction(l, this.view.getControl());        return buildMenuItem(l, KeyEvent.VK_E, STRINGS.getString("tip.exit"), exitAction);    }    private JMenu buildActionMenu() {        JMenu m = new JMenu(STRINGS.getString("menu.action"));        m.setMnemonic(KeyEvent.VK_A);        m.add(buildPeersMenu());        m.add(buildGroupsMenu());        m.add(buildShareMenu());        m.add(buildImportMenu());        m.add(buildExportMenu());        m.addMenuListener(new AbstractMenuListener(m) {            public void menuSelected(MenuEvent me) {                view.setActionMenuContext();            }        });        return m;    }//    private JMenuItem buildPeerVoipMenu() {//        String l = STRINGS.getString("menu.peer.voice");////        return buildMenuItem(l, KeyEvent.VK_I,//            new VoJxtaInviteAction(l, (MyJXTAView)this.view));//    }    /**     * @modified 2005-04-14 jamoore add video to peers menu     */    private JMenu buildPeersMenu() {        JMenu m = new JMenu(STRINGS.getString("menu.peer"));        m.setMnemonic(KeyEvent.VK_P);        m.add(buildPeerSearchMenu());        m.add(buildPeerChatMenu());//        m.add(buildPeerVoipMenu());        m.add(buildPeerStatusMenu());        m.add(buildPeerProfileMenu());        m.add(buildPeerAddMenu());        m.add(buildPeerRemoveMenu());//        m.add(buildPeerTicTacToeMenu());        return m;    }    private JMenuItem buildPeerSearchMenu() {        String l = STRINGS.getString("menu.peer.find");        return buildMenuItem(l, KeyEvent.VK_S,                new PeerSearchAction(l, this.view));    }    private class PluginActionProxy extends AbstractAction{        private final String m_id;	PluginActionProxy(String name,String id){            super(name);	    m_id=id;        }	public boolean isEnabled(){	    if (g_pluginActions.get(m_id)==null)		return false;	    else		return g_pluginActions.get(m_id).isEnabled();	}	public void actionPerformed(ActionEvent p_e) {	    if (isEnabled())		g_pluginActions.get(m_id).actionPerformed(p_e);	}    }    private JMenuItem buildPeerChatMenu() {        String l = STRINGS.getString("menu.peer.dialog");        return buildMenuItem(l, KeyEvent.VK_C, ActionEvent.CTRL_MASK,                STRINGS.getString("tip.peer.dialog"),                new PluginActionProxy(l,PLUGIN_MENU_CHAT_ONE_TO_ONE_SECURE));    }    private JMenuItem buildPeerStatusMenu() {        String l = STRINGS.getString("menu.peer.status");

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -