/* * Jitsi, the OpenSource Java VoIP and Instant Messaging client. * * Copyright @ 2015 Atlassian Pty Ltd * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package net.java.sip.communicator.impl.gui.main.chat.menus; import java.awt.event.*; import javax.swing.*; import net.java.sip.communicator.impl.gui.*; import net.java.sip.communicator.impl.gui.main.chat.*; import net.java.sip.communicator.impl.gui.utils.*; import net.java.sip.communicator.plugin.desktoputil.*; import net.java.sip.communicator.util.*; import net.java.sip.communicator.util.skin.*; /** * The <tt>EditMenu</tt> is the menu in the chat window menu bar, which contains * cut, copy and paste. * * @author Yana Stamcheva * @author Adam Netocny */ public class EditMenu extends SIPCommMenu implements ActionListener, Skinnable { private JMenuItem fontDialogMenuItem = new JMenuItem( GuiActivator.getResources().getI18NString("service.gui.FONT")); private JMenuItem cutMenuItem = new JMenuItem( GuiActivator.getResources().getI18NString("service.gui.CUT"), new ImageIcon(ImageLoader.getImage(ImageLoader.CUT_ICON))); private JMenuItem copyMenuItem = new JMenuItem( GuiActivator.getResources().getI18NString("service.gui.COPY"), new ImageIcon(ImageLoader.getImage(ImageLoader.COPY_ICON))); private JMenuItem pasteMenuItem = new JMenuItem( GuiActivator.getResources().getI18NString("service.gui.PASTE"), new ImageIcon(ImageLoader.getImage(ImageLoader.PASTE_ICON))); private ChatWindow chatWindow; /** * Creates an instance of <tt>EditMenu</tt>. * * @param chatWindow The parent <tt>ChatWindow</tt>. */ public EditMenu(ChatWindow chatWindow) { super(GuiActivator.getResources().getI18NString("service.gui.EDIT")); this.chatWindow = chatWindow; this.cutMenuItem.setName("cut"); this.copyMenuItem.setName("copy"); this.pasteMenuItem.setName("paste"); this.cutMenuItem.addActionListener(this); this.copyMenuItem.addActionListener(this); this.pasteMenuItem.addActionListener(this); this.add(cutMenuItem); this.add(copyMenuItem); this.add(pasteMenuItem); if(ConfigurationUtils.isFontSupportEnabled()) { this.addSeparator(); this.fontDialogMenuItem.setName("font"); this.fontDialogMenuItem.addActionListener(this); this.add(fontDialogMenuItem); this.fontDialogMenuItem.setMnemonic( GuiActivator.getResources().getI18nMnemonic("service.gui.FONT")); } this.setMnemonic( GuiActivator.getResources().getI18nMnemonic("service.gui.EDIT")); this.cutMenuItem.setMnemonic( GuiActivator.getResources().getI18nMnemonic("service.gui.CUT")); this.copyMenuItem.setMnemonic( GuiActivator.getResources().getI18nMnemonic("service.gui.COPY")); this.pasteMenuItem.setMnemonic( GuiActivator.getResources().getI18nMnemonic("service.gui.PASTE")); this.cutMenuItem.setAccelerator( KeyStroke.getKeyStroke(KeyEvent.VK_X, KeyEvent.CTRL_MASK)); this.copyMenuItem.setAccelerator( KeyStroke.getKeyStroke(KeyEvent.VK_C, KeyEvent.CTRL_MASK)); this.pasteMenuItem.setAccelerator( KeyStroke.getKeyStroke(KeyEvent.VK_P, KeyEvent.CTRL_MASK)); } /** * Handles the <tt>ActionEvent</tt> when one of the menu items is selected. * * @param e the <tt>ActionEvent</tt> that notified us */ public void actionPerformed(ActionEvent e) { JMenuItem menuItem = (JMenuItem) e.getSource(); String menuItemName = menuItem.getName(); if (menuItemName.equalsIgnoreCase("cut")) { this.chatWindow.getCurrentChat().cut(); } else if (menuItemName.equalsIgnoreCase("copy")) { this.chatWindow.getCurrentChat().copy(); } else if (menuItemName.equalsIgnoreCase("paste")) { this.chatWindow.getCurrentChat().paste(); } else if (menuItemName.equalsIgnoreCase("font")) { this.chatWindow.getCurrentChat().showFontChooserDialog(); } } /** * Reloads menu icons. */ public void loadSkin() { cutMenuItem.setIcon(new ImageIcon( ImageLoader.getImage(ImageLoader.CUT_ICON))); copyMenuItem.setIcon(new ImageIcon( ImageLoader.getImage(ImageLoader.COPY_ICON))); pasteMenuItem.setIcon(new ImageIcon( ImageLoader.getImage(ImageLoader.PASTE_ICON))); } }