Tôi đang sử dụng GEF. Tôi có một trình soạn thảo đồ họa với một số "hộp" được triển khai. Bây giờ, tôi muốn thêm một người nghe click đôi vào mỗi ô (Rectangle). Tôi đã cố thêm một người nghe vào GraphicalViewer nhưng nó không hoạt động.Làm cách nào để thêm trình nghe nhấp đúp vào trình soạn thảo GEF của tôi?
8
A
Trả lời
0
Tôi không quen thuộc với GEF bản thân mình, tuy nhiên tôi thấy điều này trong tài liệu:
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
viewer.getControl().addListener(SWT.MouseDoubleClick, new Listener() {
@Override
public void handleEvent(Event event) {
//write the double click action
});
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