/**
@module ember-flexberry-designer
*/
import Ember from 'ember';
import joint from 'npm:jointjs';
import '../../utils/fd-common-primitives';
import FdUmlLink from './fd-uml-link';
/**
An object that describes a link of the association type on the UML diagram.
@class FdUmlAssociation
@extends FdUmlLink
*/
export default FdUmlLink.extend({
/**
The start multiplicity of a link.
@property startMultiplicity
@type String
*/
startMultiplicity: Ember.computed.alias('primitive.StartMultTxt.Text'),
/**
The end multiplicity of a link.
@property endMultiplicity
@type String
*/
endMultiplicity: Ember.computed.alias('primitive.EndMultTxt.Text'),
/**
The array of labels for this link.
@property labels
@type Array
*/
labels: Ember.computed('startMultiplicity', 'endMultiplicity', function() {
return [
{ attrs: { text: { text: this.get('startMultiplicity') } } },
{ attrs: { text: { text: this.get('endMultiplicity') } } },
];
}),
/**
See {{#crossLink "FdUmlPrimitive/JointJS:method"}}here{{/crossLink}}.
@method JointJS
*/
JointJS() {
let properties = this.getProperties('id', 'source', 'target', 'vertices', 'labels');
return new Association(properties);
},
});
/**
Defines the JointJS link, which represents a association in the UML diagram.
@for FdUmlAssociation
@class Association
@extends flexberryUml.BaseLink
@namespace flexberry.uml
@constructor
*/
export let Association = joint.shapes.flexberryUml.BaseLink.define('flexberry.uml.Association', {});