双击系统托盘图标显示启动画面

时间:2017-11-27 11:21:54

标签: eclipse-rcp

我已经制作了一个RCP应用程序,默认情况下在系统启动时启动。它有一个登录对话框,可在创建工作台之前对用户进行身份验证。

我的应用程序默认在系统托盘中启动。下面是代码(我只发布了相关代码)。

Application.java

public Object start(IApplicationContext context) {
   Display display = PlatformUI.createDisplay();
   minimizeToTray(display,context);
}

private void minimizeToTray(Display display,IApplicationContext context){
  Shell displayShell = new Shell(display);
  URL imageURL =   Platform.getProduct().getDefiningBundle().getEntry(Platform.getProduct().getProperty("trayIcon"));
  Image image = ImageDescriptor.createFromURL(imageURL).createImage();

  //Create Tray and add listener for double click
  trayItem.addSelectionListener(new SelectionAdapter() {
    public void widgetDefaultSelected(SelectionEvent e) {
            image.dispose();
            item.dispose();
            startLogin(); //Call login dialog and create workbench after authentication
            displayShell.dispose();
    }
   });


   //Close current splash screen.
   context.applicationRunning();       

   //Do-event loop
   while(!displayShell.isDisposed()){
        if(!display.readAndDispatch()){
            display.sleep();
        }
   }
}

应用程序启动时,会显示启动画面。将应用程序添加到系统托盘后,我使用context.applicationRunning();关闭启动画面并等待用户双击托盘图标。

用户双击图标后,我想再次显示启动画面。

0 个答案:

没有答案