#Properties file for org.eclipse.papyrus.requirements.sysml.traceability.ui
# Contributors:
# Mauricio Alferez (mauricio.alferez@cea.fr)

papyrus.requirements.sysml.traceability.menu.label = Papyrus Req - Traceability Tools
papyrus.requirements.sysml.traceability.menu.tooltip = Traceability assistants for SysML requirements models

#--------------------------------------------------------------------------
#Commands to be executed from a Model
applyTraceabilityAssistant.command.label = Apply Traceability Assistant
applyTraceabilityAssistant.command.tooltip = Apply Traceability Assistant

#--------------------------------------------------------------------------
#Commands to be executed from requirements
#--------------------------------------------------------------------------
	#"A DeriveReqt relationship is a dependency between two requirements in which a client requirement can be derived from the supplier requirement.
	#As with other dependencies, the arrow direction points from the derived (client) requirement to the (supplier) requirement from which it is derived."
deriveNewRequirement.command.label = Derive new requirement
deriveNewRequirement.command.tooltip = Create a derived requirement from the set of selected requirements
addDerivesLink.command.label = Derives
addDerivesLink.command.tooltip = Add "DerivedReqt" links from derived requirements to the selected requirement
addDerivedByLink.command.label = Derived from
addDerivedByLink.command.tooltip = Add "DerivedReqt" links from the selected requirement to other requirements

	#"Specifies a refinement relationship between model elements at different semantic levels, such as analysis and design.
	# The mapping specifies the relationship between the two elements or sets of elements. The mapping may or may not be computable, and it may be unidirectional or bidirectional.
	# Refinement can be used to model transformations from analysis to design and other such changes."
addRefinedByLink.command.label = Refined by
addRefinedByLink.command.tooltip = Add "Refine" links from the selected requirement to a model element

	#"A Satisfy relationship is a dependency between a requirement and a model element that fulfills the requirement. 
	#As with other dependencies, the arrow direction points from the satisfying (client) model element to the (supplier) requirement that is satisfied."
addSatisfiedbyLink.command.label = Satisfied by
addSatisfiedbyLink.command.tooltip = Add "Satisfy" links from model elements to the selected requirement 
	
addVerifiedByLink.command.label = Verified by
addVerifiedByLink.command.tooltip = Add "Verify" links from model element to the selected requirement

addAbstractionByLink.command.label = Realizes
addAbstractionByLink.command.tooltip = Add "Abstraction" links from model element to the selected NamedElement

#--------------------------------------------------------------------------
#Commands to be executed from model elements
#--------------------------------------------------------------------------
addSatisfiesLink.command.label = Satisfies
addSatisfiesLink.command.tooltip = Add "Satisfy" links from the selected element to requirements
	
addVerifiesLink.command.label = Verifies
addVerifiesLink.command.tooltip = Add "Verify" links from the selected element to requirements

addRefinesLink.command.label = Refines
addRefinesLink.command.tooltip = Add "Refine" links from the selected element to requirements

addAbstractionLink.command.label = Abstracts
addAbstractionLink.command.tooltip = Add "Abstraction" links from the selected element to NamedElement
#--------------------------------------------------------------------------
Bundle-Vendor = Eclipse Modeling Project
Bundle-Name = Papyrus for Requirements - SysML Traceability UI (Incubation)