# Generated context IDs template


# * 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.sqltools.ddlgen.internal.ui

#	 * TPS_helpKey_constants_for_plug-in: org.eclipse.datatools.sqltools.ddlgen.ui


#	 * GENERATE_DDL_FILE_WIZARD_PAGE -
#	 * Actual DDL file wizard page for Generate DDL wizard

GENERATE_DDL_FILE_WIZARD_PAGE = GENERATE_DDL_WIZARD

#	 * GENERATE_DDL_SELECT_OBJECTS_WIZARD_PAGE -
#	 * Object selection page for Generate DDL wizard

GENERATE_DDL_SELECT_OBJECTS_WIZARD_PAGE = GENERATE_DDL_WIZARD

#	 * GENERATE_DDL_SELECT_OPTIONS_WIZARD_PAGE -
#	 * Options page in Generate DDL wizard

GENERATE_DDL_SELECT_OPTIONS_WIZARD_PAGE = GENERATE_DDL_WIZARD

#	 * GENERATE_DDL_SUMMARY_WIZARD_PAGE -
#	 * Summary page for Generate DDL Wizard

GENERATE_DDL_SUMMARY_WIZARD_PAGE = GENERATE_DDL_WIZARD

#	 * GENERATE_DDL_WIZARD - Actual Generate DDL wizard

GENERATE_DDL_WIZARD = GENERATE_DDL_WIZARD
