###############################################################################
# Copyright (c) 2006, 2010 Actuate Corporation.
# 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:
#  Actuate Corporation - initial API and implementation
#  
###############################################################################
# NLS String
###############################################################################
#
plugin.name=DTP ODA New Plug-in Template Wizard
template.runtimeDriver.name=ODA Data Source Runtime Driver
template.runtimeDriver.desc=\
This wizard creates a plug-in for an Open Data Access (ODA) data source runtime driver.\
<p>An ODA runtime driver plug-in does <b>not</b> make contributions to the UI. \
Do not select the UI contribution check-box under Options in the previous page.</p>\
<p><b>Extensions Used</b></p>\
<li>org.eclipse.datatools.connectivity.oda.dataSource</li>\
<li>org.eclipse.datatools.connectivity.connectionProfile</li>
template.designer.name=ODA Data Source Designer
template.designer.desc=\
This wizard creates a plug-in for an Open Data Access (ODA) data source designer. \
<p>Before using this to create the ODA designer plug-in, first use \
the <b>ODA Data Source Runtime Driver</b> template to create its corresponding \
runtime plug-in.</p>\
<p><b>Extensions Used</b></p>\
<li>org.eclipse.datatools.connectivity.oda.design.ui.dataSource</li>\
<li>org.eclipse.datatools.connectivity.connectionProfile</li>\
<li>org.eclipse.datatools.connectivity.ui.connectionProfileImage</li>\
<li>org.eclipse.ui.propertyPages</li>

