【问题标题】:Eclipse Plug-in Counting Click / Listening To ClickEclipse 插件计数点击/监听点击
【发布时间】:2013-04-26 16:58:06
【问题描述】:

我正在为基于 Eclipse 的 IDE 编写一个 MagicDraw 插件。我希望应用程序在空闲 15 分钟后关闭以释放许可证。

我首先实现了一个计数器,它将每 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 的地方是我认为我应该将侦听器添加到完整的 Eclipse 窗口以便能够使用 mouseClicked 事件的地方。

但是我该怎么做呢?

请注意,我只显示了相关代码。

【问题讨论】:

    标签: java eclipse api plugins eclipse-plugin


    【解决方案1】:

    因为您使用的是 eclipse,所以您可以使用 SWT 来捕获鼠标事件。最简单的方法是在 Display-Instance 上注册一个 Listener 以获取所有应用程序窗口的所有事件。

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

    【讨论】:

    • @Marwan Doumit 这个答案对你有用吗?如果是,请采纳!
    • 这不是我想要的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-06
    • 2012-11-27
    相关资源
    最近更新 更多