From c3416be7a83f99f61e400a366ee4523d23d6a39b Mon Sep 17 00:00:00 2001 From: Damian Minkov Date: Mon, 2 Jun 2014 12:28:37 +0300 Subject: [PATCH] Adds property to disable private chat in chat rooms. --- .../main/chat/ChatContactRightButtonMenu.java | 4 ++- .../conference/ChatRoomMemberListPanel.java | 5 ++++ .../communicator/util/ConfigurationUtils.java | 29 +++++++++++++++++++ 3 files changed, 37 insertions(+), 1 deletion(-) diff --git a/src/net/java/sip/communicator/impl/gui/main/chat/ChatContactRightButtonMenu.java b/src/net/java/sip/communicator/impl/gui/main/chat/ChatContactRightButtonMenu.java index 5e980d7e9..379a06778 100644 --- a/src/net/java/sip/communicator/impl/gui/main/chat/ChatContactRightButtonMenu.java +++ b/src/net/java/sip/communicator/impl/gui/main/chat/ChatContactRightButtonMenu.java @@ -236,7 +236,9 @@ private void init() } else { - this.add(this.sendPrivateMessageItem); + if(!ConfigurationUtils.isPrivateMessagingInChatRoomDisabled()) + this.add(this.sendPrivateMessageItem); + if(room.getUserRole().getRoleIndex() >= 50) { if(roleIndex <= 40) diff --git a/src/net/java/sip/communicator/impl/gui/main/chat/conference/ChatRoomMemberListPanel.java b/src/net/java/sip/communicator/impl/gui/main/chat/conference/ChatRoomMemberListPanel.java index df969e4c7..d3e950f64 100644 --- a/src/net/java/sip/communicator/impl/gui/main/chat/conference/ChatRoomMemberListPanel.java +++ b/src/net/java/sip/communicator/impl/gui/main/chat/conference/ChatRoomMemberListPanel.java @@ -17,6 +17,7 @@ import net.java.sip.communicator.plugin.desktoputil.*; import net.java.sip.communicator.service.muc.*; import net.java.sip.communicator.service.protocol.*; +import net.java.sip.communicator.util.*; import net.java.sip.communicator.util.skin.*; /** @@ -99,6 +100,10 @@ public void mouseClicked(MouseEvent e) else if(e.getButton() == MouseEvent.BUTTON1 && e.getClickCount() == 2) { + if(ConfigurationUtils + .isPrivateMessagingInChatRoomDisabled()) + return; + memberList.setSelectedIndex( memberList.locationToIndex(e.getPoint())); diff --git a/src/net/java/sip/communicator/util/ConfigurationUtils.java b/src/net/java/sip/communicator/util/ConfigurationUtils.java index dc5cf4753..0c8e00f77 100644 --- a/src/net/java/sip/communicator/util/ConfigurationUtils.java +++ b/src/net/java/sip/communicator/util/ConfigurationUtils.java @@ -101,6 +101,11 @@ public class ConfigurationUtils */ private static boolean isLeaveChatRoomOnWindowCloseEnabled; + /** + * Indicates if private messaging is enabled for chat rooms. + */ + private static boolean isPrivateMessagingInChatRoomDisabled; + /** * Indicates if the history should be shown in the chat window. */ @@ -511,6 +516,10 @@ public static void loadGuiConfigurations() = Boolean.parseBoolean(isMultiChatWindowEnabledString); } + isPrivateMessagingInChatRoomDisabled + = configService.getBoolean( + "service.gui.IS_PRIVATE_CHAT_IN_CHATROOM_DISABLED", false); + // Load the "isLeaveChatroomOnWindowCloseEnabled" property. String isLeaveChatRoomOnWindowCloseEnabledStringProperty = "service.gui.LEAVE_CHATROOM_ON_WINDOW_CLOSE"; @@ -1100,6 +1109,20 @@ public static boolean isMultiChatWindowEnabled() return isMultiChatWindowEnabled; } + /** + * Returns true if the "isPrivateMessagingInChatRoomDisabled" + * property is true, otherwise - returns false. + * Indicates to the user interface whether the private messaging is disabled + * in chat rooms. + * + * @return true if the "isPrivateMessagingInChatRoomDisabled" + * property is true, otherwise - returns false. + */ + public static boolean isPrivateMessagingInChatRoomDisabled() + { + return isPrivateMessagingInChatRoomDisabled; + } + /** * Updates the "isMultiChatWindowEnabled" property through the * ConfigurationService. @@ -2687,6 +2710,12 @@ else if (evt.getPropertyName().equals( { isMultiChatWindowEnabled = Boolean.parseBoolean(newValue); } + else if (evt.getPropertyName().equals( + "service.gui.IS_PRIVATE_CHAT_IN_CHATROOM_DISABLED")) + { + isPrivateMessagingInChatRoomDisabled + = Boolean.parseBoolean(newValue); + } else if (evt.getPropertyName().equals( "service.gui.LEAVE_CHATROOM_ON_WINDOW_CLOSE")) {