Come vengono realizzati figure bambino selezionabile in GEF?
-
11-10-2019 - |
Domanda
Ho implementato aggiungendo porte da bambini ad un rettangolo Figura / EditPart / Modello utilizzando l'esempio Logic come riferimento. Le figure display port come previsto, e il debug mostra che le EditParts e modelli sono creati e aggiunti al genitore, ma i bambini non sono selezionabili.
Nel EditPart per i bambini, sovrascrivo isSelectable () per restituire true.
Nel genitore ho cercato sovrascrivendo createChildEditPolicy () per restituire NonResizableEditPolicy, invertendo la raccomandazione per rendere i bambini non selezionabili qui , ma sembra di non fare nulla. Se installo NonResizableEditPolicy come SELECTION_FEEDBACK_ROLE nella EditPart del bambino, si è inizialmente selezionata al momento della creazione, ma poi non possono essere selezionate in seguito.
Inoltre, quando il bambino figura viene cliccato, il genitore non è selezionata o -. Si tratta di un punto morto in cui, facendo clic non cambia selezione
Mi sto perdendo qualcosa per renderlo selezionabile, o è probabile che qualcos'altro sta interferendo?
Soluzione
Si può provare con debugger per set punto di interruzione per gli spettatori getEditPartAt (Point) e fare un passo da lì dove va. Questo dovrebbe essere attivato quando si fa clic sul bambino.
Potrebbe essere che non c'è solo alcune risposte selezione creata, in modo da poter provare anche l'emissione dei viewer.getSelectedEditParts () per verificare che è la selezione in realtà lì, ma il feedback mancante.
Altri suggerimenti
mi capita di incontrare lo stesso problema, e risolvere il problema nel modo:. Tenta di installare una politica adeguata in EditPart
@Override
protected void createEditPolicies() {
installEditPolicy(EditPolicy.LAYOUT_ROLE, yourEditPolicy());
}