<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    隨筆 - 6  文章 - 129  trackbacks - 0
    <2025年7月>
    293012345
    6789101112
    13141516171819
    20212223242526
    272829303112
    3456789

    常用鏈接

    留言簿(14)

    隨筆檔案(6)

    文章分類(467)

    文章檔案(423)

    相冊

    收藏夾(18)

    JAVA

    搜索

    •  

    積分與排名

    • 積分 - 829249
    • 排名 - 49

    最新評論

    閱讀排行榜

    評論排行榜

    package testrcp.app;

    import org.eclipse.jface.action.MenuManager;
    import org.eclipse.swt.SWT;
    import org.eclipse.swt.graphics.Image;
    import org.eclipse.swt.graphics.Point;
    import org.eclipse.swt.graphics.Rectangle;
    import org.eclipse.swt.widgets.Display;
    import org.eclipse.swt.widgets.Event;
    import org.eclipse.swt.widgets.Listener;
    import org.eclipse.swt.widgets.Menu;
    import org.eclipse.swt.widgets.Shell;
    import org.eclipse.swt.widgets.Tray;
    import org.eclipse.swt.widgets.TrayItem;
    import org.eclipse.ui.IWorkbenchWindow;
    import org.eclipse.ui.application.ActionBarAdvisor;
    import org.eclipse.ui.application.IActionBarConfigurer;
    import org.eclipse.ui.application.IWorkbenchWindowConfigurer;
    import org.eclipse.ui.application.WorkbenchWindowAdvisor;

    public class ApplicationWorkbenchWindowAdvisor extends WorkbenchWindowAdvisor {

     private TrayItem trayItem;//系統托盤對象
     private Image trayImage;//系統托盤圖標對象
     /** 程序的菜單條 */
     private ApplicationActionBarAdvisor actionBarAdvisor;
     
        public ApplicationWorkbenchWindowAdvisor(IWorkbenchWindowConfigurer configurer) {
            super(configurer);
        }
        /** 創建菜單條對象 */
        public ActionBarAdvisor createActionBarAdvisor(IActionBarConfigurer configurer) {
            actionBarAdvisor = new ApplicationActionBarAdvisor(configurer);
         return actionBarAdvisor;
        }
       
        /** 打開窗口前調用該方法,對窗口初始化設置 */
        public void preWindowOpen() {
            IWorkbenchWindowConfigurer configurer = getWindowConfigurer();
            configurer.setInitialSize(new Point(600, 400));
            configurer.setShowCoolBar(true);//工具欄
            configurer.setShowStatusLine(false);//狀態欄
           
            configurer.setShowPerspectiveBar(true);//透視圖
            configurer.setShowProgressIndicator(true);//進度條
           
            final IWorkbenchWindow window = super.getWindowConfigurer().getWindow();
            /** 創建系統托盤 */
            trayItem = initTrayItem(window);
            /** 如果支持系統托盤,則創建托盤的菜單 */
            if(trayItem != null) {
             createPopupMenu(window);
            }
        }
       
        /**
      * 創建系統托盤菜單
      *
      * @param window
      *            工作臺窗口對象
      */
        private void createPopupMenu(final IWorkbenchWindow window) {
      trayItem.addListener(SWT.MenuDetect, new Listener() {

       @Override
       public void handleEvent(Event event) {
        MenuManager trayMenu = new MenuManager();
        Menu menu = trayMenu.createContextMenu(window.getShell());
        /**
         * 調用fillTrayItem方法創建系統托盤對象,可以直接利用菜單欄中的操作 而不需要,重新創建操作
         */
        actionBarAdvisor.fillTrayItem(trayMenu);
        menu.setVisible(true);
       }
       
      });
      
     }

     /**
      * 初始化系統托盤對象
      *
      * @param window
      *            工作臺窗口對象
      * @return 該程序所對應的系統托盤對象
      */
     private TrayItem initTrayItem(IWorkbenchWindow window) {
      final Tray tray = Display.getCurrent().getSystemTray();
      if(tray == null)
       return null;
      TrayItem trayItem = new TrayItem(tray, SWT.NONE);
      trayImage = Activator.getImageDescriptor("icons/logo.gif").createImage();
      trayItem.setImage(trayImage);
      trayItem.setToolTipText("System Tray");
      
      return trayItem;
     }

     @Override
     public void postWindowOpen() {
      //窗口居中顯示
      Shell shell = getWindowConfigurer().getWindow().getShell();
      Rectangle screenSize = Display.getDefault().getClientArea();
      Rectangle frameSize = shell.getBounds();
      shell.setLocation((screenSize.width - frameSize.width)/2, (screenSize.height - frameSize.height)/2);
     }
       
     /** 釋放窗口,釋放系統托盤 */
     public void dispose() {
      if (trayImage != null) {
       trayImage.dispose();
       trayItem.dispose();
      }
     }

    }



    posted on 2008-12-05 23:42 Ke 閱讀(919) 評論(0)  編輯  收藏 所屬分類: eclipse RCP
    主站蜘蛛池模板: 亚洲人成网址在线观看| 亚洲一区二区精品视频| 亚洲福利秒拍一区二区| 国产精品免费观看调教网| 国产亚洲美女精品久久久久狼| 国产午夜亚洲精品不卡| 四虎免费影院4hu永久免费| 国内成人精品亚洲日本语音| 四虎永久在线精品免费影视 | 国产午夜成人免费看片无遮挡| 亚洲日本韩国在线| a级毛片免费播放| 亚洲国产精品国自产拍电影| 97公开免费视频| 亚洲国产高清美女在线观看| 免费无码看av的网站| 日韩a毛片免费观看| 亚洲精品卡2卡3卡4卡5卡区| **一级一级毛片免费观看| 亚洲欧洲日韩极速播放| 日本高清免费中文字幕不卡| 日韩电影免费在线观看| 亚洲视频在线免费观看| 精品熟女少妇AV免费观看| 国产亚洲视频在线观看| 亚洲va无码手机在线电影| 日韩视频在线精品视频免费观看 | 国产精品亚洲专区在线播放| 亚洲精品NV久久久久久久久久| 最新国产乱人伦偷精品免费网站| 亚洲美女免费视频| 情侣视频精品免费的国产| 国产免费播放一区二区| 亚洲国产成人久久综合一区| 免费一看一级毛片| 日韩免费在线视频| 337P日本欧洲亚洲大胆艺术图| 亚洲国产综合无码一区| 24小时日本在线www免费的| 九九热久久免费视频| 亚洲国产精品免费观看|