Wichtig
Detail
Wichtig
Detail
Detail
#26770
Modell-Editor: Fehler bei Weiterbearbeitung nach Löschen von Element
Ursache ist dass ein GraphPart seine Abhängigkeit zum Graph beim Löschen nicht entfernt.
Der Graph im Modell-Editor ist ein tl:DefaultGraphModel welches selbst ein tl:SharedObjectData ist.
- Das tl:DefaultGraphModel enthält ein Mapping von Fachobjekt zu dem entsprechenden tl:GraphPart. Dadurch besitzt der Entwickler einen schnellen Zugriff auf das Graphobjekt mit Hilfe des tl:GraphModel und dem Fachobjekt.
s. dazu die API getNode(businessObject) bzw. getGraphPart(businessObject) in tl:DefaultGraphModel.
- Das tl:SharedObjectData besitzt ein Mapping um leicht die Referrers gewisser Properties (bspw. OWNER, LABEL_TYPE, PARENT, etc.) eines tl:SharedObjectData zu bestimmen.
Mit dieser Mechanik werden alle Knoten eines Graphen bestimmt. In tl:DefaultGraphModel werden in der API getNodes() durch {{{#!java filterNodes(getReferrers(DefaultGraphPart.class, DefaultGraphPart.GRAPH))
}}}
alle tl:GraphPart's ermittelt, die in ihrer Property DefaultGraphPart.GRAPH den aktuellen Graph (tl:GraphModel) als Wert besitzen.
Die Menge der Referrers ist gecached und wird insbesondere für die Property DefaultGraphPart.GRAPH nicht aktualisiert, falls ein tl:GraphPart aus dem Graphen gelöscht wird.
Test
- Neues Modul M anlegen.
- In M` den Typ `A mit dem Untertyp B erstellen.
- Anschließend B über die Detailssicht oder im Diagramm selbst löschen.
- Fremden Typ (z.B. Person) in das Diagramm hineinziehen.
- Es darf keine Fehlermeldung "Objekt already deleted" auftreten.