SlideShare une entreprise Scribd logo
1  sur  17
Télécharger pour lire hors ligne
Griffon 1.0 での
 JavaFX 2.1 利用事例

           2012/07/02
         @kimukou2628
まずおわびを
いろいろと調べるだけで
ほとんどを終わってしまいました。

大変申し訳ないです m(ー ー)m
griffonの紹介自体は
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   ・・抽象化した共通処理書く
    ○   使っている人が少ないようで挙動が微妙な面も

    View        Controller       Model
    (ビューテンプ     (UIアクション処理を記述)   (データ保持
    レート)                         するところ)



                  service
                  (使っている人はほと
                  んど居ないorz)
groovyFXの紹介記事は

@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
Griffon1.0でGroovyFX用Sample(use
JavaFX2.1)追加

● FxBrowser
 ○ JavaFXのシンプル(?)
   なブラウザ実装

● GroovyFxPad
 ○ SwingPadのJavaFX版

ぶっちゃけ機能が
豊富で入門者には厳しめ
● @waman10da(id:waman) さん

● archetype というテンプレート機能を試して
  みた体験レポート
  ○ 2度目の幻獣 Griffon 研 (1) : JavaFX アプリ
    ケーション作成プロジェクト
  ○ http://d.hatena.ne.
    jp/waman/20120617/1339912963
できればjavaで書きたいよーの場合は
     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をつかいたいよなーという場合には
1)griffon-app/resourcesに
    FXMLDemo.fxmlをおく          fxml xml文字列
2)XXXXView.groovy上で           fxml resource("/FXMLDemo.fxml"), {
                                    onMouseEntered { println "Entered"}
                              }


   (groovy-fx project/FXMLDemo.groovy あたりを参照
     bindのやり方は従来のJavaFX20のやり方と同じ)
<メモ的な物>
Griffon自体はGrailsと同じPluginで機
能拡張なので
● 実際のPluginの視点から見ていきましょう
● 実際に使っているPluginは?
  ○ application.properties
  というファイルに記述されています
    plugins.groovyfx=0.6
    plugins.i18n-support=0.2
    plugins.javafx=0.6


●   Pluginのポータルサイト
    http://artifacts.griffon-framework.org/
FxBrowswerの構成メモ的な物
 純粋なgroovyfxアプリイメージ
   app.toolkit=javafx

 wirings ・・タスクバー等の
         状態表示処理等の外だし
 view クラス
    FxBrowserView.groovy
      fx.browserのコンポネントを
    Stageに貼り付けている
    viewレイアウトクラス
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で使う為のノード名登録が必要
        }
GroovyFxPadの構成メモ的な物

 swingアプリケーション
   app.toolkit=swing

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

  groovyfx再生スクリプト自体は
 griffon-app/resources/sample
 フォルダ内にテキストとして入っている
script/_Events.groovy
   クラスパスにjfxt.jar を通す記載あり
(でもこの形式だとrun-appしかとおらないような。。)

lib/jfxtras-labs-0.1-SNAPSHOT.jar
   http://jfxtras.org/ で公開されているライブラリ
   一部のコンポネントはSwing版で

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

コンポネント例は)
  http://harmoniccode.blogspot.jp/
src/main/griffon/plugins/jfxtras/factory
   GaugeFactory.groovy ・・
  jfxtrasのclass と Nodeを関連づけして
  DSL記述を可能にする為のクラス
  (Pluginのadd-on.jarで遣っている処理)
  <単純なのは
   registerBeanFactory("altimeter", Altimeter.class)
  な記述でいけると思うけど。。
griffon-app
   IdeController.groovy ・・
     executeScript(codeSource)
     でevalでgroovyScriptを実行=>
     IdeViewのIDにinnerHtml
     するようなイメージ(Node.add)
NetBeansの新規プロジェクトに
  JavaFX in Swing
というのがあるらしいので連携できると
いい感じなのかなと
(ただどういう作りで作っているんだろう?)

Contenu connexe

Tendances

griffon plugin を 実際に作ってみよう #jggug
griffon plugin を 実際に作ってみよう #jgguggriffon plugin を 実際に作ってみよう #jggug
griffon plugin を 実際に作ってみよう #jggug
kimukou_26 Kimukou
 

Tendances (20)

Groovy Shell Scripting 2015
Groovy Shell Scripting 2015Groovy Shell Scripting 2015
Groovy Shell Scripting 2015
 
Knockout を用いた Firefox OS アプリケーションの開発
Knockout を用いた Firefox OS アプリケーションの開発Knockout を用いた Firefox OS アプリケーションの開発
Knockout を用いた Firefox OS アプリケーションの開発
 
JobStreamerではじめるJavaBatchのクラウド分散実行
JobStreamerではじめるJavaBatchのクラウド分散実行JobStreamerではじめるJavaBatchのクラウド分散実行
JobStreamerではじめるJavaBatchのクラウド分散実行
 
FlexUnit4とMockitoFlex
FlexUnit4とMockitoFlexFlexUnit4とMockitoFlex
FlexUnit4とMockitoFlex
 
キメるClojure
キメるClojureキメるClojure
キメるClojure
 
Study Swift
Study Swift Study Swift
Study Swift
 
Use JWT access-token on Grails REST API
Use JWT access-token on Grails REST APIUse JWT access-token on Grails REST API
Use JWT access-token on Grails REST API
 
いまどきのPHP開発現場 -2015年秋-
いまどきのPHP開発現場 -2015年秋-いまどきのPHP開発現場 -2015年秋-
いまどきのPHP開発現場 -2015年秋-
 
【Topotal輪読会】JavaScript で学ぶ関数型プログラミング 5 章
【Topotal輪読会】JavaScript で学ぶ関数型プログラミング 5 章【Topotal輪読会】JavaScript で学ぶ関数型プログラミング 5 章
【Topotal輪読会】JavaScript で学ぶ関数型プログラミング 5 章
 
第5回勉強会
第5回勉強会第5回勉強会
第5回勉強会
 
Javaで1から10まで書いた話(sanitized)
Javaで1から10まで書いた話(sanitized)Javaで1から10まで書いた話(sanitized)
Javaで1から10まで書いた話(sanitized)
 
griffon plugin を 実際に作ってみよう #jggug
griffon plugin を 実際に作ってみよう #jgguggriffon plugin を 実際に作ってみよう #jggug
griffon plugin を 実際に作ってみよう #jggug
 
OpenGLプログラミング
OpenGLプログラミングOpenGLプログラミング
OpenGLプログラミング
 
Isomorphic web development with scala and scala.js
Isomorphic web development  with scala and scala.jsIsomorphic web development  with scala and scala.js
Isomorphic web development with scala and scala.js
 
イケてる技術で品質を担保しつつスピード感のある開発を実現する冴えたやり方
イケてる技術で品質を担保しつつスピード感のある開発を実現する冴えたやり方イケてる技術で品質を担保しつつスピード感のある開発を実現する冴えたやり方
イケてる技術で品質を担保しつつスピード感のある開発を実現する冴えたやり方
 
React.jsでクライアントサイドなWebアプリ入門
React.jsでクライアントサイドなWebアプリ入門React.jsでクライアントサイドなWebアプリ入門
React.jsでクライアントサイドなWebアプリ入門
 
入門ClojureScript
入門ClojureScript入門ClojureScript
入門ClojureScript
 
人間たちとsystemd
人間たちとsystemd人間たちとsystemd
人間たちとsystemd
 
イベント駆動プログラミングとI/O多重化
イベント駆動プログラミングとI/O多重化イベント駆動プログラミングとI/O多重化
イベント駆動プログラミングとI/O多重化
 
React入門-JSONを取得して表示する
React入門-JSONを取得して表示するReact入門-JSONを取得して表示する
React入門-JSONを取得して表示する
 

Similaire à Griffon10 in groovy_fx

TDC20111031_Groovy_Geb
TDC20111031_Groovy_GebTDC20111031_Groovy_Geb
TDC20111031_Groovy_Geb
Nobuhiro Sue
 
WTM53 phpフレームワーク いまさらcodeigniter
WTM53 phpフレームワーク いまさらcodeigniterWTM53 phpフレームワーク いまさらcodeigniter
WTM53 phpフレームワーク いまさらcodeigniter
Masanori Oobayashi
 
NPAPIを使ったandroid標準ブラウザの拡張方法
NPAPIを使ったandroid標準ブラウザの拡張方法NPAPIを使ったandroid標準ブラウザの拡張方法
NPAPIを使ったandroid標準ブラウザの拡張方法
Naruto TAKAHASHI
 
R5 3 type annotation
R5 3 type annotationR5 3 type annotation
R5 3 type annotation
EIICHI KIMURA
 

Similaire à Griffon10 in groovy_fx (20)

Flex's DI Container
Flex's DI ContainerFlex's DI Container
Flex's DI Container
 
Alfresco勉強会#30 alfrescoとshareのJavaScriptをデバッグしよう
Alfresco勉強会#30 alfrescoとshareのJavaScriptをデバッグしようAlfresco勉強会#30 alfrescoとshareのJavaScriptをデバッグしよう
Alfresco勉強会#30 alfrescoとshareのJavaScriptをデバッグしよう
 
Grailsのススメ(仮)
Grailsのススメ(仮)Grailsのススメ(仮)
Grailsのススメ(仮)
 
Rails vim easy
Rails vim easyRails vim easy
Rails vim easy
 
Programming camp Codereading
Programming camp CodereadingProgramming camp Codereading
Programming camp Codereading
 
TDC20111031_Groovy_Geb
TDC20111031_Groovy_GebTDC20111031_Groovy_Geb
TDC20111031_Groovy_Geb
 
Kanazawa.js.Next
Kanazawa.js.NextKanazawa.js.Next
Kanazawa.js.Next
 
NetBeans、FuelPHP と過ごしたこの 2 ヶ月
NetBeans、FuelPHP と過ごしたこの 2 ヶ月NetBeans、FuelPHP と過ごしたこの 2 ヶ月
NetBeans、FuelPHP と過ごしたこの 2 ヶ月
 
中・大規模でLaravelを導入するTips
中・大規模でLaravelを導入するTips中・大規模でLaravelを導入するTips
中・大規模でLaravelを導入するTips
 
WTM53 phpフレームワーク いまさらcodeigniter
WTM53 phpフレームワーク いまさらcodeigniterWTM53 phpフレームワーク いまさらcodeigniter
WTM53 phpフレームワーク いまさらcodeigniter
 
Using the Fragments(Android)
Using the Fragments(Android)Using the Fragments(Android)
Using the Fragments(Android)
 
From Java To Clojure
From Java To ClojureFrom Java To Clojure
From Java To Clojure
 
NPAPIを使ったandroid標準ブラウザの拡張方法
NPAPIを使ったandroid標準ブラウザの拡張方法NPAPIを使ったandroid標準ブラウザの拡張方法
NPAPIを使ったandroid標準ブラウザの拡張方法
 
全部入り!WGPで高速JavaScript+HML5体験
全部入り!WGPで高速JavaScript+HML5体験全部入り!WGPで高速JavaScript+HML5体験
全部入り!WGPで高速JavaScript+HML5体験
 
React Native GUIDE
React Native GUIDEReact Native GUIDE
React Native GUIDE
 
2009年のPHPフレームワーク
2009年のPHPフレームワーク2009年のPHPフレームワーク
2009年のPHPフレームワーク
 
はじめよう JavaFX 2.x(第3回 岡山Javaユーザー会)
はじめよう JavaFX 2.x(第3回 岡山Javaユーザー会)はじめよう JavaFX 2.x(第3回 岡山Javaユーザー会)
はじめよう JavaFX 2.x(第3回 岡山Javaユーザー会)
 
今日からはじめるGPars
今日からはじめるGPars今日からはじめるGPars
今日からはじめるGPars
 
Web技術勉強会 第31回
Web技術勉強会 第31回Web技術勉強会 第31回
Web技術勉強会 第31回
 
R5 3 type annotation
R5 3 type annotationR5 3 type annotation
R5 3 type annotation
 

Plus de kimukou_26 Kimukou

Plus de kimukou_26 Kimukou (9)

JRebel for Android 1.2.14 update
JRebel for Android 1.2.14 updateJRebel for Android 1.2.14 update
JRebel for Android 1.2.14 update
 
JRebel for Android 1.0 を試食してみた
JRebel for Android 1.0 を試食してみたJRebel for Android 1.0 を試食してみた
JRebel for Android 1.0 を試食してみた
 
レガシー環境で個人ベースでなんとか頑張るDVCS(Git)運用
レガシー環境で個人ベースでなんとか頑張るDVCS(Git)運用レガシー環境で個人ベースでなんとか頑張るDVCS(Git)運用
レガシー環境で個人ベースでなんとか頑張るDVCS(Git)運用
 
Eclipse ADTとAndroidStudio両方で動かせる開発環境構築
Eclipse ADTとAndroidStudio両方で動かせる開発環境構築Eclipse ADTとAndroidStudio両方で動かせる開発環境構築
Eclipse ADTとAndroidStudio両方で動かせる開発環境構築
 
Try_to_writecode_practicaltest #atest_hack
Try_to_writecode_practicaltest #atest_hackTry_to_writecode_practicaltest #atest_hack
Try_to_writecode_practicaltest #atest_hack
 
Twitter sphere of #twitter4j #twtr_hack
Twitter sphere of #twitter4j #twtr_hackTwitter sphere of #twitter4j #twtr_hack
Twitter sphere of #twitter4j #twtr_hack
 
明日から使えるgradle
明日から使えるgradle明日から使えるgradle
明日から使えるgradle
 
Layout analyzerでのgroovyの利用について
Layout analyzerでのgroovyの利用についてLayout analyzerでのgroovyの利用について
Layout analyzerでのgroovyの利用について
 
Hudson using Groovy #jggug
Hudson using Groovy  #jggugHudson using Groovy  #jggug
Hudson using Groovy #jggug
 

Dernier

Dernier (10)

新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsUtilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native Integrations
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
 
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
 

Griffon10 in groovy_fx