diff --git a/src/net/java/sip/communicator/impl/gui/main/call/CallManager.java b/src/net/java/sip/communicator/impl/gui/main/call/CallManager.java index fdf1a59ec..07170fefd 100644 --- a/src/net/java/sip/communicator/impl/gui/main/call/CallManager.java +++ b/src/net/java/sip/communicator/impl/gui/main/call/CallManager.java @@ -260,30 +260,44 @@ else if (buttonName.equalsIgnoreCase("hangup")) { } } else if (buttonName.equalsIgnoreCase("minimize")) { - - this.remove(comboPanel); - this.remove(buttonsPanel); - - this.minimizeButtonPanel.removeAll(); - this.minimizeButtonPanel.add(restoreButton); - this.isShown = false; - - this.mainFrame.getContactListPanel() - .getContactList().requestFocus(); - - this.mainFrame.validate(); + this.hideCallPanel(); } else if (buttonName.equalsIgnoreCase("restore")) { + this.showCallPanel(); + } + } + + /** + * Hides the panel containing call and hangup buttons. + */ + public void hideCallPanel() + { + this.remove(comboPanel); + this.remove(buttonsPanel); - this.add(comboPanel, BorderLayout.NORTH); - this.add(buttonsPanel, BorderLayout.CENTER); + this.minimizeButtonPanel.removeAll(); + this.minimizeButtonPanel.add(restoreButton); + this.isShown = false; - this.minimizeButtonPanel.removeAll(); - this.minimizeButtonPanel.add(minimizeButton); - this.isShown = true; + this.mainFrame.getContactListPanel() + .getContactList().requestFocus(); - this.mainFrame.validate(); - } + this.mainFrame.validate(); + } + + /** + * Shows the panel containing call and hangup buttons. + */ + public void showCallPanel() + { + this.add(comboPanel, BorderLayout.NORTH); + this.add(buttonsPanel, BorderLayout.CENTER); + + this.minimizeButtonPanel.removeAll(); + this.minimizeButtonPanel.add(minimizeButton); + this.isShown = true; + + this.mainFrame.validate(); } /** diff --git a/src/net/java/sip/communicator/impl/gui/main/menus/MainMenu.java b/src/net/java/sip/communicator/impl/gui/main/menus/MainMenu.java index d6eeec232..526e85018 100755 --- a/src/net/java/sip/communicator/impl/gui/main/menus/MainMenu.java +++ b/src/net/java/sip/communicator/impl/gui/main/menus/MainMenu.java @@ -27,7 +27,7 @@ public class MainMenu private ToolsMenu toolsMenu; - private JMenu viewMenu = new JMenu(); + private ViewMenu viewMenu; private JMenu helpMenu = new JMenu(); @@ -38,6 +38,7 @@ public MainMenu(MainFrame mainFrame) { this.fileMenu = new FileMenu(mainFrame); this.toolsMenu = new ToolsMenu(mainFrame); + this.viewMenu = new ViewMenu(mainFrame); this.init(); } @@ -69,7 +70,6 @@ private void init() this.add(helpMenu); // Disable all menus that are not yet implemented. - this.viewMenu.setEnabled(false); this.helpMenu.setEnabled(false); } diff --git a/src/net/java/sip/communicator/impl/gui/main/menus/ViewMenu.java b/src/net/java/sip/communicator/impl/gui/main/menus/ViewMenu.java new file mode 100644 index 000000000..793778c9f --- /dev/null +++ b/src/net/java/sip/communicator/impl/gui/main/menus/ViewMenu.java @@ -0,0 +1,86 @@ +/* + * SIP Communicator, the OpenSource Java VoIP and Instant Messaging client. + * + * Distributable under LGPL license. + * See terms of license at gnu.org. + */ + +package net.java.sip.communicator.impl.gui.main.menus; + +import java.awt.*; +import java.awt.event.*; + +import javax.swing.*; + +import org.osgi.framework.*; + +import net.java.sip.communicator.impl.gui.*; +import net.java.sip.communicator.impl.gui.i18n.*; +import net.java.sip.communicator.impl.gui.main.*; +import net.java.sip.communicator.impl.gui.main.account.*; +import net.java.sip.communicator.impl.gui.main.call.CallManager; +import net.java.sip.communicator.impl.gui.main.contactlist.addcontact.*; +import net.java.sip.communicator.impl.gui.main.contactlist.addgroup.*; +import net.java.sip.communicator.impl.gui.utils.*; +import net.java.sip.communicator.util.*; +/** + * The ViewMenu is a menu in the main application menu bar. + * + * @author Yana Stamcheva + */ +public class ViewMenu + extends JMenu + implements ActionListener +{ + + private Logger logger = Logger.getLogger(ViewMenu.class.getName()); + + private JCheckBoxMenuItem hideCallPanelItem + = new JCheckBoxMenuItem(Messages.getString("hideCallPanel")); + + private MainFrame mainFrame; + + /** + * Creates an instance of ViewMenu. + * @param parentWindow The parent ChatWindow. + */ + public ViewMenu(MainFrame mainFrame) { + + super(Messages.getString("view")); + + this.mainFrame = mainFrame; + + this.hideCallPanelItem.setSelected(false); + + this.add(hideCallPanelItem); + + this.hideCallPanelItem.setName("hideCallPanel"); + + this.hideCallPanelItem.addActionListener(this); + + this.setMnemonic(Messages.getString("view").charAt(0)); + + this.hideCallPanelItem.setMnemonic( + Messages.getString("hideCallPanel").charAt(0)); + } + + /** + * Handles the ActionEvent when one of the menu items is selected. + */ + public void actionPerformed(ActionEvent e) { + + JMenuItem menuItem = (JMenuItem) e.getSource(); + String itemName = menuItem.getName(); + + if (itemName.equals("hideCallPanel")) { + CallManager callManager = mainFrame.getCallManager(); + + if (hideCallPanelItem.isSelected()) { + callManager.hideCallPanel(); + } + else { + callManager.showCallPanel(); + } + } + } +}