2

ViewPartsとEditorPartsの両方を表示するRAPアプリケーションに取り組んでいます。「すべての」エディターパーツが閉じないようにする方法を見つけようとしています。エディタパーツに表示されている「X」閉じるボタンを削除または無効にする方法はありますか?

4

2 に答える 2

2

あなたはこのようにすることができます(私が書いたものはほぼ同じです:http ://wiki.eclipse.org/RCP_Custom_Look_and_Feel ):ApplicationWorkbenchWindowAdvisorクラスで、あなたはあなた自身のPresentationFacoryを次のように登録することができます:

  public void preWindowOpen() {    
    WorkbenchAdapterBuilder.registerAdapters();    
    IWorkbenchWindowConfigurer configurer = getWindowConfigurer();        
    configurer.setPresentationFactory(new UnCloseableEditorPresentationFactory());    
  } 

クラスUnCloseableEditorPresentationFactoryはWorkbenchPresentationFactoryを拡張し、メソッドをオーバーライドするだけです。

public StackPresentation creatEditorPresentation(Composite parent,IStackPresentationSite site)

as followings :
  DefaultTabFolder folder = new UnCloseableEditorFolder(parent, 
       editorTabPosition | SWT.BORDER,    
       site.supportsState(IStackPresentationSite.STATE_MINIMIZED),          
       site.supportsState(IStackPresentationSite.STATE_MAXIMIZED));
 // other code int this method is the same as the parent class

 then is the class UnCloseableFolder

 import org.eclipse.swt.SWT;  
 import org.eclipse.swt.widgets.Composite;  
 import org.eclipse.ui.internal.presentations.defaultpresentation.DefaultTabFolder;    
 import org.eclipse.ui.internal.presentations.util.AbstractTabItem;  
 public class UnCloseableEditorFolder extends DefaultTabFolder {   
     public UnCloseableEditorFolder(Composite parent, int flags,     
         boolean allowMin, boolean allowMax) {     
         super(parent, flags, allowMin, allowMax);   
     }  

  @SuppressWarnings("restriction")   
  public AbstractTabItem add(int index, int flags)   {     
      return super.add(index, flags ^ SWT.CLOSE);   
  }
 } 

次に、EditorPartの「X」ボタンを削除できます。これは私のマシンで機能します~~

于 2013-10-11T02:58:42.817 に答える
1

これは、プレゼンテーション層を実装することで可能になります。http ://wiki.eclipse.org/RCP_Custom_Look_and_Feelおよびhttp://e-rcp.blogspot.ca/2007/09/prevent-that-rcp-editor-is-closedを参照してください。 html

于 2012-08-24T23:40:18.643 に答える