package net.jeeeyul.eclipse.themes.ui.preference.preset;
import java.io.File;
/**
* @since 2.1
*/
public interface IJTPresetManager {
/**
* The id of default preset.
*/
public static final String DEFAULT_PRESET_ID = "net.jeeeyul.eclipse.themes.preset.default";
/**
*
* @return A java {@link File} that contains user preset files.
*/
public abstract File getUserPresetFolder();
/**
* Fire a invalidate event that describe changes of user presets.
*
* @see #addListener(IJTPresetManagerListener)
* @see #removeListener(IJTPresetManagerListener)
*/
public abstract void invalidateUserPreset();
/**
* Adds a preset manager listener.
*
* @param listener
* listener to attach.
*/
public void addListener(IJTPresetManagerListener listener);
/**
* Removes a preset manager listener.
*
* @param listener
* listener to detach.
*/
public void removeListener(IJTPresetManagerListener listener);
/**
*
* @return default preset.
*/
public IJTPreset getDefaultPreset();
/**
* returns a {@link IJTPresetCategory} for given id.
*
* @param id
* The id of {@link IJTPresetCategory} to retrieve.
* @return {@link IJTPresetCategory}.
*/
public IJTPresetCategory getCategory(String id);
/**
*
* @return All {@link IJTPresetCategory}s.
*/
public IJTPresetCategory[] getCategories();
/**
*
* @return User Preset Category.
*/
public IJTPresetCategory getUserCategory();
/**
*
* @return Default category.
*/
public IJTPresetCategory getDefaultCategory();
}