/**
 * <copyright>
 *
 *  Copyright (c) 2009 Thales Corporate Services S.A.S.
 *  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:
 *      Thales Corporate Services S.A.S - initial API and implementation
 * 
 * </copyright>
 */

package org.eclipse.egf.pattern.ui;

import org.eclipse.osgi.util.NLS;

/**
 * @author Thomas Guiu
 * 
 */
public class Messages extends NLS {
    public static String Editor_wrong_input;

    // Overview Page
    public static String OverviewPage_title;

    public static String OverviewPage_browse_dialog_title;

    public static String OverviewPage_button_browse;

    public static String OverviewPage_sectionLeft_desci_label;

    public static String OverviewPage_sectionLeft_descripition_label;

    public static String OverviewPage_sectionLeft_fullName_label;

    public static String OverviewPage_sectionLeft_id_label;

    public static String OverviewPage_sectionLeft_name_label;

    public static String OverviewPage_sectionLeft_title;

    public static String OverviewPage_sectionLeft_title_label;

    public static String OverviewPage_sectionRight_impl_label;

    public static String OverviewPage_sectionRight_implLink_label;

    public static String OverviewPage_sectionRight_spec_label;

    public static String OverviewPage_sectionRight_specLink_label;

    public static String OverviewPage_sectionRight_title;

    public static String OverviewPage_sectionRight_title_label;

    // Implementation Page
    public static String ImplementationPage_title;

    public static String ImplementationPage_button_add;

    public static String ImplementationPage_button_down;

    public static String ImplementationPage_button_edit;

    public static String ImplementationPage_button_methodsOpenTemplate;

    public static String ImplementationPage_button_remove;

    public static String ImplementationPage_button_up;

    public static String ImplementationPage_column_title_name;

    public static String ImplementationPage_column_title_type;

    public static String ImplementationPage_Error;

    public static String ImplementationPage_footer;

    public static String ImplementationPage_header;

    public static String ImplementationPage_init;

    public static String ImplementationPage_Methods;

    public static String ImplementationPage_methAdd_dialog_title;

    public static String ImplementationPage_methEdit_dialog_title;

    public static String ImplementationPage_method_cannot_delete_message;

    public static String ImplementationPage_methSection_label;

    public static String ImplementationPage_orchSection_label;

    public static String ImplementationPage_orchSection_title;

    public static String ImplementationPage_split_mark;

    public static String ImplementationPage_variable_cannot_delete_message;

    public static String ImplementationPage_variablesEditDialog_title;

    public static String ImplementationPage_varSection_label;

    public static String ImplementationPage_varSection_title;

    // Specification Page
    public static String SpecificationPage_title;

    public static String SpecificationPage_browse_dialog_title;

    public static String SpecificationPage_button_add;

    public static String SpecificationPage_button_browse;

    public static String SpecificationPage_button_down;

    public static String SpecificationPage_button_edit;

    public static String SpecificationPage_button_remove;

    public static String SpecificationPage_button_up;

    public static String SpecificationPage_column_title_name;

    public static String SpecificationPage_column_title_query;

    public static String SpecificationPage_column_title_type;

    public static String SpecificationPage_inherSection_discrip_label;

    public static String SpecificationPage_inherSection_parent_label;

    public static String SpecificationPage_inherSection_title;

    public static String SpecificationPage_parametersEditDialog_title;

    public static String SpecificationPage_paraSection_discrip_label;

    public static String SpecificationPage_paraSection_title;

    public static String SpecificationPage_patternSection_discrip_label;

    public static String SpecificationPage_patternSection_title;

    public static String SpecificationPage_patternSection_type_label;

    // ChooseCall Page
    public static String ChooseCallPage_description;

    public static String ChooseCallPage_label_text;

    public static String ChooseCallPage_methodCall_title;

    public static String ChooseCallPage_no_call_selected_error_message;

    public static String ChooseCallPage_no_variable_selected_error_message;

    public static String ChooseCallPage_patternCall_title;

    public static String ChooseCallPage_patternInjectCall_title;

    public static String ChooseCallPage_superPatternCall_title;

    public static String ChooseCallPage_title;

    // ChooseKind Page
    public static String ChooseKindPage_description;

    public static String ChooseKindPage_label_text;

    public static String ChooseKindPage_radio_methodCall;

    public static String ChooseKindPage_radio_patternCall;

    public static String ChooseKindPage_radio_patternInjectedCall;

    public static String ChooseKindPage_radio_superPatternCall;

    public static String ChooseKindPage_title;

    // ChooseType Page
    public static String ChooseTypePage_choose_model_button_title;

    public static String ChooseTypePage_coreTypeTabItem_title;

    public static String ChooseTypePage_description;

    public static String ChooseTypePage_ecore_file;

    public static String ChooseTypePage_javaTypeTabItem_title;

    public static String ChooseTypePage_title;

    // ContainerLibrarySelection Dialog
    public static String ContainerLibrarySelectionDialog_dialogArea_label;

    public static String ContainerLibrarySelectionDialog_pattern_label;

    // ParameterMatching Page
    public static String ParameterMatchingPage_button_create;

    public static String ParameterMatchingPage_button_delete;

    public static String ParameterMatchingPage_button_edit;

    public static String ParameterMatchingPage_current_mathings_title;

    public static String ParameterMatchingPage_label_text;

    public static String ParameterMatchingPage_missing_information;

    public static String ParameterMatchingPage_title;

    // ParametersEdit Dialog
    public static String ParametersEditDialog_Browse;

    public static String ParametersEditDialog_Name;

    public static String ParametersEditDialog_Query;

    public static String ParametersEditDialog_Type;

    // PatternSelection Dialog
    public static String PatternSelectiondialog_dialogArea_label;

    public static String PatternSelectiondialog_pattern_label;

    public static String PatternUIHelper_key_NonPatternEmptyName;

    public static String PatternUIHelper_key_NonPatternVariableEmptyName;

    public static String PatternUIHelper_key_NonPatternParameterEmptyName;

    // OpenType Page
    public static String OpenTypeWizard_window_title;

    public static String OrchestrationTableLabelProvider_MethodCall;

    public static String OrchestrationTableLabelProvider_PatternCall;

    public static String OrchestrationTableLabelProvider_PatternInjectedCall;

    public static String OrchestrationTableLabelProvider_SuperPatternCall;

    public static String OrchestrationWizard_title;

    // Common
    public static String common_mark1;

    public static String common_mark2;

    public static String input_tooltip;

    // Resource Listener
    public static String ResourceListener_reloadDialog_title;
    
    public static String ResourceListener_reloadDialog_message;

    // Viewpoint contributor
    public static String ViewpointContributor_editAction_label;
    public static String ViewpointContributor_editTemplateAction_label;
    public static String ViewpointContributor_missingPattern_title;
    public static String ViewpointContributor_missingPattern_message;
    public static String ViewpointContributor_newChildGroup_label;
    public static String ViewpointContributor_newPattern_label;

    private static final String BUNDLE_NAME = "org.eclipse.egf.pattern.ui.PatternUIMessages";//$NON-NLS-1$
    static {
        NLS.initializeMessages(BUNDLE_NAME, Messages.class);
    }

}
