<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

    搜索

    •  

    積分與排名

    • 積分 - 828831
    • 排名 - 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 閱讀(918) 評論(0)  編輯  收藏 所屬分類: eclipse RCP
    主站蜘蛛池模板: 亚洲尹人香蕉网在线视颅 | 黄色网址免费在线| 欧美最猛性xxxxx免费| 亚洲成a人片在线网站| 亚洲一区二区三区免费在线观看| 99人中文字幕亚洲区| 99热精品在线免费观看| 亚洲精品成人久久| 97人妻无码一区二区精品免费| 亚洲精品视频免费看| 一本岛高清v不卡免费一三区| 亚洲国产成人精品激情| 香蕉视频在线观看免费国产婷婷| 精品亚洲av无码一区二区柚蜜| 又黄又爽无遮挡免费视频| 黄色短视频免费看| 亚洲国产成人久久综合碰碰动漫3d| 午夜精品射精入后重之免费观看| 亚洲精品美女久久久久9999| 免费看韩国黄a片在线观看| 国产精品亚洲天堂| 一本色道久久综合亚洲精品高清| 久久精品免费一区二区三区| 亚洲ts人妖网站| 亚洲 小说区 图片区 都市| 成全视频免费观看在线看| 亚洲色偷偷偷网站色偷一区| 精品国产免费观看久久久| aa级毛片毛片免费观看久| 亚洲一区二区影院| 免费无码成人AV片在线在线播放| 精选影视免费在线 | 亚洲免费二区三区| 亚洲人成无码www久久久| 67pao强力打造高清免费| 女bbbbxxxx另类亚洲| 久久精品7亚洲午夜a| 毛片免费视频在线观看| 一级特黄aaa大片免费看| 亚洲电影在线免费观看| 亚洲国产小视频精品久久久三级|