eclipshine

          Eclipse主題站

          否決彈出菜單

          有時(shí)候,比如說(shuō)在顯示一個(gè)TableViewer的彈出菜單時(shí),可能對(duì)于某些行不希望顯示彈出菜單,而另外的一些行則需要顯示彈出菜單予以操作。今天碰到這個(gè)問(wèn)題,使用了MenuListener來(lái)解決了:
              menu.addMenuListener(new MenuAdapter() {
                  public void menuShown(MenuEvent e) {
                      ISelection selection = tableTreeViewer.getSelection();
                      IStructuredSelection ss = (IStructuredSelection) selection;
                      Object firstElement = ss.getFirstElement();
                      if (firstElement instanceof IAttributeCatagory)
                          menu.setVisible(false);
                  }
              });
          我隱約記得好像是有一個(gè)menuAboutToShow()的方法,但不記得是在哪個(gè)Listener中定義的了。可以在menuAboutToShow()中定義對(duì)MenuItem進(jìn)行動(dòng)態(tài)的添加或者刪除。不知道是不是我記錯(cuò)了,哪位記得有這個(gè)方法的?
          MenuListener好像也可以做這個(gè)事情,雖然在其文檔中說(shuō)道,當(dāng)菜單已經(jīng)被顯示時(shí)menuShown()方法被調(diào)用,但是我在實(shí)際操作的時(shí)候,就上面的 例子來(lái)看,菜單并沒(méi)有被顯示出來(lái)就被setVisible(false)了,不知道是不是太快了的緣故。還是應(yīng)該有menuAboutToShow()這 樣的方法才對(duì)。

          posted on 2005-09-21 08:48 Living Not Striving 閱讀(1004) 評(píng)論(2)  編輯  收藏 所屬分類: RCP

          評(píng)論

          # re: 否決彈出菜單 2006-04-21 09:52 fph

          IMenuListener中有哪個(gè)方法  回復(fù)  更多評(píng)論   

          # re: 否決彈出菜單 2006-11-19 19:18 Jet Geng

          IMenuListener 中定義了該接口。
          使用的時(shí)候把實(shí)現(xiàn)了IMenuListener 接口的類作為參數(shù)傳入MenuManager.addMenuListener()方法中就可以了。也很好用。  回復(fù)  更多評(píng)論   

          主站蜘蛛池模板: 钟山县| 崇阳县| 手机| 日照市| 青浦区| 阿坝| 东阳市| 林周县| 台中市| 永登县| 巴中市| 营山县| 平顶山市| 靖安县| 龙井市| 厦门市| 仙桃市| 宣恩县| 平陆县| 华亭县| 南昌市| 黄陵县| 库尔勒市| 鄢陵县| 铜陵市| 卢龙县| 临清市| 南郑县| 砀山县| 阳西县| 都安| 高邮市| 恩施市| 山西省| 丹江口市| 贡山| 文化| 芷江| 西林县| 称多县| 扶风县|