/*******************************************************************************
* Copyright 2012 Geoscience Australia
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
******************************************************************************/
package au.gov.ga.earthsci.bookmark.ui.preferences;
import au.gov.ga.earthsci.bookmark.BookmarkFactory;
import au.gov.ga.earthsci.bookmark.model.IBookmark;
/**
* An interface for object that can provide user preferences for the bookmarks
* feature and its components.
*
* @author James Navin (james.navin@ga.gov.au)
*/
public interface IBookmarksPreferences
{
String QUALIFIER_ID = "au.gov.ga.earthsci.bookmarks"; //$NON-NLS-1$
String DEFAULT_TRANSITION_DURATION = "au.gov.ga.earthsci.bookmarks.preferences.defaultTransitionDuration"; //$NON-NLS-1$
String PLAY_BOOKMARKS_WAIT_DURATION = "au.gov.ga.earthsci.bookmarks.preferences.playBookmarksWaitDuration"; //$NON-NLS-1$
String ASK_LIST_DELETE_CONFIRM = "au.gov.ga.earthsci.bookmarks.preferences.askListDeleteConfirmation"; //$NON-NLS-1$
String DEFAULT_PROPERTIES = "au.gov.ga.earthsci.bookmarks.preferences.defaultProperties"; //$NON-NLS-1$
/**
* Returns the default duration to be used when transitioning from the
* current world state to the saved state of a bookmark.
*
* @return The transition duration in milliseconds
*
* @see IBookmark#getTransitionDuration()
*/
long getDefaultTransitionDuration();
/**
* Returns the duration (in milliseconds) that bookmarks are paused at
* during playback of a bookmarks list
*
* @return The duration (in milliseconds) to wait on a bookmark during
* playback
*/
long getPlayBookmarksWaitDuration();
/**
* Returns the default list of bookmark properties that are to be included
* when new bookmarks are created.
*
* @return The list of default bookmark property types to include
*
* @see BookmarkFactory#createBookmark(String...)
*/
String[] getDefaultPropertyTypes();
/**
* Returns whether to ask for list deletion confirmation
*
* @return <code>true</code> if the user wishes to be prompted;
* <code>false</code> otherwise.
*/
boolean askForListDeleteConfirmation();
/**
* Set whether or not to ask for list deletion confirmation
*
* @param ask
* whether or not to ask
*/
void setAskForListDeleteConfirmation(boolean ask);
}