tr = require "../utils/translate"
Relationship = require "./relationship"
module.exports = class RelationFactory
@increase:
id: 0
prefixIco: "inc"
text: tr "~NODE-RELATION-EDIT.INCREASES"
formulaFrag: "1 *"
@decrease:
id: 1
prefixIco: "dec"
text: tr "~NODE-RELATION-EDIT.DECREASES"
formulaFrag: "-1 *"
@aboutTheSame:
id: 0
text: tr "~NODE-RELATION-EDIT.ABOUT_THE_SAME"
postfixIco: "the-same"
formulaFrag: "in"
@aLot:
id: 1
text: tr "~NODE-RELATION-EDIT.A_LOT"
postfixIco: "a-lot"
formulaFrag: "in * 5"
@aLittle:
id: 2
text: tr "~NODE-RELATION-EDIT.A_LITTLE"
postfixIco: "a-little"
formulaFrag: "in / 5"
@moreAndMore:
id: 3
text: tr "~NODE-RELATION-EDIT.MORE_AND_MORE"
postfixIco: "more-and-more"
formulaFrag: "in ^ 2"
@lessAndLess:
id: 4
text: tr "~NODE-RELATION-EDIT.LESS_AND_LESS"
postfixIco: "less-and-less"
formulaFrag: "sqrt(in)"
@iconName: (incdec,amount)->
"icon-#{incdec.prefixIco}-#{amount.postfixIco}"
@vectors: [@increase, @decrease]
@scalars: [
@aboutTheSame
@aLot
@aLittle
@moreAndMore
@lessAndLess
]
@fromSelections: (vector,scalar) ->
name = "#{vector.text} #{scalar.text}"
formula = "#{vector.formulaFrag} #{scalar.formulaFrag}"
new Relationship({text: name, formula: formula})
@selectionsFromRelation: (relation) ->
vector = _.find @vectors, (v) ->
_.startsWith relation.formula, v.formulaFrag
scalar = _.find @scalars, (s) ->
_.endsWith relation.formula, s.formulaFrag
{vector: vector, scalar: scalar}
|