diff --git a/src/net/java/sip/communicator/impl/gui/main/contactlist/CommonRightButtonMenu.java b/src/net/java/sip/communicator/impl/gui/main/contactlist/CommonRightButtonMenu.java index e6b8aa565..e26a4b767 100644 --- a/src/net/java/sip/communicator/impl/gui/main/contactlist/CommonRightButtonMenu.java +++ b/src/net/java/sip/communicator/impl/gui/main/contactlist/CommonRightButtonMenu.java @@ -47,7 +47,9 @@ public CommonRightButtonMenu(MainFrame mainFrame) { this.mainFrame = mainFrame; - this.add(addContactItem); + if (!ConfigurationManager.isAddContactDisabled()) + this.add(addContactItem); + this.add(createGroupItem); this.addContactItem.setMnemonic(GuiActivator.getResources() diff --git a/src/net/java/sip/communicator/impl/gui/main/contactlist/GroupRightButtonMenu.java b/src/net/java/sip/communicator/impl/gui/main/contactlist/GroupRightButtonMenu.java index 570754b53..04a46c72c 100644 --- a/src/net/java/sip/communicator/impl/gui/main/contactlist/GroupRightButtonMenu.java +++ b/src/net/java/sip/communicator/impl/gui/main/contactlist/GroupRightButtonMenu.java @@ -65,7 +65,8 @@ public GroupRightButtonMenu(MainFrame mainFrame, MetaContactGroup group) this.group = group; this.mainFrame = mainFrame; - this.add(addContactItem); + if (!ConfigurationManager.isAddContactDisabled()) + this.add(addContactItem); this.addSeparator(); diff --git a/src/net/java/sip/communicator/impl/gui/main/contactlist/MetaContactRightButtonMenu.java b/src/net/java/sip/communicator/impl/gui/main/contactlist/MetaContactRightButtonMenu.java index 78572aabd..921fe26f6 100644 --- a/src/net/java/sip/communicator/impl/gui/main/contactlist/MetaContactRightButtonMenu.java +++ b/src/net/java/sip/communicator/impl/gui/main/contactlist/MetaContactRightButtonMenu.java @@ -464,11 +464,14 @@ private void init() addSeparator(); - add(addContactItem); + if (!ConfigurationManager.isAddContactDisabled()) + add(addContactItem); addSeparator(); - add(removeContactMenu); + if (!ConfigurationManager.isRemoveContactDisabled()) + add(removeContactMenu); + add(renameContactItem); addSeparator(); diff --git a/src/net/java/sip/communicator/impl/gui/main/contactlist/SourceContactRightButtonMenu.java b/src/net/java/sip/communicator/impl/gui/main/contactlist/SourceContactRightButtonMenu.java index 3ddd6100e..4ad98dc16 100644 --- a/src/net/java/sip/communicator/impl/gui/main/contactlist/SourceContactRightButtonMenu.java +++ b/src/net/java/sip/communicator/impl/gui/main/contactlist/SourceContactRightButtonMenu.java @@ -79,8 +79,12 @@ private void initItems() if (cDetail != null) add(initCallMenu()); - addContactComponent - = TreeContactList.createAddContactMenu(sourceContact); + // Only create the menu if the add contact functionality is enabled. + if (!ConfigurationManager.isAddContactDisabled()) + { + addContactComponent + = TreeContactList.createAddContactMenu(sourceContact); + } if (addContactComponent != null) add(addContactComponent); diff --git a/src/net/java/sip/communicator/impl/gui/main/contactlist/UnknownContactPanel.java b/src/net/java/sip/communicator/impl/gui/main/contactlist/UnknownContactPanel.java index d78f0106d..21f50a8ac 100644 --- a/src/net/java/sip/communicator/impl/gui/main/contactlist/UnknownContactPanel.java +++ b/src/net/java/sip/communicator/impl/gui/main/contactlist/UnknownContactPanel.java @@ -15,6 +15,7 @@ import net.java.sip.communicator.impl.gui.*; import net.java.sip.communicator.impl.gui.main.*; import net.java.sip.communicator.impl.gui.main.call.*; +import net.java.sip.communicator.impl.gui.utils.*; import net.java.sip.communicator.util.skin.*; import net.java.sip.communicator.util.swing.*; import net.java.sip.communicator.util.swing.event.*; @@ -65,14 +66,6 @@ public UnknownContactPanel(MainFrame window) this.add(mainPanel, BorderLayout.NORTH); - addContact.setAlignmentX(JButton.CENTER_ALIGNMENT); - callContact.setAlignmentX(JButton.CENTER_ALIGNMENT); - - addContact.setMnemonic(GuiActivator.getResources() - .getI18nMnemonic("service.gui.ADD_CONTACT")); - callContact.setMnemonic(GuiActivator.getResources() - .getI18nMnemonic("service.gui.CALL_CONTACT")); - initTextArea(parentWindow.getCurrentSearchText()); mainPanel.add(textArea, BorderLayout.CENTER); @@ -80,7 +73,34 @@ public UnknownContactPanel(MainFrame window) TransparentPanel buttonPanel = new TransparentPanel(new GridLayout(0, 1)); - buttonPanel.add(addContact); + if (!ConfigurationManager.isAddContactDisabled()) + { + addContact.setAlignmentX(JButton.CENTER_ALIGNMENT); + + addContact.setMnemonic(GuiActivator.getResources() + .getI18nMnemonic("service.gui.ADD_CONTACT")); + + buttonPanel.add(addContact); + + addContact.addActionListener(new ActionListener() + { + public void actionPerformed(ActionEvent e) + { + AddContactDialog dialog + = new AddContactDialog(parentWindow); + + dialog.setContactAddress( + parentWindow.getCurrentSearchText()); + dialog.setVisible(true); + } + }); + } + + callContact.setAlignmentX(JButton.CENTER_ALIGNMENT); + + callContact.setMnemonic(GuiActivator.getResources() + .getI18nMnemonic("service.gui.CALL_CONTACT")); + buttonPanel.add(callContact); TransparentPanel southPanel @@ -89,18 +109,6 @@ public UnknownContactPanel(MainFrame window) mainPanel.add(southPanel, BorderLayout.SOUTH); - addContact.addActionListener(new ActionListener() - { - public void actionPerformed(ActionEvent e) - { - AddContactDialog dialog - = new AddContactDialog(parentWindow); - - dialog.setContactAddress(parentWindow.getCurrentSearchText()); - dialog.setVisible(true); - } - }); - callContact.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) 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 a9f37c771..6112dd93d 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 @@ -80,10 +80,6 @@ public FileMenu(MainFrame parentWindow) super(GuiActivator.getResources().getI18NString("service.gui.FILE")); ResourceManagementService resources = GuiActivator.getResources(); - newAccountMenuItem = new JMenuItem( - resources.getI18NString("service.gui.NEW_ACCOUNT")); - addContactItem = new JMenuItem( - resources.getI18NString("service.gui.ADD_CONTACT") + "..."); createGroupItem = new JMenuItem( resources.getI18NString("service.gui.CREATE_GROUP")); myChatRoomsItem = new JMenuItem( @@ -95,11 +91,37 @@ public FileMenu(MainFrame parentWindow) .getBoolean(ConfigurationFrame.SHOW_ACCOUNT_CONFIG_PROPERTY, true); if (showAccountConfig.booleanValue()) + { + newAccountMenuItem = new JMenuItem( + resources.getI18NString("service.gui.NEW_ACCOUNT")); + this.add(newAccountMenuItem); + newAccountMenuItem.setName("newAccount"); + + newAccountMenuItem.addActionListener(this); + + newAccountMenuItem.setMnemonic(resources + .getI18nMnemonic("service.gui.NEW_ACCOUNT")); + } + this.addSeparator(); - this.add(addContactItem); + if (!ConfigurationManager.isAddContactDisabled()) + { + addContactItem = new JMenuItem( + resources.getI18NString("service.gui.ADD_CONTACT") + "..."); + + this.add(addContactItem); + + addContactItem.setName("addContact"); + + addContactItem.addActionListener(this); + + addContactItem.setMnemonic(resources + .getI18nMnemonic("service.gui.ADD_CONTACT")); + } + this.add(createGroupItem); this.addSeparator(); @@ -114,22 +136,15 @@ public FileMenu(MainFrame parentWindow) //this.addContactItem.setIcon(new ImageIcon(ImageLoader // .getImage(ImageLoader.ADD_CONTACT_16x16_ICON))); - newAccountMenuItem.setName("newAccount"); - addContactItem.setName("addContact"); createGroupItem.setName("createGroup"); myChatRoomsItem.setName("myChatRooms"); - newAccountMenuItem.addActionListener(this); - addContactItem.addActionListener(this); createGroupItem.addActionListener(this); myChatRoomsItem.addActionListener(this); this.setMnemonic(resources .getI18nMnemonic("service.gui.FILE")); - newAccountMenuItem.setMnemonic(resources - .getI18nMnemonic("service.gui.NEW_ACCOUNT")); - addContactItem.setMnemonic(resources - .getI18nMnemonic("service.gui.ADD_CONTACT")); + createGroupItem.setMnemonic(resources .getI18nMnemonic("service.gui.CREATE_GROUP")); myChatRoomsItem.setMnemonic(resources @@ -141,12 +156,16 @@ public FileMenu(MainFrame parentWindow) */ public void loadSkin() { - newAccountMenuItem.setIcon( - new ImageIcon(ImageLoader.getImage( - ImageLoader.ADD_ACCOUNT_MENU_ICON))); - addContactItem.setIcon( - new ImageIcon(ImageLoader.getImage( - ImageLoader.ADD_CONTACT_16x16_ICON))); + if (newAccountMenuItem != null) + newAccountMenuItem.setIcon( + new ImageIcon(ImageLoader.getImage( + ImageLoader.ADD_ACCOUNT_MENU_ICON))); + + if (addContactItem != null) + addContactItem.setIcon( + new ImageIcon(ImageLoader.getImage( + ImageLoader.ADD_CONTACT_16x16_ICON))); + createGroupItem.setIcon( new ImageIcon(ImageLoader.getImage( ImageLoader.GROUPS_16x16_ICON))); diff --git a/src/net/java/sip/communicator/impl/gui/utils/ConfigurationManager.java b/src/net/java/sip/communicator/impl/gui/utils/ConfigurationManager.java index 844e1ef9e..5d883ac02 100644 --- a/src/net/java/sip/communicator/impl/gui/utils/ConfigurationManager.java +++ b/src/net/java/sip/communicator/impl/gui/utils/ConfigurationManager.java @@ -125,6 +125,16 @@ public class ConfigurationManager */ private static boolean isShowSmileys; + /** + * Indicates if the add contact functionality is disabled. + */ + private static boolean isAddContactDisabled; + + /** + * Indicates if the remove contact functionality is disabled. + */ + private static boolean isRemoveContactDisabled; + /** * The last directory used in file transfer. */ @@ -431,7 +441,22 @@ public static void loadGuiConfigurations() // Load the "sendFileLastDir" property. sendFileLastDir = configService.getString( - "net.java.sip.communicator.impl.gui.chat.filetransfer.SEND_FILE_LAST_DIR"); + "net.java.sip.communicator.impl.gui.chat.filetransfer." + + "SEND_FILE_LAST_DIR"); + + // Load the "ADD_CONTACT_DISABLED" property. + isAddContactDisabled + = configService.getBoolean( + "net.java.sip.communicator.impl.gui.main.contactlist." + + "CONTACT_ADD_DISABLED", + false); + + // Load the "REMOVE_CONTACT_DISABLED" property. + isRemoveContactDisabled + = configService.getBoolean( + "net.java.sip.communicator.impl.gui.main.contactlist." + + "CONTACT_REMOVE_DISABLED", + false); } /** @@ -613,6 +638,28 @@ public static boolean isShowSmileys() return isShowSmileys; } + /** + * Returns true if the "ADD_CONTACT_DISABLED" property is + * true, otherwise - returns false.. + * @return true if the "ADD_CONTACT_DISABLED" property is + * true, otherwise - returns false. + */ + public static boolean isAddContactDisabled() + { + return isAddContactDisabled; + } + + /** + * Returns true if the "REMOVE_CONTACT_DISABLED" property is + * true, otherwise - returns false.. + * @return true if the "REMOVE_CONTACT_DISABLED" property is + * true, otherwise - returns false. + */ + public static boolean isRemoveContactDisabled() + { + return isRemoveContactDisabled; + } + /** * Return the "sendMessageCommand" property that was saved previously * through the ConfigurationService. Indicates to the user @@ -623,7 +670,7 @@ public static String getSendMessageCommand() { return sendMessageCommand; } - + /** * Return the "lastContactParent" property that was saved previously * through the ConfigurationService. Indicates