blob: 2e49674c4631000ee9bd6b59189511b7aab7b2b5 [file] [log] [blame]
//------------------------------------------------------------------------------
// Copyright (c) 2005, 2007 IBM Corporation and others.
// All rights reserved. This program and the accompanying materials
// are made available under the terms of the Eclipse Public License v1.0
// which accompanies this distribution, and is available at
// http://www.eclipse.org/legal/epl-v10.html
//
// Contributors:
// IBM Corporation - initial implementation
//------------------------------------------------------------------------------
package org.eclipse.epf.authoring.ui.preferences;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.eclipse.epf.authoring.ui.AuthoringUIPlugin;
import org.eclipse.epf.authoring.ui.AuthoringUIResources;
import org.eclipse.epf.common.utils.StrUtil;
import org.eclipse.epf.library.edit.util.TngUtil;
import org.eclipse.jface.preference.IPreferenceStore;
/**
* Manages the Authoring UI preferences.
*
* @author Kelvin Low
* @since 1.2
*/
public class AuthoringUIPreferences {
public static final String ENABLE_LIBRARY_VALIDATION = "enabledLibraryValidation"; //$NON-NLS-1$
public static final String ENABLE_UI_FIELDS = "enableUIFields"; //$NON-NLS-1$
public static final String ENABLE_AUTO_NAME_GEN = "autoNameGen"; //$NON-NLS-1$
public static final String RTE_URL_DECODING_OPTION = "rteUrlDecodingOption"; //$NON-NLS-1$
public static final String RTE_URL_DECODING_HEX_NUMBERS = "rteUrlDecodingHexNumbers"; //$NON-NLS-1$
public static final String ADD_TASKS_PER_ROW = "ACTIVITY_DETAIL_DIAGRAM_TASKS_PER_ROW"; //$NON-NLS-1$
private static final int DEFAULT_ADD_TASKS_PER_ROW = 10;
private static final boolean DEFAULT_ENABLE_LIBRARY_VALIDATION = false;
private static final boolean DEFAULT_ENABLE_UI_FIELDS = false;
private static final boolean DEFAULT_ENABLE_AUTO_NAME_GEN = false;
private static final int DEFAULT_RTE_URL_DECODING_OPTION = 2;
private static final String DEFAULT_RTE_URL_DECODING_HEX_NUMBERS = "%" + AuthoringUIResources.hex_20; //$NON-NLS-1$
// The plug-in specific preference store.
private static IPreferenceStore prefStore = AuthoringUIPlugin.getDefault()
.getPreferenceStore();
private static boolean toClearStrUtilOptionsCache = false;
static {
// Initialize the default preference values.
prefStore.setDefault(ENABLE_LIBRARY_VALIDATION,
DEFAULT_ENABLE_LIBRARY_VALIDATION);
prefStore.setDefault(ENABLE_UI_FIELDS,
DEFAULT_ENABLE_UI_FIELDS);
prefStore.setDefault(ENABLE_AUTO_NAME_GEN,
DEFAULT_ENABLE_AUTO_NAME_GEN);
prefStore.setDefault(ADD_TASKS_PER_ROW, DEFAULT_ADD_TASKS_PER_ROW);
prefStore.setDefault(RTE_URL_DECODING_OPTION, DEFAULT_RTE_URL_DECODING_OPTION);
prefStore.setDefault(RTE_URL_DECODING_HEX_NUMBERS, DEFAULT_RTE_URL_DECODING_HEX_NUMBERS);
StrUtil.StrUtilOptions strUtilOptions = new StrUtil.StrUtilOptions() {
private Map<String, String> cachedMap;
public int getRteUrlDecodingOption() {
return AuthoringUIPreferences.getRteUrlDecodingOption();
}
public Map<String, String> getRteUrlDecodingHexMap() {
if (cachedMap == null || toClearStrUtilOptionsCache) {
toClearStrUtilOptionsCache = false;
cachedMap = AuthoringUIPreferences.getRteUrlDecodingHexMap();
}
return cachedMap;
}
};
StrUtil.setOptions(strUtilOptions);
}
/**
* Gets the default enable method library validation preference.
*/
public static boolean getDefaultEnableLibraryValidation() {
return DEFAULT_ENABLE_LIBRARY_VALIDATION;
}
/**
* Gets the method library validation preference.
*/
public static boolean getEnableLibraryValidation() {
return prefStore.getBoolean(ENABLE_LIBRARY_VALIDATION);
}
/**
* Sets the method library validation preference.
*/
public static void setEnableLibraryValidation(boolean value) {
prefStore.setValue(ENABLE_LIBRARY_VALIDATION, value);
}
/**
* Gets the default enable UI fields preference (long presentation name, external ID)
*/
public static boolean getDefaultEnableUIFields() {
return DEFAULT_ENABLE_UI_FIELDS;
}
/**
* Gets the enable UI fields preference (long presentation name, external ID)
*/
public static boolean getEnableUIFields() {
return prefStore.getBoolean(ENABLE_UI_FIELDS);
}
/**
* Sets the enable UI fields preference (long presentation name, external ID)
*/
public static void setEnableUIFields(boolean value) {
prefStore.setValue(ENABLE_UI_FIELDS, value);
}
/**
* Gets the default enable auto name gen fields preference
*/
public static boolean getDefaultEnableAutoNameGen() {
return DEFAULT_ENABLE_AUTO_NAME_GEN;
}
/**
* Gets the enable enable auto name gen preference
*/
public static boolean getEnableAutoNameGen() {
return prefStore.getBoolean(ENABLE_AUTO_NAME_GEN);
}
/**
* Sets the enable enable auto name gen preference
*/
public static void setEnableAutoNameGen(boolean value) {
prefStore.setValue(ENABLE_AUTO_NAME_GEN, value);
}
/**
* Gets the default rte url decoding option
*/
public static int getDefaultRteUrlDecodingOption() {
return DEFAULT_RTE_URL_DECODING_OPTION;
}
/**
* Gets the rte url decoding option
*/
public static int getRteUrlDecodingOption() {
return prefStore.getInt(RTE_URL_DECODING_OPTION);
}
/**
* Sets the rte url decoding option
*/
public static void setgetRteUrlDecodingOption(int value) {
prefStore.setValue(RTE_URL_DECODING_OPTION, value);
}
/**
* Gets the default rte url decoding hex numbers
*/
public static String getDefaultRteUrlDecodingHexNumbers() {
return DEFAULT_RTE_URL_DECODING_HEX_NUMBERS;
}
/**
* Gets the rte url decoding hex numbers
*/
public static String getRteUrlDecodingHexNumbers() {
return prefStore.getString(RTE_URL_DECODING_HEX_NUMBERS);
}
/**
* Sets the rte url decoding hex numbers
*/
public static void setRteUrlDecodingHexNumbers(String value) {
toClearStrUtilOptionsCache = true;
prefStore.setValue(RTE_URL_DECODING_HEX_NUMBERS, value);
}
/**
* Gets the rte url decoding hex number set
*/
public static Map<String, String> getRteUrlDecodingHexMap() {
Map<String, String> map = new HashMap<String, String>();
String str = getRteUrlDecodingHexNumbers();
List<String> strValues = TngUtil.convertStringsToList(str, "\n");//$NON-NLS-1$
for (String strValue : strValues) {
String key = StrUtil.getHexStr(strValue);
if (key != null) {
map.put(key, strValue);
}
}
return map;
}
/**
* Gets the ADD_TASKS_PER_ROW preference.
*/
public static int getADD_TasksPerRow() {
int value = prefStore.getInt(ADD_TASKS_PER_ROW);
return value > 0 ? value : DEFAULT_ADD_TASKS_PER_ROW;
}
/**
* Sets the ADD_TASKS_PER_ROW preference.
*/
public static void setADDTasksPerRow(int value) {
prefStore.setValue(ADD_TASKS_PER_ROW, value);
}
/**
* Gets the default ADD_TASKS_PER_ROW preference.
*/
public static int getDefaultADDTasksPerRow() {
return DEFAULT_ADD_TASKS_PER_ROW;
}
}