2013-04-26 52 views
1

我正在爲MagicDraw基於eclipse編寫一個IDE插件。我想在15分鐘的空閒時間後關閉應用程序以釋放許可證。Eclipse插件計數Click/Listening點擊

我第一次做了一個計數器,它會每1000毫秒檢查鼠標位置。每當鼠標位置保持不變時,我減少了計數器。當計數器達到0時,我關閉了應用程序。每次改變位置我重置計數器。

這裏的問題是,如果應用程序打開,並且用戶只是在不同的窗口中移動鼠標,則不會將其歸類爲空閒。

我的第二種方法是計算點擊次數。但是,我面臨的問題是我沒有得到如何添加一個偵聽器到完整的IDE窗口。

這是我到目前爲止。

package myplugin; 
import java.awt.event.MouseListener; 
public class CheckAct implements MouseListener{ 
    private int timeleft; 
    private int permtime ; 
    public CheckAct(int initialTime){ 
     this.setPermtime(initialTime); 
     this.setTimeleft(initialTime) ; 
     //Missing Addlistener Code 
    } 
    @Override 
    public void mouseClicked(java.awt.event.MouseEvent e) { 
     // TODO Auto-generated method stub 
     this.resetTime(); 
    } 
} 

在那裏我有//missing addlistenercode是我認爲我應該將監聽器添加到全蝕窗口能夠使用的mouseClicked事件。

但我該怎麼做?

請注意,我只顯示相關的代碼。

回答

1

因爲您正在使用eclipse,您可以使用SWT來捕捉鼠標事件。簡單的方法是在Display-Instance上註冊一個Listener來獲取所有應用程序窗口的所有事件。

PlatformUI.getWorkbench().getDisplay().addListener(SWT.MouseDown, new Listener() { 
    @Override 
    public void handleEvent(Event event) { 
    //TODO 
    } 
}); 
+0

@Marwan Doumit這個答案適合您嗎?如果是,請接受它! – Chriss 2013-04-30 14:05:37

+0

這不是我正在尋找的東西。 – 2013-07-16 16:37:00