2011-08-20 41 views

Trả lời

0
+0

Theo tôi thấy điều này hoàn toàn không giúp được gì. Mỗi 'đối tượng' có một EditPart và tương tác với các đối tượng được thực hiện bằng cách sử dụng các EditParts này. Câu trả lời của bạn chứa các lượt thích tới các API của chính trình soạn thảo. Vì vậy, ngay cả khi có thể bắt được các nhấp chuột đôi và phản ứng trên đó, nó không phải là cách ưu tiên vì bạn đang phá vỡ khuôn khổ GEF. Hãy sửa tôi, nếu tôi sai. – Veger

17

Trong GraphicalEditPart của "hộp" mà bạn muốn thêm người nghe, bạn phải ghi đè phương thức performRequest(Request req). Khi khuôn khổ xác định một nhấp đúp chuột vào con số của phần, nó gọi phương thức này với một yêu cầu có req.getType()==RequestConstants.REQ_OPEN. Bạn có thể tiếp quản từ đây. Toàn bộ mã để kiểm tra rằng tác phẩm của anh ấy:

@Override 
public void performRequest(Request req) { 
    if(req.getType() == RequestConstants.REQ_OPEN) { 
     System.out.println("requested double-click."); 
    } 
} 

Hy vọng điều này sẽ xảy ra.

+0

Cảm ơn rất nhiều, nó hoạt động :) – jean24

+1

Vì vậy, hãy đánh dấu câu trả lời là chính xác – vainolo

+0

@vainolo - Cảm ơn. Hữu ích . :) – Pushkar

0
viewer.getControl().addListener(SWT.MouseDoubleClick, new Listener() { 

     @Override 
     public void handleEvent(Event event) { 
     //write the double click action 
    }); 
Các vấn đề liên quan