日本免费精品_最新日韩一区_亚洲视频一区在线_a在线视频观看_天天射夜夜骑_粉嫩av一区二区三区_欧美中日韩免费视频_综合图区欧美_国内精品美女在线观看_午夜精品久久久久久久男人的天堂

首頁 > 學院 > 開發設計 > 正文

拖放 Eclipse Workbench 標簽

2019-11-18 13:40:15
字體:
來源:轉載
供稿:網友

  在本文中,我們將學習一種通過編程定制 Eclipse 中的編輯器和視圖標簽的拖放行為的技術。我們使用了一個示例來展示這種技術,該示例將編輯器與轉移類型 org.eclipse.ui.part.EditorInputTransfer 進行關聯??梢酝ㄟ^實現對這種轉移類型的支持來支持編輯器的拖放行為。我們還為視圖標簽提供了一個類似的展示。本文假設您熟悉 SWT 的拖放技術。

  定制意味著什么?

  Eclipse Workbench 中的編輯器和視圖標簽可以支持默認拖放行為,默認拖放行為支持:
  • 視圖在 Workbench 內部的移動和???
  • 在有標簽的記事本內部重新安排視圖或編輯器的順序
  • 創建快速視圖
  • 為了并排查看源代碼,在編輯器區域并排顯示幾個編輯器

  盡管這是一個非常令人振奮的功能列表,但在我去年從事的一個項目中,仍然需要更多的功能。用戶需要能夠對編輯器和視圖標簽進行拖放,將它們放到一個非凡的視圖上。當用戶這樣做時,我們要做的是截獲所拖放編輯器的 editor-id 和 input,以及所拖放視圖的 view-id,然后在一個非凡的視圖中顯示相同的內容。下面的 圖 1 和 圖 2 將展示這種功能。

  圖 1 給出了一個標題為 .PRoject 的編輯器,該編輯器被拖放到一個標題為 Drop Window 的非凡視圖中。一旦拖放到如 圖 2 所示的位置處,這個非凡的視圖就會顯示所拖放編輯器的 editor-id 和 input。

圖 1. 正被拖放到非凡視圖中的編輯器標簽
拖放 Eclipse Workbench 標簽(圖一)

圖 2. 被拖放到非凡視圖上的編輯器標簽
拖放 Eclipse Workbench 標簽(圖二)

  與我們在這個項目中的要求類似,還可能存在其他一些需要對編輯器或視圖標簽的默認拖放行為進行定制的情況。例如,有人可能會希望答應 Eclipse 用戶將編輯器標簽從工作臺窗口中拖出,將它放到相同 Eclipse 實例的另外一個窗口中。本文中介紹的技術也可以在這種情況下使用。

  下面讓我們來學習定制拖放行為所涉及的步驟,具體地說,這些步驟是針對編輯器標簽的,但它們同樣適用于視圖標簽。 定制編輯器標簽的拖放行為

  當 Eclipse 用戶拖動一個編輯器標簽時,要實現如 圖 1 和 圖 2 所示的定制拖放功能,并內部執行以下兩個主要任務或操作:
  操作 1
捕捉底層編輯器的 IEditorInput 和 editor-id,前者包含有關正在編輯的文件的信息;后者包含有關編輯正在使用的編輯器的類型信息。
  操作 2
將 editor-input 和 editor-id 放到 EditorInputTransfer.EditorInputData 對象中,并將其設置為拖放過程中正在轉移的對象。這種操作可以讓 SWT 負責實現其余的拖放操作,例如將編輯器標簽放到使用 EditorInputTransfer 作為轉移類型的控件上。
  由于編輯器標簽通常放在 CTabFolder 容器中,因此我們需要為存放編輯器的 CTabFolder 容器創建一個 DragSource,并在這個 DragSource 的 dragSetData() 方法中執行 操作 1 和 操作 2。假設我們可以捕捉存放編輯器的 CTabFolder 容器,那么創建所需拖放源的任務就非常簡單,如下所示:

清單 1. 為 Tab folder 創建拖放源
CTabFolder tabFolder = <"CTabFolder" composite that hosts editor-parts>; int Operations = DND.DROP_COPY  DND.DROP_DEFAULT; DragSource dragSource = new DragSource(tabFolder, operations); Transfer[] transferTypes = new Transfer[] {EditorInputTransfer.getInstance()}; dragSource.setTransfer(transferTypes); dragSource.addDragListener(new DragSourceListener() {   public void dragStart(DragSourceEvent dsEvent) { }   public void dragSetData(DragSourceEvent dsEvent)   {     //code to perform operation-1 and operation-2   }   public void dragFinished(DragSourceEvent dsEvent) { } }); 

  此處另外一個非常重要的假設是:CTabFolder 容器并沒有已經創建好的拖放源。否則,代碼 DragSource dragSource = new DragSource(tabFolder, operations); 就會觸發一個 SWTError 錯誤,這是因為我們不能為同一個控件創建多個拖放源。

  要查看這種假設是否有效(這也是 清單 1 的一個可能用途),讓我們來看一下與這個編輯器標簽有關的默認拖放行為。默認的行為提示說存放這個編輯器標簽的 CTabFolder 容器可能早已為其創建了一個拖放源。然而,快速查看 org.eclipse.swt.custom.CTabFolder.java 的代碼可以看到,CTabFolder 的默認拖放操作都不是通過創建一個拖放源來實現的,而是通過為 SWT.DragDetect、SWT.MouseMove 和 SWT.MouseUp 類型的事件添加監聽程序來實現的。CTabFolder 容器還沒有創建拖放源的假設仍然有效,正如我們可以看到的一樣,這是基于查看非 API 內部類獲得的信息而作出的假設。因此,假如這種假設在將來的版本中無效,也不用感到驚異;不過我認為這種可能性非常小。

  下面讓我們來看一下如何捕捉存放編輯器的 CTabFolder 容器。通過對編輯器平鋪行為的觀察,我們注重到不管在何時平鋪顯示編輯器,都會創建一個新的 Tab 文件夾。另外,當一個標簽組中的所有編輯器全部關閉或被移動到一個不同的 Tab 文件夾上時,原來的 Tab 文件夾就會被銷毀。這意味著 CTabFolder 容器的創建和銷毀都是動態的,因此 CTabFolder 容器的拖放源的創建也應該是動態完成的。

  要實現這種功能,需要能夠對 CTabFolder 容器的創建進行控制。但是 Eclipse 并沒有提供任何可以在創建 CTabFolder 容器時進行回調的功能。另外一種方法是對 CTabFolders 進行非凡化 (specialize) 處理(繼續),繼續這些 specialized CTabFolders(繼續類,而不是基類 CTabFolder),并在這些 specialized CTabFolders 的 constrUCtors 中創建拖放源。然而,在 Eclipse 中實例化這些 specialized CTabFolders 是一項非常繁雜的任務,因此我們需要尋找一種新的解決方案。

  一種創建拖放源的新方法

  下面讓我們為 Display 添加一個拖放檢測監聽器(用來監聽 SWT.DragDetect 類型的事件),如下所示:

  清單 2. 為 Display 添加拖放監聽器


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
91精品国产乱码久久蜜臀| 国产亚洲短视频| 欧美高清视频一区二区三区| 免费精品国产自产拍在| 欧美日韩中文字幕精品| 久久99蜜桃精品| 久久99久久久久久久噜噜| 交视频在线观看国产| 中文字幕亚洲在| 国产主播中文字幕| 国产字幕在线看| 日韩精品大片| 国产一二三视频| 亚洲一区中文| 国产一级一片免费播放| 日韩精品高清不卡| 91精品国产综合久久香蕉最新版| 中文 欧美 日韩| 欧美日韩中文字幕在线| 国产精品一区二区三区免费观看| 日韩不卡一二区| 婷婷中文字幕一区| 97久久精品午夜一区二区| 日韩国产亚洲欧美| 日韩欧美在线综合网| 国内不卡的二区三区中文字幕| 日韩av不卡在线观看| 一区二区视频国产| 日韩精品一区二区三区视频播放| 欧美国产三级| 在线一区二区三区精品| 亚洲第一视频| 亚洲三级免费看| 亚洲一卡二卡在线观看| 亚洲欧洲日韩精品在线| 白嫩少妇丰满一区二区| 国产区视频在线观看| 欧美日韩综合视频网址| 亚洲欧美中文在线视频| 日韩欧美中文在线| 精品国产综合久久| 色综合影院在线| www高清在线视频日韩欧美| 国产视频一二区| 国产一区在线精品| 婷婷中文字幕一区| 国产欧美在线观看| 日韩欧美国产综合| 91蜜桃在线视频| 国产日韩精品视频| 在线不卡一区二区| 91精品国产自产观看在线| 欧美乱大交xxxxx另类| 亚洲高清视频一区| 一级片免费在线| 欧美日韩精品欧美日韩精品| 在线日韩中文字幕| 欧美日韩亚洲天堂| 国产日韩在线视频| 日韩视频在线一区二区| 国内国产区免费视频| 亚洲一区在线观看网站| 91精品免费在线观看| 中文字幕第一页在线播放| 一区二区三区高清在线| 欧美日韩国产一中文字不卡| 91精品国产色综合久久久蜜香臀| 国产aa精品| 欧美日韩精品电影| 伊人精品视频| 91精品国产入口| 午夜福利一区二区三区| 久久精品久久久久| 深夜福利一区二区| 亚洲精品中文字幕乱码三区不卡| 亚洲第一视频网站| 久久婷婷国产| 伊人亚洲视频| 亚洲 欧美 精品| 日韩三级视频在线看| 国产激情久久久| 欧美 日韩 综合| 欧美片网站免费| 在线精品视频免费播放| 日韩一级精品| 99综合视频| 91精品国产手机| 91精品免费观看| 欧美色欧美亚洲高清在线视频| av一区二区高清| 精品欧美不卡一区二区在线观看| 日韩欧美一级精品久久| 国产福利第一页| 麻豆精品视频入口| 91精品国产色综合久久不卡蜜臀 | 精品精品久久| 精品国产1区2区3区| 日韩欧美一级精品久久| 日韩va亚洲va欧洲va国产| 欧美日韩高清不卡| 久久综合九色欧美综合狠狠| 国产1区在线| 亚洲一级在线| 在线综合 亚洲 欧美中文字幕| 午夜伊人狠狠久久| 红桃视频亚洲| 九一精品国产| 日韩欧美国产不卡| 亚洲欧美中文在线视频| 国产91欧美| 搞黄在线观看| 亚洲高清精品视频| 欧美国产一级片| 日韩视频在线一区二区| 久久婷婷国产| 久久精品一二三| 国产欧美日韩综合精品| 国产日韩在线亚洲字幕中文| 欧美乱大交xxxxx另类| 在线一区免费| 日韩在线欧美| www.狠狠干| 亚洲一区精品电影| 久久久精品日韩| 欧美亚洲天堂| 亚洲一区资源| 黄色国产在线| 日韩高清不卡一区| 中文字幕精品一区二| 91精品在线观看国产| 亚州福利视频| 亚洲福利在线看| 中文字幕精品一区二| 成人久久在线| 日韩欧美国产免费| 国产99在线 | 亚洲| 精品免费久久久| 久久精品久久精品亚洲人| 在线观看免费国产成人软件| 久久网站免费观看| 日韩高清不卡一区| 国产三级在线播放| 麻豆精品视频入口| 亚洲一区中文字幕在线| 欧美日韩精品欧美日韩精品一| 在线免费播放av| 婷婷综合福利| 欧美性极品xxxx做受| 亚洲最新免费视频| 国产激情在线播放| 国产www.大片在线| 国产视频2区| 久久激情中文| 精品国产99久久久久久| 久久精品一二三| 久久久久蜜桃| 亚洲高清中文字幕| 国产午夜精品视频免费不卡69堂 | 日韩一级免费视频| 激情国产在线| 在线不卡日本| 中文字幕乱码在线| 亚洲高清免费一级二级三级| 国产欧美日韩亚州综合| 日韩欧美国产高清| 国产一二三视频| 欧美日韩国产专区| 久99久视频| 久久99蜜桃精品| 久久精品在线免费观看| 国产欧美中文在线| 日本国产在线视频| 欧美日韩国产三级| 国产三级视频网站| 国产午夜精品视频| 亚洲免费视频一区| 日韩精品一级| 国产亚洲欧美色| 日韩在线视频观看正片免费网站| 中文字幕4区| 精品久久九九| 色综合久久88色综合天天免费| 亚洲综合日韩欧美| 国产日韩中文在线| 精品不卡一区二区| 一级片免费在线| 日韩欧美国产黄色| 国产三级视频网站| 日韩久久久精品| 欧美日韩综合色| 欧美亚洲国产日韩2020| 影音先锋一区二区资源站| 日韩精品视频在线观看网址| 日韩不卡一区二区| 日韩精品在线视频| 精品国内自产拍在线视频| 天天在线视频色| 国产在线观看a| 久久韩国免费视频| 国产中文伊人| 国产欧美久久久精品影院| 国产成人精品日本亚洲专区61| 国产亚洲一区字幕| 日韩av一区二| 欧美自拍一区| 日韩精品在线观看视频| 婷婷久久综合网| 国产成人精品网址| 日韩午夜中文字幕| 国产成人精品999在线观看| 欧美日韩国产亚洲一区| 欧美一级一级性生活免费录像| 欧美三级日韩三级国产三级| 精品色蜜蜜精品视频在线观看| 中文字幕五月天| 日韩中文字幕在线播放| 最新中文字幕在线播放 | aaa免费看大片| 91久久精品网| 久久精品人妻一区二区三区| 91精品久久久久久蜜臀| 精品久久久91| 在线免费播放av| 精品视频资源站| 精品久久91| 国产不卡一区二区在线观看| 日本a口亚洲| 日韩精品视频免费播放| 一区二区视频在线观看免费的| 国产福利精品导航| 中文字幕欧美日韩va免费视频| 一区二区欧美国产| 中文字幕狠狠干| 国产男女av| 久久精品国产2020观看福利| 首页国产欧美久久| 一区二区日韩视频| 一区二区三区在线播放欧美| 中文官网资源新版中文第二页在线观看 | 国产午夜精品久久| 欧美日韩精品在线视频| 中文字幕精品www乱入免费视频| 欧美国产日韩在线播放| 日韩亚洲不卡在线| 中文字幕国产日韩| 中文字幕欧美日韩va免费视频 | 亚洲视频在线观看三级| 在线视频观看日韩| 中文字幕日韩精品在线| 九九精品调教| 91欧美在线视频| 欧美日韩999| 日韩欧美综合在线| 在线看的av| 在线观看91精品国产入口| 欧美日韩午夜在线视频| 欧美日韩视频免费看| 国产在线一在线二| 欧美成人vr18sexvr| 91精品国产日韩91久久久久久| 日韩亚洲国产欧美| 欧美国产三级| 欧美日韩高清在线播放| 91精品视频观看| 国产欧美综合在线观看第十页| 天堂在线中文| 亚洲图片小说综合| 午夜少妇久久久久久久久| 久久91精品视频| 亚洲伊人婷婷| 国产精品一区二三区| 国产乱国产乱老熟300| 亚洲女同中文字幕| 欧美另类专区| 一区二区不卡久久精品| 国产欧美日产一区| 一级片免费在线播放| 中文字幕 亚洲一区| 日本不卡免费高清视频| 久久精品在线观看| www.eeuss影院| 亚洲欧美999| 精品久久人人做人人爽| 久久婷婷综合国产| 中文字幕在线视频精品| 日韩视频专区| 精品调教chinesegay| 欧美日韩高清在线一区| 中文字幕日韩视频| 国产午夜精品一区二区三区视频| 成年人黄国产| 日韩欧美中文在线| 日韩国产在线不卡视频| 日韩精品视频网| 久久久综合av| 一区二区三区精品在线| 99久热re在线精彩视频| 999精品色在线播放| 精品在线网站观看| 国产在线高清精品| 精品日韩一区二区三区免费视频| 日韩欧美一级在线| 亚洲女同中文字幕| 国产99在线 | 亚洲| 激情综合色综合久久| 日韩亚洲欧美中文高清在线| 成人精品视频一区| 一本一道久久a久久精品综合蜜臀| 精品国产99久久久久久| 久久久精品免费免费| 精品精品久久| 日本精品免费观看高清观看| 亚洲一区日韩精品中文字幕| 精品成人久久av| 97国产视频| 日韩欧美在线中文字幕| 精品日韩视频在线观看| 久久久精品国产99久久精品芒果| 亚洲乱码中文字幕综合| 视频一区二区中文字幕| 精品三级久久| 国产欧美久久久久久久久| 久久欧美中文字幕| 国产网站欧美日韩免费精品在线观看 | 欧美日韩中文字幕在线视频| 日韩欧美不卡在线| 欧美在线视频一区二区| 精品婷婷伊人一区三区三| 精品网站999| 99精品视频国产| www.久久久精品| 日韩欧美久久久| 日韩一级二级三级| 99精品在线播放| 69av亚洲| 亚洲国产一区自拍| 午夜黄色小视频| 欧美一级久久久久久久久大| 中文字幕精品视频在线| 国产三级免费观看| 亚洲第一视频在线观看| 精品中文字幕在线| 亚洲男人在线| 日韩在线小视频| 中文字幕在线精品| 极品久久久久久| 国产日韩中文在线| 欧美日韩国产页| 中文字幕在线中文字幕二区| 国产久卡久卡久卡久卡视频精品| 欧美久久在线观看| 久久riav| 在线资源av| av最新网址| 91极品视频在线观看| 99视频一区| 91精品高清| 黄色一区二区视频| 欧美日韩综合色| 久久久99久久| 欧美中文字幕视频| 国产一区深夜福利| 久久91精品国产91久久小草| 不卡视频一区二区| 成人xxxx| 国产高清在线一区| 一区二区日韩视频| 国内精品不卡| 国产欧美日韩在线看| 中文字幕在线导航| 久久激情一区| 久久精品人妻一区二区三区| 天堂在线一区二区三区| www.中文字幕在线| 1区2区在线| 亚洲一区在线观看免费| 国产成人va亚洲电影| 97久久精品午夜一区二区| 日韩国产91| 日韩精品在线观看视频| 美女在线视频一区| 午夜一区二区三区免费| 亚洲国产综合久久| 欧美日韩国产第一页| 一区二区精品免费| av三级在线播放| 久久久久久欧美| 中文字幕亚洲二区| 日韩欧美中文字幕在线播放| 一区二区三区在线|网站| 国产一区在线精品| 国产裸舞福利在线视频合集| 精品国自产在线观看| 国产精品福利视频一区二区三区| av免费观看网站| 一区二区精品区| 91精品国产综合久久久久久漫画| 精品久久91| 中文字幕日韩精品在线| 日韩三级免费观看|