路地裏牧場

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

Javatter Advent Calendar 2013/12/08

ちいさい機能いろいろ

Getajiです。
今回はJavatterのプラグイン開発における様々な機能について解説します。
JavatterPlugin継承クラスの機能そのままでできないこと中心。
最初はライブラリの追加について書こうと思いましたが簡単なので他にも色々書きます。

ライブラリの追加

ライブラリに動的にクラスパスを通します。ライブラリファイルの場所は自由です。
Javaの仕様通り、ライブラリはjar内には含めません。たぶん。

JavatterPluginLoader.addLibrary("./lib/library.jar", Main.class.getClassLoader());

ツイートの表示に使われているTweetObjectを作る

適当にメソッドを書いてみました。どこでも使えます。
基本は変えず独自にTweetObjectを作りたい場合はTweetObjectBuilderを自前で用意しましょう。

private JPanel createObject(Status status){
	TweetObjectFactory factory = new TweetObjectFactory(status, JavatterPluginLoader.getTweetObjectBuilder());
	return (JPanel) factory.createTweetObject(ExTimeline.instance.getView()).getComponent();
}

Twitterインスタンスなしでツイートする

内部的にはMainWindowControllerのTwitterインスタンスを使っています。
Twitterインスタンスを保持していないクラスなどで使えるでしょう。

com.orekyuu.javatter.main.Main.getMainController().onTweet("Scalaですからw", new TwitterUtil());

Javaビームも撃てます。

com.orekyuu.javatter.main.Main.getMainController().shotJavaBeam("**Javaビームの前に入るテキスト**");

アイコンキャッシュを利用する

ユーザーのアイコンをいちいちDLしているのでは通信料も時間もかかります。
アイコンキャッシュ機能が用意されているのでそれを使いましょう。

IconCache.getInstance().getIcon(new URL("hogehoge.png"));

おわり!

執筆者:Getaji