2011-07-09 50 views
2

我正在開發RCP應用程序,我有一個定義FolderLayout大小的問題。由於API要求我將比例設置爲大小,因此手動調整工作臺大小時文件夾的大小會不斷變化。 有沒有辦法設置文件夾佈局的絕對尺寸或最大尺寸?它將像Eclipse中Java perspecitve的Package explorer視圖一樣,當我們擴展或縮短主工作臺大小時,其寬度不會改變。如何將FolderLayout的大小設置爲絕對值而不是比例

感謝,

回答

3

您需要到ISizeProvider適配器,如下面的代碼響應您的ViewPart時:

public Object getAdapter(Class adapter) { 
    if (ISizeProvider.class == adapter) { 
     return new ISizeProvider() { 
      public int getSizeFlags(boolean width) { 
       return SWT.MIN | SWT.MAX | SWT.FILL; 
      } 

      public int computePreferredSize(boolean width, int availableParallel, int availablePerpendicular, int preferredResult) { 
       return width ? 600 : preferredResult; 
      } 
     }; 
    } 
    return super.getAdapter(adapter); 
} 

這將使以期在寬度是固定的,讓高度靈活。對於固定高度,用所需的值替換preferredResult。

還要注意,移動的那部分已經包含其它視圖部分可以消除固定大小的效果,所以是有意義的使視圖部分不可移動,以及[IViewLayout.setMoveable(布爾值)]另一視圖堆夾

乾杯, 最大

+1

僅適用於Eclipse 3.x.在Eclipse 4中,getAdapter()永遠不會以ISizeProvider.class作爲參數調用。 – Robert

相關問題