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 4d345ab57..d7e217679 100644 --- a/src/net/java/sip/communicator/impl/gui/utils/ConfigurationManager.java +++ b/src/net/java/sip/communicator/impl/gui/utils/ConfigurationManager.java @@ -6,8 +6,11 @@ */ package net.java.sip.communicator.impl.gui.utils; +import java.util.*; + import net.java.sip.communicator.impl.gui.*; import net.java.sip.communicator.service.configuration.*; +import net.java.sip.communicator.service.protocol.*; public class ConfigurationManager { @@ -30,11 +33,14 @@ public class ConfigurationManager private static boolean isSendTypingNotifications; + private static LinkedList chatRoomsList; + private static ConfigurationService configService = GuiActivator.getConfigurationService(); public static void loadGuiConfigurations() - { + { + // Load the "auPopupNewMessage" property. String autoPopup = configService.getString( "net.java.sip.communicator.impl.gui.autoPopupNewMessage"); @@ -43,12 +49,14 @@ public static void loadGuiConfigurations() else autoPopupNewMessage = false; + // Load the "sendMessageCommand" property. String messageCommand = configService.getString( "net.java.sip.communicator.impl.gui.sendMessageCommand"); if(messageCommand == null || messageCommand != "") sendMessageCommand = messageCommand; + // Load the showCallPanel property. String callPanelShown = configService.getString( "net.java.sip.communicator.impl.gui.showCallPanel"); @@ -57,6 +65,7 @@ public static void loadGuiConfigurations() isCallPanelShown = new Boolean(callPanelShown).booleanValue(); } + // Load the "showOffline" property. String showOffline = configService.getString( "net.java.sip.communicator.impl.gui.showOffline"); @@ -65,6 +74,7 @@ public static void loadGuiConfigurations() isShowOffline = new Boolean(showOffline).booleanValue(); } + // Load the "showApplication" property. String isVisible = configService.getString( "net.java.sip.communicator.impl.systray.showApplication"); @@ -73,6 +83,7 @@ public static void loadGuiConfigurations() isApplicationVisible = new Boolean(isVisible).booleanValue(); } + // Load the "sendTypingNotifications" property. String isSendTypingNotif = configService.getString( "net.java.sip.communicator.impl.gui.sendTypingNotifications"); @@ -81,38 +92,115 @@ public static void loadGuiConfigurations() isSendTypingNotifications = new Boolean(isSendTypingNotif).booleanValue(); } + + // Load the list of visited chat rooms. + String prefix = "net.java.sip.communicator.impl.gui.chatRooms"; + + List chatRooms = configService + .getPropertyNamesByPrefix(prefix, true); + + Iterator chatRoomIter = chatRooms.iterator(); + + while(chatRoomIter.hasNext()) + { + String chatRoomRootPropName + = (String) chatRoomIter.next(); + + String chatRoomID + = configService.getString(chatRoomRootPropName); + + chatRooms.add(chatRoomID); + } } - + + /** + * Return TRUE if "autoPopupNewMessage" property is true, otherwise - return + * FALSE. Indicates to the user interface whether new messages should be + * opened and bring to front. + * @return TRUE if "autoPopupNewMessage" property is true, otherwise - return + * FALSE. + */ public static boolean isAutoPopupNewMessage() { return autoPopupNewMessage; } + /** + * Return TRUE if "showCallPanel" property is true, otherwise - return + * FALSE. Indicates to the user interface whether the panel containing the + * call and hangup buttons should be shown. + * @return TRUE if "showCallPanel" property is true, otherwise - return + * FALSE. + */ public static boolean isCallPanelShown() { return isCallPanelShown; } + /** + * Return TRUE if "showOffline" property is true, otherwise - return + * FALSE. Indicates to the user interface whether offline user should be + * shown in the contact list or not. + * @return TRUE if "showOffline" property is true, otherwise - return + * FALSE. + */ public static boolean isShowOffline() { return isShowOffline; } + /** + * Return TRUE if "showApplication" property is true, otherwise - return + * FALSE. Indicates to the user interface whether the main application + * window should shown or hidden on startup. + * @return TRUE if "showApplication" property is true, otherwise - return + * FALSE. + */ public static boolean isApplicationVisible() { return isApplicationVisible; } + /** + * Return TRUE if "sendTypingNotifications" property is true, otherwise - + * return FALSE. Indicates to the user interface whether typing + * notifications are enabled or disabled. + * @return TRUE if "sendTypingNotifications" property is true, otherwise - + * return FALSE. + */ public static boolean isSendTypingNotifications() { return isSendTypingNotifications; } + /** + * Return the "sendMessageCommand" property that was saved previously through + * the ConfigurationService. Indicates to the user interface whether + * the default send message command is Enter or Ctrl-Enter. + * @return "Enter" or "Ctrl-Enter" message commands. + */ public static String getSendMessageCommand() { return sendMessageCommand; } + + /** + * Return the list of visited chat rooms that was previously saved in through + * the ConfigurationService. + * @return the list of visited chat rooms that was previously saved in through + * the ConfigurationService. + */ + public static List getChatRoomsList() + { + return chatRoomsList; + } + /** + * Updates the "autoPopupNewMessage" property. + * + * @param autoPopupNewMessage indicates to the user interface whether new + * messages should be opened and bring to front. + **/ public static void setAutoPopupNewMessage(boolean autoPopupNewMessage) { ConfigurationManager.autoPopupNewMessage = autoPopupNewMessage; @@ -171,4 +259,16 @@ public static void setSendMessageCommand(String newMessageCommand) "net.java.sip.communicator.impl.gui.sendMessageCommand", newMessageCommand); } + + public static void saveChatRoom(ChatRoom chatRoom) + { + String chatRoomNodeName + = "chatr" + Long.toString(System.currentTimeMillis()); + + String chatRoomPackage + = "net.java.sip.communicator.impl.gui.chatRooms." + + chatRoomNodeName; + + configService.setProperty(chatRoomPackage, chatRoom.getName()); + } }