/*
* Copyright 2010-2015 Institut Pasteur.
*
* This file is part of Icy.
*
* Icy is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* Icy is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with Icy. If not, see <http://www.gnu.org/licenses/>.
*/
package icy.preferences;
import icy.util.Random;
/**
* @author Stephane
*/
public class ChatPreferences
{
/**
* preferences id
*/
private static final String PREF_ID = "chat";
/**
* id
*/
private static final String ID_SERVER = "server";
private static final String ID_SERVER_PASSWORD = "serverPassword";
private static final String ID_PORT = "port";
private static final String ID_EXTRA_CHANNELS = "extraChannels";
private static final String ID_DESKTOP_CHANNELS = "desktopChannels";
private static final String ID_NICKNAME = "nickname";
private static final String ID_REALNAME = "realname";
private static final String ID_USER_PASSWORD = "userPassword";
private static final String ID_AUTO_CONNECT = "autoConnect";
private static final String ID_SHOW_STATUS_MESSAGES = "showStatusMessages";
private static final String ID_SHOW_USERS_PANEL = "showUsersPanel";
private static final String ID_DESKTOP_OVERLAY = "desktopOverlay";
private static final String ID_USERS_PANEL_WIDTH = "usersPanelWidth";
/**
* defaults values
*/
private final static String DEFAULT_SERVER = "irc.freenode.net";
private final static String DEFAULT_SERVER_PASSWORD = "";
private final static int DEFAULT_PORT = 6666;
// private final static String DEFAULT_EXTRA_CHANNELS = "icy-support";
private final static String DEFAULT_EXTRA_CHANNELS = "";
private final static String DEFAULT_DESKTOP_CHANNELS = "icy";
/**
* preferences
*/
private static XMLPreferences preferences;
public static void load()
{
// load preferences
preferences = ApplicationPreferences.getPreferences().node(PREF_ID);
}
/**
* @return the preferences
*/
public static XMLPreferences getPreferences()
{
return preferences;
}
public static String getServer()
{
return preferences.get(ID_SERVER, DEFAULT_SERVER);
}
public static void setServer(String value)
{
preferences.put(ID_SERVER, value);
}
public static String getServerPassword()
{
return preferences.get(ID_SERVER_PASSWORD, DEFAULT_SERVER_PASSWORD);
}
public static void setServerPassword(String value)
{
preferences.put(ID_SERVER_PASSWORD, value);
}
public static int getPort()
{
return preferences.getInt(ID_PORT, DEFAULT_PORT);
}
public static void setPort(int value)
{
preferences.putInt(ID_PORT, value);
}
public static String getDefaultExtraChannels()
{
return DEFAULT_EXTRA_CHANNELS;
}
public static String getExtraChannels()
{
return preferences.get(ID_EXTRA_CHANNELS, getDefaultExtraChannels());
}
public static void setExtraChannels(String value)
{
preferences.put(ID_EXTRA_CHANNELS, value);
}
public static String getDefaultDesktopChannels()
{
return DEFAULT_DESKTOP_CHANNELS;
}
public static String getDesktopChannels()
{
return preferences.get(ID_DESKTOP_CHANNELS, getDefaultDesktopChannels());
}
public static void setDesktopChannels(String value)
{
preferences.put(ID_DESKTOP_CHANNELS, value);
}
public static String getRandomNickname()
{
return "guest" + Random.nextInt(10000);
}
public static String getNickname()
{
return preferences.get(ID_NICKNAME, getRandomNickname());
}
public static String getRealname()
{
return preferences.get(ID_REALNAME, getNickname());
}
public static String getUserPassword()
{
return preferences.get(ID_USER_PASSWORD, "");
}
public static boolean getAutoConnect()
{
return preferences.getBoolean(ID_AUTO_CONNECT, true);
}
public static boolean getShowStatusMessages()
{
return preferences.getBoolean(ID_SHOW_STATUS_MESSAGES, false);
}
public static boolean getShowUsersPanel()
{
return preferences.getBoolean(ID_SHOW_USERS_PANEL, false);
}
public static boolean getDesktopOverlay()
{
return preferences.getBoolean(ID_DESKTOP_OVERLAY, true);
}
public static int getUsersPanelWidth()
{
return preferences.getInt(ID_USERS_PANEL_WIDTH, 120);
}
public static void setNickname(String value)
{
preferences.put(ID_NICKNAME, value);
}
public static void setRealname(String value)
{
preferences.put(ID_REALNAME, value);
}
public static void setUserPassword(String value)
{
preferences.put(ID_USER_PASSWORD, value);
}
public static void setAutoConnect(boolean value)
{
preferences.putBoolean(ID_AUTO_CONNECT, value);
}
public static void setShowStatusMessages(boolean value)
{
preferences.putBoolean(ID_SHOW_STATUS_MESSAGES, value);
}
public static void setShowUsersPanel(boolean value)
{
preferences.putBoolean(ID_SHOW_USERS_PANEL, value);
}
public static void setDesktopOverlay(boolean value)
{
preferences.putBoolean(ID_DESKTOP_OVERLAY, value);
}
public static void setUsersPanelWidth(int value)
{
preferences.putInt(ID_USERS_PANEL_WIDTH, value);
}
}