Translate

2017年1月25日水曜日

kotlinでplugin2

KotlinでImageJ Plugin作成-2

Kotlinクラスを作成する

前回までで環境設定が終わったので、Kotlinで早速Pluginの作っていく。画面としては、左にProjectが表示されているとする
  1. 作成したProjectを展開して、src\main\javaまで選ぶ
  2. javaを右クリックして[New -> Package]を選ぶ
  3. Package名を入力する
    • jp.yo4のような感じ
    • Packageは他の同名クラスと区別するためにも必ず設定する
  4. Package名で右クリックし、[New -> Kotlin Class/File]を選ぶ
  5. 名前はtest1などとする。KindはClassを選び、OK
    ここまででこんな感じになっているのではないだろうか?

PlugInFilterを実装する

Javaの場合は
public class Filter_Plugin implements PlugInFilter
としてインターフェースを実装していたが、Kotlinの場合、
class test: PlugInFilter {
とする。

  1. class testの後に: PlugInFilterと入力する。pom.xmlにimagejのdependencyを設定してあれば、途中まで入力すれば候補が現れる
    • 自動的にimport ij.plugin.filter.PlugInFilterも入力される。このあたりがIDEの便利なところ。
  2. class testの部分に赤で波線が表示されている。これは、この箇所に問題があることを示している。
  3. 波線をクリックすると、
Class ‘test’ must be declared abstract or implement abstract member
などと言われる。PlugInFilterは必ずrunメソッドとsetupメソッドを実装する必要があるためである。

  • さらに表示される赤い電球+ビックリマークをクリックする
  • Implement Membersを選ぶ。すると、ウィンドウが現れ、未実装のメソッド(ここではsetupとrun)が出てくるのでシフトキーを押しながら複数選択し、OKを押す
  • その結果、自動的にメソッドが挿入される。
  • class test: PlugInFilter {
        override fun setup(p0: String?, p1: ImagePlus?): Int {
                throw UnsupportedOperationException("not implemented") //To change body of created functions use File | Settings | File Templates.
        }
    
        override fun run(p0: ImageProcessor?) {
                throw UnsupportedOperationException("not implemented") //To change body of created functions use File | Settings | File Templates.
        }
    次はコードを記述していく。

    (2017/01/25 タイトルを少し変更)

    0 件のコメント:

    コメントを投稿