###############################################################################
# Copyright (c) 2001, 2006 IBM Corporation and others.
# 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:
#     IBM Corporation - initial API and implementation
###############################################################################

_UI_ACTION_SHOW_PROPERTIES=Show properties
_UI_ACTION_SET_AS_FOCUS=Set As Focus
_UI_ACTION_UPDATE_NAME=Update Name
_UI_ACTION_UPDATE_TYPE=Update type
_UI_ACTION_UPDATE_ELEMENT_REFERENCE=Update element reference
_UI_ACTION_DELETE=Delete
_UI_ACTION_BROWSE=Browse...
_UI_LABEL_DESIGN=Design
_UI_LABEL_SOURCE=Source
_UI_ACTION_NEW=New...
_UI_ACTION_ADD_FIELD=Add Field
_UI_LABEL_VIEW=View:
_UI_HOVER_VIEW_MODE_DESCRIPTION=Change the view mode of the editor