XDFの機能強化開発 秋口PBL/プロジェクトメンバー : 皆木 沙織、村上 泰、吉岡 英樹 指導教員:秋口 忠三教授(主担)、成田 雅彦教授、 土屋 陽介助教 XDF:XML-based Desktop Application Framework JavaによるGUIアプリケーション開発を支援するためのフレームワーク GUI構築のコード量を削減できるため開発効率が向上 アプリケーションの内部ロジックとGUI構築ロジックを分離しているためメンテナンス性が向上 UIの記述方式をGUIツールキットに依存しなくてよいため移植性が向上 2008年度秋口PBLメンバーの成果物を、新たに2009年度秋口PBLメンバーで改良・機能強化 XDFによるアプリケーション開発の特徴 画面デザイン アプリケーションロジック table.xml <xdf-window> <head> <style src=“ jp.ac.aiit.sample.R.raw.tablestyle" /> <action target=“ group.echoInput button" event="click… </head> <frame> <table> <tr> <th>A1</th> <th>A2</th> <th>A3</th> </tr> </tr> 画面デザインをXMLで論理的に設計 <tr> タグでボタンなどの部品を並べるだけ <td><button id="actionbutton" /></td> サイズ設定なども同時に定義可能 <td><label id="explainA" /></td> <td><label id="explainB" /></td> </tr> 画面定義XML TableAction.java tablestyle.style //アプリケーションのタイトルを設定 frame { title: "Table Application"; } button#actionbutton { text:"ボタン"; } label#explainA { text:"↓に文字列入力しボタンを押すと"; } label#explainB { text:"文字列が反映"; } label#imglabel { img:"drawable/icon"; } label#inputlabel{ text:"入力"; follows:bottom; } label#resultlabel{ text:"入力文字列は"; } 高さや幅、背景色などをまとめて定義 HTMLで使われるCSSと同じ書き方 public class TableAction implements Action { public void execute(Event e) { Application app = Application.getInstance(); ObjectModel window = app.getWindow("main"); //入力フォーム取得 ObjectModel input = Selector.find("#input", window).get(0); //出力エリア取得 ObjectModel result = Selector.find("#result", window).get(0); //値を取得 String value = (String) input.attr("text"); //取得した値を設定 result.attr("text", value); //入力フォームに入力された文字列を消去 result.attr("text", ""); } } スタイルシート ボタンが押された際のアクションを記述 定型的なコードでアクションを実装可能 アクション実装 GUIアプリケーション 複雑なAPIを使わずに画面デザインが可能 画面デザインとアプリケーションロジックの分離 生産性 メンテナンス性 拡張性 の向上 XDFがサポートするコンポーネント XML画面定義文書で指定可能なタグ定義の一覧 タグ定義名 group tab button toggle textfiled passwordfield textarea label combobox checkbox radio list table コンポーネント コンポーネント群をグルーピング 1枚のタブ ボタン 押す度に状態が遷移するボタン 1行で構成される改行なしのテキスト入力フィールド 文字列がマスクされるテキスト入力フィールド 複数行で構成されるテキストエリア 基本コンポーネントをサポート 文字列やアイコン プルダウンリスト コンポーネントの機能を強化 チェックボックス 択一選択可能なボタン 独自コンポーネントの 複数項目を表示するためのリスト 追加が可能 行と列から構成されるテーブル XDFのアーキテクチャが提供するメリット XDFのマルチプラットフォーム対応を実証 •2009年度の改良により、Swingプラグインだけでなく、Androidプラグインを新たに開発&サポート •プラグイン変更だけで、容易にアプリケーションをAndroid-Swing間で移動可能 XDFアプリケーション 画面定義XML スタイルシート アクション実装 Androidへのインストール Swingへのインストール *.jar *.apk XDF Swing Plug-in XDF Android Plug-in XDF Core XDF Core Java SE / AWT, Swing Java SE / Android Libs Java VM Dalvik VM PC PDA, Smart Phone 各プラットフォーム用プラグインを用意するだけ 移植性のさらなる向上 ソフトウェアとしての完成度向上 今年度の成果 •マルチプラットフォーム対応への可能性を示すため、フレームワークのアーキテクチャを改良 •新プラグインの追加が新たに必要となった場合でも、追加に対応出来るフレームワークへ進化 •Swing Plug-inにおける利用可能コンポーネントを追加 (前期:toggle, passwordfield / 後期:table) •コンポーネントの機能強化 (新属性への対応:スクロールバー、文字の折り返し、文字列・アイコンの配置場所指定) •XDFを手軽に利用してもらうためのドキュメント類を整備
© Copyright 2024 Paperzz