###############################################################################
# Copyright (c) 2003, 2006 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 Corporation - initial API and implementation
###############################################################################
# ----------------------------------------------------------------------
# Properties for com.ibm.etools.webservice.atk.ui
#
# Entries are of the form CONSTANT=string
#
# File plugins/com.ibm.etools.webservice.atk.ui/plugin.properties, wsa.etools.ws.properties, lunar, 20030922a 26
# Version 1.26 03/09/09 16:41:49
# ----------------------------------------------------------------------

#
# Messages in plugin.xml.
#

pluginName=Web Service Plug-in
pluginVendor=Eclipse.org


#
# Edit models
#
WSDD_EDIT_MODEL_NAME=Web Services Edit Model
EDITOR_EDITMODELS_WEB_SERVICES=Web Services Editor Edit Model
WSCDD_EDIT_MODEL_NAME=Web Services Client Edit Model
EDITOR_EDITMODELS_WEB_SERVICES_CLIENT=Web Services Client Editor Edit Model

#
#Common Editor Messages
#
TITLE_SAVE_ERROR=Save Error
MSG_SAVE_ERROR=An error occurred when attempting to save editor contents.

#
# Messages in WebServicesEditor
#

#
# Messages in WebServicesClientEditor
#



#
# Messages in WebServicesPage
#


#
# Messages in PortComponentPage
#


#
# Messages in HandlerPage
#


#
# Messages in WebServicesClientPage
#


#
# Messages in ServiceRefPage
#


#
# Labels
#
LABEL_UNQUALIFIED_COMPONENT=<unqualified>
LABEL_SERVLET_LINK=Servlet link



#
# Labels for table layout
#
LABEL_TABLE_NAME=Name
LABEL_TABLE_VALUE=Value
LABEL_TABLE_SOAP_ROLE=SOAP role
LABEL_TABLE_PORT_NAME=Port name
LABEL_TABLE_PORT_COMPONENT_LINK=Port component link
LABEL_TABLE_DESCRIPTION=Description

#
# Page and Section titles/descriptions
#




#
# Dialog labels
#


#
# Tooltips
#


#
# Labels for providers
#
_UI_WebServiceDescription_type=Web service description
_UI_PortComponent_type=Port component
_UI_Handler_type=Handler
_UI_PortComponentRef_type=Port component reference
_UI_ServiceRef_type=Service reference
_UI_WebServicesClient_type=Web services client
_UI_ComponentScopedRefs_type=Component scoped reference
_UI_WSDLPort_type=WSDL port
_UI_WebServices_type=Web services
_UI_ServletLink_type=Servlet link
_UI_ServiceImplBean_type=Service implementation bean
_UI_EJBLink_type=EJB link
_UI_BeanLink_type=Bean link
_UI_SOAPRole_type=SOAP role
_UI_SOAPHeader_type=SOAP header
_UI_PortName_type=Port name
_UI_InitParam_type=Initial parameter
_UI_ServiceRef_jaxrpcMappingFile_feature=Jaxrpc Mapping File
_UI_ServiceRef_jaxrpcMappingFile_feature_desc=The jaxrpc mapping file.
_UI_ServiceRef_serviceInterface_feature=Service Interface
_UI_ServiceRef_serviceInterface_feature_desc=The service interface.
_UI_ServiceRef_serviceRefName_feature=Name
_UI_ServiceRef_serviceRefName_feature_desc=The service reference name.
_UI_ServiceRef_wsdlFile_feature=Wsdl File
_UI_ServiceRef_wsdlFile_feature_desc=The .wsdl file.
_UI_PortComponentRef_serviceEndpointInterface_feature=Service Endpoint Interface
_UI_PortComponentRef_serviceEndpointInterface_feature_desc=The service endpoint interface.
_UI_PortComponentRef_portComponentLink_feature=Link
_UI_PortComponentRef_portComponentLink_feature_desc=The port component link.
_UI_Handler_soapRoles_feature=Soap Roles
_UI_Handler_soapRoles_feature_desc=The handler soap roles.
_UI_Handler_portNames_feature=Port Names
_UI_Handler_portNames_feature_desc=The handler port names.
_UI_Handler_handlerName_feature=Handler Name
_UI_Handler_handlerName_feature_desc=The handler name.
_UI_Handler_handlerClass_feature=Handler Class
_UI_Handler_handlerClass_feature_desc=The handler class.
_UI_InitParam_paramName_feature=Name
_UI_InitParam_paramName_feature_desc=The initial parameter name.
_UI_InitParam_description_feature=Description
_UI_InitParam_description_feature_desc=The initial parameter description.
_UI_InitParam_paramValue_feature=Value
_UI_InitParam_paramValue_feature_desc=The initial parameter value.
_UI_JaxRPCMissingModel=Mapping file name unknown.

