読者です 読者をやめる 読者になる 読者になる

路地裏牧場

技術系ブログだったけどごった煮になった謎ブログ

Javatter Advent Calendar 2013/12/05

設定画面をつくろう!

おはようございますこんにちはこんばんは。Getajiです。
ここ数日忙しくてまったく更新できませんでした。
計画性のなさを遺憾なく発揮しております。さすがです。土下座。




今回は設定画面を追加します。
設定画面とは、プラグイン管理タブでプラグイン名をクリックした時に出るウィンドウのことです。
デフォルトではなにも設定されていませんが、ここに独自の設定画面を表示させてみましょう。
前回作ったTweetLogプラグインに追加してみます。

基本

JavatterPluginを継承したクラス(TweetLog.java)で、以下のメソッドをオーバーライドします。
(オーバーライド=継承元のメソッド(void hoge()みたいな)を、継承したクラスで実装すること)

@Override
public IJavatterTab getPluginConfigViewObserver() {
    return new CustomConfigView();
}

このメソッドで、IJavatterTabインターフェースを実装したクラスを返します。

CustomConfigView.java
public class CustomConfigView implements IJavatterTab {
    /**
     * このメソッドで返されたコンポーネントが設定ウィンドウにセットされます.
     */
    @Override
    public Component getComponent() {
        return new JPanel();
    }
}

また、設定項目を保存するためにSaveDataクラスも使ってみましょう。
SaveDataのインスタンスは各JavatterPluginを継承したクラスぶんあり、以下のように使います。

/* デフォルトで保存・取得できる型はboolean, int, float, String */
SaveData saveData = this.getSaveData(); // SaveDataインスタンス取得
saveData.setDefaultValue("key", false); // デフォルト値を保存, 他の型も同じ
saveData.setBoolean("key", true); // boolean値を保存, 他の型も同じ
saveData.getBoolean("key"); // boolean値を取得, 他の型も同じ

以上の機能を利用して、ログファイルの保存先とファイル名を設定できるようにしてみましょう。
今回は行数が長くなってしまったので前回のようにソースコードを置いておきます。
TweetLog.java
CustomConfigView.java
TweetListener(変更なし)
設定画面のイメージはこちらですでけえ(Windows7)。
f:id:Getaji:20131211205422p:plain

おしまい。お疲れ様でした。

執筆者:Getaji