/*******************************************************************************
 *  Copyright (c) 2000, 2009 IBM Corporation 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:
 *  IBM - Initial API and implementation
 *******************************************************************************/
package org.eclipse.debug.internal.ui.views.variables;

import org.eclipse.osgi.util.NLS;

public class VariablesViewMessages extends NLS {
	private static final String BUNDLE_NAME = "org.eclipse.debug.internal.ui.views.variables.VariablesViewMessages";//$NON-NLS-1$

	public static String DetailPaneMaxLengthDialog_0;
	public static String DetailPaneMaxLengthDialog_1;
	public static String DetailPaneMaxLengthDialog_2;
	public static String DetailPaneMaxLengthDialog_3;
	public static String LogicalStructureCache_0;
	public static String ToggleObjectBrowsersAction_1;
	public static String VariablesView_41;
	public static String ExpressionView_4;

	public static String AvailableLogicalStructuresAction_0;
	public static String AvailableLogicalStructuresAction_1;

	static {
		// load message values from bundle file
		NLS.initializeMessages(BUNDLE_NAME, VariablesViewMessages.class);
	}

	public static String VariablesView_40;

	public static String ToggleShowColumnsAction_0;

	public static String ToggleShowColumnsAction_1;
}
