package util;
import java.util.prefs.Preferences;
import start.Start;
public class UserPreferences {
// Preferences object
public static Preferences PREFS;
// User preference constants
public static final String MAX_PARALLEL_DOWNLOADS = "MAX_PARALLEL_DOWNLOADS";
public static final String DOWNLOAD_PART_COUNT = "DOWNLOAD_PART_COUNT";
public static final String SERVER_CHECK_INTERVAL = "SERVER_CHECK_INTERVAL";
public static final String USE_PROXY = "USE_PROXY";
public static final String PROXY_ADDRESS = "PROXY_ADDRESS";
public static final String PROXY_PORT = "PROXY_PORT";
public static final String AUTO_CONNECT = "AUTO_CONNECT";
public static final String START_IN_TRAY = "START_IN_TRAY";
public static final String DOWNLOAD_AUTOMATICALLY = "DOWNLOAD_AUTOMATICALLY";
public static final String DELETE_EMPTY_FOLDERS = "DELETE_EMPTY_FOLDERS";
public static final String FILE_SIZE_CHECK = "FILE_SIZE_CHECK";
public static final String FILE_SIZE_FOR_CHECK = "FILE_SIZE_FOR_CHECK";
public static final String FILE_SIZE_DELETE = "FILE_SIZE_DELETE";
public static final String DOWNLOAD_TARGET = "DOWNLOAD_TARGET";
public static final String USERNAME = "USERNAME";
public static final String API_SECRET = "API_SECRET";
public static final String PASSWORD = "PASSWORD";
public static final String USERTOKEN = "USERTOKEN";
public static final String DONT_ASK_DOWNLOAD_AGAIN = "DONT_ASK_DOWNLOAD_AGAIN";
public static final String BEHAVIOR_DOWNLOAD_AGAIN = "BEHAVIOR_DOWNLOAD_AGAIN";
public static final String DONT_ASK_OVERWRITE = "DONT_ASK_OVERWRITE";
public static final String BEHAVIOR_OVERWRITE = "BEHAVIOR_OVERWRITE";
public static final String BEHAVIOR_SORT_BY = "BEHAVIOR_SORT_BY";
public static final String LOAD_SHARED = "LOAD_SHARED";
public static final String BEHAVIOR_DOWNLOAD_EVERYTHING = "BEHAVIOR_DOWNLOAD_EVERYTHING";
// Preference options
public static final int OPTION_DOWNLOAD_AGAIN = 0;
public static final int OPTION_OVERWRITE = 0;
public static final int OPTION_SKIP = 1;
public static final int OPTION_SKIP_DELETE = 2;
public static final int OPTION_SKIP_SAME_SIZE = 3;
public static final int OPTION_SKIP_SAME_SIZE_DELETE = 4;
public static final int OPTION_SORT_BY_NAME = 0;
public static final int OPTION_SORT_BY_DATE = 1;
// User preferences
public static int PREF_MAX_DOWNLOADS;
public static int PREF_DOWNLOAD_PART_COUNT;
public static int PREF_SERVER_CHECK_INTERVAL;
public static boolean PREF_USE_PROXY;
public static String PREF_PROXY_ADDRESS;
public static String PREF_PROXY_PORT;
public static boolean PREF_AUTO_CONNECT;
public static boolean PREF_START_IN_TRAY;
public static boolean PREF_AUTO_DOWNLOAD;
public static boolean PREF_AUTO_CLEAN;
public static boolean PREF_FILE_SIZE_CHECK;
public static float PREF_FILE_SIZE_FOR_CHECK;
public static boolean PREF_FILE_SIZE_DELETE;
public static String PREF_DOWNLOAD_TARGET;
public static String PREF_USERNAME;
public static String PREF_API_SECRET;
public static String PREF_PASSWORD;
public static String PREF_USERTOKEN;
public static boolean PREF_DONT_ASK_DOWNLOAD_AGAIN;
public static int PREF_BEHAVIOR_DOWNLOAD_AGAIN;
public static boolean PREF_DONT_ASK_OVERWRITE;
public static int PREF_BEHAVIOR_OVERWRITE;
public static int PREF_BEHAVIOR_SORT_BY;
public static boolean PREF_LOAD_SHARED;
public static boolean PREF_BEHAVIOR_DOWNLOAD_EVERYTHING;
public static void loadUserPreferences() {
if ( PREFS == null )
PREFS = Preferences.userNodeForPackage( Start.class );
PREF_MAX_DOWNLOADS = PREFS.getInt( MAX_PARALLEL_DOWNLOADS, 3 );
PREF_DOWNLOAD_PART_COUNT = PREFS.getInt( DOWNLOAD_PART_COUNT, 3 );
PREF_SERVER_CHECK_INTERVAL = PREFS.getInt( SERVER_CHECK_INTERVAL, 60 );
PREF_USE_PROXY = PREFS.getBoolean( USE_PROXY, false );
PREF_PROXY_ADDRESS = PREFS.get( PROXY_ADDRESS, "" );
PREF_PROXY_PORT = PREFS.get( PROXY_PORT, "" );
PREF_AUTO_CONNECT = PREFS.getBoolean( AUTO_CONNECT, false );
PREF_START_IN_TRAY = PREFS.getBoolean( START_IN_TRAY, false );
PREF_AUTO_DOWNLOAD = PREFS.getBoolean( DOWNLOAD_AUTOMATICALLY, false );
PREF_AUTO_CLEAN = PREFS.getBoolean( DELETE_EMPTY_FOLDERS, false );
PREF_FILE_SIZE_CHECK = PREFS.getBoolean( FILE_SIZE_CHECK, false );
PREF_FILE_SIZE_FOR_CHECK = PREFS.getFloat( FILE_SIZE_FOR_CHECK, 5.0f );
PREF_FILE_SIZE_DELETE = PREFS.getBoolean( FILE_SIZE_DELETE, false );
PREF_DOWNLOAD_TARGET = PREFS.get( DOWNLOAD_TARGET, System.getProperty( "user.dir" ) );
PREF_USERNAME = PREFS.get( USERNAME, "" );
PREF_API_SECRET = PREFS.get( API_SECRET, "" );
PREF_PASSWORD = PREFS.get( PASSWORD, "" );
PREF_USERTOKEN = PREFS.get( USERTOKEN, "" );
PREF_DONT_ASK_DOWNLOAD_AGAIN = PREFS.getBoolean( DONT_ASK_DOWNLOAD_AGAIN, true );
PREF_BEHAVIOR_DOWNLOAD_AGAIN = PREFS.getInt( BEHAVIOR_DOWNLOAD_AGAIN, 0 );
PREF_DONT_ASK_OVERWRITE = PREFS.getBoolean( DONT_ASK_OVERWRITE, true );
PREF_BEHAVIOR_OVERWRITE = PREFS.getInt( BEHAVIOR_OVERWRITE, 0 );
PREF_BEHAVIOR_SORT_BY = PREFS.getInt( BEHAVIOR_SORT_BY, 0 );
PREF_LOAD_SHARED = PREFS.getBoolean( LOAD_SHARED, false );
PREF_BEHAVIOR_DOWNLOAD_EVERYTHING = PREFS.getBoolean( BEHAVIOR_DOWNLOAD_EVERYTHING, true );
}
public static void saveUserPreferences() {
if ( PREFS == null )
PREFS = Preferences.userNodeForPackage( Start.class );
PREFS.putInt( MAX_PARALLEL_DOWNLOADS, PREF_MAX_DOWNLOADS );
PREFS.putInt( DOWNLOAD_PART_COUNT, PREF_DOWNLOAD_PART_COUNT );
PREFS.putInt( SERVER_CHECK_INTERVAL, PREF_SERVER_CHECK_INTERVAL );
PREFS.putBoolean( USE_PROXY, PREF_USE_PROXY );
PREFS.put( PROXY_ADDRESS, PREF_PROXY_ADDRESS );
PREFS.put( PROXY_PORT, PREF_PROXY_PORT );
PREFS.putBoolean( AUTO_CONNECT, PREF_AUTO_CONNECT );
PREFS.putBoolean( START_IN_TRAY, PREF_START_IN_TRAY );
PREFS.putBoolean( DOWNLOAD_AUTOMATICALLY, PREF_AUTO_DOWNLOAD );
PREFS.putBoolean( DELETE_EMPTY_FOLDERS, PREF_AUTO_CLEAN );
PREFS.putBoolean( FILE_SIZE_CHECK, PREF_FILE_SIZE_CHECK );
PREFS.putFloat( FILE_SIZE_FOR_CHECK, PREF_FILE_SIZE_FOR_CHECK );
PREFS.putBoolean( FILE_SIZE_DELETE, PREF_FILE_SIZE_DELETE );
PREFS.put( DOWNLOAD_TARGET, PREF_DOWNLOAD_TARGET );
PREFS.put( USERNAME, PREF_USERNAME );
PREFS.put( API_SECRET, PREF_API_SECRET );
PREFS.put( PASSWORD, PREF_PASSWORD );
PREFS.put( USERTOKEN, PREF_USERTOKEN );
PREFS.putBoolean( DONT_ASK_DOWNLOAD_AGAIN, PREF_DONT_ASK_DOWNLOAD_AGAIN );
PREFS.putInt( BEHAVIOR_DOWNLOAD_AGAIN, PREF_BEHAVIOR_DOWNLOAD_AGAIN );
PREFS.putBoolean( DONT_ASK_OVERWRITE, PREF_DONT_ASK_OVERWRITE );
PREFS.putInt( BEHAVIOR_OVERWRITE, PREF_BEHAVIOR_OVERWRITE );
PREFS.putInt( BEHAVIOR_SORT_BY, PREF_BEHAVIOR_SORT_BY );
PREFS.putBoolean( LOAD_SHARED, PREF_LOAD_SHARED );
PREFS.putBoolean( BEHAVIOR_DOWNLOAD_EVERYTHING, PREF_BEHAVIOR_DOWNLOAD_EVERYTHING );
}
}