Action クラスを作成

昨日の続きで Action クラスを作ります。

はじめに Extensions のところで、Start LG3D (action) を選択して、[class:] をクリック。

入力するのはパッケージとクラス名です。パッケージには jp.gr.java_conf.skrb.lg3d.wrpe.actions、クラス名は StartActionDelegate にしました。実装するインタフェースはすでに記入されていることは以前書きましたね。

Start Action Class

[Finish] して作られたクラスは

package jp.gr.java_conf.skrb.lg3d.wrpe.actions;

import org.eclipse.jface.action.IAction;
import org.eclipse.jface.viewers.ISelection;
import org.eclipse.ui.IWorkbenchWindow;
import org.eclipse.ui.IWorkbenchWindowActionDelegate;

public class StartActionDelegate implements IWorkbenchWindowActionDelegate {
    public void dispose() {
    }

    public void init(IWorkbenchWindow window) {
    }

    public void run(IAction action) {
    }

    public void selectionChanged(IAction action, ISelection selection) {
    }
}

(コメントは省略してあります)

Hello, World のサンプルのように init で window を持つようにしました。

    private IWorkbenchWindow window;

    public void init(IWorkbenchWindow window) {
        this.window = window;
    }

そして、run メソッドはとりあえず、System.out.println でメッセージを出すだけにしてあります。

    public void run(IAction action) {
	    System.out.println("StartAction#run");
    }

そして、selectionChanged メソッドはそのまま空っぽにしておきます。同じく dispose メソッドも。

それで実行。メニューを選択したり、ボタンをクリックするとちゃんとメッセージが出力されました。