From 51ccf629c1ed004557b92e7a914159d414a381be Mon Sep 17 00:00:00 2001 From: Patricio2002 Date: Tue, 14 Jan 2025 12:27:48 -0600 Subject: [PATCH] =?UTF-8?q?a=C3=B1adido=20el=20dise=C3=B1o?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/EditorCanvas/Canvas.jsx | 1 + src/components/EditorCanvas/Relationship.jsx | 39 ++++- .../EditorCanvas/RelationshipFormat.jsx | 160 +++++++++++++++++- 3 files changed, 193 insertions(+), 7 deletions(-) diff --git a/src/components/EditorCanvas/Canvas.jsx b/src/components/EditorCanvas/Canvas.jsx index d74dd63..50f1500 100644 --- a/src/components/EditorCanvas/Canvas.jsx +++ b/src/components/EditorCanvas/Canvas.jsx @@ -3,6 +3,7 @@ import { Action, Cardinality, Constraint, + SubtypeRestriction, ObjectType, } from "../../data/constants"; import { Toast } from "@douyinfe/semi-ui"; diff --git a/src/components/EditorCanvas/Relationship.jsx b/src/components/EditorCanvas/Relationship.jsx index 4908e30..e6d70a3 100644 --- a/src/components/EditorCanvas/Relationship.jsx +++ b/src/components/EditorCanvas/Relationship.jsx @@ -1,11 +1,11 @@ import { useRef } from "react"; -import { Cardinality, ObjectType, Tab } from "../../data/constants"; +import { Cardinality, ObjectType, Tab, SubtypeRestriction } from "../../data/constants"; import { calcPath } from "../../utils/calcPath"; import { useDiagram, useSettings, useLayout, useSelect } from "../../hooks"; import { useTranslation } from "react-i18next"; import { SideSheet } from "@douyinfe/semi-ui"; import RelationshipInfo from "../EditorSidePanel/RelationshipsTab/RelationshipInfo"; -import { CrowOM, CrowOO, CrowZM, IDEFZM, DefaultNotation, sub01 } from "./RelationshipFormat"; +import { CrowOM, CrowOO, CrowZM, IDEFZM, DefaultNotation, subDP, subDT, subOP, subOT } from "./RelationshipFormat"; export default function Relationship({ data }) { @@ -22,6 +22,7 @@ export default function Relationship({ data }) { let cardinalityStart = "1"; let cardinalityEnd = "1"; let cardinalityvar; + let subtypevar; switch (data.cardinality) { // the translated values are to ensure backwards compatibility @@ -62,6 +63,35 @@ export default function Relationship({ data }) { break; } + switch (data.subtype_restriction){ + case t(SubtypeRestriction.DISJOINT_TOTAL): + case SubtypeRestriction.DISJOINT_TOTAL: + subtypevar="1"; + console.log(subtypevar) + break; + + case t(SubtypeRestriction.DISJOINT_PARTIAL): + case SubtypeRestriction.DISJOINT_PARTIAL: + subtypevar="2"; + console.log(subtypevar) + break; + + case t(SubtypeRestriction.OVERLAPPING_TOTAL): + case SubtypeRestriction.OVERLAPPING_TOTAL: + subtypevar="3"; + console.log(subtypevar) + break; + + case t(SubtypeRestriction.OVERLAPPING_PARTIAL): + case SubtypeRestriction.OVERLAPPING_PARTIAL: + subtypevar="4"; + console.log(subtypevar) + break; + default: + break; + + } + let cardinalityStartX = 0; let cardinalityEndX = 0; let cardinalityStartY = 0; @@ -145,7 +175,10 @@ export default function Relationship({ data }) { {CrowZM(pathRef.current,settings.notation, cardinalityvar, cardinalityEndX, cardinalityEndY, cardinalityStartX, cardinalityStartY, direction, cardinalityStart, cardinalityEnd)} {DefaultNotation(pathRef.current,settings.notation, cardinalityEndX, cardinalityEndY, cardinalityStartX, cardinalityStartY, cardinalityStart, cardinalityEnd)} {IDEFZM(pathRef.current,settings.notation, cardinalityvar, cardinalityEndX, cardinalityEndY, cardinalityStartX, cardinalityStartY, direction, cardinalityStart, cardinalityEnd)} - {sub01(pathRef.current,settings.notation, cardinalityvar, cardinalityEndX, cardinalityEndY, cardinalityStartX, cardinalityStartY, direction, cardinalityStart, cardinalityEnd)} + {subDP(pathRef.current,settings.notation, subtypevar, cardinalityEndX, cardinalityEndY, cardinalityStartX, cardinalityStartY, direction, cardinalityStart, cardinalityEnd)} + {subDT(pathRef.current,settings.notation, subtypevar, cardinalityEndX, cardinalityEndY, cardinalityStartX, cardinalityStartY, direction, cardinalityStart, cardinalityEnd)} + {subOT(pathRef.current,settings.notation, subtypevar, cardinalityEndX, cardinalityEndY, cardinalityStartX, cardinalityStartY, direction, cardinalityStart, cardinalityEnd)} + {subOP(pathRef.current,settings.notation, subtypevar, cardinalityEndX, cardinalityEndY, cardinalityStartX, cardinalityStartY, direction, cardinalityStart, cardinalityEnd)} + + D + + + + D + + + + + {cardinalityStart} + + + {cardinalityEnd} + + + ) + ) +} + +export function subOP(pathRef, notation, cardinalityvar, cardinalityEndX, cardinalityEndY, cardinalityStartX, cardinalityStartY, direction, cardinalityStart, cardinalityEnd){ + return( + pathRef && notation === 'idef1x' && (cardinalityvar=="4") &&( <> + + O + + + + O + + + + + {cardinalityStart} + + + {cardinalityEnd} + + + ) + ) +} +