###############################################################################
# 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
###############################################################################

CXFJAXWSSELECTIONLAUNCHABLE_SELECTION_DIALOG_TITLE=Browse Workspace Classes and Interfaces
CXFJAXWSSELECTIONLAUNCHABLE_SELECTION_DIALOG_MESSAGE=Select the Java Class or Interface which will be used to create the Web Service

#WSDL2Java Client Congih Widget Factory
WSDL2JAVA_CLIENT_PAGE_TITLE={0} {1} Web Service WSDL2Java Client Configuration
WSDL2JAVA_CLIENT_PAGE_DESCRIPTION=Customise your Web Service generation by selecting options on this page

WSDL2JAVA_ClIENT_DEFAULTS_PAGE_TITLE={0} {1} Web Service WSDL2Java Client Configuration
WSDL2JAVA_CLIENT_DEFAULTS_PAGE_DESCRIPTION=Customise your Web Service generation by selecting options on this page

#WSDL2Java Client Defaults Config Widget
WSDL2JAVA_GROUP_LABEL=WSDL2Java Generation Options
WSDL2JAVA_XJC_ARG_GROUP_LABEL=XJC Arguments