JP2008269575A - ソースコード生成装置 - Google Patents

ソースコード生成装置 Download PDF

Info

Publication number
JP2008269575A
JP2008269575A JP2008036119A JP2008036119A JP2008269575A JP 2008269575 A JP2008269575 A JP 2008269575A JP 2008036119 A JP2008036119 A JP 2008036119A JP 2008036119 A JP2008036119 A JP 2008036119A JP 2008269575 A JP2008269575 A JP 2008269575A
Authority
JP
Japan
Prior art keywords
screen
gui
source code
execution environment
component
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2008036119A
Other languages
English (en)
Inventor
Hidenori Fukuda
英徳 福田
Koichi Sakamoto
浩一 坂本
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Software Engineering Co Ltd
Original Assignee
Hitachi Software Engineering Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Software Engineering Co Ltd filed Critical Hitachi Software Engineering Co Ltd
Priority to JP2008036119A priority Critical patent/JP2008269575A/ja
Publication of JP2008269575A publication Critical patent/JP2008269575A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Stored Programmes (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

【課題】 GUIを表示するためのソースコード及びGUI表示データを生成するソースコード生成装置において、複数の実行環境毎に異なるデザインを持つユーザインタフェースを効率的にデザインし、その編集結果からソースコード及びGUI表示データを効率よく出力してソフトウェアの開発、修正、保守の効率を向上すること。
【解決手段】 ユーザインタフェース部品1つ1つに対して実行環境毎に異なる位置、サイズ、部品の属性、イベント動作などを管理し、独立して編集可能とすることで、実行環境により異なる情報と、実行環境によらず同一の内容を編集し、さらに複数の実行環境向けのソースコード及びGUI表示データを生成する。さらに、複数の実行環境に共通の操作と特定の環境に固有の操作を使い分けることにより、全体の操作回数を低減する。
【選択図】 図1

Description

本発明は、携帯電話機などに実装したコンピュータに実行させるプログラムのソースコードを生成するソースコード生成装置に係り、特に、コンピュータの複数の異なる実行環境にそれぞれ対応した画面デザインを編集し、GUI表示データを生成すると共に、当該GUI表示データを用いてGUI表示画面を表示させるソースコードを生成するソースコード生成装置に関するものである。
従来、プログラム開発作業においてユーザインタフェース部分を効率的かつ汎用的に作成するために、画面を定型のユーザインタフェース部品の組合せとして構築するためのグラフィカルユーザインタフェース(GUI)ライブラリが数多く開発・提供されている。
GUIライブラリの動作方式としては、GUIライブラリをプログラムから呼出す際の引数(パラメタ)によって表示内容を静的に決定するものと、GUIライブラリを実行するプログラムの動作中に、GUIの設定内容を保存したリソースファイル等と呼ばれるデータファイルをGUIライブラリが読み込むことで、実行時に表示内容を動的に決定するものがある。両者の形式を同時に採用しているGUIライブラリも存在する。
静的に表示内容を設定するGUIライブラリでは、GUIに関する設定値は呼出し元のプログラムのソースコードに記述され、動的に表示内容を設定するGUIライブラリではリソースファイルにGUIに関する設定値が記録される。
さらに、これらのGUIライブラリを用いたプログラムにおける表示画面の開発作業の生産性を向上させるために、実際のGUI表示イメージをプレビューしながら、画面上にGUI部品を配置してゆくことでユーザインタフェース部分を設計するGUIデザイン開発ツールが利用されている。
GUIデザイン開発ツールは、編集結果からライブラリを呼出すプログラムのソースコードや、ライブラリが実行時に読み込むリソースファイルを自動的に出力して、編集内容をプログラムの画面表示に反映させる。
プログラムの開発プロジェクトにおいては、ベースとなるハードウェア、オペレーティングシステム、実行プラットフォーム、実行時の設定値などによって、画面表示の環境が異なる場合が多い。例えば、同じプログラムが異なる画面サイズのハードウェアで実行される場合や、実行プラットフォームとなるGUIライブラリのバージョンやオプション機能の有無の状況が異なる場合、またはユーザの設定によって表示機能が変更されている場合等である。
このような多種の表示環境に対応したプログラムを開発する場合には、従来においては、1つの画面に対して、環境毎に複数のGUIデザインを作成する必要があった。これは、ハードウェアの画面サイズが異なる場合、小さいサイズ画面では狭い範囲にユーザインタフェース部品を配置したり小さいサイズに設定したり、表示するメセージを短い文に変えたりといった変更が必要なためである。
同様に、同じ画面サイズでもハードウェアの構成の仕方によって縦方向と横方向の表示が必要に成る場合では、縦長または横長の画面にあわせて各部品をレイアウトし直す必要があり、画面数が多いプログラムや複雑な画面を表示するプログラムでは、非常に大きな負担となっていた。
例えば、図33に示すような表示画面を備えた携帯電話機3301において、表示画面を図34に示すように横長方向に回転して画面を縦横の両方向で使用できるようにした機種がある。画面がこのように変化する携帯電話機3301にあっては、縦横両方の画面のデザインが必要になる。これらの画面は、写真や発信ボタンなど構成している部品は共通であるが、画面の方向に合わせて、各部品の位置やサイズが異なる。このように、複数の画面で共通部分が多い場合であっても、従来の画面デザイン手法では、各画面のデザインを実行環境毎に作成する必要があった。
また、実行環境によっては一部の動作を変更しなければならない場合も発生している。例えば、画面上に配置されたユーザインタフェース部品の間で、方向キーによって入力フォーカスが移動するプログラムでは、例えば左上から右下といったルールに従ってフォーカスを移動させることが多い。このとき縦横の画面方向に応じて部品の並び方が変わるプログラムでは、操作性を統一するためにフォーカス移動の順序を変更しなければならない。こういった場合にも、部品の配置状況に応じてフォーカスを制御する処理を用意する必要があり、煩雑な処理ロジックが必要となっていた。
このような問題に対応するために、高機能なGUIライブラリの中には、画面サイズの設定が変更された場合に、自動的に位置情報を再計算して部品を再配置するものがある。これらは部品の位置を(x,y)座標のような固定値だけでなく、画面左端からの距離や特定の部品からの相対位置などで指定する機能や、部品の大きさを画面サイズに対する割合で指定できる機能を持っている。これは、異なる画面サイズで実行された場合にも自動的に部品の位置を変更して、1つのGUIデザインの設定値で、多種多様な画面サイズに対応するものである。
プログラム開発では、プログラムの動作状態を実際に確認しながらGUIデザインの編集を進めてゆく場合が多い。プログラムを実際の環境上や、シミュレータやエミュレーターと呼ばれる仮想マシン上で実行することで、GUIデザインの編集結果を確認するものである。
GUIデザイン開発ツールと、部品再配置機能を備えたライブラリ、さらにプログラムの実行確認環境を組み合わせることで、複数の画面レイアウト状態における表示を確認しながらGUIデザインを開発することが可能である。
実行環境の設定を切り替えたり、実行環境のプラットフォームを切り替えたりすることで、1つのプログラムを複数の環境で実行できるため、それぞれの実行環境における動作状況を切り替えながらGUIデザインを編集することができる。そして、その編集結果から、GUIライブラリを呼出すソースコードやGUI表示データを出力することで、効率的に開発作業を進めることが可能である。
GUI表示データとは、GUIライブラリが実行時に表示部品を配置し、色や文字、画像などの属性を設定し、またイベント動作を決定するために使用するXMLデータやバイナリデータ、テキストデータなど、GUI表示の制御情報を含むソースコード以外のデータを指している。
このような公知文献の例として、自動的に表示部品の位置とサイズの変更が可能なGUI表示プログラムと書式ファイルに定義されたレイアウト情報を組み合わせて、GUIの自動レイアウトを可能とした、下記の特許文献1などがある。
特開平10−228372号公報
GUIライブラリを用いるプログラムのGUIデザイン開発において、複数の実行環境で共通に利用できるGUIデザインを開発するためには、環境の数だけ複数の画面デザインを作成するか、自動再配置に対応したライブラリを利用する必要がある。また、実行環境によって異なる処理を行なうプログラムでは、環境を判定して別個の処理を行なうロジックを作成する必要がある。
実行環境の数だけGUIデザインを作成する場合は、GUIデザイン作成の手間が何倍にも増加するだけでなく、GUIデザインの変更のために大きな手間が掛かるという問題がある。
同一のユーザインタフェース部品と同一の機能を持った画面でも、ユーザインタフェース部品の位置やサイズが異なるだけで多数のGUIデザインを行なわなければならず、デザイン結果から生成されたソースコードやGUI表示データが期待通りに動作することを確認する作業も、実行環境の数だけ必要となる。
また、画面に新たな部品を追加する作業では、複数のGUIデザインに対して追加作業を行って、適切に管理する必要がある。
同じ画面を示す複数のGUIデザイン情報がツール上で連動していない場合が多いため、画面名やコメントなどにより手作業で管理せざるをえず、メンテナンスやエンハンスの効率が低下すると共に、ミスが発生し易いという問題があった。
自動再配置に対応したGUIライブブラリを使用する方法では、GUIライブラリで設定可能な配置方法しか選択できないという問題がある。
例えばユーザインタフェース部品の横サイズを「固定値」または「画面幅に対する割合」の2通りで設定できるGUIライブラリを利用するケースでは、全ての実行環境で一定の割合の横サイズとして良いプログラム以外には対応できない。例えば、画面の横幅が200pixel〜1600pixelの実行環境が想定される場合に、ある程度以上大きな画面では、一定の割合の横幅では大き過ぎて余白が発生する問題や、逆に小さ過ぎて全ての情報を表示できない問題があり、逆に小さな画面では、小さ過ぎて全ての情報が表示できない問題がる。
通常は特別な画面サイズに対応する処理として、画面サイズが一定範囲を超えたら固定値とするといった処理を追加するが、固定値と可変値を切り替える処理を実装するソースコードが必要となるため、画面デザインとソースコードをツール上で関連付けできない上に、部品のサイズや画面のバターンによって複雑なメンテナンスが必要になるという問題があった。
また、実行環境に応じて処理を切り替える場合も同様である。GUIデザインツールとソースコードがツール上で自動的に関連付けられないため、仕様書やソースコードのコメントによって手作業で実行環境と処理ロジックの関連付けを管理する必要がある。
また、部品の追加や画面サイズの変更などが発生した場合に、画面デザインの変更に伴う影響範囲を特定して、適切なソースコード修正を行なうためには大きな作業量が必要となり、メンテナンス及びエンハンスの効率が低下する問題となっていた。
本発明の目的は、以上のような問題点を考慮し、複数の実行環境毎に異なるデザインを持つユーザインタフェースを効率的にデザインし、そのデザイン結果から実行環境毎に異なるGUI表示データとソースコードを効率的に出力し、GUI表示データを含むプログラムの開発、修正、保守作業の効率化を図ることができるソースコード生成装置を提供することである。
上記目的を達成するために、本発明のソースコード生成装置は、コンピュータに実行させるプログラムのソースコード及びユーザインタフェース部品を表示画面に表示するためのGUI表示データを生成するソースコード生成装置であって、
前記コンピュータの実行環境にそれぞれ対応し、位置、サイズ、属性などの部品要素情報が異なる前記ユーザインタフェース部品を編集する第1の手段と、編集結果の部品要素情報に基づき指定された実行環境に対応したユーザインタフェース部品のGUI表示データ及び当該GUI表示データを用いてユーザインタフェース部品を表示するためのソースコードを生成して出力する第2の手段を備えることを特徴とする。
また、GUI表示データによりユーザインタフェース部品を編集画面にプレビューする手段をさらに備えることを特徴とする。
また、前記実行環境の切り替え操作を受付け、切り替え指定された実行環境におけるユーザインタフェース部品を編集画面に切り替え表示する手段をさらに備えることを特徴とする。
また、前記実行環境に応じて、一部のユーザインタフェース部品をソースコードまたはGUI表示データの出力対象から除外する手段をさらに備えることを特徴とする。
また、ユーザインタフェース部品に対する編集操作を、すべての実行環境に共通に適用される共通操作と、特定の実行環境のみに適用される固有操作に区別する手段をさらに備えることを特徴とする。
また、新たな実行環境を追加する手段を有し、実行環境を追加した時点でそれ以前の共通操作の実行結果を反映させる手段をさらに備えることを特徴とする。
また、同一の編集操作に対し、当該編集操作が共通操作であるか固有操作であるかの切り分けを、編集操作の都度ユーザが指定する手段を有することを特徴とする。
本発明のソースコード生成装置によれば、次のような効果がある。
(1)ソースコード生成装置が出力するソースコード及びGUI表示データの動作対象となる実行環境が複数存在する場合に、1つの画面デザインに対して複数の位置、属性、イベント動作などの部品要素情報を実行環境毎に個別に指定して編集することで、実行環境毎に最適の画面デザインを持ったプログラムのソースコード及びGUI表示データを編集し、生成することが可能となる。
(2)プログラムのGUIデザイン開発において、1つの画面で複数の実行環境に対応したデザイン結果やイベント動作を、ソースコード生成装置上でデザイン時にプレビューして確認することにより、実際にプログラムを動作させて確認するために必要な作業を軽減できる。
(3)複数の実行環境のうち、一部のユーザインタフェース部品が特定の環境で不要となる場合には、これらを除外したGUIデザインを設計し、ソースコードまたはGUI表示データを生成することによって、ユーザインタフェース部品の制御に必要な処理の記述と、GUIデザインと連携した管理を自動的に行なうことが可能となる。
(4)複数の実行環境に対応したGUIデザインの設計において、複数の実行環境で共通に使用する部品の追加などの共通操作と、画面サイズに応じた部品のレイアウトなどの実行環境ごとに独立して適用される固有操作を区別することにより、複数の実行環境に共通の編集操作を一度で済ますことができ、編集作業を効率化できる。
以下に、本発明を適用した、複数の実行環境に対応したGUIデザインを行なうソースコード生成装置の一実施の形態について説明する。
図1は、本発明の実施形態の一例を示すシステム構成図である。
本ソースコード生成装置は、処理装置1、入力装置2、表示装置3、GUIデザイン情報ファイル4、リソースファイル5、複数の素材データファイル6、ソースファイル7、GUI表示データファイル8、メモリ9、CPU10、既存のデザイン情報ファイル99からなり、入力装置2はキー入力装置21とポインティング入力装置22からなり、メモリ9の上でソースコード生成プログラム91とオペレーティングシステム92が実行される。
図2は、ソースコード生成プログラム91の機能、テーブルおよび処理対象データを示すブロック図である。
ソースコード生成プログラム91は、GUI編集手段101と、部品属性編集手段102と、イベント動作編集機能103と、実行環境選択機能104と、ユーザインタフェース部品提供手段105と、リソース管理手段106と、GUIデザイン情報ファイル入出力手段111と、リソースファイル入出力手段112と、ソースコード生成手段113と、GUI表示データ生成手段114から構成され、GUIデザイン情報を記録したGUIデザイン情報ファイル4と、素材データの情報を管理するリソースファイル5と、ユーザインタフェース部品に設定してGUIを構成する画像や文字列である素材データを記録した複数の素材データファイル6と、従来の技術で開発したデザイン情報を記録した既存のデザイン情報ファイル99と、GUIデザイン情報ファイル4から読み込まれた画面単位の情報を管理する画面テーブル201と、GUIデザイン情報ファイル4から読み込まれたユーザインタフェース部品の位置、属性、イベント動作などの部品要素情報を管理する部品テーブル202と、GUIデザイン情報ファイル4から読み込まれた実行環境の情報を管理する環境テーブル203と、予め登録されたユーザインタフェース部品の種別や原型情報を管理する原型テーブル204と、リソースファイル5から読み込まれた素材データの情報を管理するリソーステーブル205と、複数の素材データファイル6の内容を読み込んだ素材テーブル206と、GUIデザインの結果を視覚的な表示結果イメージとして合成した複数のプレビュー画面301と、ソースコード生成機能113およびGUI表示データ生成機能114の処理結果を示す結果情報302と、GUIデザイン結果から生成されたソースコード303と、GUIデザイン結果から生成されたGUI表示データ304を有し、ソースコード生成機能113によってソースコード303をソースファイル7に、GUI表示データ生成機能114によってGUI表示データ304をGUI表示データファイル8に出力する。
また、データ保存処理として画面テーブル201と部品テーブル202の内容をGUIデザイン情報ファイル4に、リソーステーブル205の内容をリソースファイル5に出力する。
本実施形態のソースコード生成装置の表示装置に表示される画面の例を図3に示す。
本装置の画面50aは部品提供ウィンドウ51a、GUI編集ウィンドウ52a、イベント編集ウィンドウ53a、実行環境選択ウィンドウ54a、部品属性表示ウィンドウ55a、リソース管理ウィンドウ56aからなり、画面50aの一部に新規画面ボタン57a、ソース生成ボタン58aが表示されている。
また、GUI編集ウィンドウ52aにはユーザインタフェース部品521a、522a、523aのプレビュー画像が表示されている。
GUI編集ウィンドウ52aに表示するプレビュー画像は、実行環境選択ウィンドウ54aで選択した実行環境のものが表示される。
本実施形態においては、GUI編集操作を、共通操作と固有操作とに区別する。共通操作と固有操作とはそれぞれ以下を意味する。
まず、共通操作とは、操作の結果がすべての実行環境のGUIデザインに反映されるもの(例えば、共通部品の追加操作)である。
また、固有操作とは、操作の結果が特定の実行環境のみのGUIデザインに反映されるもの(各部品のサイズ変更や移動操作)である。
ただし、共通部品とは、すべての実行環境のGUI画面に含まれる部品のこと(特定の実行環境のGUI画面のみに含まれる部品は固有部品と呼ぶ)である。
さらに、共通部品の属性のうち、すべての実行環境で同じ属性値を持つものを共通属性と呼ぶ。例えば、「OK」ボタン部品がすべての実行環境のGUIに含まれる場合、このボタン部品は共通部品であり、さらにそのラベル属性は、すべての実行環境において“OK”という同じ値を持つ共通属性である。
なお、図2においては、本ソースコード生成装置の動作中に生成されるデータのうち、メモリ9上に生成されるデータを40に、ファイルとして存在するデータを41に示すが、これは本実施形態における実装の想定によるものであり、各データがメモリ上に配置されるか、またはファイルとして配置されるかを上記に限定するものではない。
図4及び図5は、環境テーブル203および部品テーブル202の例およびそれぞれのテーブルのエントリの関連を示す図であり、図4は新しい実行環境のデータが追加される前の状態を符号203aおよび202aで示し、図5は新しい実行環境のデータが追加された後の状態を符号203bおよび202bで示している。
環境テーブル203aは、VGAやQVGAなど実行環境ごとにエントリを保持し、実行環境に関する画面サイズや色数、固有イベントなどの情報を記録する。
部品テーブル202aは、ボタンやテキストなど画面に配置するGUI部品ごとにエントリを保持し、さらに各エントリは、環境テーブル203a内に保持した実行環境に対応してサブエントリを保持する。各サブエントリは、部品に関する情報のうち、部品のサイズや位置など環境に依存した情報を記録する。
図4及び図5において、○印を付したエントリは、カレント実行環境(実行環境選択ウィンドウにおいて選択されている実行環境)のエントリを表わす。また、部品テーブル202a、202bの「タイプ」は、その部品が共通部品であるか固有部品であるかを示すフラグである。
部品テーブル202aにおいては、「Picture_Box」および「InputArea」は共通部品であり、すべての実行環境の画面に含まれることを示す。一方、「Title_Text」部品は固有部品であり、実行環境VGAの画面のみに含まれる。さらに、*を付与した属性は共通属性であり、「InputArea」部品の「文字」属性は共通属性である。新しい実行環境を追加した際、共通部品の共通属性の値は、既存の実行環境のものを継承する。
図6は、画面テーブル201の例を示す。画面テーブル201は、氏名入力画面など、画面ごとにエントリを保持し、画面に配置した部品間の親子関係など、画面内のGUI部品に関する情報のうち実行環境に依存しないものを記録する。
図6において、○印や◎印は、画面テーブル201内のエントリのうちGUI編集ウィンドウ52aに表示中の画面(「カレント画面」とよぶ)、およびカレント画面に配置したGUI部品のうち選択状態のものを表す。
図7は、原型テーブル204の例を示す。一般に、GUI部品は、枠線の太さや表示文字のフォントなど各種の属性を持つ。GUI部品がどのような属性を持つかは、ボタンやテキストといった部品の種別によって決定され、各属性がどのような値を持つかは、個々の部品のインスタンスごとに決定される。
原型テーブル204は、GUI部品の種別ごとにエントリを保持し、各種別の部品が持つ属性およびそのデフォルト値を記録する。
なお、個々の部品のインスタンスの属性値は、部品テーブル202に記録されている。
図8は、リソーステーブル205の例を示す。リソースとは、文字列や画像など、GUI画面を構成するデータのことである。リソーステーブル205は、リソースごとにエントリを保持し、リソースを特定するための識別子(リソースID)、および文字列や画像といったデータの型(MIME TYPE)およびその値などを保持する。具体的には、文字列型であれば文字列自体、画像型であれば画像を格納したファイルのパスなどを保持する。
図9は、素材テーブル206の例を示す。素材とは、データのうち画像、音声、動画など、マルチメディアコンテンツのことである。素材テーブル206は、素材ごとにエントリを保持し、素材を特定するための識別子、画像を格納したファイルのパスなどを記録する。
以上の構成に係るソースコード生成装置の処理の概要は以下の通りである。
ソースコード生成手段113は、編集開始時にユーザの指定に従ってGUIデザイン情報ファイル入出力手段111を使用してGUIデザイン情報ファイル4を読み込み、画面テーブル201、部品テーブル202、環境テーブル203に内容を設定し、リソースファイル入出力手段112を使用してリソースファイル5、複数の素材データファイル6を読み込んで、リソーステーブル205、素材テーブル206に内容を設定する。
さらに、予めプログラムされた内容から原型テーブル204を生成する。テーブルの準備完了後に、画面テーブル201と部品テーブル202、リソーステーブル205、素材テーブル206の内容から、画面上に配置された部品の表示状態を示すプレビュー画面301を生成してGUI編集ウィンドウ52aの初期画面として表示し、リソーステーブルの内容をリソース管理ウィンドウ56aに設定し、部品属性表示ウィンドウ55aとイベント編集ウィンドウ53aの内容をクリアして初期化し、原型テーブル204の内容を部品提供ウィンドウ51aに表示し、環境テーブル203の内容を実行環境選択ウィンドウ54aに表示してユーザの操作待ち状態に入る。
なお、本実施形態のソースコード生成装置は、従来技術によって作成したデザイン情報のファイルである既存のデザイン情報ファイル99も利用することができる。すなわち、本発明のGUIデザイン情報においては、図4の部品テーブル202aに示すとおり、各GUI部品のレイアウト情報を実行環境ごとに記録する。一方、従来技術においては、1つのGUIデザイン情報には1つの実行環境用のレイアウト情報を記録する。従来の複数のGUIデザイン情報ファイル99(既存のデザイン情報ファイル99)を読み込んで、本発明でのデザイン情報ファイルにマージすることによって、利用可能になる。
本ソースコード生成装置における起動時のデータの流れを図10に示す。
ユーザの操作待ち状態において、次に、GUIデザインの編集を行なう場合には、編集対象となる実行環境を実行環境選択手段104により選択し、ユーザインタフェース部品提供手段105により新規画面の追加操作を行なう。
画面追加操作によって、画面テーブル201に新規エントリが追加され、GUI編集ウィンドウ52aにユーザインタフェース部品を持たない空白の画面のプレビュー画像が表示される。
次に、GUI編集ウィンドウ52aに表示された空白の領域に対してユーザインタフェース部品提供ウィンドウ51aから必要なユーザインタフェース部品を選択し、ドラッグ&ドロップ操作によってGUI編集ウィンドウ52aに追加する。
ユーザインタフェース部品を追加した結果、部品テーブル202に新規エントリが追加され、GUI編集機能101のプレビュー画像にユーザインタフェース部品のイメージ図形が追加される。
また、部品テーブル202のエントリには、対応するユーザインタフェース部品の位置、サイズ、属性値、イベント動作などの情報が、環境テーブル203に設定された環境の数だけ複数格納されており、プレビュー画像の生成には、その時点で実行環境選択ウィンドウ54aに指定された実行環境の位置、サイズ、属性値、イベント動作の情報が利用される。
環境テーブル203と部品テーブル202の例および環境テーブルエントリと部品テーブルのエントリ内の属性情報の関連は図4に示した通りである。
入力装置2を構成するポインティング入力装置22の操作によってユーザインタフェース部品を選択し、位置とサイズを変更できる。変更されたユーザインタフェース部品の位置情報及びサイズ情報は、部品テーブル202内の対応するエントリに記憶される。
複数のユーザインタフェース部品からなる画面を作成する場合には、部品提供ウィンドウ51aから部品を追加する操作を必要な回数だけ繰り返す。
ユーザインタフェース部品の属性情報を編集する際には、GUI編集ウィンドウ52aに表示されたユーザインタフェース部品をポインティング入力装置22で選択する。すると、選択されたユーザインタフェース部品の属性情報が一覧表として部品属性編集機能102によって部品属性表示ウィンドウ55aに表示される。
ユーザインタフェース部品の属性の設定値を変更する場合には、キー入力装置21によって新しい設定値を入力するか、またはポインティング入力装置22によって新しい設定値を選択する。
ユーザインタフェース部品の属性値には、GUIライブラリで提供されるクラスやGUI表示データと1対1に対応した設定値の他に、本ソースコード生成装置の動作を指定する仮想的な属性値も含まれる。
例えばソースコードへの出力の有無を指定する属性値はソースコード生成手段113またはGUI表示データ生成手段114の動作を制御するための内部パラメタで、ONに設定された状態でソースコード生成を実行すると、該当するユーザインタフェース部品の処理をソースファイルまたはGUI表示データファイルに出力し、OFFの場合は出力しない制御を行なう。
ソースコード出力値の他にも、イベント制御の有無を指定する属性、ソースコードファイル名を指定する属性など、GUIライブラリ内のクラスが持つ設定値とは直接関係のない属性値も存在し、部品テーブル202上のエントリに記録される
ユーザインタフェース部品の属性値に指定される文字列や画像などの素材データの情報は、一旦リソーステーブル205と素材テーブル206に登録された後に、部品属性編集手段102の選択肢として部品属性表示ウィンドウ55aに表示される。
リソーステーブル205に素材データファイル6を登録する場合には、リソース管理手段106で新規エントリを作成する。
新しく素材データファイルまたは素材文字列を入力した後に追加ボタンを選択すると、リソーステーブル205に素材データ及びリソースの属性情報(ファイル種別など)を格納した新エントリを追加し、素材テーブル206に選択された素材データファイル6の内容を読込んだ新エントリを作成する。
このようにして作成されたリソーステーブル205の内容が部品属性編集手段102の属性値候補として部品属性表示ウィンドウ55aに一覧表示され、本ソースコード生成装置の操作者はポインティング入力装置22で指定することにより、ユーザインタフェース部品に設定する素材データファイル6を指定する属性を編集できる。
素材属性を含めたユーザインタフェース部品の属性の設定値はプレビュー画面301に即座に反映される。GUIデザイン編集時の処理とデータの流れをブロック図上の図11に示す。
ユーザインタフェース部品のイベント動作を編集する場合には、GUI編集機能101で編集対象のユーザインタフェース部品を選択する。すると、選択された部品のイベント動作情報がイベント動作編集機能103によりイベント編集ウィンドウ53aに一覧形式で表示されるので、ユーザインタフェース部品が受け取るイベントに対する動作をポインティング入力装置22またはキー入力装置21で指定する。
イベント動作情報が変更された場合は、対応する部品テーブル202のエントリにイベント動作情報が保存される。
環境テーブル203に格納された実行環境情報によって、プレビューやGUI編集手段、部品属性編集手段、イベント動作編集手段には異なる内容を表示することが出来る。
例えばVGA(640x480ピクセル)サイズのLCD(液晶表示装置)を使用する実行環境とQVGA(320x240ピクセル)サイズのLCDを使用する実行環境を登録することで、GUIデザイン編集ウィンドウ52aの画面領域のサイズを切り替えて編集操作を行なうことができる。
また、カラーLCDを使用する実行環境と、白黒LCDを使用する実行環境に対してGUIデザインの編集を行っている場合には、「カラーLCD環境」を選択された場合にはプレビュー画像をカラー表示とし、「白黒LCD」環境が選択された場合にはプレビュー画像を白黒表示とすることで、同じ部品からなる画面であっても全く異なるプレビュー表示を行い、より実際の実行環境に近い状況でGUIデザインを編集することが出来る。
さらに環境によって発生するイベントが異なる場合にも、イベント動作編集手段103によってイベント編集ウィンドウ53aに表示するイベントの内容を切り替えることで、無駄なく必要十分なイベント動作編集を行なうことができる。
複数の実行環境に対するユーザインタフェース部品の位置、サイズ、属性値、イベント動作が設定されている場合は、実行環境選択手段104により編集対象としたい実行環境を選択する。
実行環境選択手段104による実行環境の選択内容が変更されると、本ソースコード生成装置はGUI編集手段101、部品属性編集手段102、イベント動作編集手段103によりGUI編集ウィンドウ52a、部品属性表示ウィンドウ55a、イベント編集ウィンドウ53aに表示される全ての内容を再表示する。
GUI編集ウィンドウ52aのプレビュー画像も、部品テーブル202に記憶された情報のうち、新たに選択された実行環境に対応した位置、サイズ、属性値、イベント動作などの情報を元に再描画され、実行環境の選択前とは異なる内容が表示される。
実行環境の切り替えにより図3の操作画面が切り替えられた状態の例を図12に示す。
図3におけるユーザインタフェース部品522a、523aに対応するユーザインタフェース部品は、図12の522c、523cでそれぞれ示されるように異なる位置に配置されている。なお、521aは、「環境1」に固有の部品であり、「環境2」用の図12では存在しない。
ユーザインタフェース部品の属性情報も、図3で選択された523aの属性値(55a)と、図12における同じ部品523cの属性値(55c)とは別に設定されている。
また、実行環境選択機能104により、実行環境の選択値を変更した後には、部品テーブル202に複数保存された位置、サイズ、属性、イベント動作情報のうち、現在選択された実行環境に対応する値のみが変更されるため、他の実行環境に対応した設定値は編集操作の影響を受けることなく保護される。
なお、図12に示す「環境2」用のデザイン情報は、図3に示す「環境1」用のデザイン情報をもとに効率的に作成することができる。すなわち、図3の実行環境選択ウィンドウ54aにおいて「環境1」から「環境2」にポインティングデバイス入力装置22の操作によって切り替える。
「環境2」では「環境1」に比べて解像度が低いので、そのままでは図13に示す通り、GUI編集ウィンドウ52a内の画面デザインが不適切となる。そこで、GUI編集ウィンドウ52a内で各GUI部品のサイズや位置の調整を行なうことによって、図12に示す適切な画面デザインを作成できる。
従来とは異なり、画面を構成するGUI部品といった環境に依存しない情報は共通に利用して、個々のGUI部品のサイズや位置など実行環境に依存する情報のみ、実行環境ごとに編集すればよい。
このように、本ソースコード生成装置の操作者は、GUIデザインの編集中に任意のタイミングで実行環境選択ウィンドウ54aで実行環境の選択値を簡単に変更することが出来るため、あたかも各実行環境別に複数の画面デザインを行なっているかのように編集操作を行なうことが出来る。
実行環境を選択した場合の実行環境の切り替え処理の流れを図14に示す。
次に、実行環境を追加する場合には、実行環境選択ウィンドウ54aで追加ボタン541を選択して、新たな実行環境の情報を格納したエントリ203c(図5)を環境テーブル203bに追加する。それと同時に部品テーブル202b(図5)の各エントリの位置、サイズ、属性、イベント動作などの情報の組202cを追加し、新たな環境に対応付けて初期化する。
環境テーブル203及び部品テーブル202に新規の実行環境を追加した場合のデータ変更の例を図5に示す。
このようにして編集されたGUIデザインの設定値は、同じ部品の組合せからなる画面を示している。つまり位置、サイズ、属性、イベント動作などのGUIレイアウトや設定が異なるだけの1つの画面であるため、ユーザインタフェース部品を追加、削除する場合には1回だけ追加、削除の操作を行なえばよい。すなわち実行環境の数だけ追加または削除操作を繰り返す必要はない。
また、後述の通り、1つのユーザインタフェース部品に対して1つのクラスが割り当てられるため、生成したソースコードで実行環境の数だけユーザコード部品クラスがメモリ上に生成されることはなく、複数の画面を編集時に管理、保存する処理も不要である。
実行環境を削除する場合も同様で、環境テーブル203から対象となるエントリを削除した後に、部品テーブル202の全エントリの位置、サイズ、属性、イベント動作の情報から、削除対象の環境に対応した設定値の組を1セット削除するだけである。
編集した結果を保存する場合は、GUI編集ウィンドウ52aに配置された保存ボタン521を選択する。
本ソースコード生成装置は操作者の編集結果をハードディスクなどの二次記憶装置に保存するために、GUIデザインに関する編集結果をGUIデザイン情報ファイル4に出力する。
具体的には、データ保存処理として画面テーブル201と部品テーブル202の内容をGUIデザイン情報ファイル4に、リソーステーブル205の内容をリソースファイル5に出力する。このとき複数の実行環境に対するユーザインタフェース部品の位置、サイズ、属性値、イベント動作が設定されている場合は、各実行環境に対する設定値を全てGUIデザイン情報ファイル4に保存する。
編集したGUI画面のデザイン内容から、ソースコードまたはGUI表示データを生成する場合には、GUI編集画面に配置されたソース生成実行ボタン58aを選択する。すると、本ソースコード生成装置は、操作者のGUIデザインの結果が格納された画面テーブル201、部品テーブル202、リソーステーブル205、素材テーブル206、環境テーブル203の内容をGUIデザイン情報ファイル4に保存する。また、リソーステーブル205の内容をリソースファイル5に保存する。
ソースコードまたはGUI表示データの生成処理において、処理が成功したか、あるいは処理途中において何らかのエラーが発生したかを示す結果情報302をメモリ9上に蓄積し、処理完了後に本ソースコード生成装置の操作者にメッセージとして表示する。
このようにして生成されたソースコードまたはGUI表示データには、環境テーブル203に登録された複数の実行環境向けのソースコード及びGUI表示データが含まれる。
本ソースコード生成装置におけるソースコード生成処理の流れを図15に示す。また、生成したソースコード45の例を図16に、生成したGUI表示データ46の例を図17に示す。
図18は、本ソースコード生成装置のトップレベルの処理を実行するmain()関数の処理を示すフローチャートである。
まず、initialize()関数を起動して初期処理を実行する(ステップ1801)。この後、ユーザ操作が発生するまで待機し(ステップ1802)、ユーザ操作が発生したらユーザ操作に応じて処理を分岐する。
ユーザ操作が「新規画面」ボタン57aのクリックか判定し(ステップ1803)、そうであればnew_screen()関数を起動して新規画面の追加処理を実行(ステップ1804)後、ユーザ操作が発生するまで待機する。
ユーザ操作が部品提供ウィンドウ51a内の部品のドラッグ操作か判定し(ステップ1805)、そうであればnew_component()関数を起動して部品の追加処理を実行(ステップ1806)後、ユーザ操作が発生するまで待機する。
ユーザ操作がGUI編集ウィンドウ52a内の部品の押下か判定し(ステップ1807)、そうであればhandle_gui()関数を起動してGUI編集処理を実行し(ステップ1808)、その後、ユーザ操作が発生するまで待機する。
ユーザ操作が部品属性表示ウィンドウ55a内のクリックか判定し(ステップ1809)、そうであればhandle_property()関数を起動して属性編集処理を実行(ステップ1810)後、ユーザ操作が発生するまで待機する。
ユーザ操作がイベント編集ウィンドウ53a内のクリックか判定し(ステップ1811)し、そうであればhandle_action()関数を起動してイベント編集処理を実行(ステップ1812)後、ユーザ操作が発生するまで待機する。
ユーザ操作がリソース管理ウィンドウ56a内のクリックか判定し(ステップ1813)、そうであればhandle_resource()関数を起動してリソース編集処理を実行(ステップ1814)後、ユーザ操作が発生するまで待機する。
ユーザ操作が実行環境選択ウィンドウ54a内のクリックか判定し(ステップ1815)、そうであればhandle_environment()関数を起動して実行環境編集処理を実行後(ステップ1816)後、ユーザ操作が発生するまで待機する。
ユーザ操作がソース生成ボタン58aのクリックか判定し(ステップ1817)、そうであればgenerate_source()関数を起動してソース生成処理を実行(ステップ1818)後、ユーザ操作が発生するまで待機する。
ユーザ操作が終了操作か判定し(ステップ1819)、そうであれば処理を終了し(ステップ1820)、そうでなければ、ユーザ操作が発生するまで待機する。
図19は、初期処理を実行するinitialize()関数の処理を示すフローチャートである。
まず、GUIデザイン情報ファイル4を読込み、画面テーブル201、部品テーブル202、環境テーブル203の内容を設定する(ステップ1901)。画面テーブル201の先頭エントリの画面をカレントにし(ステップ1902)、カレント画面のエントリの先頭の部品サブエントリを選択状態にし(ステップ1903)、環境テーブル203の先頭エントリの実行環境をカレントにする(ステップ1904)。
次に、リソースファイル5、素材データファイル6を読込み、リソーステーブル205、素材テーブル206の内容を設定する(ステップ1905)。プログラムされた処理をもとに原型テーブル204の内容を設定し(ステップ1906)、redraw()関数を起動して図3の編集画面50aの描画処理を実行して(ステップ1907)、処理終了する(ステップ1908)。
図20は、新規画面の作成処理を実行するnew_screen()関数の処理を示すフローチャートである。
まず、画面テーブル201に新規エントリを追加して(ステップ2001)、このエントリをカレント画面にした(ステップ2002)後、redraw()関数を起動して編集画面50aの描画処理を実行して(ステップ2003)、処理終了する(ステップ2004)。
図21は、GUI編集ウィンドウ52aに部品を追加する処理を実行するnew_component()関数の処理フローである。
まず、ユーザが部品提供ウィンドウ51a内から部品をドラッグした際、シフトキーを押下していたか判定し(ステップ2101)、そうであれば共通操作としての部品追加(すなわち共通部品の追加)操作であり、変数modeに「共通」を設定する(ステップ2102)。
そうでなければ固有操作としての部品追加(すなわち固有部品の追加)操作であり、変数modeに「固有」を設定する(ステップ2103)。
次に、部品提供ウィンドウ51a内からユーザがドラッグした部品を、GUI編集ウィンドウ52a上でドラッグされた位置に配置する(ステップ2104)。
変数modeの値が「共通」かつドラッグ後の位置に既に他の共通部品が存在するか判定し(ステップ2105)、そうであればその部品を親とする親子関係を画面テーブル201内に設定する(ステップ2106)。
次に、部品テーブル202に、対応する部品のエントリを追加して、追加したエントリをrとし(ステップ2107)、エントリrの「タイプ」に変数modeの値を設定する(ステップ2108)。
変数modeの値が「共通」か判定し(ステップ2109)、そうであればエントリrのサブエントリとして、環境テーブル内の全実行環境分のサブエントリを追加(ステップ2110)する。そうでなければ、rのサブエントリとして、カレント実行環境に対応するサブエントリを追加する(ステップ2111)。
追加したエントリrおよびサブエントリに、位置、サイズ、色などの属性値を設定する(ただし、値が未定の属性には、原型テーブルを参照して、デフォルト値を設定)(ステップ2112)。
次に、追加した部品を選択状態にした(ステップ2113)後、redraw()関数を起動して編集画面50aの描画処理を実行し(ステップ2114)、処理終了する(ステップ2115)。
図22は、GUI編集処理を実行するhandle_gui()関数の処理を示すフローチャートである。
まず、ユーザ操作が、選択状態の部品のクリックか判定し(ステップ2201)、そうでなければユーザがクリックした部品を選択状態にして(ステップ2202)、 redraw()関数を起動して編集画面50aの描画処理を実行し(ステップ2207)、処理終了する(ステップ2208)。
選択状態の部品のクリックであった場合は、押下位置が部品の四隅か判定し(ステップ2203)、そうであれば部品のリサイズ操作とみなしてドラッグ終了位置まで部品サイズを変更し(ステップ2204)、そうでなければ部品の移動操作とみなしてドラッグ終了位置まで部品を移動する(ステップ2205)。
この後、新たな位置とサイズを部品テーブル202内の対応するエントリに設定し(ステップ2206)、redraw()関数を起動して編集画面50aの描画処理を実行し(ステップ2207)、処理終了する(ステップ2208)。
図23は、属性編集処理を実行する関数handle_property()関数の処理を示すフローチャートである。
まず、ユーザがクリックした属性値欄に、ユーザのキー入力値を設定し(ステップ2301)、属性値欄をクリックした際にシフトキーを押下していたかを判定する(ステップ2302)。
そうであれば、共通操作としての属性値変更操作なので、選択状態の部品に対応する部品テーブル202のエントリ内における全サブエントリの属性値を、キー入力した値に変更し、共通属性として*を付与する(ステップ2303)。
そうでなければ、固有操作としての属性値変更操作なので選択状態の部品に対応する部品テーブル202のエントリ内の、カレント実行環境に対するサブエントリの属性値を、キー入力した値に変更する(ステップ2304)。
次に、redraw()関数を起動して編集画面50aの描画処理を実行し(ステップ2305)、処理終了する(ステップ2306)。
図24は、イベント編集処理を実行する関数handle_action()関数の処理を示すフローチャートである。
まず、ユーザがクリックした動作名欄に、ユーザのキー入力値を設定し(ステップ2401)、動作名欄をクリックした際にシフトキーを押下していたかを判定する(ステップ2402)。
そうであれば、共通操作としての動作名変更操作であるので、選択状態の部品に対応する部品テーブル202のエントリ内における全サブエントリのイベント動作を、キー入力した値に変更し、共通属性として*を付与する(ステップ2403)。
そうでなければ固有操作としての動作名変更操作であるので、選択状態の部品に対応する部品テーブル202のエントリ内の、カレント実行環境に対するサブエントリのイベント動作を、キー入力した値に変更する(ステップ2404)。そして、redraw()関数を起動して編集画面50aの描画処理を実行し(ステップ2405)、処理終了する(ステップ2406)。
図25は、リソース編集処理を実行するhandle_resource()関数の処理を示すフローチャートである。
まず、ユーザ操作が、「新規」ボタン561のクリックか判定し(ステップ2501)、そうであればリソース管理ウィンドウ56aの先頭に新規のエントリ(内容は空白)を追加し(ステップ2502)、ユーザのキー入力内容に従って、新規エントリの内容を設定して(ステップ2503)、処理終了する(ステップ2512)。
ユーザ操作が、「追加」ボタン562のクリックか判定し(ステップ2504)、そうであればリソーステーブル205に新規エントリを作成し(ステップ2505)、新規エントリに、リソース管理ウィンドウ56a内の先頭エントリの内容を設定して(ステップ2506)、処理終了する(ステップ2512)。
ユーザ操作が、リソース管理ウィンドウ56a内エントリのクリックか判定し(ステップ2507)、そうであれば、クリックされたエントリを反転表示し(ステップ2508)、処理終了する(ステップ2512)。
ユーザ操作が、「削除」ボタン563のクリックか判定し(ステップ2509)、そうであればリソース管理ウィンドウ56aの反転表示されたエントリを削除し(ステップ2510)、リソーステーブル205内の対応するエントリを削除して(ステップ2511)、処理終了する(ステップ2512)。
図26は、実行環境編集処理を実行するhandle_environment()関数の処理を示すフローチャートである。
まず、ユーザ操作が、実行環境の「新規」ボタン542のクリックか判定し(ステップ2601)、そうであれば実行環境選択ウィンドウ54aの先頭に新規のエントリ(内容は空白)を追加し(ステップ2602)、ユーザのキー入力内容に従って、新規エントリの内容を設定して(ステップ2603)、処理終了する(ステップ2618)。
ユーザ操作が、「追加」ボタン541のクリックか判定し(ステップ2604)、そうであれば環境テーブル203に新規エントリを作成し(ステップ2605)、新規エントリに、実行環境選択ウィンドウ54a内の先頭エントリの内容を設定する(ステップ2606)。また、部品テーブル202の各共通部品のエントリに、追加した環境に対応するサブエントリを追加して初期化する。ただし、各共通部品の属性の値は、共通属性については他の環境の属性値をコピーし、その他の属性については原型テーブルよりコピーする(ステップ2607)。
この後、追加した実行環境をカレントにして(ステップ2608)、redraw()関数を起動して編集画面50aの描画処理を実行し(ステップ2617)、処理終了する(ステップ2618)。
ユーザ操作が、実行環境選択ウィンドウ54a内エントリのクリックか判定し(ステップ2609)、そうであればクリックされたエントリを反転表示し(ステップ2610)、反転表示した実行環境をカレントにする(ステップ2611)。そして、redraw ()関数を起動して編集画面50aの描画処理を実行し(ステップ2617)、処理終了する(ステップ2618)。
ユーザ操作が、「削除」ボタン543のクリックか判定し(ステップ2612)、そうであれば実行環境選択ウィンドウ54aの反転表示されたエントリを削除し(ステップ2613)、環境テーブル内203の対応するエントリを削除し(ステップ2614)、部品テーブル202の各部品のエントリから、削除した環境に対応するサブエントリを削除する(ステップ2615)。そして、環境テーブル203内の先頭エントリに対応する実行環境をカレントにして(ステップ2616)、redraw ()関数を起動して編集画面50aの描画処理を実行し(ステップ2617)、処理終了する(ステップ2618)。
ユーザ操作がいずれでもなければ、処理終了する(ステップ2618)。
図27は、ソース生成処理を実行するgenerate_source()関数の処理を示すフローチャートである。
まず、画面テーブル201の先頭のエントリを変数scrに代入して(ステップ2701)、scrが存在するか判定し(ステップ2702)、存在しなければ処理を終了する(ステップ2705)。存在する場合は、generate_source(scr)関数を起動して、画面scrを表示するソースを生成する(ステップ2703)、変数scrに画面テーブル201の次のエントリを代入した後(ステップ2704)、ステップ2702の判定に戻る。
図28は、編集画面50aの描画処理を実行するredraw()関数の処理を示すフローチャートである。
まず、preview(カレント画面, カレント実行環境)関数を起動して、画面上に配置された部品の表示状態を示すプレビュー画面を生成して、GUI編集ウィンドウ52aに表示し(ステップ2801)、リソーステーブル205の内容をリソース管理ウィンドウ56aに表示する(ステップ2802)。次に、選択状態の部品が存在するか判定し(ステップ2803)、存在すれば選択状態の部品に対応する部品テーブル202のエントリの内容を、部品属性表示ウィンドウ55aおよびイベント編集ウィンドウ53aに表示し(ステップ2804)、存在しなければ、部品属性表示ウィンドウ55aおよびイベント編集ウィンドウ53aの内容をクリアする(ステップ2805)。
次に、原型テーブル204の内容を部品提供ウィンドウ51aに表示し(ステップ2806)、環境テーブル203の内容を実行環境選択ウィンドウ54aに表示して(ステップ2807)、処理終了する(ステップ2808)。
図29は、ソースコード生成処理を実行するgenerate_source(screen)関数の処理を示すフローチャートある。
ここでは、まず、変数envに、環境テーブル203の先頭行を代入する(ステップ2901)。そして、envが存在するか判定し(2902)、存在しなければ処理終了する(ステップ2914)。そうであれば、「カレント実行環境がenvで示される環境であるかを判定する」ソースを生成し(図16のA)(ステップ2903)、画面テーブル201内で、screenで指定した画面に属するサブエントリの集まりを変数rowsに設定し(ステップ2904)、rowsの先頭行を変数rowに代入する(ステップ2905)。次に、rowが存在するか判定し(ステップ2906)、存在しない場合は、変数envに環境テーブル203の次の行を代入し、ステップ2902の判定に戻る(ステップ2913)。
存在する場合には、変数nameにrowの「部品名」の値、変数row2に、部品テーブル202で「部品名」がnameかつ「環境」がenvと一致するサブエントリを代入する(ステップ2907)。さらに、変数(x、y)にrow2の「位置」の値、変数(h,w)にrow2の「サイズ」の値を代入する(ステップ2908)。そして、「部品nameの位置を(x, y)、サイズを(h, w)に設定する」ソースを生成する(図16のB)(ステップ2909)。row2で示されるサブエントリの各属性attrの値について、「部品nameのattr属性値をrow2で指定した値に設定する」ソースを生成する(図16のC) (ステップ2910)。
さらに、row2の各イベントeについて、「部品nameのeに対するイベントハンドラをrow2で指定したハンドラに設定する」ソースを生成する(図16のD) (ステップ2911)。そして、変数rowにrows内でrowの次の行を代入し(ステップ2912)、ステップ2906の判定に戻る。
図30は、画面上に配置された部品の表示状態を示すプレビュー画面を生成するpreview(screen,env)関数の処理を示すフローチャートである。
まず、画面テーブル201内で、screenで指定した画面に属するサブエントリの集まりを変数rowsに代入する(ステップ3001)。次に、変数rowにrowsの先頭行を代入する(ステップ3002)。rowが存在するか判定し(ステップ3003)、存在しなければ処理終了する(ステップ3008)。存在すれば、変数nameにrowの「部品名」の値を代入する(ステップ3004)。部品テーブル202で、「部品名」がnameかつ「環境」がenvと一致するサブエントリを変数row2に代入する(ステップ3005)。row2で指定された部品の属性値に従い、プレビュー画面に部品を描画し(ステップ3006)、変数rowにrows内でrowの次の行を代入して(ステップ3007)、ステップ3003の判定に戻る。
図31及び図32は、本実施形態における画面遷移の例を示す図であり、図33および図34で示すGUIを作成する手順の一部を示している。
まず、図31(a)は、初期画面であり、主な構成要素として、GUI編集ウィンドウ3101および実行環境選択ウィンドウ3104を含む。実行環境選択ウィンドウ3104では、実行環境として「環境1」が選択されている。
図31(b)は「選択」ボタン部品3107を共通部品として配置した図である。ユーザの操作としては、(1)「シフト+ドラッグ」操作によってボタン部品3107を共通部品として配置した後、(2)「シフト+クリック」操作によって共通操作としてボタンラベル”選択”をキー入力する。
図31(c)は、「CANCEL」ボタン3110を固有部品として配置した図である。ユーザの操作としては、(3)「ドラッグ」操作によってボタン部品3110を固有部品として配置した後、(4)「クリック」操作によってボタンラベル”CANCEL”をキー入力する。
図31(d)は、「環境2」に切り替えた後、「選択」ボタン部品のレイアウトを調整する図である。ユーザは、実行環境選択ウィンドウ3104にて「環境2」に切り替えた後、(5)「選択」ボタン部品3108aを「ドラッグ」操作によって3108bの位置に移動する。なお、「環境2」に切り替えた際、共通部品である「選択」ボタン部品3108aはすでに画面上に存在しているため、部品の追加操作は不要である。
図32(a)は、図31(d)の続きの操作を示すものであり、イメージ部品3112を追加した図である。ユーザは、(6)「シフト+ドラッグ」操作によって、イメージ部品3112を共通部品として追加する。
図32(b)は、「環境1」に再度切り替えた後、イメージ部品のレイアウトを調整する図である。ユーザは、「ドラッグ」操作によってイメージ部品3111aを3111bの位置に移動する。なお、「環境1」に切り替えた際、共通部品であるイメージ部品3111aはすでに画面上に存在しているため、部品の追加操作は不要である。
図32(c)は、「環境3」を新たに追加したのち、共通部品である「選択」ボタン部品およびイメージ部品のレイアウト調整を行なう図である。ユーザの操作としては、実行環境選択ウィンドウ3106にて新たな実行環境「環境3」を追加した後、(8)「選択」ボタン部品3109aを3109bの位置に移動し、(9)メージ部品3113aをドラッグして3113bの位置に移動する。なお、「環境3」を追加した際、共通部品である「選択」ボタン部品3109aおよびイメージ部品3113aはすでに画面上に存在しているため、部品の追加操作は不要である。
このように、複数の実行環境のGUIデザインを設計する際、すべての実行環境に共通の操作と特定の環境に固有の操作を使い分けることにより、操作回数を低減することができる。
本発明の実施形態の一例を示すシステム構成図である。 本発明の実施形態の一例におけるソースコード生成プログラムの機能および処理データを示す機能ブロック図である。 操作画面の例を示す説明図である。 環境テーブルおよび部品テーブルの例と両テーブル間の関連付けを示す説明図である。 環境テーブルと部品テーブルへの実行環境の追加を示す説明図である。 画面テーブルの例を示す説明図である。 原型テーブルの例を示す説明図である。 リソーステーブル例を示す説明図である。 素材テーブルの例を示す説明図である。 システム起動時の処理の流れを示す説明図である。 GUIデザイン処理の流れを示す説明図である。 実行環境の切り替え操作の例を示す説明図である。 実行環境用の画面設計をもとに他の実行環境用の画面を設計する際の操作の例を示す説明図である。 実行環境の切り替え処理の流れを示す説明図である。 ソースコード生成処理の流れを示す説明図である。 生成ソースコードの例を示す説明図である。 生成GUI表示データの例を示す説明図である。 本発明の実施形態の一例において、トップレベルの処理を実行するmain()関数の処理を示すフローチャートである。 本発明の実施形態の一例において、初期処理を実行するinitialize()関数の処理を示すフローチャートである。 本発明の実施形態の一例において、新規画面の作成処理を実行するnew_screen()関数の処理を示すフローチャートである。 本発明の実施形態の一例において、GUI編集ウィンドウに部品を追加する処理を実行するnew_component()関数の処理を示すフローチャートである。 本発明の実施形態の一例において、GUI編集処理を実行するhandle_gui()関数の処理を示すフローチャートである。 本発明の実施形態の一例において、属性編集処理を実行する関数handle_property()関数の処理を示すフローチャートである。 本発明の実施形態の一例において、イベント編集処理を実行する関数handle_action()関数の処理を示すフローチャートである。 本発明の実施形態の一例において、リソース編集処理を実行するhandle_resource()関数の処理を示すフローチャートである。 本発明の実施形態の一例において、実行環境編集処理を実行するhandle_environment()関数の処理を示すフローチャートである。 本発明の実施形態の一例において、ソース生成処理を実行するgenerate_source()関数の処理を示すフローチャートである。 本発明の実施形態の一例において、編集画面の描画処理を実行するredraw()関数の処理を示すフローチャートである。 本発明の実施形態の一例において、ソースコード生成処理を実行するgenerate_source(screen)関数の処理を示すフローチャートある。 本発明の実施形態の一例において、画面上に配置された部品の表示状態を示すプレビュー画面を生成するpreview(screen,env)関数の処理を示すフローチャートである。 実施形態における画面遷移の例を示す図である。 図31の続きの画面遷移例を示す図である。 画面を縦横の両方向で使用できるようにした表示画面を備えた携帯電話機の例を示す外観図である。 画面を縦横の両方向で使用できるようにした表示画面を備えた携帯電話機の例を示す外観図である。
符号の説明
1…処理装置、2…入力装置、3…表示装置、4…GUIデザイン情報ファイル、5…リソースファイル、6…複数の素材データファイル、7…ソースファイル、8…GUI表示データファイル、9…メモリ、10…CPU、21…キー入力装置、22…ポインティング入力装置、40…メモリ上に生成されるデータ、41…ファイルとして存在するデータ、91…ソースコード生成プログラム、92…オペレーティングシステム、99…既存のデザイン情報ファイル、101…GUI編集機能、102…部品属性編集機能、103…イベント動作編集機能、104…実行環境選択機能、105…ユーザインタフェース部品提供機能、106…リソース管理機能、111…GUIデザイン情報ファイル入出力機能、112…リソースファイル入出力機能、113…ソースコード生成装置、114…GUI表示データ生成機能、201…画面テーブル、202…部品テーブル、203…環境テーブル、204…原型テーブル、205…リソーステーブル、206…素材テーブル、301…プレビュー画面、302…結果情報、303…ソースコード、304…GUI表示データ、50a…プログラム画面、51a…部品提供ウィンドウ、52a…GUI編集ウィンドウ、53a…イベント編集ウィンドウ、54a…実行環境選択ウィンドウ、55a…部品属性表示ウィンドウ、56a…リソース管理ウィンドウ、57a…新規画面ボタン、58a…ソース生成ボタン、521a…テキスト表示ユーザインタフェース部品、522a…画像表示ユーザインタフェース部品、523a…テキスト入力ユーザインタフェース部品、50b…QVGA実行環境のプログラム画面、51b…QVGA実行環境の部品提供ウィンドウ、52b…QVGA実行環境のGUI編集ウィンドウ、53b…QVGA実行環境のイベント編集ウィンドウ、54b…QVGA実行環境の実行環境選択ウィンドウ、55b…QVGA実行環境の部品属性表示ウィンドウ、56b…QVGA実行環境のリソース管理ウィンドウ、57b…QVGA実行環境の新規画面ボタン、58b…QVGA実行環境のソース生成ボタン、521b…QVGA実行環境のテキスト表示ユーザインタフェース部品、522b…QVGA実行環境の画像表示ユーザインタフェース部品、523b…QVGA実行環境のテキスト入力ユーザインタフェース部品、50c…QVGA実行環境のプログラム画面、51c…QVGA実行環境の部品提供ウィンドウ、52c…QVGA実行環境のGUI編集ウィンドウ、53c…QVGA実行環境のイベント編集ウィンドウ、54c…QVGA実行環境の実行環境選択ウィンドウ、55c…QVGA実行環境の部品属性表示ウィンドウ、56c…QVGA実行環境のリソース管理ウィンドウ、57c…QVGA実行環境の新規画面ボタン、58c…QVGA実行環境のソース生成ボタン、521c…QVGA実行環境のテキスト表示ユーザインタフェース部品、522c…QVGA実行環境の画像表示ユーザインタフェース部品、523c…QVGA実行環境のテキスト入力ユーザインタフェース部品、45…生成するソースコードの例、46…生成するGUI表示データの例、202a…部品テーブル、202b…実行環境を追加した部品テーブル、202c…部品テーブルのエントリに追加された属性情報の組、203a…環境テーブル、203b…実行環境を追加した環境テーブル、203c…環境テーブルの新規エントリ、3101…「環境1」(縦長画面)のGUI編集ウィンドウ、3102…「環境2」(横長画面)のGUI編集ウィンドウ、3103…「環境3」(小画面)のGUI編集ウィンドウ、3104…「環境1」(縦長画面)を選択中の実行環境選択ウィンドウ、3105…「環境2」(横長画面)を選択中の実行環境選択ウィンドウ、3106…「環境3」(小画面)を選択中の実行環境選択ウィンドウ、3107…「環境1」(縦長画面)の「選択」ボタン部品、3108a…「環境2」(横長画面)の「選択」ボタン部品(レイアウト調整前)、3108b…「環境2」(横長画面)の「選択」ボタン部品(レイアウト調整後)、3109a…「環境3」(小画面)の「選択」ボタン部品(レイアウト調整前)、3109b…「環境3」(小画面)の「選択」ボタン部品(レイアウト調整後)、3110…「CANCEL」ボタン部品、3111a…「環境1」(縦長画面)のイメージ部品(レイアウト調整前)、3111b…「環境1」(縦長画面)のイメージ部品(レイアウト調整後)、3112…「環境2」(横長画面)のイメージ部品、3113a…「環境3」(小画面)のイメージ部品(レイアウト調整前)、3113b…「環境3」(小画面)のイメージ部品(レイアウト調整後)、3301…画面を縦横の両方向で使用できるようにした表示画面を備えた携帯電話機。

Claims (7)

  1. コンピュータに実行させるプログラムのソースコード及びユーザインタフェース部品を表示画面に表示するためのGUI表示データを生成するソースコード生成装置であって、
    前記コンピュータの実行環境にそれぞれ対応し、位置、サイズ、属性などの部品要素情報が異なる前記ユーザインタフェース部品を編集する第1の手段と、編集結果の部品要素情報に基づき指定された実行環境に対応したユーザインタフェース部品のGUI表示データ及び当該GUI表示データを用いてユーザインタフェース部品を表示するためのソースコードを生成して出力する第2の手段を備えることを特徴とするソースコード生成装置。
  2. GUI表示データによりユーザインタフェース部品を編集画面にプレビューする手段をさらに備えることを特徴とする請求項1に記載のソースコード生成装置。
  3. 前記実行環境の切り替え操作を受付け、切り替え指定された実行環境におけるユーザインタフェース部品を編集画面に切り替え表示する手段をさらに備えることを特徴とする請求項1または2に記載のソースコード生成装置。
  4. 前記実行環境に応じて、一部のユーザインタフェース部品をソースコードまたはGUI表示データの出力対象から除外する手段をさらに備えることを特徴とする請求項1〜3のいずれか一項に記載のソースコード生成装置。
  5. ユーザインタフェース部品に対する編集操作を、すべての実行環境に共通に適用される共通操作と、特定の実行環境のみに適用される固有操作に区別する手段をさらに備えることを特徴とする請求項1〜4のいずれか一項に記載のソースコード生成装置。
  6. 新たな実行環境を追加する手段を有し、実行環境を追加した時点でそれ以前の共通操作の実行結果を反映させる手段をさらに備えることを特徴とする請求項5に記載のソースコード生成装置。
  7. 同一の編集操作に対し、当該編集操作が共通操作であるか固有操作であるかの切り分けを、編集操作の都度ユーザが指定する手段を有することを特徴とする請求項5または6に記載のソースコード生成装置。
JP2008036119A 2007-03-29 2008-02-18 ソースコード生成装置 Pending JP2008269575A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2008036119A JP2008269575A (ja) 2007-03-29 2008-02-18 ソースコード生成装置

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2007086648 2007-03-29
JP2008036119A JP2008269575A (ja) 2007-03-29 2008-02-18 ソースコード生成装置

Publications (1)

Publication Number Publication Date
JP2008269575A true JP2008269575A (ja) 2008-11-06

Family

ID=39995750

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2007254920A Pending JP2008269554A (ja) 2007-03-29 2007-09-28 ソースコード生成装置
JP2008036119A Pending JP2008269575A (ja) 2007-03-29 2008-02-18 ソースコード生成装置

Family Applications Before (1)

Application Number Title Priority Date Filing Date
JP2007254920A Pending JP2008269554A (ja) 2007-03-29 2007-09-28 ソースコード生成装置

Country Status (2)

Country Link
JP (2) JP2008269554A (ja)
CN (1) CN101276277A (ja)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011019130A (ja) * 2009-07-09 2011-01-27 Ricoh Co Ltd 画像処理装置、表示制御方法、及び表示制御プログラム
WO2016092626A1 (ja) * 2014-12-09 2016-06-16 株式会社野村総合研究所 開発支援システム
JP6130958B1 (ja) * 2016-07-19 2017-05-17 株式会社Osk アプリケーション作成支援システム
JP2017533503A (ja) * 2014-09-26 2017-11-09 オラクル・インターナショナル・コーポレイション モバイルアプリケーションのための効率的および直観的なデータ・バインディング
JP2020053049A (ja) * 2018-09-24 2020-04-02 セールスフォース ドット コム インコーポレイティッド アプリケーションビルダ
JP2021009663A (ja) * 2019-06-28 2021-01-28 バイドゥ オンライン ネットワーク テクノロジー (ベイジン) カンパニー リミテッド 可視化編集方法、装置、デバイス及び記憶媒体

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102819229B (zh) * 2011-06-07 2014-08-06 台达电子工业股份有限公司 控制系统及其指令设定方法
KR101419255B1 (ko) * 2012-11-29 2014-07-17 (주)투비소프트 통합개발환경을 이용한 ui 구현 방법
US10290133B2 (en) 2014-09-26 2019-05-14 Oracle International Corporation High fidelity interactive screenshots for mobile applications
US9826045B2 (en) 2014-09-26 2017-11-21 Oracle International Corporation Efficient means to test server generated applications on mobile device
WO2016113914A1 (ja) * 2015-01-16 2016-07-21 株式会社野村総合研究所 開発支援システム
CN106228191A (zh) * 2016-07-28 2016-12-14 努比亚技术有限公司 一种控件文本超长检测装置及方法
EP3607431A4 (en) * 2017-04-03 2020-12-30 Innovation First, Inc. MIXED MODE PROGRAMMING

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1083269A (ja) * 1996-09-09 1998-03-31 Nec Corp ユーザインタフェース変換装置
JPH1097415A (ja) * 1996-09-20 1998-04-14 Nec Corp Gui画面レイアウト設計方式
JP2005190303A (ja) * 2003-12-26 2005-07-14 Sony Ericsson Mobilecommunications Japan Inc 画面作成支援装置および端末装置
JP2005341041A (ja) * 2004-05-25 2005-12-08 Canon Inc リモート制御装置、リモート制御端末装置及び被リモート制御装置
JP2006331339A (ja) * 2005-05-30 2006-12-07 Mitsubishi Electric Corp レイアウト装置、レイアウト方法及びプログラム並びにデータ構造

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001318811A (ja) * 2000-05-10 2001-11-16 Sharp Corp グラフィカル・ユーザ・インターフェイス・シミュレーション装置
US6957418B2 (en) * 2001-01-23 2005-10-18 Altia, Inc. System and method of designing, testing, and employing graphical computer code

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1083269A (ja) * 1996-09-09 1998-03-31 Nec Corp ユーザインタフェース変換装置
JPH1097415A (ja) * 1996-09-20 1998-04-14 Nec Corp Gui画面レイアウト設計方式
JP2005190303A (ja) * 2003-12-26 2005-07-14 Sony Ericsson Mobilecommunications Japan Inc 画面作成支援装置および端末装置
JP2005341041A (ja) * 2004-05-25 2005-12-08 Canon Inc リモート制御装置、リモート制御端末装置及び被リモート制御装置
JP2006331339A (ja) * 2005-05-30 2006-12-07 Mitsubishi Electric Corp レイアウト装置、レイアウト方法及びプログラム並びにデータ構造

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011019130A (ja) * 2009-07-09 2011-01-27 Ricoh Co Ltd 画像処理装置、表示制御方法、及び表示制御プログラム
JP2017533503A (ja) * 2014-09-26 2017-11-09 オラクル・インターナショナル・コーポレイション モバイルアプリケーションのための効率的および直観的なデータ・バインディング
WO2016092626A1 (ja) * 2014-12-09 2016-06-16 株式会社野村総合研究所 開発支援システム
JPWO2016092626A1 (ja) * 2014-12-09 2017-05-25 株式会社野村総合研究所 開発支援システム
JP6130958B1 (ja) * 2016-07-19 2017-05-17 株式会社Osk アプリケーション作成支援システム
JP2018013821A (ja) * 2016-07-19 2018-01-25 株式会社Osk アプリケーション作成支援システム
JP2020053049A (ja) * 2018-09-24 2020-04-02 セールスフォース ドット コム インコーポレイティッド アプリケーションビルダ
JP7433822B2 (ja) 2018-09-24 2024-02-20 セールスフォース インコーポレイテッド アプリケーションビルダ
JP2021009663A (ja) * 2019-06-28 2021-01-28 バイドゥ オンライン ネットワーク テクノロジー (ベイジン) カンパニー リミテッド 可視化編集方法、装置、デバイス及び記憶媒体
US11392752B2 (en) 2019-06-28 2022-07-19 Baidu Online Network Technology (Beijing) Co., Ltd. Visualized editing method, device and apparatus, and storage medium

Also Published As

Publication number Publication date
CN101276277A (zh) 2008-10-01
JP2008269554A (ja) 2008-11-06

Similar Documents

Publication Publication Date Title
JP2008269575A (ja) ソースコード生成装置
US20080244424A1 (en) Source code generating device
US7640499B2 (en) Editing objects contained in different pages of a business form via a “position adjustment” operation or a “copy” operation
US20060053390A1 (en) Configurable interface for template completion
US20100077379A1 (en) Image processing apparatus, image processing method, and recording medium
JP2010061311A (ja) 情報処理装置並びにコンピューター・プログラム
JP2008146226A (ja) デザイン編集装置および方法およびデザイン編集プログラム
JP2008203912A (ja) 画面作成装置及び方法並びにプログラム
JP2011070472A (ja) アプリケーション開発支援方法、システム、及びプログラム
JP2020123234A (ja) 情報処理装置、制御方法、およびそのプログラム
JP6594359B2 (ja) 情報処理装置、情報処理方法、及びプログラム
US6335740B1 (en) Data processing apparatus and method for facilitating item selection by displaying guidance images
JP2012008884A (ja) 編集装置、編集装置におけるレイアウト編集方法およびプログラム
JP2008191790A (ja) プラント監視制御システム及びプラント監視制御プログラム
JPH11306002A (ja) Gui環境の編集装置およびgui環境の編集方法
JP2008146225A (ja) 編集装置および編集方法および編集プログラム
JP2007066077A (ja) Gui生成方法、gui生成装置、コンピュータプログラム及び記憶媒体
JP2009129224A (ja) 画像操作装置と画像操作プログラムと記録媒体と画像操作方法
KR101933886B1 (ko) 프로그램 개발 장치 및 객체 편집 방법
JP2001118077A (ja) 文書作成装置および文書作成方法
JP2000331177A (ja) 画像編集方法及び装置
JP2980887B1 (ja) 情報処理装置、情報処理方法およびその方法をコンピュータに実行させるプログラムを記録したコンピュータ読み取り可能な記録媒体
JP6862521B2 (ja) 情報処理装置、情報処理方法、及びプログラム
US20230315268A1 (en) Information processing system, information processing method, and non-transitory computer readable medium
JP2001117918A (ja) 文書編集処理装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100714

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120425

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120507

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20120907