###############################################################################
# Copyright (c) 2007,2009 Eclipse Modeling Project 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:
#     E.D.Willink - initial API and implementation
#
# $Id: plugin.properties,v 1.1 2010/03/11 14:51:23 ewillink Exp $
###############################################################################

# ====================================================================
# To code developer:
#   Do NOT change the properties between this line and the
#   "%%% END OF TRANSLATED PROPERTIES %%%" line.
#   Make a new property name, append to the end of the file and change
#   the code to use the new property.
# ====================================================================

# ====================================================================
# %%% END OF TRANSLATED PROPERTIES %%%
# ====================================================================

pluginName = OCL Examples Editor Support
providerName = Eclipse Modeling Project

ExtPoint.pageDefinition=Paged Editor Page Definition



UndoContext_label = Paged Undo Context



_UI_EXTLibraryEditor_menu = &EXTLibrary Editor

_UI_CreateChild_menu_item = &New Child
_UI_CreateSibling_menu_item = N&ew Sibling

_UI_ShowPropertiesView_menu_item = Show &Properties View
_UI_RefreshViewer_menu_item = &Refresh

_UI_SelectionPage_label = Selection
_UI_ParentPage_label = Parent
_UI_ListPage_label = List
_UI_TreePage_label = Tree
_UI_TablePage_label = Table
_UI_TreeWithColumnsPage_label = Tree with Columns
_UI_ObjectColumn_label = Object
_UI_SelfColumn_label = Self

_UI_NoObjectSelected = Selected Nothing
_UI_SingleObjectSelected = Selected Object: {0}
_UI_MultiObjectSelected = Selected {0} Objects

_UI_OpenEditorError_label = Open Editor

_UI_Wizard_category = Example EMF Model Creation Wizards

_UI_EXTLibraryModelWizard_label = EXTLibrary Model
_UI_EXTLibraryModelWizard_description = Create a new EXTLibrary model

_UI_EXTLibraryEditorFilenameDefaultBase = My
_UI_EXTLibraryEditorFilenameExtension = extlibrary

_UI_Wizard_label = New

_WARN_FilenameExtension = The file name must end in ".{0}"

_UI_ModelObject = &Model Object
_UI_XMLEncoding = &XML Encoding
_UI_XMLEncodingChoices = UTF-8 ASCII UTF-16 UTF-16BE UTF-16LE ISO-8859-1
_UI_Wizard_initial_object_description = Select a model object to create

_UI_FileConflict_label = File Conflict
_WARN_FileConflict = There are unsaved changes that conflict with changes made outside the editor.  Do you wish to discard this editor's changes?

_UI_CreateModelError_message = Problems encountered in file "{0}"

_UI_ShowCSTView_menu_item = Show &CST View
_UI_ShowOutlineView_menu_item = Show &Outline View
_UI_ShowPropertiesView_menu_item = Show &Properties View
_UI_RefreshViewer_menu_item = &Refresh

