/*******************************************************************************
 * Copyright (c) 2000, 2003 IBM Corporation and others.
 * All rights reserved. This program and the accompanying materials 
 * are made available under the terms of the Common Public License v1.0
 * which accompanies this distribution, and is available at
 * http://www.eclipse.org/legal/cpl-v10.html
 * 
 * Contributors:
 *     IBM Corporation - initial API and implementation
 *******************************************************************************/
package org.eclipse.ui.examples.readmetool;

/**
 * This interface contains constants for use only within the
 * Readme example.
 */
public interface IReadmeConstants {
	public static final String PLUGIN_ID ="org.eclipse.ui.examples.readmetool"; //$NON-NLS-1$
	public static final String PREFIX = PLUGIN_ID+"."; //$NON-NLS-1$
	public static final String P_CONTENT_OUTLINE=PREFIX+"content_outline"; //$NON-NLS-1$
	public static final String P_SECTIONS=PREFIX+"sections"; //$NON-NLS-1$
	public static final String EXTENSION = "readme"; //$NON-NLS-1$
	public static final String TAG_PARSER = "parser"; //$NON-NLS-1$
	public static final String ATT_CLASS = "class"; //$NON-NLS-1$
	public static final String PP_SECTION_PARSER = "sectionParser"; //$NON-NLS-1$

	// Global actions
	public static final String RETARGET2 = PREFIX + "retarget2"; //$NON-NLS-1$
	public static final String LABELRETARGET3 = PREFIX + "labelretarget3"; //$NON-NLS-1$

	public static final String ACTION_SET_RETARGET4 = "org_eclipse_ui_examples_readmetool_readmeRetargetAction"; //$NON-NLS-1$
	public static final String ACTION_SET_LABELRETARGET5 = "org_eclipse_ui_examples_readmetool_readmeRelabelRetargetAction"; //$NON-NLS-1$

	// Preference constants
	public static final String PRE_CHECK1=PREFIX+"check1"; //$NON-NLS-1$
	public static final String PRE_CHECK2=PREFIX+"check2"; //$NON-NLS-1$
	public static final String PRE_CHECK3=PREFIX+"check3"; //$NON-NLS-1$
	public static final String PRE_RADIO_CHOICE = PREFIX+"radio_choice"; //$NON-NLS-1$
	public static final String PRE_TEXT = PREFIX+"text"; //$NON-NLS-1$

	// Help context ids
	public static final String EDITOR_ACTION1_CONTEXT = PREFIX+"editor_action1_context"; //$NON-NLS-1$
	public static final String EDITOR_ACTION2_CONTEXT = PREFIX+"editor_action2_context"; //$NON-NLS-1$
	public static final String EDITOR_ACTION3_CONTEXT = PREFIX+"editor_action3_context"; //$NON-NLS-1$
	public static final String SECTIONS_VIEW_CONTEXT = PREFIX+"sections_view_context"; //$NON-NLS-1$
	public static final String PREFERENCE_PAGE_CONTEXT = PREFIX+"preference_page_context"; //$NON-NLS-1$
	public static final String PROPERTY_PAGE_CONTEXT = PREFIX+"property_page_context"; //$NON-NLS-1$
	public static final String PROPERTY_PAGE2_CONTEXT = PREFIX+"property_page2_context"; //$NON-NLS-1$
	public static final String EDITOR_CONTEXT = PREFIX+"editor_context"; //$NON-NLS-1$
	public static final String SECTIONS_DIALOG_CONTEXT = PREFIX+"sections_dialog_context"; //$NON-NLS-1$
	public static final String CONTENT_OUTLINE_PAGE_CONTEXT = PREFIX+"content_outline_page_context"; //$NON-NLS-1$
	public static final String CREATION_WIZARD_PAGE_CONTEXT = PREFIX+"creation_wizard_page_context"; //$NON-NLS-1$
	
	// Marker attributes
	public static final String MARKER_ATT_ID = PREFIX+"id"; //$NON-NLS-1$
	public static final String MARKER_ATT_LEVEL = PREFIX+"level"; //$NON-NLS-1$
	public static final String MARKER_ATT_DEPT = PREFIX+"department"; //$NON-NLS-1$
	public static final String MARKER_ATT_CODE = PREFIX+"code"; //$NON-NLS-1$
	public static final String MARKER_ATT_LANG = PREFIX+"language"; //$NON-NLS-1$
}
