/******************************************************************************* * Copyright (c) 2008 Symbian Software Systems 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: * Andrew Ferguson (Symbian) - Initial implementation *******************************************************************************/ package org.eclipse.cdt.ui.text; import org.eclipse.jface.preference.IPreferenceStore; import org.eclipse.jface.text.rules.IToken; import org.eclipse.cdt.ui.IPropertyChangeParticipant; import org.eclipse.cdt.ui.PreferenceConstants; /** * An ITokenStore manages a set of tokens for a specified set of color property identifiers. Responsibilities include * <ul> * <li> Reacting to changes to preferences in a specified {@link IPreferenceStore} * <li> Managing whether further styles (bold, italic, strikethrough, underline) should be applied * <li> Coping with * </ul> * * ITokenStore assumes style preferences are stored under the following names * <p> * Preference color key + {@link PreferenceConstants#EDITOR_BOLD_SUFFIX} are used * to retrieve whether the token is rendered in bold. * </p> * <p> * Preference color key + {@link PreferenceConstants#EDITOR_ITALIC_SUFFIX} are used * to retrieve whether the token is rendered in italic. * </p> * <p> * Preference color key + {@link PreferenceConstants#EDITOR_STRIKETHROUGH_SUFFIX} are used * to retrieve whether the token is rendered in strikethrough. * </p> * <p> * Preference color key + {@link PreferenceConstants#EDITOR_UNDERLINE_SUFFIX} are used * to retrieve whether the token is rendered in underline. * </p> * <p> * Clients may implement this interface. * </p> * * @see ITokenStoreFactory * @since 5.0 */ public interface ITokenStore extends IPropertyChangeParticipant { /** * Ensures any IToken objects that will be <em>or have been</em> returned are * initialized for display. */ void ensureTokensInitialised(); /** * @param property * @return a token for the specified property. The Token may not be suitable for use if the * current Display is null. Clients should call ITokenStoreFactory#ensureTokensInitialised() at the * point of token use in case this token store was originally initialized before a display was available. */ IToken getToken(String property); /** * @return The preference store used to read token styling preferences from. */ IPreferenceStore getPreferenceStore(); }