2011-08-08 3 views
2

2つのビュー(A、B)を切り離したとしましょう。ワークベンチシェルの上部にあるビューBの上にAを表示します。Eclipse RCP detached views:Z-indexを制御する方法は?

質問1: ユーザーがビューをクリックして上に置く方法を教えてください。

質問2: 今、私は、ビューA. をカバーするために、他のアプリ、たとえば、メモ帳のウィンドウを使用するには、ビューBを維持しながら、ユーザーがちょうどメモ帳の上にそれを反転するために、ビューAでクリックできるようにすることが可能です主なメモ帳の後ろに?

すべてのお返事ありがとう

答えて

0

この質問に対する一般的な回答はありません。ウィンドウマネージャの動作は、ネイティブウィンドウマネージャに大きく依存します。例えば。 Windows 7とOSXの動作は異なります。

2

私は最終的にいくつかの汚い仕事をしました:

<extension 
     point="org.eclipse.ui.internalTweaklets"> 
     <tweaklet 

definition="org.eclipse.ui.internal.tweaklets.WorkbenchImplementation" 
      description="Customized Detached View" 
      id="id1" 
      implementation="tweaklets.WorkbenchImplementation" 
      name="Customized Detached View"> 
     </tweaklet> 
    </extension> 

マイWorkbenchImplementation.java

public class WorkbenchImplementation extends Workbench3xImplementation { 

    private static final Logger logger = LoggerFactory.getLogger(WorkbenchImplementation.class); 

    @Override 
    public WorkbenchWindow createWorkbenchWindow(int newWindowNumber) { 
     // return super.createWorkbenchWindow(newWindowNumber); 
     return new WorkbenchWindow(newWindowNumber) { 

      @Override 
      protected void configureShell(Shell shell) { 
       super.configureShell(shell); 

       try { 
        Field field = WorkbenchWindow.class.getDeclaredField("detachedWindowShells"); 
        field.setAccessible(true); 
        field.set(this, createShellPool(shell)); 
       } catch (Exception e) { 
        logger.error("Error tweaking WorkbenchWindow", e); 
       } 
      } 

     }; 
    } 

    protected ShellPool createShellPool(Shell shell) { 
     // return new ShellPool(null, SWT.TOOL | SWT.TITLE | SWT.MAX | SWT.RESIZE | Window.getDefaultOrientation()); 
     return new ShellPool(null, SWT.NO_TRIM | Window.getDefaultOrientation()); 
    } 

} 
+0

を自分のコードがハイライトされていないのはなぜ? –

関連する問題