Home - naokirin/GPresentFX GitHub Wiki

Groovy Presentation From Xmas

JavaFXとGroovyスクリプトを使ってDSLでプレゼンテーションしちゃおう

Groovy Presentation From Xmasとは

Groovy Presentation From Xmas(略してGPresentFX)はJavaFXを用いてGroovyでDSLを使ってプレゼンテーションしてみたい, という思いつきから生まれたクリスマスからスタートした企画です.

どうやって使うの?

まずJavaFXとGroovyが使える環境が必要です.
ただしGroovy本体はなくてもGitで管理されているbuild.gradleを用いてGradleでビルドするのであれば, 自動的に取得されます.
またGradleによるビルドファイルしか準備していませんのでGradleをインストールするか, 自力でビルドするかの二択です.

ビルド後は生成されたExecutable Jarファイルを実行すれば, 実行時にpresent.groovyが読み込まれて使用することができます.

キーボードの左右のキーでスライドのページの移動, Homeで1枚目のスライド, Endで最後のスライド, F5でDSLスクリプトのリロード, ESCでアプリケーションの終了となっています.

実行時のディレクトリ構成

プレゼンテーション用のDSLスクリプトファイルはjarファイルと同じディレクトリのpresent.groovyが読み込まれます.
プラグインスクリプトはplugin/ディレクトリに存在します.


./
  GroovyPresentFX-0.1-SNAPSHOT.jar
  present.groovy

  plugin/
    default/
    settingParent/


plugin/default/には, デフォルトで提供されているプラグインが入っています.
plugin/settingParent/には, JavaFXでの親子関係の処理を記述するスクリプトが入ります.

プレゼンテーション用DSLの書き方

プレゼンテーション用のDSLの書き方ですが, まず

dsl().slides{
  slide{
    text(text:"Hello")
  }
}

で Hello と表示されます.

階層の最上位のDSLの呼び出しの際はdsl()から呼びだす必要があります.
今回の場合はslidesです.

次に複数のスライドを作成する場合は

dsl().slides{
  slide{
    text(text:"1枚目")
  }

  slide{
    text(text:"2枚目")
  }
}

とすることで, slides下のslideが上から順にスライドの1枚目, 2枚目…, となっていきます.
 
 
各DSLの設定と詳細は以下のようになっています.

DSLの生成をする
dsl

スライド全体を生成する(スクリプトの最上位)
slides

スライドを生成する(配下のオブジェクトは垂直方向に配置する)
slide

垂直方向にオブジェクトを配置するボックスレイアウトを生成する
vbox

水平方向にオブジェクトを配置するボックスレイアウトを生成する
hbox

重複してオブジェクトを配置するボックスレイアウトを生成する
stack

配下のtop, bottom, center, right, leftをそれぞれ上, 下, 中央, 右, 左に配置するボックスレイアウトを生成する
border
 top
 bottom
 center
 right
 left

テキストのオブジェクトを生成する
text

画像を表示するオブジェクトを生成する
image

円グラフのオブジェクトを生成する
piechart

バブルチャートのオブジェクトを生成する
bubblechart

エリアチャートのオブジェクトを生成する
areachart

折れ線グラフのオブジェクトを生成する
linechart

散布図のオブジェクトを生成する
scatterchart

棒グラフのオブジェクトを生成する
barchart