diff --git a/src/net/java/sip/communicator/impl/gui/main/chat/menus/FileMenu.java b/src/net/java/sip/communicator/impl/gui/main/chat/menus/ChatFileMenu.java
similarity index 70%
rename from src/net/java/sip/communicator/impl/gui/main/chat/menus/FileMenu.java
rename to src/net/java/sip/communicator/impl/gui/main/chat/menus/ChatFileMenu.java
index 4011b3501..9d225783d 100644
--- a/src/net/java/sip/communicator/impl/gui/main/chat/menus/FileMenu.java
+++ b/src/net/java/sip/communicator/impl/gui/main/chat/menus/ChatFileMenu.java
@@ -15,8 +15,6 @@
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.plugin.desktoputil.*;
-import net.java.sip.communicator.util.*;
import net.java.sip.communicator.util.skin.*;
/**
@@ -26,15 +24,11 @@
* @author Yana Stamcheva
* @author Adam Netocny
*/
-public class FileMenu
- extends SIPCommMenu
+public class ChatFileMenu
+ extends net.java.sip.communicator.impl.gui.main.menus.FileMenu
implements ActionListener,
Skinnable
{
- private JMenuItem myChatRoomsItem = new JMenuItem(
- GuiActivator.getResources().getI18NString("service.gui.MY_CHAT_ROOMS"),
- new ImageIcon(ImageLoader.getImage(ImageLoader.CHAT_ROOM_16x16_ICON)));
-
private JMenuItem historyItem = new JMenuItem(
GuiActivator.getResources().getI18NString("service.gui.HISTORY"),
new ImageIcon(ImageLoader.getImage(ImageLoader.HISTORY_16x16_ICON)));
@@ -43,42 +37,34 @@ public class FileMenu
GuiActivator.getResources().getI18NString("service.gui.CLOSE"),
new ImageIcon(ImageLoader.getImage(ImageLoader.CLOSE_ICON)));
- private ChatWindow parentWindow;
+ private ChatWindow chatWindow;
/**
* Creates an instance of FileMenu.
- * @param parentWindow The parent ChatWindow.
+ *
+ * @param chatWindow The parent ChatWindow.
*/
- public FileMenu(ChatWindow parentWindow)
+ public ChatFileMenu(ChatWindow chatWindow)
{
- super(GuiActivator.getResources().getI18NString("service.gui.FILE"));
+ super(chatWindow, true);
- this.parentWindow = parentWindow;
+ this.chatWindow = chatWindow;
this.setMnemonic(
GuiActivator.getResources().getI18nMnemonic("service.gui.FILE"));
- if (!ConfigurationUtils.isGoToChatroomDisabled())
- {
- this.add(myChatRoomsItem);
- }
this.add(historyItem);
this.addSeparator();
this.add(closeMenuItem);
- this.myChatRoomsItem.setName("myChatRooms");
this.historyItem.setName("history");
this.closeMenuItem.setName("close");
- this.myChatRoomsItem.addActionListener(this);
this.historyItem.addActionListener(this);
this.closeMenuItem.addActionListener(this);
- this.myChatRoomsItem.setMnemonic(
- GuiActivator.getResources()
- .getI18nMnemonic("service.gui.MY_CHAT_ROOMS"));
this.historyItem.setMnemonic(
GuiActivator.getResources().getI18nMnemonic("service.gui.HISTORY"));
this.closeMenuItem.setMnemonic(
@@ -92,6 +78,8 @@ public FileMenu(ChatWindow parentWindow)
*/
public void actionPerformed(ActionEvent e)
{
+ super.actionPerformed(e);
+
JMenuItem menuItem = (JMenuItem) e.getSource();
String itemText = menuItem.getName();
@@ -106,7 +94,7 @@ else if (itemText.equals("history"))
HistoryWindowManager historyWindowManager
= GuiActivator.getUIService().getHistoryWindowManager();
- ChatPanel chatPanel = this.parentWindow.getCurrentChat();
+ ChatPanel chatPanel = this.chatWindow.getCurrentChat();
ChatSession chatSession = chatPanel.getChatSession();
if(historyWindowManager
@@ -133,8 +121,8 @@ else if (itemText.equals("history"))
}
else if (itemText.equalsIgnoreCase("close"))
{
- this.parentWindow.setVisible(false);
- this.parentWindow.dispose();
+ this.chatWindow.setVisible(false);
+ this.chatWindow.dispose();
}
}
@@ -143,13 +131,14 @@ else if (itemText.equalsIgnoreCase("close"))
*/
public void loadSkin()
{
- myChatRoomsItem.setIcon(new ImageIcon(
- ImageLoader.getImage(ImageLoader.CHAT_ROOM_16x16_ICON)));
+ super.loadSkin();
- historyItem.setIcon(new ImageIcon(
- ImageLoader.getImage(ImageLoader.HISTORY_ICON)));
+ if (historyItem != null)
+ historyItem.setIcon(new ImageIcon(
+ ImageLoader.getImage(ImageLoader.HISTORY_ICON)));
- closeMenuItem.setIcon(new ImageIcon(
- ImageLoader.getImage(ImageLoader.CLOSE_ICON)));
+ if (closeMenuItem != null)
+ closeMenuItem.setIcon(new ImageIcon(
+ ImageLoader.getImage(ImageLoader.CLOSE_ICON)));
}
}
diff --git a/src/net/java/sip/communicator/impl/gui/main/chat/menus/OptionsMenu.java b/src/net/java/sip/communicator/impl/gui/main/chat/menus/ChatToolsMenu.java
similarity index 92%
rename from src/net/java/sip/communicator/impl/gui/main/chat/menus/OptionsMenu.java
rename to src/net/java/sip/communicator/impl/gui/main/chat/menus/ChatToolsMenu.java
index a10cc4f58..856fdb3b5 100644
--- a/src/net/java/sip/communicator/impl/gui/main/chat/menus/OptionsMenu.java
+++ b/src/net/java/sip/communicator/impl/gui/main/chat/menus/ChatToolsMenu.java
@@ -14,7 +14,7 @@
import net.java.sip.communicator.impl.gui.*;
import net.java.sip.communicator.impl.gui.main.chat.*;
-import net.java.sip.communicator.plugin.desktoputil.*;
+import net.java.sip.communicator.impl.gui.main.menus.*;
import net.java.sip.communicator.util.*;
/**
* The OptionMenu is a menu in the chat window menu bar.
@@ -22,8 +22,8 @@
* @author Damien Roth
* @author Yana Stamcheva
*/
-public class OptionsMenu
- extends SIPCommMenu
+public class ChatToolsMenu
+ extends ToolsMenu
implements ActionListener
{
private ChatWindow chatWindow = null;
@@ -46,14 +46,18 @@ public class OptionsMenu
* Creates an instance of HelpMenu.
* @param chatWindow The parent MainFrame.
*/
- public OptionsMenu(ChatWindow chatWindow)
+ public ChatToolsMenu(ChatWindow chatWindow)
{
- super(GuiActivator.getResources().getI18NString("service.gui.TOOLS"));
+ super(true);
+
this.chatWindow = chatWindow;
this.setMnemonic(
GuiActivator.getResources().getI18nMnemonic("service.gui.TOOLS"));
+ // Add a separator before adding the specific chat items.
+ this.addSeparator();
+
this.viewToolBar.setActionCommand(ACTCMD_VIEW_TOOLBAR);
this.viewToolBar.addActionListener(this);
this.add(viewToolBar);
@@ -91,6 +95,8 @@ private void initValues()
*/
public void actionPerformed(ActionEvent e)
{
+ super.actionPerformed(e);
+
String action = e.getActionCommand();
if (action.equals(ACTCMD_VIEW_TOOLBAR))
diff --git a/src/net/java/sip/communicator/impl/gui/main/chat/menus/MessageWindowMenuBar.java b/src/net/java/sip/communicator/impl/gui/main/chat/menus/MessageWindowMenuBar.java
index 33adcafcc..f06f8da71 100644
--- a/src/net/java/sip/communicator/impl/gui/main/chat/menus/MessageWindowMenuBar.java
+++ b/src/net/java/sip/communicator/impl/gui/main/chat/menus/MessageWindowMenuBar.java
@@ -29,11 +29,11 @@
public class MessageWindowMenuBar
extends SIPCommWindowMenuBar
{
- private final FileMenu fileMenu;
+ private final ChatFileMenu fileMenu;
private final EditMenu editMenu;
- private final OptionsMenu optionsMenu;
+ private final ChatToolsMenu optionsMenu;
private final HelpMenu helpMenu;
@@ -53,9 +53,9 @@ public MessageWindowMenuBar(ChatWindow parentWindow)
{
super("service.gui.CHAT_MENU_FOREGROUND");
- fileMenu = new FileMenu(parentWindow);
+ fileMenu = new ChatFileMenu(parentWindow);
editMenu = new EditMenu(parentWindow);
- optionsMenu = new OptionsMenu(parentWindow);
+ optionsMenu = new ChatToolsMenu(parentWindow);
helpMenu = new HelpMenu(parentWindow);
this.init();
diff --git a/src/net/java/sip/communicator/impl/gui/main/contactlist/AddContactDialog.java b/src/net/java/sip/communicator/impl/gui/main/contactlist/AddContactDialog.java
index 36cf00f4e..2fe14387d 100644
--- a/src/net/java/sip/communicator/impl/gui/main/contactlist/AddContactDialog.java
+++ b/src/net/java/sip/communicator/impl/gui/main/contactlist/AddContactDialog.java
@@ -24,6 +24,7 @@
import net.java.sip.communicator.service.gui.*;
import net.java.sip.communicator.service.protocol.*;
import net.java.sip.communicator.util.*;
+import net.java.sip.communicator.util.account.*;
import net.java.sip.communicator.util.skin.*;
/**
@@ -70,8 +71,6 @@ public class AddContactDialog
private final JButton cancelButton = new JButton(
GuiActivator.getResources().getI18NString("service.gui.CANCEL"));
- private final MainFrame mainFrame;
-
private MetaContact metaContact;
/**
@@ -83,13 +82,11 @@ public class AddContactDialog
* Creates an instance of AddContactDialog that represents a dialog
* that adds a new contact to an already existing meta contact.
*
- * @param mainFrame The MainFrame parent window.
+ * @param parentWindow the parent window of this dialog
*/
- public AddContactDialog(MainFrame mainFrame)
+ public AddContactDialog(Frame parentWindow)
{
- super(mainFrame);
-
- this.mainFrame = mainFrame;
+ super(parentWindow);
this.setTitle(GuiActivator.getResources()
.getI18NString("service.gui.ADD_CONTACT"));
@@ -105,7 +102,7 @@ public AddContactDialog(MainFrame mainFrame)
* @param parentWindow the parent window
* @param metaContact the meta contact, to which to add the new contact
*/
- public AddContactDialog(MainFrame parentWindow, MetaContact metaContact)
+ public AddContactDialog(Frame parentWindow, MetaContact metaContact)
{
this(parentWindow);
@@ -268,7 +265,7 @@ private Container createButtonsPanel()
private void initAccountCombo()
{
Iterator providers
- = mainFrame.getProtocolProviders();
+ = AccountUtils.getRegisteredProviders().iterator();
accountCombo.addItem(GuiActivator.getResources()
.getI18NString("service.gui.SELECT_ACCOUNT"));
diff --git a/src/net/java/sip/communicator/impl/gui/main/menus/FileMenu.java b/src/net/java/sip/communicator/impl/gui/main/menus/FileMenu.java
index e3f6a3446..63f5b1253 100644
--- a/src/net/java/sip/communicator/impl/gui/main/menus/FileMenu.java
+++ b/src/net/java/sip/communicator/impl/gui/main/menus/FileMenu.java
@@ -6,13 +6,13 @@
*/
package net.java.sip.communicator.impl.gui.main.menus;
+import java.awt.*;
import java.awt.event.*;
import java.lang.reflect.*;
import javax.swing.*;
import net.java.sip.communicator.impl.gui.*;
-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.chatroomslist.*;
import net.java.sip.communicator.impl.gui.main.contactlist.*;
@@ -44,7 +44,7 @@ public class FileMenu
*/
private static final Logger logger = Logger.getLogger(FileMenu.class);
- private final MainFrame parentWindow;
+ private final Frame parentWindow;
/**
* Add new account menu item.
@@ -71,14 +71,34 @@ public class FileMenu
*/
private JMenuItem closeMenuItem;
+ /**
+ * Indicates if this menu is shown for the chat window or the contact list
+ * window.
+ */
+ private boolean isChatMenu;
+
+ /**
+ * Creates an instance of FileMenu.
+ * @param parentWindow The parent ChatWindow.
+ */
+ public FileMenu(Frame parentWindow)
+ {
+ this(parentWindow, false);
+ }
+
/**
* Creates an instance of FileMenu.
+ *
* @param parentWindow The parent ChatWindow.
+ * @param isChatMenu indicates if this menu would be shown for a chat
+ * window
*/
- public FileMenu(MainFrame parentWindow)
+ public FileMenu(Frame parentWindow, boolean isChatMenu)
{
super(GuiActivator.getResources().getI18NString("service.gui.FILE"));
+ this.isChatMenu = isChatMenu;
+
ResourceManagementService resources = GuiActivator.getResources();
createGroupItem = new JMenuItem(
resources.getI18NString("service.gui.CREATE_GROUP"));
@@ -114,7 +134,7 @@ public FileMenu(MainFrame parentWindow)
}
}
- if (!ConfigurationUtils.isAddContactDisabled())
+ if (!isChatMenu && !ConfigurationUtils.isAddContactDisabled())
{
addContactItem = new JMenuItem(
resources.getI18NString("service.gui.ADD_CONTACT") + "...");
@@ -140,7 +160,7 @@ public FileMenu(MainFrame parentWindow)
endsWithSeparator = false;
}
- if (!ConfigurationUtils.isCreateGroupDisabled())
+ if (!isChatMenu && !ConfigurationUtils.isCreateGroupDisabled())
{
this.add(createGroupItem);
@@ -334,11 +354,14 @@ private void registerCloseMenuItemNonMacOSX(boolean addSeparator)
if(addSeparator)
this.addSeparator();
-
- this.add(closeMenuItem);
- closeMenuItem.setName("close");
- closeMenuItem.addActionListener(this);
- closeMenuItem.setMnemonic(GuiActivator.getResources()
- .getI18nMnemonic("service.gui.QUIT"));
+
+ if (!isChatMenu)
+ {
+ this.add(closeMenuItem);
+ closeMenuItem.setName("close");
+ closeMenuItem.addActionListener(this);
+ closeMenuItem.setMnemonic(GuiActivator.getResources()
+ .getI18nMnemonic("service.gui.QUIT"));
+ }
}
}
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 47b8e07c9..7cdbd639e 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
@@ -36,7 +36,7 @@ public MainMenu(MainFrame mainFrame)
super("service.gui.MAIN_MENU_FOREGROUND");
addMenu(new FileMenu(mainFrame), "service.gui.FILE");
- addMenu(new ToolsMenu(mainFrame), "service.gui.TOOLS");
+ addMenu(new ToolsMenu(), "service.gui.TOOLS");
addMenu(new HelpMenu(mainFrame), "service.gui.HELP");
}
diff --git a/src/net/java/sip/communicator/impl/gui/main/menus/ToolsMenu.java b/src/net/java/sip/communicator/impl/gui/main/menus/ToolsMenu.java
index a6b08b915..f84a06357 100644
--- a/src/net/java/sip/communicator/impl/gui/main/menus/ToolsMenu.java
+++ b/src/net/java/sip/communicator/impl/gui/main/menus/ToolsMenu.java
@@ -16,7 +16,6 @@
import net.java.sip.communicator.impl.gui.*;
import net.java.sip.communicator.impl.gui.event.*;
-import net.java.sip.communicator.impl.gui.main.*;
import net.java.sip.communicator.impl.gui.main.call.*;
import net.java.sip.communicator.impl.gui.main.call.conference.*;
import net.java.sip.communicator.impl.gui.main.configforms.*;
@@ -108,12 +107,31 @@ public class ToolsMenu
*/
private MenuListener videoBridgeMenuListener;
+ /**
+ * Indicates if this menu is shown for the chat window or the contact list
+ * window.
+ */
+ private boolean isChatMenu;
+
/**
* Creates an instance of FileMenu.
- * @param parentWindow The parent ChatWindow.
*/
- public ToolsMenu(MainFrame parentWindow)
+ public ToolsMenu()
+ {
+ this(false);
+ }
+
+ /**
+ * Creates an instance of FileMenu, by specifying if this menu
+ * would be shown for a chat window.
+ *
+ * @param isChatMenu indicates if this menu would be shown for a chat
+ * window
+ */
+ public ToolsMenu(boolean isChatMenu)
{
+ this.isChatMenu = isChatMenu;
+
ResourceManagementService r = GuiActivator.getResources();
setText(r.getI18NString("service.gui.TOOLS"));
@@ -373,11 +391,15 @@ private void registerMenuItems()
? "service.gui.HIDE_OFFLINE_CONTACTS"
: "service.gui.SHOW_OFFLINE_CONTACTS";
- hideOfflineMenuItem = new JMenuItem(r.getI18NString(offlineTextKey));
- hideOfflineMenuItem.setMnemonic(r.getI18nMnemonic(offlineTextKey));
- hideOfflineMenuItem.setName("showHideOffline");
- hideOfflineMenuItem.addActionListener(this);
- this.add(hideOfflineMenuItem);
+ // The hide offline menu item only makes sense in the contact list.
+ if (!isChatMenu)
+ {
+ hideOfflineMenuItem = new JMenuItem(r.getI18NString(offlineTextKey));
+ hideOfflineMenuItem.setMnemonic(r.getI18nMnemonic(offlineTextKey));
+ hideOfflineMenuItem.setName("showHideOffline");
+ hideOfflineMenuItem.addActionListener(this);
+ this.add(hideOfflineMenuItem);
+ }
// Sound on/off menu item.
String soundTextKey
@@ -675,8 +697,13 @@ public void loadSkin()
configMenuItem.setIcon(
r.getImage("service.gui.icons.CONFIGURE_ICON"));
}
- hideOfflineMenuItem.setIcon(
- r.getImage("service.gui.icons.SHOW_HIDE_OFFLINE_ICON"));
+
+ // The hide offline menu item could be null if the parent window of this
+ // menu is a chat window.
+ if (hideOfflineMenuItem != null)
+ hideOfflineMenuItem.setIcon(
+ r.getImage("service.gui.icons.SHOW_HIDE_OFFLINE_ICON"));
+
soundMenuItem.setIcon(
r.getImage("service.gui.icons.SOUND_MENU_ICON"));
if (videoBridgeMenuItem != null)