# Copyright (c) 2016 Obeo.
# 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.htm
# Contributors: Obeo - initial API and implementation

pluginName = EEF Extension Reference Widget UI
providerName = Eclipse Modeling Project

eefExtWidgetReferenceLifecycleManagerProvider.Name=EEF Extension Reference Widget Lifecycle Manager Provider
eefExtWidgetReferenceLifecycleManagerProvider.Description=The lifecycle manager provider used to create the lifecycle manager of the extension reference widget

eefExtReferenceViewerFilterProvider.Name=EEF Extension Reference Widget Tree Viewer Filter Provider

ReferenceCreationWizard_windowTitle=Create
ReferenceCreationWizardPage_title=Create a new object
ReferenceCreationWizardPage_description=Select the type of object to create for your reference
ReferenceCreationWizardPage_eClassToCreateLabel=Type:
ReferenceCreationWizardPage_eContainerSelectionLabel=Container:
ReferenceCreationWizardPage_eContainerToUseLabel=Reference:
ReferenceCreationWizardPage_missingEClassToCreate=Please specify the concrete type of the object to create
ReferenceCreationWizardPage_missingEContainer=Please select the container to create a new ''{0}''
ReferenceCreationWizardPage_missingContainmentEReference=Please select the property which will contain the object to create

ReferenceSelectionWizard_windowTitle=Select
ReferenceSelectionWizardPage_title=Select a new object
ReferenceSelectionWizardPage_description=Select a new object as the value of the reference 
ReferenceSelectionWizardPage_missingEObject=Please select a valid ''{0}''

SingleReference_noValue=<no value>
ReferenceBrowseButton_tooltipText=Browse your data to edit the current value
ReferenceAddButton_tooltipText=Create a new object
ReferenceRemoveButton_containmentTooltipText=Remove the current object
ReferenceRemoveButton_nonContainmentTooltipText=Remove the reference to the object
ReferenceUpButton_tooltipText=Move up the selected value
ReferenceDownButton_tooltipText=Move down the selected value