###############################################################################
# Copyright (c) 2001, 2004 IBM Corporation and others.
# 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:
#     IBM Corporation - initial API and implementation
###############################################################################
pluginName=Eclipse Data Tools Platform Server UI Plug-in
providerName=Eclipse Data Tools Platform
serverExplorerLayout=Server Explorer Layout Extension
serverExplorerInitialization=Server Initialization Provider
SQL_MODEL_CONTENT_EXTENSION_NAME=SQL Model Content Extension

#
## Providers for the Server Explorer
#
org.eclipse.datatools.connectivity.server.ui.serverExplorer = Database Explorer - "Existing Connections" Core
rdb.server.ui.views.serverExplorer = Database Explorer
rdb.server.ui.category = Data

#
## Menus for the Server Explorer
#
rdb.server.ui.actions.connect=&New Connection...
rdb.server.ui.actions.disconnect=Dis&connect
rdb.server.ui.actions.edit.table = Table
rdb.server.ui.actions.edit = Add Database
rdb.server.ui.actions.delete = &Delete
rdb.server.ui.actions.reconnect = Reconnect
rdb.server.ui.actions.navigate = Navigate to Target

#
## Menus for the Data
#
rdb.server.ui.actions.fe = &Generate DDL
rdb.server.ui.actions.refresh = &Refresh

#
## Actions
#
rdb.server.ui.explorer.connect_server = New Connection...
rdb.server.ui.explorer.reconnect_server = &Reconnect
rdb.server.ui.explorer.disconnect_server = &Disconnect
rdb.server.ui.explorer.collapse_all = Collapse All
rdb.server.ui.actions.editfilter = &Filter...

#
## Decorations
#
rdb.server.ui.serverDecoration = Data Tools - Server Explorer Connection Type Decoration
rdb.server.ui.filterDecoration = Data Tools - Server Explorer Filter Node Indicator
