package com.tibco.as.spacebar.ui.preferences; import java.util.TimeZone; import org.eclipse.jface.preference.IPreferenceStore; import org.eclipse.jface.preference.PreferenceConverter; import org.eclipse.swt.graphics.Color; import org.eclipse.swt.widgets.Display; import com.tibco.as.convert.Attribute; import com.tibco.as.convert.Attributes; import com.tibco.as.convert.ConverterFactory.Blob; import com.tibco.as.io.AbstractExport; import com.tibco.as.io.AbstractImport; import com.tibco.as.io.Operation; import com.tibco.as.excel.ExcelExport; import com.tibco.as.excel.ExcelImport; import com.tibco.as.file.text.delimited.DelimitedExport; import com.tibco.as.file.text.delimited.DelimitedImport; import com.tibco.as.space.browser.BrowserDef.BrowserType; import com.tibco.as.spacebar.ui.SpaceBarPlugin; import com.tibco.as.spacebar.ui.editor.SpaceEditorExport; /** * Constant definitions for plug-in preferences */ public class Preferences { public static final String SPACE_EDITOR_THEME = "spaceEditorTheme"; public static final String SPACE_EDITOR_BROWSE_TIME_SCOPE = "spaceEditorBrowseTimeScope"; public static final String SPACE_EDITOR_BROWSE_PREFETCH = "spaceEditorBrowsePrefetch"; public static final String SPACE_EDITOR_BROWSE_TIMEOUT = "spaceEditorBrowseTimeout"; public static final String SPACE_EDITOR_BROWSE_QUERY_LIMIT = "spaceEditorBrowseQueryLimit"; public static final String SPACE_EDITOR_BROWSE_LIMIT = "spaceEditorBrowseLimit"; public static final String SPACE_EDITOR_BOOLEAN_FORMAT = "spaceEditorBooleanFormat"; public static final String SPACE_EDITOR_DATE_FORMAT = "spaceEditorDateFormat"; public static final String SPACE_EDITOR_DECIMAL_FORMAT = "spaceEditorDecimalFormat"; public static final String SPACE_EDITOR_INTEGER_FORMAT = "spaceEditorIntegerFormat"; public static final String SPACE_EDITOR_TIME_ZONE = "spaceEditorTimeZone"; public static final String SPACE_EDITOR_COLOR_BLINK = "spaceEditorColorBlink"; public static final String SPACE_EDITOR_COLOR_BLINK_UP = "spaceEditorColorBlinkUp"; public static final String SPACE_EDITOR_COLOR_BLINK_DOWN = "spaceEditorColorBlinkDown"; public static final String SPACE_EDITOR_CLIPBOARD_SEPARATOR = "spaceEditorClipboardSeparator"; public static final String SPACE_EDITOR_CLIPBOARD_HEADER = "spaceEditorClipboardHeader"; public static final String EXPORT_TIME_SCOPE = "exportTimeScope"; public static final String EXPORT_BATCH_SIZE = "exportBatchSize"; public static final String EXPORT_WORKER_COUNT = "exportWorkerCount"; public static final String EXPORT_TIMEOUT = "exportTimeout"; public static final String EXPORT_PREFETCH = "exportPrefetch"; public static final String EXPORT_QUERY_LIMIT = "exportQueryLimit"; public static final String EXPORT_CSV_AUTOFLUSH = "exportCSVAutoflush"; public static final String EXPORT_CSV_HEADER = "exportCSVNoHeader"; public static final String EXPORT_CSV_SEPARATOR = "exportCSVSeparator"; public static final String EXPORT_CSV_QUOTE_CHARACTER = "exportCSVQuoteChar"; public static final String EXPORT_CSV_ESCAPE_CHARACTER = "exportCSVEscapeChar"; public static final String EXPORT_CSV_FORMAT_BLOB = "exportCSVFormatBlob"; public static final String EXPORT_CSV_FORMAT_BOOLEAN = "exportCSVFormatBoolean"; public static final String EXPORT_CSV_FORMAT_DATE = "exportCSVFormatDate"; public static final String EXPORT_CSV_FORMAT_INTEGER = "exportCSVFormatInteger"; public static final String EXPORT_CSV_FORMAT_DECIMAL = "exportCSVFormatDecimal"; public static final String EXPORT_EXCEL_HEADER = "exportExcelHeader"; public static final String EXPORT_EXCEL_VERSION = "exportExcelVersion"; public static final String EXPORT_EXCEL_FORMAT_BLOB = "exportExcelFormatBlob"; public static final String EXPORT_EXCEL_FORMAT_DATE = "exportExcelFormatDate"; public static final String IMPORT_BATCH_SIZE = "importBatchSize"; public static final String IMPORT_WORKER_COUNT = "importWorkerCount"; public static final String IMPORT_OPERATION = "importOperation"; public static final String IMPORT_DISTRIBUTION_ROLE = "distributionRole"; public static final String IMPORT_WAIT_FOR_READY_TIMEOUT = "importWaitForReadyTimeout"; public static final String IMPORT_CSV_HEADER = "importCSVHeader"; public static final String IMPORT_CSV_ESCAPE_CHARACTER = "importCSVEscape"; public static final String IMPORT_CSV_IGNORE_LEADING_WHITE_SPACE = "importCSVIgnoreLeadingWhiteSpace"; public static final String IMPORT_CSV_QUOTE_CHARACTER = "importCSVQuoteChar"; public static final String IMPORT_CSV_SEPARATOR = "importCSVSeparator"; public static final String IMPORT_CSV_STRICT_QUOTES = "importCSVStrictQuotes"; public static final String IMPORT_CSV_FORMAT_BLOB = "importCSVFormatBlob"; public static final String IMPORT_CSV_FORMAT_BOOLEAN = "importCSVFormatBoolean"; public static final String IMPORT_CSV_FORMAT_DATE = "importCSVFormatDate"; public static final String IMPORT_CSV_FORMAT_INTEGER = "importCSVFormatInteger"; public static final String IMPORT_CSV_FORMAT_DECIMAL = "importCSVFormatDecimal"; public static final String IMPORT_EXCEL_HEADER = "importExcelHeader"; public static final String IMPORT_EXCEL_FORMAT_BLOB = "importExcelFormatBlob"; public static final String TIMESCOPE_ALL = "ALL"; public static final String TIMESCOPE_NEW = "NEW"; public static final String TIMESCOPE_CURRENT = "CURRENT"; public static final String TIMESCOPE_SNAPSHOT = "SNAPSHOT"; public static final String THEME_DEFAULT = "Default"; public static final String THEME_MODERN = "Modern"; public static final String THEME_DARK = "Dark"; public static String getPreferenceName(String... parts) { String name = ""; for (int index = 0; index < parts.length; index++) { if (index > 0) { name += ":"; } name += parts[index]; } return name; } public static void configureExport(AbstractExport export) { export.setBrowserType(BrowserType.GET); export.setBatchSize(getInteger(EXPORT_BATCH_SIZE)); export.setPrefetch(getLong(EXPORT_PREFETCH)); export.setQueryLimit(getLong(EXPORT_QUERY_LIMIT)); export.setTimeout(getLong(EXPORT_TIMEOUT)); export.setTimeScope(com.tibco.as.space.browser.BrowserDef.TimeScope .valueOf(getString(EXPORT_TIME_SCOPE))); export.setWorkerCount(getInteger(EXPORT_WORKER_COUNT)); } public static void configureImport(AbstractImport config) { config.setBatchSize(getInteger(IMPORT_BATCH_SIZE)); config.setWorkerCount(getInteger(IMPORT_WORKER_COUNT)); config.setOperation(Operation.valueOf(getString(IMPORT_OPERATION))); config.setDistributionRole(com.tibco.as.space.Member.DistributionRole .valueOf(getString(IMPORT_DISTRIBUTION_ROLE))); config.setWaitForReadyTimeout(getLong(IMPORT_WAIT_FOR_READY_TIMEOUT)); } public static Long getBrowseTimeout(String timeScope) { return getLong(getPreferenceName(SPACE_EDITOR_BROWSE_TIMEOUT, timeScope)); } public static Long getBrowsePrefetch(String timeScope) { return getLong(getPreferenceName(SPACE_EDITOR_BROWSE_PREFETCH, timeScope)); } private static IPreferenceStore getPreferenceStore() { return SpaceBarPlugin.getDefault().getPreferenceStore(); } public static Long getBrowseQueryLimit(String timeScope) { return getLong(getPreferenceName(SPACE_EDITOR_BROWSE_QUERY_LIMIT, timeScope)); } public static Integer getInteger(String name) { int result = getPreferenceStore().getInt(name); if (result == IPreferenceStore.INT_DEFAULT_DEFAULT) { return null; } return result; } public static Long getLong(String name) { long result = getPreferenceStore().getLong(name); if (result == IPreferenceStore.LONG_DEFAULT_DEFAULT) { return null; } return result; } public static Boolean getBoolean(String name) { boolean result = getPreferenceStore().getBoolean(name); if (result == IPreferenceStore.BOOLEAN_DEFAULT_DEFAULT) { return null; } return result; } public static Character getChar(String name) { return getChar(name, null); } public static Character getChar(String name, Character defaultValue) { String value = getPreferenceStore().getString(name); if (IPreferenceStore.STRING_DEFAULT_DEFAULT.equals(value)) { return defaultValue; } return value.charAt(0); } public static String getString(String name) { String value = getPreferenceStore().getString(name); if (IPreferenceStore.STRING_DEFAULT_DEFAULT.equals(value)) { return null; } return value; } /** * * @param name * @return color for that preference name, or null if no color set */ public static Color getColor(String name) { return new Color(Display.getDefault(), PreferenceConverter.getColor( getPreferenceStore(), name)); } public static TimeZone getSpaceEditorTimeZone() { String id = getString(Preferences.SPACE_EDITOR_TIME_ZONE); if (id == null) { return null; } return TimeZone.getTimeZone(id); } public static ExcelImport getExcelImport() { ExcelImport excelImport = new ExcelImport(); excelImport.setHeader(getBoolean(IMPORT_EXCEL_HEADER)); return excelImport; } public static void configureExcelExport(ExcelExport config) { configureExport(config); config.setHeader(getBoolean(EXPORT_EXCEL_HEADER)); Attributes conversion = new Attributes(); conversion.put(Attribute.DATE, getString(EXPORT_EXCEL_FORMAT_DATE)); conversion.put(Attribute.BLOB, Blob.valueOf(getString(EXPORT_EXCEL_FORMAT_BLOB))); config.getAttributes().putAll(conversion); } public static void configureExcelImport(ExcelImport config) { configureImport(config); config.setHeader(Preferences .getBoolean(Preferences.IMPORT_EXCEL_HEADER)); Attributes conversion = new Attributes(); conversion.put(Attribute.BLOB, Blob.valueOf(getString(IMPORT_EXCEL_FORMAT_BLOB))); config.getAttributes().putAll(conversion); } public static SpaceEditorExport getSpaceEditorExport(String timeScope) { SpaceEditorExport export = new SpaceEditorExport(); export.setBrowserType(BrowserType.GET); export.setLimit(getLong(Preferences.SPACE_EDITOR_BROWSE_LIMIT)); export.setTimeScope(com.tibco.as.space.browser.BrowserDef.TimeScope .valueOf(timeScope)); export.setPrefetch(getBrowsePrefetch(timeScope)); export.setTimeout(getBrowseTimeout(timeScope)); export.setQueryLimit(getBrowseQueryLimit(timeScope)); return export; } public static void configureDelimitedImport(DelimitedImport config) { configureImport(config); config.setEscapeChar(getChar(IMPORT_CSV_ESCAPE_CHARACTER)); config.setHeader(getBoolean(IMPORT_CSV_HEADER)); config.setQuoteChar(getChar(IMPORT_CSV_QUOTE_CHARACTER)); config.setSeparator(getChar(IMPORT_CSV_SEPARATOR)); Attributes conversion = new Attributes(); conversion.put(Attribute.BLOB, Blob.valueOf(getString(IMPORT_CSV_FORMAT_BLOB))); conversion.put(Attribute.BOOLEAN, getString(IMPORT_CSV_FORMAT_BOOLEAN)); conversion.put(Attribute.DATE, getString(IMPORT_CSV_FORMAT_DATE)); conversion.put(Attribute.INTEGER, getString(IMPORT_CSV_FORMAT_INTEGER)); conversion.put(Attribute.DECIMAL, getString(IMPORT_CSV_FORMAT_DECIMAL)); config.getAttributes().putAll(conversion); } public static void configureDelimitedExport(DelimitedExport config) { configureExport(config); config.setEscapeChar(getChar(EXPORT_CSV_ESCAPE_CHARACTER)); config.setHeader(getBoolean(EXPORT_CSV_HEADER)); config.setQuoteChar(getChar(EXPORT_CSV_QUOTE_CHARACTER)); config.setSeparator(getChar(EXPORT_CSV_SEPARATOR)); Attributes conversion = new Attributes(); conversion.put(Attribute.BLOB, Blob.valueOf(getString(EXPORT_CSV_FORMAT_BLOB))); conversion.put(Attribute.BOOLEAN, getString(EXPORT_CSV_FORMAT_BOOLEAN)); conversion.put(Attribute.DATE, getString(EXPORT_CSV_FORMAT_DATE)); conversion.put(Attribute.INTEGER, getString(EXPORT_CSV_FORMAT_INTEGER)); conversion.put(Attribute.DECIMAL, getString(EXPORT_CSV_FORMAT_DECIMAL)); config.getAttributes().putAll(conversion); } }