blob: 467783f852e917d38444d70158b9ce8be4e4ed7c [file] [log] [blame]
//------------------------------------------------------------------------------
// Copyright (c) 2004, 2007 IBM Corporation. All Rights Reserved.
//------------------------------------------------------------------------------
package org.eclipse.epf.export.msp.ui.preferences;
import java.util.List;
import org.eclipse.epf.common.ui.util.PreferenceUtil;
import org.eclipse.epf.common.utils.FileUtil;
import org.eclipse.epf.export.msp.ui.ExportMSPUIPlugin;
import org.eclipse.epf.library.ui.preferences.LibraryUIPreferences;
import org.eclipse.jface.preference.IPreferenceStore;
/**
* The Export Microsoft Project UI preferences.
*
* @author Kelvin Low
* @since 1.2
*/
public class ExportMSPUIPreferences {
// The publish web site preference key.
private static final String PUBLISH_WEBSITE = "publishWebSite"; //$NON-NLS-1$
// The publish configuration preference key.
private static final String PUBLISH_CONFIGURATION = "publishConfiguration"; //$NON-NLS-1$
// The export only planned WBS elements preference key.
private static final String EXPORT_ONLY_PLANNED_WBS_ELEMENTS = "exportOnlyPlannedWBSElements"; //$NON-NLS-1$
// The process name preference key.
private static final String PROCESS_NAME = "processName"; //$NON-NLS-1$
// The method configuration namr preference key.
private static final String CONFIGURATION_NAME = "configurationName"; //$NON-NLS-1$
// The Microsoft Project names preference key.
private static final String MS_PROJECT_NAMES = "msprojectNames"; //$NON-NLS-1$
// The export directories preference key.
private static final String EXPORT_DIRECTORIES = "exportDirs"; //$NON-NLS-1$
// The default export MSP directory name.
private static final String DEFAULT_EXPORT_DIR_NAME = "Export" + FileUtil.FILE_SEP + "MSP"; //$NON-NLS-1$ //$NON-NLS-2$
// The plug-in specific preference store.
private static IPreferenceStore prefStore = ExportMSPUIPlugin.getDefault()
.getPreferenceStore();
// The default export MSP directory.
private static String defaultExportDir = null;
static {
prefStore.setDefault(PUBLISH_WEBSITE, true);
prefStore.setDefault(PUBLISH_CONFIGURATION, true);
prefStore.setDefault(EXPORT_ONLY_PLANNED_WBS_ELEMENTS, false);
prefStore.setDefault(CONFIGURATION_NAME, ""); //$NON-NLS-1$
prefStore.setDefault(PROCESS_NAME, ""); //$NON-NLS-1$
prefStore.setDefault(MS_PROJECT_NAMES, ""); //$NON-NLS-1$
prefStore.setDefault(EXPORT_DIRECTORIES, getDefaultExportDir());
}
/**
* Gets the publish web site preference value.
*
* @return <code>true</code> is the preference is set.
*/
public static boolean getPublishWebSite() {
return prefStore.getBoolean(PUBLISH_WEBSITE);
}
/**
* Sets the publish web site preference value.
*
* @param value
* the preference value
*/
public static void setPublishWebSite(boolean value) {
prefStore.setValue(PUBLISH_WEBSITE, value);
}
/**
* Gets the publish configuration preference value.
*
* @return <code>true</code> is the preference is set
*/
public static boolean getPublishConfiguration() {
return prefStore.getBoolean(PUBLISH_CONFIGURATION);
}
/**
* Sets the publish configuration preference value.
*
* @param value
* the preference value
*/
public static void setPublishConfiguration(boolean value) {
prefStore.setValue(PUBLISH_CONFIGURATION, value);
}
/**
* Gets the export only planned WBS elements preference value.
*
* @return <code>true</code> is the preference is set
*/
public static boolean getExportOnlyPlannedWBSElements() {
return prefStore.getBoolean(EXPORT_ONLY_PLANNED_WBS_ELEMENTS);
}
/**
* Sets the export only planned WBS elements preference value.
*
* @param value
* the preference value
*/
public static void setExportOnlyPlannedWBSElements(boolean value) {
prefStore.setValue(EXPORT_ONLY_PLANNED_WBS_ELEMENTS, value);
}
/**
* Gets the process name preference value.
*
* @return the preference value
*/
public static String getProcessName() {
return prefStore.getString(PROCESS_NAME);
}
/**
* Sets the process name preference value.
*
* @param value
* the preference value
*/
public static void setProcessName(String value) {
prefStore.setValue(PROCESS_NAME, value);
}
/**
* Gets the method configuration name preference value.
*
* @return the preference value
*/
public static String getConfigurationName() {
return prefStore.getString(CONFIGURATION_NAME);
}
/**
* Sets the method configuration name preference value.
*
* @param value
* the preference value
*/
public static void setConfigurationName(String value) {
prefStore.setValue(CONFIGURATION_NAME, value);
}
/**
* Gets the Microsoft Project names preference value.
*
* @return the preference value
*/
public static String[] getMSProjectNames() {
return PreferenceUtil.getStringValues(prefStore, MS_PROJECT_NAMES);
}
/**
* Gets the Microsoft Project names preference value.
*
* @return a collection of Microsoft Project names
*/
public static List<String> getMSProjectNamesList() {
return PreferenceUtil.getList(prefStore, MS_PROJECT_NAMES);
}
/**
* Adds a Microsoft Project name to the Microsoft Project names preference.
*
* @param name
* a template name
*/
public static void addMSProjectName(String name) {
PreferenceUtil.addToList(prefStore, MS_PROJECT_NAMES, name);
}
/**
* Gets the default export MSP directory.
*
* @return the default export MSP directory
*/
public static String getDefaultExportDir() {
if (defaultExportDir == null) {
defaultExportDir = System.getProperty("user.home"); //$NON-NLS-1$
String appName = LibraryUIPreferences.getApplicationShortName();
if (appName != null && appName.length() > 0) {
defaultExportDir = defaultExportDir + FileUtil.FILE_SEP
+ appName + FileUtil.FILE_SEP + DEFAULT_EXPORT_DIR_NAME;
} else {
defaultExportDir = defaultExportDir + FileUtil.FILE_SEP
+ DEFAULT_EXPORT_DIR_NAME;
}
}
return defaultExportDir;
}
/**
* Gets the export directories preference value.
*
* @return the preference value
*/
public static String[] getExportDirectories() {
return PreferenceUtil.getStringValues(prefStore, EXPORT_DIRECTORIES);
}
/**
* Gets the export directories preference value.
*
* @return a collection of export directories
*/
public static List<String> getExportDirectoriesList() {
return PreferenceUtil.getList(prefStore, EXPORT_DIRECTORIES);
}
/**
* Adds a export directory to the export directories preference.
*
* @param dir
* an export directory
*/
public static void addExportDir(String dir) {
PreferenceUtil.addToList(prefStore, EXPORT_DIRECTORIES, dir);
}
}