Griffon10 in groovy_fx

17
Griffon 1.0 での JavaFX 2.1 利用事例 2012/07/02 @kimukou2628

Transcript of Griffon10 in groovy_fx

Griffon 1.0 での

JavaFX 2.1 利用事例

2012/07/02@kimukou2628

いろいろと調べるだけでほとんどを終わってしまいました。

大変申し訳ないです m(ー ー)m

まずおわびを

Griffon 1.0登場 - Grails"インスパイア"アプリケーションフレームワークhttp://news.mynavi.jp/news/2012/06/14/013/index.html

@orange_clover(はてなid:orangeclover) さん

リアル幻獣も叫んだGriffon 1.0が登場したので動か

してみた http://d.hatena.ne.jp/orangeclover/20120610/1339286717

griffonの紹介自体は

● Model・・グローバル変数とか記述

● View ・・表示テンプレート(JSPイメージに近い)

● Controller・・実際のアクション処理を書く

● Service ・・抽象化した共通処理書く

○ 使っている人が少ないようで挙動が微妙な面も

griffonのイメージはこんなもん

View

(ビューテンプ

レート)

Controller(UIアクション処理を記述)

Model(データ保持するところ)

service

(使っている人はほと

んど居ないorz)

@kazuchika(はてなid:ksky) さんJavaFX勉強会でGroovyFXの発表をしましたhttp://d.hatena.ne.jp/ksky/20111113/p1

複雑なアニメーション(GroovyFX版)http://d.hatena.ne.jp/ksky/20120613/p1

複雑なアニメーション(SVG版のGroovyFX版)http://d.hatena.ne.jp/ksky/20120615/p1

groovyFXの紹介記事は

● FxBrowser○ JavaFXのシンプル(?)

なブラウザ実装

● GroovyFxPad○ SwingPadのJavaFX版

ぶっちゃけ機能が

豊富で入門者には厳しめ

Griffon1.0でGroovyFX用Sample(use

JavaFX2.1)追加

● @waman10da(id:waman) さん

● archetype というテンプレート機能を試してみた体験レポート○ 2度目の幻獣 Griffon 研 (1) : JavaFX アプリ

ケーション作成プロジェクト

○ http://d.hatena.ne.jp/waman/20120617/1339912963

できればjavaで書きたいよーの場合は

=>

FXMLをつかいたいよなーという場合には1)griffon-app/resourcesに

FXMLDemo.fxmlをおく

2)XXXXView.groovy上で

(groovy-fx project/FXMLDemo.groovy あたりを参照

bindのやり方は従来のJavaFX20のやり方と同じ)

griffon install-archetype javafx //初回1回でOK

griffon create-app FunctionPlotterFX -archetype=javafx

griffon install-archetype javafx //初回1回でOK

griffon create-app FunctionPlotterFX -archetype=javafx -fileType=java

fxml xml文字列

fxml resource("/FXMLDemo.fxml"), { onMouseEntered { println "Entered"}

}

<メモ的な物>

● 実際のPluginの視点から見ていきましょう

● 実際に使っているPluginは?

○ application.properties というファイルに記述されています

● Pluginのポータルサイト

Griffon自体はGrailsと同じPluginで機

能拡張なので

plugins.groovyfx=0.6plugins.i18n-support=0.2plugins.javafx=0.6

http://artifacts.griffon-framework.org/

純粋なgroovyfxアプリイメージ

wirings ・・タスクバー等の

状態表示処理等の外だし

view クラス

FxBrowserView.groovyfx.browserのコンポネントを

Stageに貼り付けている

viewレイアウトクラス

FxBrowswerの構成メモ的な物

app.toolkit=javafx

src/main/griffon/plugins/ActionManager.java ・・

実行操作をメモっておいて

タスクバーに表示するのを

支援するユーティリティクラス

griffon-app/conf/Events.groovyで

Controller上のAction操作と

関連づけているようですが、

サンプルとしてはかなり技巧的かも

script_Events.groovy ・・実行時に

griffon-app/wiringsのファイルを

コンパイル対象にする処理を記述

griffon-app/conf/Application.groovy ・・

mvcGroups { // MVC Group for "fx-browser" 'fx-browser' { // adding a new MVC member is easy

wirings = 'fx.browser.FxBrowserWirings'//DSLで使う為のノード名登録が必要

}

swingアプリケーション

groovyfxのスクリプト自体を再生するプレイヤーなスタンス(archetype.jumpstartをベース)groovyfx pluginのみを導入

groovyfx再生スクリプト自体はgriffon-app/resources/sample フォルダ内にテキストとして入っている

GroovyFxPadの構成メモ的な物

app.toolkit=swing

script/_Events.groovyクラスパスにjfxt.jar を通す記載あり

(でもこの形式だとrun-appしかとおらないような。。)

lib/jfxtras-labs-0.1-SNAPSHOT.jarhttp://jfxtras.org/ で公開されているライブラリ

一部のコンポネントはSwing版で

http://artifacts.griffon-framework.org/plugin/steelとして公開

コンポネント例は)http://harmoniccode.blogspot.jp/

src/main/griffon/plugins/jfxtras/factoryGaugeFactory.groovy・・jfxtrasのclass と Nodeを関連づけしてDSL記述を可能にする為のクラス(Pluginのadd-on.jarで遣っている処理)<単純なのは

registerBeanFactory("altimeter", Altimeter.class)な記述でいけると思うけど。。

griffon-appIdeController.groovy ・・

executeScript(codeSource) でevalでgroovyScriptを実行=>IdeViewのIDにinnerHtmlするようなイメージ(Node.add)

NetBeansの新規プロジェクトにJavaFX in Swing

というのがあるらしいので連携できるといい感じなのかなと(ただどういう作りで作っているんだろう?)