/*******************************************************************************
 *  Copyright (c) 2000, 2010 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
 *  Wind River Systems - Ted Williams - [Memory View] Memory View: Workflow Enhancements (Bug 215432)
 *  Remy Chi Jian Suen - Make WorkingDirectoryBlock from JDT a Debug API class (Bug 221973)
 *******************************************************************************/
package org.eclipse.debug.internal.ui;

import org.eclipse.osgi.util.NLS;

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

    public static String AbstractAsyncTableRendering_2;

	public static String AbstractDebugCheckboxSelectionDialog_0;

	public static String AbstractDebugCheckboxSelectionDialog_1;

	public static String DebugUIPlugin_23;
	public static String DebugUIPlugin_24;
	public static String DebugUIPlugin_0;

	public static String DebugUIPlugin_25;
	public static String DebugUIPlugin_Build_error__Check_log_for_details__2;
	public static String DebugUIPlugin_Run_Debug_1;

	public static String DefaultLabelProvider__disconnected__1;

	public static String DefaultLabelProvider_0;
	public static String DefaultLabelProvider_1;
	public static String DefaultLabelProvider__unknown__1;
	public static String DefaultLabelProvider_Breakpoint_1;
	public static String DefaultLabelProvider_12;
	public static String DefaultLabelProvider_13;
	public static String DefaultLabelProvider_15;
	public static String DefaultLabelProvider_16;
	public static String MultipleInputDialog_6;
	public static String MultipleInputDialog_7;
	public static String MultipleInputDialog_8;

	public static String SwitchMemoryBlockAction_4;

    public static String WorkingDirectoryStatusHandler_0;
	public static String WorkingDirectoryStatusHandler_Eclipse_Runtime_1;

	public static String DebugUITools_3;
	public static String DebugUITools_Error_1;
	public static String DebugUITools_Exception_occurred_during_launch_2;

	public static String InstructionPointerAnnotation_0;
	public static String InstructionPointerAnnotation_1;

	public static String DefaultLabelProvider_17;

	//
	// Action
	//
	public static String AddMemoryBlockAction_title;
	public static String AddMemoryBlockAction_tooltip;
	public static String AddMemoryBlockAction_failed;
	public static String AddMemoryBlockAction_input_invalid;
	public static String AddMemoryRenderingDialog_Memory_Monitor;
	public static String AddMemoryRenderingAction_Add_renderings;
	public static String AddMemoryRenderingDialog_Memory_renderings;
	public static String AddMemoryRenderingDialog_Add_memory_rendering;
	public static String AddMemoryBlockAction_noMemoryBlock;
	public static String AddMemoryRenderingDialog_Add_New;
	public static String AddMemoryRenderingDialog_Unknown;
	public static String RemoveMemoryBlockAction_title;
	public static String RemoveMemoryBlockAction_tooltip;
	public static String MemoryViewCellModifier_failure_title;
	public static String MemoryViewCellModifier_failed;
	public static String MemoryViewCellModifier_data_is_invalid;
	public static String ResetMemoryBlockAction_title;
	public static String ResetMemoryBlockAction_tootip;
	public static String GoToAddressAction_title;
	public static String GoToAddressAction_Go_to_address_failed;
	public static String GoToAddressAction_Address_is_invalid;
	public static String CopyViewToClipboardAction_title;
	public static String CopyViewToClipboardAction_tooltip;
	public static String PrintViewTabAction_title;
	public static String PrintViewTabAction_tooltip;
	public static String PrintViewTabAction_jobtitle;
	public static String ReformatAction_title;

	//
	// Dialog
	//
	public static String MonitorMemoryBlockDialog_EnterExpressionToMonitor;
	public static String MonitorMemoryBlockDialog_MonitorMemory;
	public static String MonitorMemoryBlockDialog_NumberOfBytes;
	public static String GoToAddressDialog_Address;
	public static String GoToAddressDialog_GoToAddress;
	public static String CodePagesPrefDialog_1;
	public static String CodePagesPrefDialog_2;
	public static String CodePagesPrefDialog_4;
	public static String CodePagesPrefDialog_6;
	public static String CodePagesPrefDialog_7;
	public static String CodePagesPrefDialog_8;
	public static String CodePagesPrefDialog_9;
	public static String CodePagesPrefDialog_0;

	//
	// View Tab
	//
	public static String MemoryView_Memory_monitors;
	public static String MemoryBlocksTreeViewPane_0;
	public static String MemoryBlocksTreeViewPane_1;
	public static String MemoryBlocksTreeViewPane_2;
	public static String MemoryView_Memory_renderings;
	public static String MemoryViewContentProvider_Unable_to_retrieve_content;

	//
	// Views
	//
	public static String RemoveMemoryRenderingAction_Remove_rendering;
	public static String EmptyViewTab_Unable_to_create;
	public static String CreateRenderingTab_Memory_monitor;
	public static String CreateRenderingTab_Select_renderings_to_create;
	public static String CreateRenderingTab_Add_renderings;
	public static String CreateRenderingTab_0;
	public static String CreateRenderingTab_1;
	public static String CreateRenderingTab_2;

	public static String CreateRenderingTab_label;

	public static String CreateRendering_0;
	public static String CreateRendering_1;

	//
	// Managers
	//
	public static String ShowAddressColumnAction_0;
	public static String ShowAddressColumnAction_1;
	public static String ImageDescriptorRegistry_0;
	public static String ErrorRendering_0;
	public static String AbstractTableRendering_1;
	public static String AbstractTableRendering_2;
	public static String AbstractTableRendering_3;
	public static String AbstractTableRendering_4;
	public static String AbstractTableRendering_6;
	public static String AbstractTableRendering_8;
	public static String AbstractTableRendering_10;
	public static String AbstractTableRendering_11;
	public static String AbstractTableRendering_12;
	public static String AbstractTableRendering_13;
	public static String AbstractTableRendering_16;
	public static String AbstractTableRendering_18;
	public static String AbstractTableRendering_20;
	public static String SetPaddedStringDialog_0;
	public static String SetPaddedStringDialog_1;


	public static String TableRenderingPropertiesPage_1;
	public static String TableRenderingPropertiesPage_2;
	public static String TableRenderingPropertiesPage_3;
	public static String TableRenderingPropertiesPage_4;
	public static String TableRenderingPropertiesPage_5;
	public static String TableRenderingPropertiesPage_6;
	public static String TableRenderingPropertiesPage_8;
	public static String TableRenderingPropertiesPage_9;
	public static String TableRenderingPropertiesPage_10;
	public static String TableRenderingPropertiesPage_11;
	public static String TableRenderingPropertiesPage_12;
	public static String TableRenderingPropertiesPage_13;
	public static String TableRenderingPropertiesPage_14;
	public static String TableRenderingPropertiesPage_15;
	public static String TableRenderingPropertiesPage_16;
	public static String TableRenderingPropertiesPage_17;
	public static String TableRenderingPropertiesPage_18;
	public static String TableRenderingPropertiesPage_19;
	public static String TableRenderingPropertiesPage_20;
	public static String TableRenderingPropertiesPage_21;
	public static String TableRenderingPropertiesPage_22;
	public static String TableRenderingPropertiesPage_23;
	public static String TableRenderingPropertiesPage_25;
	public static String TableRenderingPropertiesPage_26;
	public static String TableRenderingPrefAction_0;
	public static String TableRenderingPreferencePage_0;
	public static String TableRenderingPreferencePage_2;
	public static String TableRenderingPreferencePage_3;
	public static String TableRenderingPreferencePage_4;
	public static String TableRenderingPreferencePage_5;
	public static String TableRenderingPreferencePage_6;
	public static String TableRenderingPreferencePage_7;
	public static String TableRenderingPreferencePage_8;
	public static String TableRenderingPreferencePage_9;
	public static String TableRenderingPreferencePage_10;
	public static String TableRenderingContentProvider_0;
	public static String TableRenderingContentProvider_1;
	public static String TableRenderingContentProvider_2;
	public static String SwitchMemoryBlockAction_0;
	public static String ResetMemoryBlockPreferencePage_0;
	public static String ResetMemoryBlockPreferencePage_1;
	public static String ResetMemoryBlockPreferencePage_2;
	public static String ResetMemoryBlockPreferencePage_3;
	public static String FormatTableRenderingAction_0;
	public static String FormatTableRenderingAction_1;
	public static String FormatTableRenderingAction_2;
	public static String FormatTableRenderingAction_3;
	public static String FormatTableRenderingAction_4;
	public static String FormatTableRenderingAction_5;
	public static String FormatTableRenderingAction_6;
	public static String FormatTableRenderingAction_7;
	public static String FormatTableRenderingAction_8;
	public static String FormatTableRenderingAction_9;
	public static String FormatTableRenderingAction_11;
	public static String FormatTableRenderingAction_13;
	public static String FormatTableRenderingAction_15;
	public static String FormatTableRenderingAction_16;
	public static String FormatTableRenderingDialog_0;
	public static String FormatTableRenderingDialog_1;
	public static String FormatTableRenderingDialog_2;
	public static String FormatTableRenderingDialog_3;
	public static String FormatTableRenderingDialog_4;
	public static String FormatTableRenderingDialog_5;
	public static String AbstractAsyncTableRendering_1;
	public static String CreateRendering_2;
	public static String SetPaddedStringPreferencePage_0;
	public static String ViewPaneOrientationAction_0;
	public static String ViewPaneOrientationAction_1;
	public static String ViewPaneOrientationAction_2;
	public static String ViewPaneOrientationAction_3;
	public static String GoToAddressComposite_0;
	public static String GoToAddressComposite_1;
	public static String GoToAddressComposite_2;
	public static String GoToAddressComposite_4;
	public static String GoToAddressComposite_5;
	public static String GoToAddressComposite_6;
	public static String GoToAddressComposite_7;

	//
	// Blocks
	//
	public static String WorkingDirectoryBlock_4;
	public static String WorkingDirectoryBlock_7;
	public static String WorkingDirectoryBlock_0;
	public static String WorkingDirectoryBlock_Working_Directory_8;
	public static String WorkingDirectoryBlock_10;
	public static String WorkingDirectoryBlock_12;
	public static String WorkingDirectoryBlock_17;
	public static String WorkingDirectoryBlock_18;
	public static String WorkingDirectoryBlock_19;
	public static String WorkingDirectoryBlock_20;
	public static String WorkingDirectoryBlock_1;
	public static String WorkingDirectoryBlock_Exception_occurred_reading_configuration___15;
		
	//
	// Elements
	// 
    public static String ExpressionManagerContentProvider_1;
	
	static {
		// load message values from bundle file
		NLS.initializeMessages(BUNDLE_NAME, DebugUIMessages.class);
	}
}
