Einzelmodellelement repräsentierte mehrfach in der UI ... wie in GEF zu implementieren?

StackOverflow https://stackoverflow.com/questions/4254662

  •  27-09-2019
  •  | 
  •  

Frage

Ich habe ein Modell, bei dem ein Modellobjekt mehrfach in der angezeigten Grafik dargestellt wird. Betrachten Sie das folgende Modell:

  1. Es gibt viele Partitionen
  2. Jede Partition hat x SourcePorts und y DestinationPorts
  3. Jede Source kann auf eine Destinationport
  4. angeschlossen werden
  5. Eine Partition ausgewählt

Ich mag diese so visualisieren, dass die ausgewählte Partition ist im Zentrum:

  1. Auf der linken Seite gibt es alle Partitionen sichtbar mit allen SourcePorts gemalt
  2. In der Mitte befindet sich der ausgewählte Bereich mit allen Ports gemalt
  3. Auf der rechten Seite gibt es alle Partitionen sichtbar mit allen DestinationPorts gemalt
  4. Alle Verbindungen zwischen Ports sind bemalt
  5. Der Benutzer könnte Manipulation der Ports und Anschlüsse (Add / Remove Ports und Anschlüsse)

Also mein Modell einer Partition abbildet, um mehrere Figuren. Eine gewöhnliche Partition wird zweimal gemalt (einmal auf der linken Seite und einmal auf der rechten Seite) und der ausgewählten Partition dreimal.

Wie das in der GEF implementieren? Sollte ich eine EditPart pro Partition und lassen Sie es für alle grafischen Darstellungen ein IFigure zurückkehren? Oder sollte jede Instanz, die auf dem Bildschirm gezeichnet wird, haben sie eigene EditPart ist? Oder ist benificial es ein zusätzliches Modell zu schaffen, wo eine Partition wird durch mehrere Modellinstanzen dargestellt?

War es hilfreich?

Lösung

Ich schlage vor, ein anderes Modell zu schaffen, das die visualizazion alle Daten enthält: Auf diese Weise können Sie ein Element des Datenmodells auf mehrere Instanz von eleemnts des Visualisierungsmodell verknüpfen und lösen Ihr Problem auf einfache und elegante Weise. Außerdem müssen Sie nicht „verschmutzen“ das Datenmodell mit allen Daten für die Visualisierung benötigt, das heißt die Koordinaten der Elemente im Diagramm.

Saluti

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top