/*******************************************************************************
 *  Copyright (c) 2000, 2017 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;
	public static String AvailableLogicalStructuresAction_2;
	public static String AvailableLogicalStructuresAction_3;

	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;
}
