12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273 |
- /**
- * Licensed Materials - Property of IBM IBM Cognos Products: Modeling UI (C) Copyright IBM Corp. 2016, 2019
- * US Government Users Restricted Rights - Use, duplication or disclosure restricted by GSA ADP
- * Schedule Contract with IBM Corp.
- */
- define([
- 'underscore',
- 'bi/commons/ui/core/Class',
- 'bi/moser/moser.min',
- '../InternalBridge'
- ], function(_, Class, moserjs, InternalBridge) {
- var DiagramLink = Class.extend({
- identifier: null,
- source: null,
- target: null,
- sourceCardinality: null,
- targetCardinality: null,
- init: function(options) {
- DiagramLink.inherited('init', this);
- _.extend(this, options);
- this.linksRepresented = [];
- this.source = options.source;
- this.target = options.target;
- this.identifier = options.id;
- this.instanceType = options.instanceType;
- this.isValid = InternalBridge.validationUtils.isValid(InternalBridge.modelUtils.getRelationshipById(this.identifier, this.moserModule));
- },
- addARepresentedLink: function(data) {
- var mapping = InternalBridge.joinUtils.relationshipMappingMinMaxEx(data.linkObj);
- var linkCardinality = InternalBridge.joinUtils.getCardinalityMarkers(mapping);
- var linkObj = {
- identifier: data.linkObj.identifier,
- left: data.left,
- isLeftMincardZero: mapping.leftMincard === moserjs.default.CardinalityEnum.ZERO,
- link: data.link,
- right: data.right,
- isRightMincardZero: mapping.rightMincard === moserjs.default.CardinalityEnum.ZERO,
- sourceCardinality: linkCardinality[0],
- targetCardinality: linkCardinality[1],
- instanceType: data.linkObj.instanceType
- };
-
- this.linksRepresented.push(linkObj);
-
- if (this.linksRepresented.length < 2) {
- this.sourceCardinality = linkCardinality[0];
- this.targetCardinality = linkCardinality[1];
- this.isLeftMincardZero = linkObj.isLeftMincardZero;
- this.isRightMincardZero = linkObj.isRightMincardZero;
- this.hideCardinality = false;
- } else {
- this.hideCardinality = true;
- }
- },
- /**
- * Set the instanceType on the link.
- *
- * @param {String}
- * instanceType The instance type
- */
- setInstanceType: function(instanceType) {
- this.instanceType = instanceType;
- }
- });
-
- return DiagramLink;
- });
|