SWT Tips and Samples 基礎編 > ToolBarManager

 

ToolBarManager

ToolBarManagerはApplicationWindowのツールバーを管理するクラスです。JFaceフレームワークのMenuManagerと同じように、ツールバーのボタンとアクションは一対一で対応しています。通常のボタン、チェックボックス式ボタン、ラジオ式ボタン、ドロップダウンボタンをツールバーに作るには、それぞれ対応したActionクラスのコンストラクタを呼びます。ここではドロップダウン式ボタンの作り方を説明します。その他の形式のボタンの作り方は、MenuManagerを参照してください。

ドロップダウン式ボタンを作るには、下のようにコンストラクタでsuperメソッドを実行し、setMenuCreatorでサブメニューを追加します。

class DropDownAction extends Action {
  public DropDownAction() {
     super("DropDown", Action.AS_DROP_DOWN_MENU);
     setImageDescriptor(imgDesc);

     //サブメニューの生成
     setMenuCreator(new IMenuCreator() {
         public Menu getMenu(Control parent) {
              Menu menu = new Menu(parent);
              MenuItem item1 = new MenuItem(menu, SWT.NONE);
              item1.setText("アイテム1");
              item1.setImage(imgDesc.createImage());
              MenuItem item2 = new MenuItem(menu, SWT.NONE);
              item2.setText("アイテム2");
              return menu;
         }
         public Menu getMenu(Menu parent) {
              return null;
         }
         public void dispose() {
                                     
         }
      });
  }
  ...
}

サンプルアプリケーション

サンプルアプリケーションを実行するには、コンパイルされたクラスファイルと同じディレクトリにicon1.gifというファイルを配置してください。

ソースコード (ToolBarManagerTest.java)

import org.eclipse.jface.action.Action;
import org.eclipse.jface.action.IMenuCreator;
import org.eclipse.jface.action.Separator;
import org.eclipse.jface.action.ToolBarManager;
import org.eclipse.jface.resource.ImageDescriptor;
import org.eclipse.jface.window.ApplicationWindow;
import org.eclipse.swt.SWT;
import org.eclipse.swt.layout.*;
import org.eclipse.swt.widgets.*;

public class ToolManagerTest extends ApplicationWindow {

        private Label label;
        private ImageDescriptor imgDesc;

        public ToolManagerTest() {
                super(null);
                imgDesc =
                        ImageDescriptor.createFromFile(ToolManagerTest.class, "icon1.gif");

                addToolBar(SWT.FLAT);
        }
        public static void main(String[] args) {
                ApplicationWindow w = new ToolManagerTest();
                w.setBlockOnOpen(true);
                w.open();
                Display.getCurrent().dispose();
        }

        protected Control createContents(Composite parent) {
                getShell().setText("ToolManagerTest");
                getShell().setSize(250, 150);
                Composite container = new Composite(parent, SWT.NONE);
                container.setLayout(new GridLayout(1, false));

                label = new Label(container, SWT.NONE);
                label.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));

                return container;
        }
        protected ToolBarManager createToolBarManager(int style) {
                ToolBarManager tbm = new ToolBarManager(style);
                tbm.add(new PushAction());
                tbm.add(new CheckBoxAction());
                tbm.add(new Separator());
                tbm.add(new RadioAction());
                tbm.add(new RadioAction());
                tbm.add(new DropDownAction());
                return tbm;
        }

        class PushAction extends Action {
                public PushAction() {
                        super("PUSH", Action.AS_PUSH_BUTTON);
                        setText("Push");
                        setImageDescriptor(imgDesc);
                }
                public void run() {
                        label.setText("Push is selected.");
                }
        }

        class CheckBoxAction extends Action {
                public CheckBoxAction() {
                        super("CHECKBOX_ACTION", Action.AS_CHECK_BOX);
                        setText("CheckBox");
                        setImageDescriptor(imgDesc);
                }
                public void run() {
                        label.setText("Checkbox is selected.");
                }
        }

        class RadioAction extends Action {
                public RadioAction() {
                        super("RADIO", Action.AS_RADIO_BUTTON);
                        setText("Radio");
                        setImageDescriptor(imgDesc);
                }
                public void run() {
                        label.setText("Radio is selected.");
                }
        }
        class DropDownAction extends Action {
                public DropDownAction() {
                        super("DropDown", Action.AS_DROP_DOWN_MENU);
                        setImageDescriptor(imgDesc);

                        //サブメニューの生成
                        setMenuCreator(new IMenuCreator() {
                           public Menu getMenu(Control parent) {
                              Menu menu = new Menu(parent);
                              MenuItem item1 = new MenuItem(menu, SWT.NONE);
                              item1.setText("アイテム1");
                              item1.setImage(imgDesc.createImage());
                              MenuItem item2 = new MenuItem(menu, SWT.NONE);
                              item2.setText("アイテム2");
                              return menu;
                           }
                           public Menu getMenu(Menu parent) {
                              return null;
                           }
                           public void dispose() {
                                     
                           }

                        });
                }
                public void run() {
                        label.setText("DropDown is selected.");
                }
        }
}


最新更新日: 2004年10月20日
 
関連リンク
Eclipse API ドキュメント
ToolBarManager
Action
IMenuCreator
Separator
ImageDescriptor
ApplicationWindow

- PR -

プレゼンテーション作成ソフト無料お試し版配信中

【Sony】大手他社よりも安い!ビジネス向け光・100Mしかも固定IP付!今なら更に初期費用最大15,000円OFF!

オフィス用品・オフィス家具 価 格 交 渉 可! 
◎ 目指せ★業界最安値 ★ ◎ オフィネット・ドットコム株式会社

注文から納品まで驚きの早さ!!【ASKULカタログ】はこちらから・・・

マイクロソフト お得な見積! まとめての購入ならオトクな方法で。ライセンスだから管理も簡単。


Copyright(C) 2003,2004 Jasmin Project. All Right Reserved.
SEO [PR] 爆速!無料ブログ 無料ホームページ開設 無料ライブ放送