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

import org.eclipse.osgi.util.NLS;

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

    public static String AbstractLaunchHistoryAction_0;
    public static String AbstractLaunchHistoryAction_1;
    public static String AbstractLaunchHistoryAction_2;
    public static String AbstractLaunchHistoryAction_3;
    public static String AbstractLaunchHistoryAction_4;

	public static String AbstractLaunchHistoryAction_5;

	public static String AbstractLaunchHistoryAction_6;
    
    public static String AddToFavoritesAction_1;
    public static String AddToFavoritesAction_2;
    public static String AddToFavoritesAction_3;

    public static String ChangeVariableValue_errorDialogMessage;
    public static String ChangeVariableValue_errorDialogTitle;
    public static String ChangeVariableValue_title;
    public static String ChangeVariableValue_toolTipText;
    public static String ChangeVariableValue_1;
    public static String ChangeVariableValue_2;
    public static String ChangeVariableValue_3;
    public static String ChangeVariableValue_4;

    public static String CollapseAllAction_0;

    public static String ConfigureColumnsAction_0;
	public static String ConfigureColumnsAction_1;
	public static String ConfigureColumnsAction_2;
    
    public static String CopyToClipboardActionDelegate_Problem_Copying_to_Clipboard_1;
    public static String CopyToClipboardActionDelegate_There_was_a_problem_when_accessing_the_system_clipboard__Retry__2;

	public static String DebugLastAction_0;

	public static String DebugLastAction_1;
	public static String DebugLastAction_2;
	public static String DebugLastAction_3;

	public static String DetailPaneAssignValueAction_0;
	public static String DetailPaneAssignValueAction_1;
	public static String DetailPaneAssignValueAction_2;
	public static String DetailPaneAssignValueAction_3;
	public static String DetailPaneAssignValueAction_4;
    public static String DetailPaneWordWrapAction_0;
    public static String DetailPaneMaxLengthAction_0;

    public static String EditLaunchConfigurationAction_1;

    public static String EnableBreakpointAction_Enable_breakpoint_s__failed_2;
    public static String EnableBreakpointAction_Enabling_breakpoints_3;
    public static String EnableBreakpointAction_Exceptions_occurred_enabling_the_breakpoint_s___4;

	public static String LaunchConfigurationAction_0;

    public static String OpenBreakpointMarkerAction__Go_to_File_1;
    public static String OpenBreakpointMarkerAction_Exceptions_occurred_attempting_to_open_the_editor_for_the_breakpoint_resource_2;
    public static String OpenBreakpointMarkerAction_Go_to_Breakpoint_1;
    public static String OpenBreakpointMarkerAction_Go_to_File_for_Breakpoint_2;

	public static String OpenLaunchDialogAction_1;

	public static String PasteWatchExpressionsAction_0;

	public static String ProfileLastAction_0;

	public static String ProfileLastAction_1;
	public static String ProfileLastAction_2;
	public static String ProfileLastAction_3;

    public static String RelaunchActionDelegate_An_exception_occurred_while_launching_2;
    public static String RelaunchActionDelegate_Launch_Failed_1;
    public static String RelaunchLastAction_Cannot_relaunch_1;
    public static String RelaunchLastAction_Cannot_relaunch___0___because_it_does_not_support__2__mode_2;
    public static String RelaunchLastAction_Error_relaunching_3;
    public static String RelaunchLastAction_Error_encountered_attempting_to_relaunch_4;
    
    public static String RemoveAllBreakpointsAction_0;
    public static String RemoveAllBreakpointsAction_1;
    public static String RemoveAllBreakpointsAction_2;
	public static String RemoveAllBreakpointsAction_3;
    public static String RemoveBreakpointAction_0;
    public static String RemoveBreakpointAction_1;
    public static String RemoveBreakpointAction_2;
    public static String RemoveBreakpointAction_3;
	public static String RemoveBreakpointAction_4;
	public static String RemoveBreakpointAction_5;
	public static String RemoveBreakpointAction_6;
    public static String RemoveBreakpointAction_Exceptions_occurred_attempting_to_remove_a_breakpoint__5;
    public static String RemoveBreakpointAction_Removing_a_breakpoint_4;

	public static String RetargetRunToLineAction_0;

	public static String RunLastAction_0;

	public static String RunLastAction_1;
	public static String RunLastAction_2;
	public static String RunLastAction_3;

    public static String ShowSupportedBreakpointsAction_Show_For_Selected;
    public static String ShowSupportedBreakpointsAction_tooltip;

    public static String ShowTypesAction_Show__Type_Names_1;
    public static String ShowTypesAction_Show_Type_Names;

    public static String SkipAllBreakpointsAction_0;
    public static String SkipAllBreakpointsAction_2;
    
    public static String TerminateAndRelaunchAction_0;
    public static String TerminateAndRelaunchAction_3;
    public static String TerminateAndRelaunchAction_4;
    public static String TerminateAndRemoveAction_0;
    public static String TerminateAndRemoveAction_3;
    
    public static String ToggleDetailPaneAction_1;
    public static String ToggleDetailPaneAction_2;
    public static String ToggleDetailPaneAction_3;
    public static String ToggleDetailPaneAction_4;
    public static String ToggleDetailPaneAction_5;
    public static String ToggleDetailPaneAction_6;
    public static String ToggleDetailPaneAction_8;
    public static String ToggleDetailPaneAction_9;
    public static String ToggleBreakpointAction_0;
    public static String ToggleBreakpointAction_1;
    public static String ToggleBreakpointAction_2;
	public static String ToggleStepFiltersAction_0;
	public static String ToggleStepFiltersAction_1;

    public static String WatchExpressionDialog_0;
    public static String WatchExpressionDialog_1;
    public static String WatchExpressionDialog_2;
    public static String WatchExpressionDialog_3;
    public static String WatchExpressionDialog_4;
	public static String WatchExpressionDialogMenu_0;
	public static String WatchExpressionDialogMenu_1;
	public static String WatchExpressionDialogMenu_2;
    public static String WatchAction_0;
    public static String WatchAction_1;
    
    public static String RunToLineAction_0;
    public static String RunToLineAction_1;
    public static String RunToLineHandler_0;
    public static String RunToLineActionDelegate_4;

    public static String RetargetAction_2;
    public static String RetargetAction_3;
    public static String ModifyWatchpointAction_0;
    public static String ModifyWatchpointAction_1;
    public static String RemoveAllExpressionsAction_0;
    public static String RemoveAllExpressionsAction_1;
    public static String LaunchShortcutsAction_1;
    public static String FindDialog_1;
    public static String FindDialog_3;
    public static String FindAction_0;

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

    public static String AbstractDebugActionDelegate_0;

    public static String RetargetAddMemoryBlockAction_0;
    public static String RetargetAddMemoryBlockAction_1;
    public static String AddMemoryRenderingActionDelegate_0;
    public static String AddMemoryRenderingActionDelegate_1;
    public static String AddMemoryRenderingActionDelegate_2;

    public static String RulerEnableDisableBreakpointAction_0;
    public static String RulerEnableDisableBreakpointAction_1;
    public static String RulerEnableDisableBreakpointAction_2;
    public static String RulerEnableDisableBreakpointAction_3;

    public static String DisconnectAction_0;
    public static String DisconnectAction_3;
    public static String DropToFrameAction_0;
    public static String DropToFrameAction_3;
    public static String LaunchAction_0;

	public static String LaunchAction_1;

	public static String LaunchAction_2;

	public static String RestartCommandAction__text;

    public static String RestartCommandAction_tooltip;

    public static String ResumeAction_0;
    public static String ResumeAction_3;
    public static String StepIntoAction_0;
    public static String StepIntoAction_3;
    public static String StepOverAction_0;
    public static String StepOverAction_3;
    public static String StepReturnAction_2;
    public static String StepReturnAction_3;
    public static String SuspendAction_0;
    public static String SuspendAction_3;
    public static String TerminateAction_0;
    public static String TerminateAction_3;
    public static String TerminateAllAction_2;
    public static String TerminateAllAction_3;

	public static String DeleteWorkingsetsMessageDialog_0;
	public static String DeleteWorkingsetsMessageDialog_1;

	public static String ShowTypesAction_0;

	public static String VirtualFindAction_0;

	public static String VirtualFindAction_1;
	
	public static String ToggleBreakpointsTargetManager_defaultToggleTarget_name;
    public static String ToggleBreakpointsTargetManager_defaultToggleTarget_description;	
    
    public static String NextThreadNavAction_name;
    public static String PreviousThreadNavAction_name;
}