@finos/legend-extension-dsl-diagram 1.0.28 → 1.0.29
Sign up to get free protection for your applications and to get access to all the features.
- package/lib/DiagramRenderer.d.ts +1 -1
- package/lib/DiagramRenderer.d.ts.map +1 -1
- package/lib/DiagramRenderer.js +52 -51
- package/lib/DiagramRenderer.js.map +1 -1
- package/lib/components/studio/DiagramEditor.d.ts.map +1 -1
- package/lib/components/studio/DiagramEditor.js +4 -3
- package/lib/components/studio/DiagramEditor.js.map +1 -1
- package/lib/helpers/DiagramHelper.d.ts.map +1 -1
- package/lib/helpers/DiagramHelper.js +4 -3
- package/lib/helpers/DiagramHelper.js.map +1 -1
- package/lib/index.css +1 -1
- package/lib/index.d.ts +2 -1
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +2 -1
- package/lib/index.js.map +1 -1
- package/lib/models/metamodels/pure/packageableElements/diagram/DSLDiagram_ClassView.d.ts +0 -3
- package/lib/models/metamodels/pure/packageableElements/diagram/DSLDiagram_ClassView.d.ts.map +1 -1
- package/lib/models/metamodels/pure/packageableElements/diagram/DSLDiagram_ClassView.js +1 -13
- package/lib/models/metamodels/pure/packageableElements/diagram/DSLDiagram_ClassView.js.map +1 -1
- package/lib/models/metamodels/pure/packageableElements/diagram/DSLDiagram_ClassViewReference.d.ts +0 -1
- package/lib/models/metamodels/pure/packageableElements/diagram/DSLDiagram_ClassViewReference.d.ts.map +1 -1
- package/lib/models/metamodels/pure/packageableElements/diagram/DSLDiagram_ClassViewReference.js +1 -6
- package/lib/models/metamodels/pure/packageableElements/diagram/DSLDiagram_ClassViewReference.js.map +1 -1
- package/lib/models/metamodels/pure/packageableElements/diagram/DSLDiagram_Diagram.d.ts +0 -11
- package/lib/models/metamodels/pure/packageableElements/diagram/DSLDiagram_Diagram.d.ts.map +1 -1
- package/lib/models/metamodels/pure/packageableElements/diagram/DSLDiagram_Diagram.js +2 -46
- package/lib/models/metamodels/pure/packageableElements/diagram/DSLDiagram_Diagram.js.map +1 -1
- package/lib/models/metamodels/pure/packageableElements/diagram/DSLDiagram_GraphModifierHelper.d.ts +35 -0
- package/lib/models/metamodels/pure/packageableElements/diagram/DSLDiagram_GraphModifierHelper.d.ts.map +1 -0
- package/lib/models/metamodels/pure/packageableElements/diagram/DSLDiagram_GraphModifierHelper.js +118 -0
- package/lib/models/metamodels/pure/packageableElements/diagram/DSLDiagram_GraphModifierHelper.js.map +1 -0
- package/lib/models/metamodels/pure/packageableElements/diagram/DSLDiagram_RelationshipEdgeView.d.ts +0 -2
- package/lib/models/metamodels/pure/packageableElements/diagram/DSLDiagram_RelationshipEdgeView.d.ts.map +1 -1
- package/lib/models/metamodels/pure/packageableElements/diagram/DSLDiagram_RelationshipEdgeView.js +1 -9
- package/lib/models/metamodels/pure/packageableElements/diagram/DSLDiagram_RelationshipEdgeView.js.map +1 -1
- package/lib/models/metamodels/pure/packageableElements/diagram/DSLDiagram_RelationshipView.d.ts +0 -17
- package/lib/models/metamodels/pure/packageableElements/diagram/DSLDiagram_RelationshipView.d.ts.map +1 -1
- package/lib/models/metamodels/pure/packageableElements/diagram/DSLDiagram_RelationshipView.js +6 -109
- package/lib/models/metamodels/pure/packageableElements/diagram/DSLDiagram_RelationshipView.js.map +1 -1
- package/lib/models/metamodels/pure/packageableElements/diagram/geometry/DSLDiagram_PositionedRectangle.d.ts +0 -8
- package/lib/models/metamodels/pure/packageableElements/diagram/geometry/DSLDiagram_PositionedRectangle.d.ts.map +1 -1
- package/lib/models/metamodels/pure/packageableElements/diagram/geometry/DSLDiagram_PositionedRectangle.js +1 -16
- package/lib/models/metamodels/pure/packageableElements/diagram/geometry/DSLDiagram_PositionedRectangle.js.map +1 -1
- package/lib/models/protocols/pure/v1/transformation/pureGraph/V1_DSLDiagram_GraphBuilderHelper.d.ts.map +1 -1
- package/lib/models/protocols/pure/v1/transformation/pureGraph/V1_DSLDiagram_GraphBuilderHelper.js +3 -2
- package/lib/models/protocols/pure/v1/transformation/pureGraph/V1_DSLDiagram_GraphBuilderHelper.js.map +1 -1
- package/lib/package.json +4 -4
- package/lib/stores/studio/DSLDiagram_ModifierHelper.d.ts +54 -0
- package/lib/stores/studio/DSLDiagram_ModifierHelper.d.ts.map +1 -0
- package/lib/stores/studio/DSLDiagram_ModifierHelper.js +87 -0
- package/lib/stores/studio/DSLDiagram_ModifierHelper.js.map +1 -0
- package/package.json +10 -10
- package/src/DiagramRenderer.ts +122 -54
- package/src/components/studio/DiagramEditor.tsx +8 -3
- package/src/helpers/DiagramHelper.ts +4 -3
- package/src/index.ts +2 -4
- package/src/models/metamodels/pure/packageableElements/diagram/DSLDiagram_ClassView.ts +1 -14
- package/src/models/metamodels/pure/packageableElements/diagram/DSLDiagram_ClassViewReference.ts +1 -7
- package/src/models/metamodels/pure/packageableElements/diagram/DSLDiagram_Diagram.ts +2 -52
- package/src/models/metamodels/pure/packageableElements/diagram/DSLDiagram_GraphModifierHelper.ts +165 -0
- package/src/models/metamodels/pure/packageableElements/diagram/DSLDiagram_RelationshipEdgeView.ts +1 -10
- package/src/models/metamodels/pure/packageableElements/diagram/DSLDiagram_RelationshipView.ts +6 -147
- package/src/models/metamodels/pure/packageableElements/diagram/geometry/DSLDiagram_PositionedRectangle.ts +1 -17
- package/src/models/protocols/pure/v1/transformation/pureGraph/V1_DSLDiagram_GraphBuilderHelper.ts +3 -2
- package/src/stores/studio/DSLDiagram_ModifierHelper.ts +148 -0
- package/tsconfig.json +2 -0
package/lib/DiagramRenderer.d.ts
CHANGED
@@ -21,7 +21,7 @@ import { PositionedRectangle } from './models/metamodels/pure/packageableElement
|
|
21
21
|
import { ClassView } from './models/metamodels/pure/packageableElements/diagram/DSLDiagram_ClassView';
|
22
22
|
import type { PropertyHolderView } from './models/metamodels/pure/packageableElements/diagram/DSLDiagram_PropertyHolderView';
|
23
23
|
import { GeneralizationView } from './models/metamodels/pure/packageableElements/diagram/DSLDiagram_GeneralizationView';
|
24
|
-
import {
|
24
|
+
import type { RelationshipView } from './models/metamodels/pure/packageableElements/diagram/DSLDiagram_RelationshipView';
|
25
25
|
export declare enum DIAGRAM_INTERACTION_MODE {
|
26
26
|
LAYOUT = 0,
|
27
27
|
PAN = 1,
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"DiagramRenderer.d.ts","sourceRoot":"","sources":["../src/DiagramRenderer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAYH,OAAO,EACL,KAAK,gBAAgB,EACrB,KAAK,EAUN,MAAM,qBAAqB,CAAC;AAE7B,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,yEAAyE,CAAC;AACvG,OAAO,EAAE,SAAS,EAAE,MAAM,oFAAoF,CAAC;AAC/G,OAAO,EAAE,KAAK,EAAE,MAAM,gFAAgF,CAAC;AACvG,OAAO,EAAE,mBAAmB,EAAE,MAAM,8FAA8F,CAAC;AACnI,OAAO,EAAE,SAAS,EAAE,MAAM,2EAA2E,CAAC;AACtG,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,oFAAoF,CAAC;AAC7H,OAAO,EAAE,kBAAkB,EAAE,MAAM,oFAAoF,CAAC;AACxH,OAAO,
|
1
|
+
{"version":3,"file":"DiagramRenderer.d.ts","sourceRoot":"","sources":["../src/DiagramRenderer.ts"],"names":[],"mappings":"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"}
|
package/lib/DiagramRenderer.js
CHANGED
@@ -21,11 +21,12 @@ import { Point } from './models/metamodels/pure/packageableElements/diagram/geom
|
|
21
21
|
import { PositionedRectangle } from './models/metamodels/pure/packageableElements/diagram/geometry/DSLDiagram_PositionedRectangle';
|
22
22
|
import { ClassView } from './models/metamodels/pure/packageableElements/diagram/DSLDiagram_ClassView';
|
23
23
|
import { GeneralizationView } from './models/metamodels/pure/packageableElements/diagram/DSLDiagram_GeneralizationView';
|
24
|
-
import { manageInsidePointsDynamically, } from './models/metamodels/pure/packageableElements/diagram/DSLDiagram_RelationshipView';
|
25
24
|
import { PropertyView } from './models/metamodels/pure/packageableElements/diagram/DSLDiagram_PropertyView';
|
26
25
|
import { getElementPosition } from './helpers/DiagramHelper';
|
27
26
|
import { AssociationView } from './models/metamodels/pure/packageableElements/diagram/DSLDiagram_AssociationView';
|
28
27
|
import { class_addProperty, class_addSuperType } from '@finos/legend-studio';
|
28
|
+
import { classView_setHideProperties, classView_setHideStereotypes, classView_setHideTaggedValues, diagram_addClassView, diagram_addGeneralizationView, diagram_addPropertyView, diagram_deleteAssociationView, diagram_deleteClassView, diagram_deleteGeneralizationView, diagram_deletePropertyView, diagram_setAssociationViews, diagram_setClassViews, diagram_setGeneralizationViews, diagram_setPropertyViews, findOrBuildPoint, positionedRectangle_forceRefreshHash, positionedRectangle_setPosition, positionedRectangle_setRectangle, relationShipEdgeView_setOffsetX, relationShipEdgeView_setOffsetY, relationshipView_changePoint, relationView_possiblyFlattenPath, relationView_setPath, } from './stores/studio/DSLDiagram_ModifierHelper';
|
29
|
+
import { _relationView_manageInsidePointsDynamically } from './models/metamodels/pure/packageableElements/diagram/DSLDiagram_GraphModifierHelper';
|
29
30
|
export var DIAGRAM_INTERACTION_MODE;
|
30
31
|
(function (DIAGRAM_INTERACTION_MODE) {
|
31
32
|
DIAGRAM_INTERACTION_MODE[DIAGRAM_INTERACTION_MODE["LAYOUT"] = 0] = "LAYOUT";
|
@@ -431,7 +432,7 @@ export class DiagramRenderer {
|
|
431
432
|
// has already had the target class as its supertype
|
432
433
|
if (startClassView.class.value.generalizations.find((generalization) => generalization.value.rawType === targetClassView.class.value)) {
|
433
434
|
const gview = new GeneralizationView(this.diagram, startClassView, targetClassView);
|
434
|
-
this.diagram
|
435
|
+
diagram_addGeneralizationView(this.diagram, gview);
|
435
436
|
return gview;
|
436
437
|
}
|
437
438
|
return undefined;
|
@@ -447,7 +448,7 @@ export class DiagramRenderer {
|
|
447
448
|
// is not targetable
|
448
449
|
if (startClassView !== targetClassView) {
|
449
450
|
const pView = new PropertyView(this.diagram, PropertyExplicitReference.create(property), startClassView, targetClassView);
|
450
|
-
this.diagram
|
451
|
+
diagram_addPropertyView(this.diagram, pView);
|
451
452
|
return pView;
|
452
453
|
}
|
453
454
|
return undefined;
|
@@ -507,7 +508,7 @@ export class DiagramRenderer {
|
|
507
508
|
.concat(this.diagram.propertyViews);
|
508
509
|
for (const relationshipView of relationshipViews) {
|
509
510
|
let fullPath = relationshipView.buildFullPath();
|
510
|
-
fullPath =
|
511
|
+
fullPath = _relationView_manageInsidePointsDynamically(fullPath, relationshipView.from.classView.value, relationshipView.to.classView.value);
|
511
512
|
if (relationshipView instanceof PropertyView) {
|
512
513
|
const box = this.drawLinePropertyText(
|
513
514
|
// NOTE: by the way we compute the full path, it would guarantee
|
@@ -596,14 +597,14 @@ export class DiagramRenderer {
|
|
596
597
|
id = uuid();
|
597
598
|
}
|
598
599
|
const newClassView = new ClassView(this.diagram, id, PackageableElementExplicitReference.create(addedClass));
|
599
|
-
newClassView
|
600
|
+
positionedRectangle_setPosition(newClassView, classViewModelCoordinate ??
|
600
601
|
this.canvasCoordinateToModelCoordinate(new Point(this.virtualScreen.position.x +
|
601
602
|
this.virtualScreen.rectangle.width / 2, this.virtualScreen.position.y +
|
602
603
|
this.virtualScreen.rectangle.height / 2)));
|
603
|
-
this.diagram
|
604
|
+
diagram_addClassView(this.diagram, newClassView);
|
604
605
|
// Refresh hash since ClassView position is not observable
|
605
606
|
// NOTE: here we refresh after adding the class view to the diagram, that way the diagram hash is refreshed
|
606
|
-
newClassView
|
607
|
+
positionedRectangle_forceRefreshHash(newClassView);
|
607
608
|
this.diagram.classViews
|
608
609
|
.filter((classView) => classView.class.value !== addedClass)
|
609
610
|
.forEach((classView) => {
|
@@ -612,22 +613,22 @@ export class DiagramRenderer {
|
|
612
613
|
if (addedClass.generalizations
|
613
614
|
.map((generalization) => generalization.value.rawType)
|
614
615
|
.includes(_class)) {
|
615
|
-
this.diagram
|
616
|
+
diagram_addGeneralizationView(this.diagram, new GeneralizationView(this.diagram, newClassView, classView));
|
616
617
|
}
|
617
618
|
if (_class.generalizations
|
618
619
|
.map((generalization) => generalization.value.rawType)
|
619
620
|
.includes(addedClass)) {
|
620
|
-
this.diagram
|
621
|
+
diagram_addGeneralizationView(this.diagram, new GeneralizationView(this.diagram, classView, newClassView));
|
621
622
|
}
|
622
623
|
// Add property view
|
623
624
|
addedClass.getAllOwnedProperties().forEach((property) => {
|
624
625
|
if (property.genericType.value.rawType === _class) {
|
625
|
-
this.diagram
|
626
|
+
diagram_addPropertyView(this.diagram, new PropertyView(this.diagram, PropertyExplicitReference.create(property), newClassView, classView));
|
626
627
|
}
|
627
628
|
});
|
628
629
|
_class.getAllOwnedProperties().forEach((property) => {
|
629
630
|
if (property.genericType.value.rawType === addedClass) {
|
630
|
-
this.diagram
|
631
|
+
diagram_addPropertyView(this.diagram, new PropertyView(this.diagram, PropertyExplicitReference.create(property), classView, newClassView));
|
631
632
|
}
|
632
633
|
});
|
633
634
|
});
|
@@ -941,7 +942,7 @@ export class DiagramRenderer {
|
|
941
942
|
classView.rectangle.height > classMinHeight
|
942
943
|
? classView.rectangle.height
|
943
944
|
: classMinHeight;
|
944
|
-
classView
|
945
|
+
positionedRectangle_setRectangle(classView, new Rectangle(width, height));
|
945
946
|
}
|
946
947
|
}
|
947
948
|
drawClassView(classView) {
|
@@ -1072,7 +1073,7 @@ export class DiagramRenderer {
|
|
1072
1073
|
// NOTE: force hash reload when we redraw class view; this would help with cases where
|
1073
1074
|
// we auto add new properties to the class view, causing the box to expand, hence we need
|
1074
1075
|
// to recompute hash
|
1075
|
-
classView
|
1076
|
+
positionedRectangle_forceRefreshHash(classView);
|
1076
1077
|
}
|
1077
1078
|
drawLinePropertyNameAndMultiplicity(property, textPositionX, textPositionY, multiplicityPositionX, multiplicityPositionY, measureOnly) {
|
1078
1079
|
this.ctx.font = `${this.fontSize}px ${this.fontFamily}`;
|
@@ -1158,7 +1159,7 @@ export class DiagramRenderer {
|
|
1158
1159
|
}
|
1159
1160
|
drawPropertyOrAssociation(propertyView) {
|
1160
1161
|
let fullPath = propertyView.buildFullPath();
|
1161
|
-
fullPath =
|
1162
|
+
fullPath = _relationView_manageInsidePointsDynamically(fullPath, propertyView.from.classView.value, propertyView.to.classView.value);
|
1162
1163
|
// const toProperty = asso instanceof.property ? asso.property : asso.association.properties[1];
|
1163
1164
|
const toProperty = propertyView.property.value;
|
1164
1165
|
this.drawLinePropertyText(
|
@@ -1240,7 +1241,7 @@ export class DiagramRenderer {
|
|
1240
1241
|
drawInheritance(inheritance) {
|
1241
1242
|
const rect = inheritance.to.classView.value.rectangle;
|
1242
1243
|
let fullPath = inheritance.buildFullPath();
|
1243
|
-
fullPath =
|
1244
|
+
fullPath = _relationView_manageInsidePointsDynamically(fullPath, inheritance.from.classView.value, inheritance.to.classView.value);
|
1244
1245
|
// NOTE: by the way we compute the full path, it would guarantee
|
1245
1246
|
// to always have at least 2 points
|
1246
1247
|
const startX = fullPath[fullPath.length - 2].x;
|
@@ -1359,7 +1360,7 @@ export class DiagramRenderer {
|
|
1359
1360
|
assoViews.forEach((assoView) => {
|
1360
1361
|
if (selectedClasses.indexOf(assoView.from.classView.value) !== -1 &&
|
1361
1362
|
selectedClasses.indexOf(assoView.to.classView.value) !== -1) {
|
1362
|
-
|
1363
|
+
relationView_setPath(assoView, assoView.path.map((point) => new Point(point.x - newMovingDeltaX, point.y - newMovingDeltaY)));
|
1363
1364
|
}
|
1364
1365
|
});
|
1365
1366
|
}
|
@@ -1368,23 +1369,23 @@ export class DiagramRenderer {
|
|
1368
1369
|
if ('Delete' === e.key) {
|
1369
1370
|
if (!this.isReadOnly) {
|
1370
1371
|
this.selectedClasses.forEach((classView) => {
|
1371
|
-
this.diagram
|
1372
|
-
this.diagram
|
1372
|
+
diagram_deleteClassView(this.diagram, classView);
|
1373
|
+
diagram_setAssociationViews(this.diagram, this.diagram.associationViews.filter((associationView) => !(associationView.from.classView.value === classView ||
|
1373
1374
|
associationView.to.classView.value === classView)));
|
1374
|
-
this.diagram
|
1375
|
+
diagram_setGeneralizationViews(this.diagram, this.diagram.generalizationViews.filter((generalizationView) => !(generalizationView.from.classView.value === classView ||
|
1375
1376
|
generalizationView.to.classView.value === classView)));
|
1376
|
-
this.diagram
|
1377
|
+
diagram_setPropertyViews(this.diagram, this.diagram.propertyViews.filter((propertyView) => !(propertyView.from.classView.value === classView ||
|
1377
1378
|
propertyView.to.classView.value === classView)));
|
1378
1379
|
});
|
1379
1380
|
if (this.selectedPropertyOrAssociation instanceof AssociationView) {
|
1380
|
-
this.diagram
|
1381
|
+
diagram_deleteAssociationView(this.diagram, this.selectedPropertyOrAssociation);
|
1381
1382
|
}
|
1382
1383
|
else if (this.selectedPropertyOrAssociation instanceof PropertyView) {
|
1383
|
-
this.diagram
|
1384
|
+
diagram_deletePropertyView(this.diagram, this.selectedPropertyOrAssociation);
|
1384
1385
|
}
|
1385
1386
|
if (this.selectedInheritance) {
|
1386
1387
|
if (this.diagram.generalizationViews.find((generalizationView) => generalizationView === this.selectedInheritance)) {
|
1387
|
-
this.diagram
|
1388
|
+
diagram_deleteGeneralizationView(this.diagram, this.selectedInheritance);
|
1388
1389
|
}
|
1389
1390
|
}
|
1390
1391
|
this.selectedClasses = [];
|
@@ -1462,7 +1463,7 @@ export class DiagramRenderer {
|
|
1462
1463
|
if (!this.isReadOnly) {
|
1463
1464
|
if (this.selectedClasses.length !== 0) {
|
1464
1465
|
this.selectedClasses.forEach((classView) => {
|
1465
|
-
classView
|
1466
|
+
classView_setHideProperties(classView, !classView.hideProperties);
|
1466
1467
|
});
|
1467
1468
|
this.drawScreen();
|
1468
1469
|
}
|
@@ -1473,7 +1474,7 @@ export class DiagramRenderer {
|
|
1473
1474
|
if (!this.isReadOnly) {
|
1474
1475
|
if (this.selectedClasses.length !== 0) {
|
1475
1476
|
this.selectedClasses.forEach((classView) => {
|
1476
|
-
classView
|
1477
|
+
classView_setHideStereotypes(classView, !classView.hideStereotypes);
|
1477
1478
|
});
|
1478
1479
|
this.drawScreen();
|
1479
1480
|
}
|
@@ -1484,7 +1485,7 @@ export class DiagramRenderer {
|
|
1484
1485
|
if (!this.isReadOnly) {
|
1485
1486
|
if (this.selectedClasses.length !== 0) {
|
1486
1487
|
this.selectedClasses.forEach((classView) => {
|
1487
|
-
classView
|
1488
|
+
classView_setHideTaggedValues(classView, !classView.hideTaggedValues);
|
1488
1489
|
});
|
1489
1490
|
this.drawScreen();
|
1490
1491
|
}
|
@@ -1518,8 +1519,8 @@ export class DiagramRenderer {
|
|
1518
1519
|
else if ('ArrowUp' === e.key) {
|
1519
1520
|
const views = this.getSuperTypeLevels(this.selectedClasses, this.diagram, 0, 1);
|
1520
1521
|
const res = this.layoutTaxonomy(views, this.diagram, false, true);
|
1521
|
-
res[0].forEach((cv) => this.diagram
|
1522
|
-
res[1].forEach((gv) => this.diagram
|
1522
|
+
res[0].forEach((cv) => diagram_addClassView(this.diagram, cv));
|
1523
|
+
res[1].forEach((gv) => diagram_addGeneralizationView(this.diagram, gv));
|
1523
1524
|
this.drawScreen();
|
1524
1525
|
}
|
1525
1526
|
// Add subtypes of selected classes to the diagram
|
@@ -1528,8 +1529,8 @@ export class DiagramRenderer {
|
|
1528
1529
|
if (views.length > 0) {
|
1529
1530
|
views.forEach((classView) => this.ensureClassViewMeetMinDimensions(classView));
|
1530
1531
|
const res = this.layoutTaxonomy([views, this.selectedClasses], this.diagram, false, false);
|
1531
|
-
res[0].forEach((cv) => this.diagram
|
1532
|
-
res[1].forEach((gv) => this.diagram
|
1532
|
+
res[0].forEach((cv) => diagram_addClassView(this.diagram, cv));
|
1533
|
+
res[1].forEach((gv) => diagram_addGeneralizationView(this.diagram, gv));
|
1533
1534
|
}
|
1534
1535
|
this.drawScreen();
|
1535
1536
|
}
|
@@ -1538,9 +1539,9 @@ export class DiagramRenderer {
|
|
1538
1539
|
if (!this.isReadOnly) {
|
1539
1540
|
switch (this.interactionMode) {
|
1540
1541
|
case DIAGRAM_INTERACTION_MODE.LAYOUT: {
|
1541
|
-
this.diagram.generalizationViews.forEach((generalizationView) => generalizationView
|
1542
|
-
this.diagram.associationViews.forEach((associationView) => associationView
|
1543
|
-
this.diagram.propertyViews.forEach((propertyView) => propertyView
|
1542
|
+
this.diagram.generalizationViews.forEach((generalizationView) => relationView_possiblyFlattenPath(generalizationView));
|
1543
|
+
this.diagram.associationViews.forEach((associationView) => relationView_possiblyFlattenPath(associationView));
|
1544
|
+
this.diagram.propertyViews.forEach((propertyView) => relationView_possiblyFlattenPath(propertyView));
|
1544
1545
|
break;
|
1545
1546
|
}
|
1546
1547
|
case DIAGRAM_INTERACTION_MODE.ADD_CLASS: {
|
@@ -1597,16 +1598,16 @@ export class DiagramRenderer {
|
|
1597
1598
|
if (targetClassView.contains(eventPointInModelCoordinate.x, eventPointInModelCoordinate.y)) {
|
1598
1599
|
const gview = this.handleAddRelationship(this.startClassView, targetClassView);
|
1599
1600
|
if (gview) {
|
1600
|
-
gview.from
|
1601
|
+
relationShipEdgeView_setOffsetX(gview.from, -(this.startClassView.position.x +
|
1601
1602
|
this.startClassView.rectangle.width / 2 -
|
1602
1603
|
this.selectionStart.x));
|
1603
|
-
gview.from
|
1604
|
+
relationShipEdgeView_setOffsetY(gview.from, -(this.startClassView.position.y +
|
1604
1605
|
this.startClassView.rectangle.height / 2 -
|
1605
1606
|
this.selectionStart.y));
|
1606
|
-
gview.to
|
1607
|
+
relationShipEdgeView_setOffsetX(gview.to, -(targetClassView.position.x +
|
1607
1608
|
targetClassView.rectangle.width / 2 -
|
1608
1609
|
eventPointInModelCoordinate.x));
|
1609
|
-
gview.to
|
1610
|
+
relationShipEdgeView_setOffsetY(gview.to, -(targetClassView.position.y +
|
1610
1611
|
targetClassView.rectangle.height / 2 -
|
1611
1612
|
eventPointInModelCoordinate.y));
|
1612
1613
|
}
|
@@ -1703,7 +1704,7 @@ export class DiagramRenderer {
|
|
1703
1704
|
this.setSelectedClassCorner(this.diagram.classViews[i]);
|
1704
1705
|
if (!this.isReadOnly) {
|
1705
1706
|
// Bring the class view to front
|
1706
|
-
this.diagram
|
1707
|
+
diagram_setClassViews(this.diagram, this.reorderDiagramDomain(guaranteeNonNullable(this.selectedClassCorner), this.diagram));
|
1707
1708
|
}
|
1708
1709
|
break;
|
1709
1710
|
}
|
@@ -1730,7 +1731,7 @@ export class DiagramRenderer {
|
|
1730
1731
|
}
|
1731
1732
|
if (!this.isReadOnly) {
|
1732
1733
|
// Bring the class view to front
|
1733
|
-
this.diagram
|
1734
|
+
diagram_setClassViews(this.diagram, this.reorderDiagramDomain(this.selectedClasses[0], this.diagram));
|
1734
1735
|
}
|
1735
1736
|
this.clickX =
|
1736
1737
|
eventPointInCanvasCoordinate.x / this.zoom -
|
@@ -1761,7 +1762,7 @@ export class DiagramRenderer {
|
|
1761
1762
|
// check for selection of inheritance view
|
1762
1763
|
for (const generalizationView of this.diagram
|
1763
1764
|
.generalizationViews) {
|
1764
|
-
const val =
|
1765
|
+
const val = findOrBuildPoint(generalizationView, eventPointInModelCoordinate.x, eventPointInModelCoordinate.y, this.zoom, !this.isReadOnly);
|
1765
1766
|
if (val) {
|
1766
1767
|
this.selectedPoint = val;
|
1767
1768
|
this.setSelectedInheritance(generalizationView);
|
@@ -1771,7 +1772,7 @@ export class DiagramRenderer {
|
|
1771
1772
|
// check for selection of association view
|
1772
1773
|
if (!this.selectedPoint) {
|
1773
1774
|
for (const associationView of this.diagram.associationViews) {
|
1774
|
-
const val =
|
1775
|
+
const val = findOrBuildPoint(associationView, eventPointInModelCoordinate.x, eventPointInModelCoordinate.y, this.zoom, !this.isReadOnly);
|
1775
1776
|
if (val) {
|
1776
1777
|
this.selectedPoint = val;
|
1777
1778
|
this.setSelectedPropertyOrAssociation(associationView);
|
@@ -1782,7 +1783,7 @@ export class DiagramRenderer {
|
|
1782
1783
|
// check for selection of property view
|
1783
1784
|
if (!this.selectedPoint) {
|
1784
1785
|
for (const propertyView of this.diagram.propertyViews) {
|
1785
|
-
const val =
|
1786
|
+
const val = findOrBuildPoint(propertyView, eventPointInModelCoordinate.x, eventPointInModelCoordinate.y, this.zoom, !this.isReadOnly);
|
1786
1787
|
if (val) {
|
1787
1788
|
this.selectedPoint = val;
|
1788
1789
|
this.setSelectedPropertyOrAssociation(propertyView);
|
@@ -1863,11 +1864,11 @@ export class DiagramRenderer {
|
|
1863
1864
|
// Resize class view
|
1864
1865
|
if (this.selectedClassCorner) {
|
1865
1866
|
// Make sure width and height are in range!
|
1866
|
-
this.selectedClassCorner
|
1867
|
+
positionedRectangle_setRectangle(this.selectedClassCorner, new Rectangle(eventPointInModelCoordinate.x -
|
1867
1868
|
this.selectedClassCorner.position.x, eventPointInModelCoordinate.y -
|
1868
1869
|
this.selectedClassCorner.position.y));
|
1869
1870
|
// Refresh hash since ClassView rectangle is not observable
|
1870
|
-
this.selectedClassCorner
|
1871
|
+
positionedRectangle_forceRefreshHash(this.selectedClassCorner);
|
1871
1872
|
this.drawClassView(this.selectedClassCorner);
|
1872
1873
|
this.drawScreen();
|
1873
1874
|
}
|
@@ -1889,9 +1890,9 @@ export class DiagramRenderer {
|
|
1889
1890
|
(this.clickY - selectedClassOldPosition.oldPos.y);
|
1890
1891
|
newMovingDeltaX = selectedClass.position.x - newMovingX;
|
1891
1892
|
newMovingDeltaY = selectedClass.position.y - newMovingY;
|
1892
|
-
selectedClass
|
1893
|
+
positionedRectangle_setPosition(selectedClass, new Point(newMovingX, newMovingY));
|
1893
1894
|
// Refresh hash since ClassView position is not observable
|
1894
|
-
selectedClass
|
1895
|
+
positionedRectangle_forceRefreshHash(selectedClass);
|
1895
1896
|
}
|
1896
1897
|
});
|
1897
1898
|
this.potentiallyShiftRelationships(this.diagram.associationViews, this.selectedClasses, newMovingDeltaX, newMovingDeltaY);
|
@@ -1903,10 +1904,10 @@ export class DiagramRenderer {
|
|
1903
1904
|
// Change line (add a new point to the line)
|
1904
1905
|
if (this.selectedPoint) {
|
1905
1906
|
if (this.selectedPropertyOrAssociation) {
|
1906
|
-
this.selectedPropertyOrAssociation
|
1907
|
+
relationshipView_changePoint(this.selectedPropertyOrAssociation, this.selectedPoint, eventPointInModelCoordinate);
|
1907
1908
|
}
|
1908
1909
|
else if (this.selectedInheritance) {
|
1909
|
-
this.selectedInheritance
|
1910
|
+
relationshipView_changePoint(this.selectedInheritance, this.selectedPoint, eventPointInModelCoordinate);
|
1910
1911
|
}
|
1911
1912
|
this.selectedPoint = eventPointInModelCoordinate;
|
1912
1913
|
this.drawScreen();
|
@@ -2029,7 +2030,7 @@ export class DiagramRenderer {
|
|
2029
2030
|
];
|
2030
2031
|
for (const propertyHolderView of propertyHolderViews) {
|
2031
2032
|
let fullPath = propertyHolderView.buildFullPath();
|
2032
|
-
fullPath =
|
2033
|
+
fullPath = _relationView_manageInsidePointsDynamically(fullPath, propertyHolderView.from.classView.value, propertyHolderView.to.classView.value);
|
2033
2034
|
const propertyInfoBox = this.drawLinePropertyText(
|
2034
2035
|
// NOTE: by the way we compute the full path, it would guarantee
|
2035
2036
|
// to always have at least 2 points
|
@@ -2101,11 +2102,11 @@ export class DiagramRenderer {
|
|
2101
2102
|
: precedentY + precedentTotalHeight + spaceY;
|
2102
2103
|
// Set layout of current level
|
2103
2104
|
if (positionInitialClass || currentLevelIndex > 0) {
|
2104
|
-
levels[0]
|
2105
|
+
positionedRectangle_setPosition(levels[0], new Point(startX, currentLevelY));
|
2105
2106
|
levels.forEach((view, idx) => {
|
2106
2107
|
if (idx > 0) {
|
2107
2108
|
const precedent = levels[idx - 1];
|
2108
|
-
view
|
2109
|
+
positionedRectangle_setPosition(view, new Point(precedent.position.x + precedent.rectangle.width + spaceX, currentLevelY));
|
2109
2110
|
}
|
2110
2111
|
});
|
2111
2112
|
}
|