/*******************************************************************************
 * 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.views.properties;

/**
 * This interface documents the property constants used by the resource
 * property source.
 */
public interface IResourcePropertyConstants {
	/** 
	 * The <code>IResource</code> property key for name.
	 */
	public static final String	P_LABEL_RES = PropertiesMessages.getString("IResourcePropertyConstants.name"); //$NON-NLS-1$

	/** 
	 * The <code>IResource</code> property key for path.
	 */
	public static final String	P_PATH_RES = "org.eclipse.ui.path"; //$NON-NLS-1$

	/** 
	 * The <code>IResource</code> property key for display path.
	 */
	public static final String  P_DISPLAYPATH_RES = PropertiesMessages.getString("IResourcePropertyConstants.path"); //$NON-NLS-1$

	/** 
	 * The <code>IResource</code> property key for read-only.
	 */
	public static final String	P_EDITABLE_RES = "org.eclipse.ui.editable"; //$NON-NLS-1$

	/** 
	 * The <code>IResource</code> property key for display read-only.
	 */
	public static final String  P_DISPLAYEDITABLE_RES = PropertiesMessages.getString("IResourcePropertyConstants.editable"); //$NON-NLS-1$

	/** 
	 * The <code>IResource</code> property key for read-only.
	 */
	public static final String P_DERIVED_RES = "org.eclipse.ui.derived"; //$NON-NLS-1$

	/** 
	 * The <code>IResource</code> property key for display read-only.
	 */
	public static final String P_DISPLAYDERIVED_RES = PropertiesMessages.getString("IResourcePropertyConstants.derived"); //$NON-NLS-1$

	/** 
	 * The <code>IResource</code> property key for location.
	 */
	public static final String P_LOCATION_RES = "org.eclipse.ui.location"; //$NON-NLS-1$
	
	/** 
	 * The <code>IResource</code> property key for display location.
	 */
	public static final String P_DISPLAYLOCATION_RES = PropertiesMessages.getString("IResourcePropertyConstants.location"); //$NON-NLS-1$

	/** 
	 * The <code>IResource</code> property key for resolved location.
	 */
	public static final String P_RESOLVED_LOCATION_RES = "org.eclipse.ui.resolvedLocation"; //$NON-NLS-1$,
	
	/** 
	 * The <code>IResource</code> property key for display resolved location.
	 */
	public static final String P_DISPLAYRESOLVED_LOCATION_RES = PropertiesMessages.getString("IResourcePropertyConstants.resolvedLocation"); //$NON-NLS-1$

	/** 
	 * The <code>IResource</code> property key for linked.
	 */
	public static final String P_LINKED_RES = "org.eclipse.ui.linked"; //$NON-NLS-1$,
	
	/** 
	 * The <code>IResource</code> property key for display linked.
	 */
	public static final String P_DISPLAYLINKED_RES = PropertiesMessages.getString("IResourcePropertyConstants.linked"); //$NON-NLS-1$

	/**
	 * The <code>IResource</code> category for the base values
	 */
	public static final String P_FILE_SYSTEM_CATEGORY = PropertiesMessages.getString("IResourcePropertyConstants.info"); //$NON-NLS-1$

	/** 
	 * The <code>IResource</code> property key for path.
	 */
	public static final String	P_SIZE_RES = "org.eclipse.ui.size"; //$NON-NLS-1$
	
	/**
	 * The <code>IResource</code> property key for displaying size
	 */
	public static final String P_DISPLAY_SIZE = PropertiesMessages.getString("IResourcePropertyConstants.size"); //$NON-NLS-1$

	/** 
	 * The <code>IResource</code> property key for path.
	 */
	public static final String	P_LAST_MODIFIED_RES = "org.eclipse.ui.lastmodified"; //$NON-NLS-1$

	/**
	 * The <code>IResource</code> category for last modified
	 */
	public static final String P_DISPLAY_LAST_MODIFIED = PropertiesMessages.getString("IResourcePropertyConstants.lastModified"); //$NON-NLS-1$
	
}
