# Generated search expressions template
# From file: org.eclipse.datatools.connectivity.db.generic.ui_IHelpContextsGenericDBProfile.java

# * Copyright (c) 2007 Sybase, Inc.
# * 
# * All rights reserved. This program and the accompanying materials are made
# * available under the terms of the Eclipse Public License 2.0 which
# * accompanies this distribution, and is available at
# * https://www.eclipse.org/legal/epl-2.0/
# * 
# * Contributors: brianf - initial API and implementation

# For plug-in: org.eclipse.datatools.connectivity.db.generic.ui

#	 * TPS_helpKey_constants_for_plug-in: org.eclipse.datatools.connectivity.db.generic.ui


#	 * GENERIC_DB_PROFILE_WIZARD_PAGE = the wizard page that collects SQL Model - JDBC Connection profile
#	 * details such as the JDBC url, user id, password, etc.

GENERIC_DB_PROFILE_WIZARD_PAGE = JDBC_CONNECTION_PROFILE_WIZARD

#	 * GENERIC_DB_PROFILE_PROPERTY_PAGE = the property page that collects SQL Model - JDBC Connection profile
#	 * details such as the JDBC url, user id, password, etc.

GENERIC_DB_PROFILE_PROPERTY_PAGE = JDBC_CONNECTION_PROFILE_PROPERTY_PAGE

#	 * GENERIC_DB_PROFILE_WIZARD = the actual New SQL Model - JDBC Connection Profile wizard

GENERIC_DB_PROFILE_WIZARD = JDBC_CONNECTION_PROFILE_WIZARD
