/*******************************************************************************
 * Copyright (c) 2008 IONA Technologies PLC
 * 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:
 * IONA Technologies PLC - initial API and implementation
 *******************************************************************************/
package org.eclipse.jst.ws.internal.cxf.ui;

import org.eclipse.osgi.util.NLS;

/**
 * @author sclarke
 */
public class CXFUIMessages extends NLS {
    private static final String BUNDLE_NAME = "org.eclipse.jst.ws.internal.cxf.ui.CXFUImessages"; //$NON-NLS-1$
    public static String CXF_RUNTIME_PREFERENCE_PAGE_RUNTIME_HOME_TAB_NAME;
    public static String CXF_RUNTIME_PREFERENCE_PAGE_RUNTIME_HOME_TAB_TOOLTIP;
    public static String CXF_RUNTIME_PREFERENCE_PAGE_CXF_HOME_DIR_LABEL;
    public static String CXF_RUNTIME_PREFERENCE_PAGE_RUNTIME_NOT_SET;
    public static String CXF_RUNTIME_PREFERENCE_PAGE_BROWSE_BUTTON_LABEL;
    public static String CXF_RUNTIME_PREFERENCE_PAGE_CXF_VERSON_LABEL;
    
    public static String JAVA2WS_PREFERENCES_TAB_NAME;
    public static String JAVA2WS_PREFERENCES_TAB_TOOLTIP;

    public static String JAVA2WSDL_PREFERENCES_TAB_NAME;
    public static String JAVA2WSDL_PREFERENCES_TAB_TOOLTIP;

    public static String ANNOTATIONS_PREFERENCES_TAB_NAME;
    public static String ANNOTATIONS_PREFERENCES_TAB_TOOLTIP;

    public static String WSDL2JAVA_PREFERENCES_TAB_NAME;
    public static String WSDL2JAVA_PREFERENCES_TAB_TOOLTIP;
    
    public static String SPRING_CONFIG_PREFERENCES_TAB_NAME;
    public static String SPRING_CONFIG_PREFERENCES_TAB_TOOLTIP;
    
    public static String ANNOTATIONS_PREFERENCES_LINK;
    
    public static String CXF_DEFAULT_FRONTEND_LABEL;
    public static String CXF_DEFAULT_DATABINDING_LABEL;
    public static String JAVA2WS_GROUP_LABEL;
    public static String JAVA2WSDL_GROUP_LABEL;
    public static String WSDL2JAVA_GROUP_LABEL;
    public static String JAVA2WS_GEN_CLIENT_LABEL;
    public static String JAVA2WS_GEN_SERVER_LABEL;
    public static String JAVA2WS_GEN_IMPLEMENTATION_LABEL;
    public static String JAVA2WS_GEN_WRAPPER_FAULT_LABEL;
    public static String JAVA2WS_GEN_WSDL_LABEL;
    public static String JAVA2WS_DEFAULT_SOAPBINDING_LABEL;
    public static String JAVA2WS_GEN_XSD_IMPORTS;
    public static String CXF_INVALID_VERSION_FORMAT;
    public static String CXF_VERSION_NOT_SPECIFIED;
    public static String SPRING_CONFIG_GROUP_LABEL;
    public static String SPRING_CONFIG_USE_CXF_SERVLET;
    public static String SPRING_CONFIG_USE_CXF_SPRING_APPLICATION_CONTEXT;
    public static String WSDL2JAVA_PROCESS_SOAP_HEADERS;
    public static String WSDL2JAVA_LOAD_DEFAULT_NAMESPACE_PACKAGE_MAPPING;
    public static String WSDL2JAVA_USE_DEFAULT_EXCLUDES_NAMESPACE_MAPPING;
    public static String WSDL2JAVA_WSDL_VERSION_LABEL;
    public static String WSDL2JAVA_USE_DEFAULT_VALUES;

    public static String JAXWS_ANNOTATIONS_GROUP_LABEL;
    public static String JAXWS_ANNOTATIONS_GROUP_TOOLTIP;
    public static String JAXWS_GENERATE_WEB_METHOD;
    public static String JAXWS_GENERATE_WEB_PARAM;
    public static String JAXWS_GENERATE_REQUEST_WRAPPER;
    public static String JAXWS_GENERATE_RESPONSE_WRAPPER;
    public static String JAXWS_ANNOTATIONS_PROCESSING_GROUP_LABEL;
    public static String JAXWS_ENABLE_ANNOTATION_PROCESSING;
    public static String JAXWS_ENABLE_ANNOTATION_PROCESSING_TOOLTIP;
    
    public static String JAVA2WS_SOAP12_BINDING_TOOLTIP;
    public static String JAVA2WS_CREATE_XSD_IMPORTS_TOOLTIP;
    public static String JAVA2WS_DATABINDING_TOOLTIP;
    public static String JAVA2WS_FRONTEND_TOOLTIP;
    public static String JAVA2WS_GENERATE_WSDL_TOOLTIP;
    public static String JAVA2WS_GENERATE_WRAPPERBEAN_TOOLTIP;
    public static String JAVA2WS_GENERATE_CLIENT_TOOLTIP;
    public static String JAVA2WS_GENERATE_SERVER_TOOLTIP;
    public static String JAVA2WS_GENERATE_ANT_TOOLTIP;
    public static String JAVA2WS_BEANS_TOOLTIP;
    public static String JAVA2WS_TARGET_NAMESPACE_TOOLTIP;
    public static String JAVA2WS_SERVICE_NAME_TOOLTIP;
    public static String JAVA2WS_PORT_NAME_TOOLTIP;
    public static String JAVA2WS_ADDRESS_TOOLTIP;

    public static String JAVA2WS_WSDL_FILE_NAME;
    public static String JAVA2WS_OUTPUT_FILE_TOOLTIP;

    public static String JAVA2WS_USE_SEI_BUTTON;
    public static String JAVA2WS_USE_SEI_INFO_LABEL;

    public static String JAVA2WS_SELECT_SEI;
    public static String JAVA2WS_SELECT_SEI_LABEL;
    public static String JAVA2WS_SELECT_SEI_TOOLTIP;
    public static String JAVA2WS_EXTRACT_SEI;
    public static String JAVA2WS_EXTRACT_SEI_LABEL;
    public static String JAVA2WS_EXTRACT_SEI_TOOLTIP;
    public static String JAVA2WS_EXTRACT_MEMBERS_LABEL;

    public static String JAVA2WS_SELECT_ALL_BUTTON;
    public static String JAVA2WS_DESELECT_ALL_BUTTON;

    public static String JAVA2WS_SELECT_IMPLEMENTATION;
    public static String JAVA2WS_SELECT_IMPLEMENTATION_TOOLTIP;

    public static String WSDL2JAVA_FRONTEND_TOOLTIP;
    public static String WSDL2JAVA_DATABINDING_TOOLTIP;
    public static String WSDL2JAVA_WSDL_VERSION_TOOLTIP;
    public static String WSDL2JAVA_GENERATE_IMPLEMENTATION_TOOLTIP;
    public static String WSDL2JAVA_GENERATE_CLIENT_TOOLTIP;
    public static String WSDL2JAVA_GENERATE_SERVER_TOOLTIP;
    public static String WSDL2JAVA_DEFAULT_VALUES_TOOLTIP;
    public static String WSDL2JAVA_EXCLUDE_NAMESPACE_TOOLTIP;
    public static String WSDL2JAVA_PROCESS_SOAP_HEADERS_TOOLTIP;
    public static String WSDL2JAVA_DEFAULT_NAMESPACE_LOADING_TOOLTIP;
    public static String WSDL2JAVA_EXCLUDE_NAMESPACE_LOADING_TOOLTIP;
    public static String WSDL2JAVA_WSDL_LOCATION_TOOLTIP;
    public static String WSDL2JAVA_NO_ADDRESS_BINDING;
    public static String WSDL2JAVA_NO_ADDRESS_BINDING_TOOLTIP;
    public static String WSDL2JAVA_XML_CATALOG_TOOLTIP;
    public static String WSDL2JAVA_XJC_ARGS_TOOLTIP;
    public static String WSDL2JAVA_XJC_ARG_GROUP_TITLE;
    public static String WSDL2JAVA_XJC_ARG_COLUMN_NAME;
    public static String WSDL2JAVA_XJC_DESCRIPTION_COLUMN_NAME;
    public static String WSDL2JAVA_XJC_DEFAULT_VALUES;
    public static String WSDL2JAVA_XJC_TOSTRING;
    public static String WSDL2JAVA_XJC_TOSTRING_MULTILINE;
    public static String WSDL2JAVA_XJC_TOSTRING_SIMPLE;
    public static String WSDL2JAVA_XJC_LOCATOR;
    public static String WSDL2JAVA_XJC_SYNC_METHODS;
    public static String WSDL2JAVA_XJC_MARK_GENERATED;
    public static String WSDL2JAVA_XJC_EPISODE_FILE;

    public static String RESOURCE_SELECTIN_DIALOG_BROWSE_WORKSPACE_BUTTON;
    public static String RESOURCE_SELECTIN_DIALOG_BROWSE_FILE_SYSTEM_BUTTON;
    public static String RESOURCE_SELECTIN_DIALOG_BROWSE_FILE_NOT_FOUND_ERROR;

    public static String WSDL2JAVA_OUTPUT_DIRECTORY;
    public static String WSDL2JAVA_OUTPUT_DIRECTORY_TOOLTIP;

    public static String WSDL2JAVA_PACKAGE_NAME;
    public static String WSDL2JAVA_PACKAGE_NAME_TOOLTIP;

    public static String WSDL2JAVA_PACKAGE_NAME_OPTIONAL;
    public static String WSDL2JAVA_PACKAGE_NAME_OPTIONAL_TOOLTIP;

    public static String WSDL2JAVA_WSDL_NAMESPACE_COLUMN_HEADER;
    public static String WSDL2JAVA_PACKAGE_NAME_COLUMN_HEADER;

    public static String WSDL2JAVA_SERVICE_NAME;
    public static String WSDL2JAVA_SERVICE_NAME_TOOLTIP;

    public static String WSDL2JAVA_BINDING_FILES;
    public static String WSDL2JAVA_BINDING_NAME_TOOLTIP;
    public static String WSDL2JAVA_BINDING_FILES_ADD;
    public static String WSDL2JAVA_BINDING_FILES_REMOVE;

    public static String WSDL2JAVA_BINDING_FILE_DIALOG_TITLE;
    public static String WSDL2JAVA_BINDING_FILE_DIALOG_MESSAGE;
    public static String WSDL2JAVA_BINDING_FILE_DIALOG_FILTER_NAME;

    public static String WSDL2JAVA_XML_CATLOG;
    public static String WSDL2JAVA_XML_CATLOG_TOOLTIP;
    public static String WSDL2JAVA_XML_CATLOG_BROWSE;
    static {
        // initialize resource bundle
        NLS.initializeMessages(BUNDLE_NAME, CXFUIMessages.class);
    }

    private CXFUIMessages() {
    }
}
