/* * 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.main.chat.history.*; import net.java.sip.communicator.impl.gui.main.chatroomslist.*; import net.java.sip.communicator.impl.gui.utils.*; import net.java.sip.communicator.util.skin.*; /** * The <tt>FileMenu</tt> is the menu in the chat window menu bar that contains * my chat rooms, history and close. * * @author Yana Stamcheva * @author Adam Netocny */ public class ChatFileMenu extends net.java.sip.communicator.impl.gui.main.menus.FileMenu implements ActionListener, Skinnable { private JMenuItem historyItem = new JMenuItem( GuiActivator.getResources().getI18NString("service.gui.HISTORY"), new ImageIcon(ImageLoader.getImage(ImageLoader.HISTORY_16x16_ICON))); private JMenuItem closeMenuItem = new JMenuItem( GuiActivator.getResources().getI18NString("service.gui.CLOSE"), new ImageIcon(ImageLoader.getImage(ImageLoader.CLOSE_ICON))); private ChatWindow chatWindow; /** * Creates an instance of <tt>FileMenu</tt>. * * @param chatWindow The parent <tt>ChatWindow</tt>. */ public ChatFileMenu(ChatWindow chatWindow) { super(chatWindow, true); this.chatWindow = chatWindow; this.setMnemonic( GuiActivator.getResources().getI18nMnemonic("service.gui.FILE")); this.add(historyItem); this.addSeparator(); this.add(closeMenuItem); this.historyItem.setName("history"); this.closeMenuItem.setName("close"); this.historyItem.addActionListener(this); this.closeMenuItem.addActionListener(this); this.historyItem.setMnemonic( GuiActivator.getResources().getI18nMnemonic("service.gui.HISTORY")); this.closeMenuItem.setMnemonic( GuiActivator.getResources().getI18nMnemonic("service.gui.CLOSE")); } /** * Handles the <tt>ActionEvent</tt> when one of the menu items is selected. * * @param e the <tt>ActionEvent</tt> that notified us */ @Override public void actionPerformed(ActionEvent e) { JMenuItem menuItem = (JMenuItem) e.getSource(); String itemText = menuItem.getName(); if (itemText.equalsIgnoreCase("close")) { this.chatWindow.setVisible(false); this.chatWindow.dispose(); return; } super.actionPerformed(e); if (itemText.equalsIgnoreCase("myChatRooms")) { ChatRoomTableDialog.showChatRoomTableDialog(); } else if (itemText.equals("history")) { HistoryWindow history; HistoryWindowManager historyWindowManager = GuiActivator.getUIService().getHistoryWindowManager(); ChatPanel chatPanel = this.chatWindow.getCurrentChat(); ChatSession chatSession = chatPanel.getChatSession(); if(historyWindowManager .containsHistoryWindowForContact(chatSession.getDescriptor())) { history = historyWindowManager.getHistoryWindowForContact( chatSession.getDescriptor()); if(history.getState() == JFrame.ICONIFIED) history.setState(JFrame.NORMAL); history.toFront(); } else { history = new HistoryWindow( chatPanel.getChatSession().getDescriptor()); history.setVisible(true); historyWindowManager.addHistoryWindowForContact( chatSession.getDescriptor(), history); } } } /** * Reloads menu icons. */ @Override public void loadSkin() { super.loadSkin(); if (historyItem != null) historyItem.setIcon(new ImageIcon( ImageLoader.getImage(ImageLoader.HISTORY_ICON))); if (closeMenuItem != null) closeMenuItem.setIcon(new ImageIcon( ImageLoader.getImage(ImageLoader.CLOSE_ICON))); } }