/**********************************************************************
 * 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
 * dakshinamurthy.karra@gmail.com - bug 165371
 **********************************************************************/
package org.eclipse.ant.internal.ui.launchConfigurations;

import org.eclipse.osgi.util.NLS;

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

    public static String AddVariableStringAction_1;
	public static String AddVariableStringAction_2;
	public static String AddVariableStringAction_3;
	public static String AddVariableStringAction_4;

	public static String AntLaunchShortcut_Unable;
	public static String AntLaunchShortcut_2;
	public static String AntLaunchShortcut_3;
	public static String AntLaunchShortcut_4;
	public static String AntLaunchShortcut_5;
	public static String AntLaunchShortcut_Error_7;
	public static String AntLaunchShortcut_Build_Failed_2;
	public static String AntLaunchShortcut_Exception_launching;

	public static String AntPropertiesTab__Properties__6;
	public static String AntPropertiesTab_Property_f_iles__7;
	public static String AntPropertiesTab_P_roperties_8;
	public static String AntPropertiesTab_Error_reading_configuration_9;
	public static String AntPropertiesTab_6;

	public static String AntJRETab_2;
	public static String AntJRETab_3;
	
	public static String AntBuilderTargetsTab_0;
	public static String AntBuilderTargetsTab_1;
	public static String AntBuilderTargetsTab_2;
	public static String AntBuilderTargetsTab_3;
	public static String AntBuilderTargetsTab_4;
	public static String AntBuilderTargetsTab_5;
	public static String AntBuilderTargetsTab_6;
	public static String AntBuilderTargetsTab_7;
	public static String AntBuilderTargetsTab_8;
	public static String AntBuilderTargetsTab_10;

	public static String AntMainTab__Select_a_build_file__1;
	public static String AntMainTab_3;
	public static String AntMainTab_6;
	public static String AntMainTab_0;
	public static String AntMainTab_1;

	public static String AntTargetsTab_Check_targets_to_e_xecute__1;
	public static String AntTargetsTab_0_out_of_0_selected_2;
	public static String AntTargetsTab_Target_execution_order__3;
	public static String AntTargetsTab__Order____4;
	public static String AntTargetsTab_Name_5;
	public static String AntTargetsTab_Description_6;
	public static String AntTargetsTab__0__out_of__1__selected_7;
	public static String AntTargetsTab_Tar_gets_14;
	public static String AntTargetsTab_Error_reading_configuration_12;
	public static String AntTargetsTab_12;
	public static String AntTargetsTab_13;
	public static String AntTargetsTab_14;
	public static String AntTargetsTab_15;
	public static String AntTargetsTab_16;
	public static String AntTargetsTab_17;
	public static String AntTargetsTab_0;
	public static String AntTargetsTab_1;
	public static String AntClasspathTab_0;

	public static String EditAntHomeEntryAction_1;

	public static String TargetOrderDialog_Order_Targets_1;
	public static String TargetOrderDialog__Specify_target_execution_order__2;
	public static String TargetOrderDialog__Up_3;
	public static String TargetOrderDialog__Down_4;

	public static String AntEnvironmentTab_0;
	public static String SetTargetsDialog_0;
    
    public static String AntWorkingDirectoryBlock_0;

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