2017-07-11 6 views
0

私はEclipseアプリケーションを作成しています。私は複数のorg.eclipse.ui.forms.widgets.Sectionを持つエディタを作成し、各セクションには現在エディタコード内でのみ宣言されている独自のツールバーがあります。私がする必要があるのは、エディタコードからツールバーコードを分離することです。ツールバーコードを分離する最良の方法は何ですか?いくつかのtoolItemがあるので、エディタのコードは複雑になります。 org.eclipse.ui.forms.widgets.Sectionのツールバーをplugin.xmlに定義できますか?セクションのための任意の拡張ポイントはありませんplugin.xmlを介してorg.eclipse.ui.forms.widgets.Sectionにツールバーを追加する

ToolBar toolBar = new ToolBar(section, SWT.FLAT | SWT.RIGHT); 

答えて

0

: は現在、次のコード行を使用してセクションにツールバーを追加します。

ツールバーにToolBarManagerを使用できます。これにより、ツールバーにクラス(およびその他の投稿項目)をActionで使用できます。これにより、コードを分離してクラスに分けることができます。

たとえば、これはplugin.xmlのエディタは、「必要なプラグイン」セクションに「アルファベットの並べ替え」ボタンを追加する方法です:

private void createSectionToolbar(Section section, FormToolkit toolkit) { 
    ToolBarManager toolBarManager = new ToolBarManager(SWT.FLAT); 

    ToolBar toolbar = toolBarManager.createControl(section); 

    final Cursor handCursor = Display.getCurrent().getSystemCursor(SWT.CURSOR_HAND); 
    toolbar.setCursor(handCursor); 

    // Add sort action to the tool bar 
    fSortAction = new SortAction(fImportViewer, PDEUIMessages.RequiresSection_sortAlpha, null, null, this); 
    toolBarManager.add(fSortAction); 

    toolBarManager.update(true); 

    section.setTextClient(toolbar); 
} 

ソートコードがActionを拡張する別のSortActionクラスであります。

Section.setTextClientは、セクションバーのタイトルバーの右上にツールバーを配置します。

関連する問題