2016-08-12 3 views
1

Dans Dolphin Smalltalk, j'ai défini un menu contextuel dans une vue arborescente, mais ce menu s'affiche chaque fois que je clique avec le bouton droit sur l'arbre, même si je clique sur un espace vide. Comment limiter la fenêtre contextuelle aux seules lignes existantes de l'arborescence? Cordialement. Maurizio.Limiter le menu contextuel

+0

Pouvez-vous partager plus de détails ou une capture d'écran? –

Répondre

1

Enfin, je l'ai trouvé.

Pour les personnes intéressées:

Dans la méthode CreateSchematicWiring:

treePresenter 
    when: #rightButtonPressed: 
    send: #onRightButtonPressed: 
    to: self 

et c'est la méthode "onRightButtonPressed":

onRightButtonPressed: aMouseEvent 
    | treeView item | 
    treeView := treePresenter view. 
    item := treeView itemFromPoint: aMouseEvent position. 
    item 
     ifNil: [treeView contextMenu: nil] 
     ifNotNil: [:elem | treeView contextMenu: (treeView objectFromHandle: elem) getMenu] 

où la méthode getMenu retourne un menu en fonction de la type d'objet sur lequel j'ai cliqué.