From cc08f45449f8dbaa4186fb2af95b7a7a0fa31a77 Mon Sep 17 00:00:00 2001 From: Francisco-Galindo Date: Tue, 14 Jan 2025 11:08:52 -0600 Subject: [PATCH] Refactor: selection of path to draw for relationships --- src/components/EditorCanvas/Relationship.jsx | 35 ++++++++++++++----- .../EditorCanvas/RelationshipFormat.jsx | 20 +++++------ src/components/EditorHeader/ControlPanel.jsx | 3 -- 3 files changed, 36 insertions(+), 22 deletions(-) diff --git a/src/components/EditorCanvas/Relationship.jsx b/src/components/EditorCanvas/Relationship.jsx index fb7eb37..e964112 100644 --- a/src/components/EditorCanvas/Relationship.jsx +++ b/src/components/EditorCanvas/Relationship.jsx @@ -21,8 +21,28 @@ export default function Relationship({ data }) { let direction = 1; let cardinalityStart = "1"; let cardinalityEnd = "1"; - let cardinalityvar; + const formats = { + notation: { + default: { + one_to_one: DefaultNotation, + one_to_many: DefaultNotation, + many_to_one: DefaultNotation, + }, + crows_foot: { + one_to_one: CrowOO, + one_to_many: CrowOM, + many_to_one: CrowOM, + }, + idef1x: { + one_to_one: IDEFZM, + one_to_many: IDEFZM, + many_to_one: IDEFZM, + }, + } + } + + let format; switch (data.cardinality) { // the translated values are to ensure backwards compatibility case t(Cardinality.MANY_TO_ONE): @@ -33,8 +53,8 @@ export default function Relationship({ data }) { } else { cardinalityStart = "(1,*)"; cardinalityEnd = "(1,1)"; - cardinalityvar="1"; } + format = formats.notation[settings.notation].many_to_one; break; case t(Cardinality.ONE_TO_MANY): case Cardinality.ONE_TO_MANY: @@ -44,8 +64,8 @@ export default function Relationship({ data }) { } else { cardinalityStart = "(1,1)"; cardinalityEnd = "(1,*)"; - cardinalityvar="2"; } + format = formats.notation[settings.notation].one_to_many; break; case t(Cardinality.ONE_TO_ONE): case Cardinality.ONE_TO_ONE: @@ -55,10 +75,11 @@ export default function Relationship({ data }) { } else { cardinalityStart = "(1,1)"; cardinalityEnd = "(1,1)"; - cardinalityvar="3"; } + format = formats.notation[settings.notation].one_to_one; break; default: + format = formats.default.one_to_one; break; } @@ -140,11 +161,7 @@ export default function Relationship({ data }) { cursor="pointer" /> - {CrowOM(pathRef.current,settings.notation, cardinalityvar, cardinalityEndX, cardinalityEndY, cardinalityStartX, cardinalityStartY, direction, cardinalityStart, cardinalityEnd)} - {CrowOO(pathRef.current,settings.notation, cardinalityvar, cardinalityEndX, cardinalityEndY, cardinalityStartX, cardinalityStartY, direction, cardinalityStart, cardinalityEnd)} - {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)} + {format(pathRef.current, cardinalityEndX, cardinalityEndY, cardinalityStartX, cardinalityStartY, direction, cardinalityStart, cardinalityEnd)} { - console.log(settings.notation); setSettings((prev) => ({ ...prev, notation: "default" })); }, }, { crows_foot_notation: () => { - console.log(settings.notation); setSettings((prev) => ({ ...prev, notation: "crows_foot" })); }, }, { idef1x_notation: () => { - console.log(settings.notation); setSettings((prev) => ({ ...prev, notation: "idef1x" })); }, },