Elemento Modello unico rappresentato più volte nell'interfaccia utente ... come implementare in GEF?
-
27-09-2019 - |
Domanda
Ho un modello in cui un oggetto modello è rappresentato più volte nel grafico visualizzato. Si consideri il seguente modello:
- Ci sono molte partizioni
- Ogni partizione ha x SourcePorts e DestinationPorts y
- Ogni SourcePort può essere collegato ad un DestinationPort
- è selezionata una partizione
Voglio visualizzare questa in modo tale che la partizione selezionata è al centro:
- Sulla sinistra ci sono tutte le partizioni visibili con tutti i SourcePorts dipinte
- Al centro si trova la partizione selezionata con tutte le porte dipinte
- Sulla destra ci sono tutte le partizioni visibili con tutti i DestinationPorts dipinte
- Tutte le connessioni tra le porte sono dipinte
- L'utente potrebbe manipolazione le porte e le connessioni (aggiungere / rimuovere porte e connessioni)
Quindi, il mio modello di una partizione mappe a più figure. Una partizione ordinario è dipinto per due volte (una volta a sinistra e una volta a destra) e la partizione selezionata per tre volte.
Come implementare questo GEF? Devo creare un'EditPart per partizione e lasciare restituire un IFigure per tutte le rappresentazioni grafiche? O dovrebbe ogni istanza che viene disegnata sullo schermo avere il proprio EditPart? O è benificial di creare un modello extra in cui una partizione è rappresentata attraverso più istanze modello?
Soluzione
Vi suggerisco di creare un modello diverso, che contiene tutti i dati visualizazion: in questo modo è possibile collegare un elemento del modello di dati di multi-istanza di eleemnts del modello di visualizzazione e risolvere il problema in modo semplice e modo elegante. Inoltre si fa non "inquinare" il modello di dati con tutti i dati necessari per la visualizzazione, cioè le coordinate degli elementi nel diagramma.
Saluti