# Generated search expressions template
# From file: org.eclipse.datatools.connectivity.ui.dse_IHelpContextsConnectivityUIDSE.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.ui.dse

#	 * TPS_helpKey_constants_for_plug-in: org.eclipse.datatools.connectivity.ui.dse


#	 * CONTEXT_ID_CONNECTIVITY_DSE_VIEW =
#	 * Data Source Explorer

CONTEXT_ID_CONNECTIVITY_DSE_VIEW = DATA_SOURCE_EXPLORER_VIEW

#	 * PROFILE_SELECTION_DIALOG Context ID for the Profile Selection Dialog
#	 * 

PROFILE_SELECTION_DIALOG = DATA_SOURCE_EXPLORER_VIEW
