###############################################################################
# Copyright (c) 2008, 2012 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.html
#
# Contributors:
#     Obeo - initial API and implementation
###############################################################################

# Start of user code for titles customization

# End of user code

# default values ...
ModelNavigationPropertiesEditionPart_PropertiesGroupLabel=Properties
SimpleModelNavigationPropertiesEditionPart_PropertiesGroupLabel=Properties
DeclarativeNavigationStepPropertiesEditionPart_PropertiesGroupLabel=Properties
JavaDeclarationStepInitializerPropertiesEditionPart_PropertiesGroupLabel=Properties
JavaBodyStepInitializerPropertiesEditionPart_PropertiesGroupLabel=Properties
ModelNavigation_ReadOnly=This property is read only
ModelNavigation_Part_Title=Base
SimpleModelNavigation_ReadOnly=This property is read only
SimpleModelNavigation_Part_Title=Base
DeclarativeNavigationStep_ReadOnly=This property is read only
DeclarativeNavigationStep_Part_Title=Base
JavaDeclarationStepInitializer_ReadOnly=This property is read only
JavaDeclarationStepInitializer_Part_Title=Base
JavaBodyStepInitializer_ReadOnly=This property is read only
JavaBodyStepInitializer_Part_Title=Base
SimpleModelNavigationPropertiesEditionPart_IndexLabel=Index : 
SimpleModelNavigationPropertiesEditionPart_FeatureLabel=Feature : 
SimpleModelNavigationPropertiesEditionPart_DiscriminatorTypeLabel=DiscriminatorType : 
DeclarativeNavigationStepPropertiesEditionPart_IndexLabel=Index : 
DeclarativeNavigationStepPropertiesEditionPart_FeatureLabel=Feature : 
DeclarativeNavigationStepPropertiesEditionPart_DiscriminatorTypeLabel=DiscriminatorType : 
JavaDeclarationStepInitializerPropertiesEditionPart_QualifiedClassLabel=QualifiedClass : 
JavaDeclarationStepInitializerPropertiesEditionPart_MethodFilterLabel=MethodFilter : 
JavaDeclarationStepInitializerPropertiesEditionPart_StaticMethodLabel=StaticMethod
JavaBodyStepInitializerPropertiesEditionPart_BodyLabel=Body : 
PropertiesEditionPart_PropertiesGroupLabel=Properties
PropertiesEditionPart_EditTableViewerLabel=Edit
PropertiesEditionPart_DocumentationLabel=Documentation
PropertiesEditionPart_RequiredFeatureMessage=The property {0} of the object shall be filled
PropertiesEditionPart_RemoveTableViewerLabel=Delete
PropertiesEditionPart_RemoveListViewerLabel=Delete
PropertiesEditionPart_IntegerValueMessage=The property {0} shall be an integer
PropertiesEditionPart_FloatValueMessage=The property {0} shall be a float
PropertiesEditionPart_ShortValueMessage=The property {0} shall be a short
PropertiesEditionPart_DoubleValueMessage=The property {0} shall be a double
PropertiesEditionPart_ByteValueMessage=The property {0} shall be a byte
PropertiesEditionPart_LongValueMessage=The property {0} shall be a long
PropertiesEditionPart_BigIntegerValueMessage=The property {0} shall be a BigInteger
PropertiesEditionPart_BigDecimalValueMessage=The property {0} shall be a BigDecimal
PropertiesEditionPart_AddTableViewerLabel=Add
PropertiesEditionPart_AddListViewerLabel=Add
