Swing/SWT共通コードジェネレータの開発 大城 繁鷹 塚本 享治 東京工科大学 0312006003 浅川 和久 2009/6/11 1 はじめに • 「わかりやすいGUIプログラミング」「複数のラ イブラリへの対応」を実現する • XMLで定義したGUI情報をXSLT変換 • JavaSwing/JavaSWTの2種類のソースコードを 同時に生成 2009/6/11 2 XSLT • XML Stylesheet Language Transformations • XMLによって記述された文書を他のXML文書 に変換するための簡易言語 • XML文書からHTML文書やテキスト文書への 変換 IT用語辞典 http://e-words.jp/w/XSLT.html 2009/6/11 3 GUIプログラミングの現状 1. 複雑なソースコードの記述 – たった1つのボタンを作成するだけで複数行の コード記述が必要 – 再利用性の低下 – コアコードとデザインに関わるコードが混在 2. 複数の開発・実行環境の存在 – 実行環境がいくつも存在する – 実行環境ごとに開発手法を変更 2009/6/11 4 コードジェネレータの導入 テンプレートA ソースコードA 定義ファイル ソースコードB テンプレートB 2009/6/11 5 XMLの導入 ボタンのプロパティのXML化 GUI階層のXML化 <Button id=“button” text=“This is a Button.” width=“200” height=“40” layout=“vertical” action=“pushedEvent” /> <Window> <MenuBar/> <PanelA> <Button1> <Button2> </PanelA> </Window> 2009/6/11 6 コードジェネレータの仕組み 2009/6/11 7 XMLの定義 <Window id=“W_SAMPLE” title=“サンプルアプリケーション” width=“300” height=“120”> <Button id=“B_SAMPLE” text=“ボタン” width=“280” height=“30” event=“PUSH”/> <Label id=“L_SAMPLE” text=“” width=“280” height=“30”> </Window> <event id=“B_SAMPLE”> <![CDATA[ L_SAMPLE.setText(“ボタンが押されました”); ]]> </event> 2009/6/11 8 統合開発環境 • テキストエディタ – GUI定義ファイル – JavaSwing/JavaSWTイベント定義ファイル – JavaSwing/JavaSWTソースコード • • • • 定義ファイルの記述 ソースコードの生成 コンパイル アプリケーションの実行 2009/6/11 9 既存言語との比較 • XUL(XML User Interface Language) – Mozilla.org – 外見はCSS、動作はJavaScript • XAML(eXtensible Application Markup Language) – Microsoft – Microsoft .NET 3.0をベース – 動画像、3DCG 2009/6/11 10 既存言語との比較 • 定義ファイルはXML1種のみ • XSLTによる解析 – 通常、字句解析、構文解析、意味解析が必要 • 出力先のターゲットを複数想定 2009/6/11 11 検証と考察 • 変換対象の拡張 – テンプレートを用意すればどんな言語でも作り出 すことができる • テンプレートの仕様 – APIの完全再現には膨大な労力が必要 • GUI統合の限界 • 完成度 • システムへの組み込み 2009/6/11 12 参考文献 • Swing/SWT共通コードジェネレータの開発 – 大城 繁鷹 塚本 享治 – 情報処理学会研究報告 IPSJ SIG Notes 2006(33) pp.31-37 20060322 2009/6/11 13
© Copyright 2024 ExpyDoc