posts - 36, comments - 30, trackbacks - 0, articles - 3
            問題描述:

          最近在Eclipse插件開發(fā)中遇到這樣的問題,我使用如入擴(kuò)展點(diǎn)

          <extension
                 
          point="org.eclipse.debug.ui.launchConfigurationTabs">
              
          <tab
                    
          class="com.example.launch.SqlDebugTab"
                    group
          ="org.eclipse.jdt.debug.ui.launchConfigurationTabGroup.localJavaApplication"
                    id
          =" com.example.launchs.SqlDebugTab"
                    name
          ="SqlDebugTab">
                 
          <associatedDelegate
                       
          delegate=" com.example.launch.SqlDebugLaunchDelegate">
                 
          </associatedDelegate>
              
          </tab>
           
          </extension>

          <extension
                    
          point="org.eclipse.debug.core.launchDelegates">
                 
          <launchDelegate
                       
          delegate=" com.example.launch.SqlDebugLaunchDelegate"
                       id
          =" com.example.launch.SqlDebugLaunchDelegate"
                       modes
          ="debug"
                       type
          ="org.eclipse.jdt.launching.localJavaApplication">
                 
          </launchDelegate>
              
          </extension>

           

          也就是在調(diào)式Java Application的對(duì)話框中,增加一個(gè)Tab頁(yè),Tab頁(yè)的名字為SqlDebugTab,在這個(gè)Tab頁(yè)上增加幾個(gè)復(fù)選框,復(fù)選框要顯示視圖的名稱,如果用戶選擇某個(gè)復(fù)選框,點(diǎn)“Debug”后,將顯示指定的視圖,可是在com.example.launch.SqlDebugLaunchDelegate類中的launch方法中調(diào)用PlatformUI.getWorkbench().getActiveWorkbenchWindow(),得到的對(duì)象卻為null,調(diào)試程序才發(fā)現(xiàn),運(yùn)行com.example.launch.SqlDebugLaunchDelegate類是,走的是新線程,也就是說點(diǎn)“Debug”按鈕時(shí),Eclipse平臺(tái)啟動(dòng)的是新的線程(非UI線程),而在新線程中是取不到ActiveWorkbenchWindow對(duì)象,為了解決這個(gè)問題,花費(fèi)了很多時(shí)間,最后終于找到解決方法,launch方法通過如下程序來顯示視圖,就可以解決上面遇到的問題:

          PlatformUI.getWorkbench().getDisplay().asyncExec(new Runnable() {
                      
          public void run() {
                          IWorkbenchWindow window 
          = PlatformUI.getWorkbench()
                                  .getActiveWorkbenchWindow();
                          
          if (window != null){
                              window.getActivePage().showView(
          "……");
          }

          }

          }

          Feedback

          # re: Eclipse插件開發(fā)中的問題一[未登錄]  回復(fù)  更多評(píng)論   

          2009-03-23 13:55 by david
          你好!我將你的示例改成多頁(yè)的MultiPageEditorPart,怎么鍵盤事件無法響應(yīng)了
          主站蜘蛛池模板: 怀集县| 雷州市| 安丘市| 清远市| 海兴县| 寿宁县| 明水县| 德惠市| 出国| 昌平区| 文水县| 山东| 崇信县| 巴青县| 诸暨市| 平顺县| 布尔津县| 湄潭县| 崇明县| 沙田区| 仙桃市| 太谷县| 广昌县| 祁连县| 德州市| 富源县| 盘山县| 合江县| 黄龙县| 镇沅| 辽宁省| 荔浦县| 江川县| 仁怀市| 新安县| 永安市| 安国市| 财经| 醴陵市| 方城县| 华宁县|