JP5852967B2 - Guiプログラム作成支援装置、guiプログラム作成支援方法、プログラム、及び集積回路 - Google Patents

Guiプログラム作成支援装置、guiプログラム作成支援方法、プログラム、及び集積回路 Download PDF

Info

Publication number
JP5852967B2
JP5852967B2 JP2012553108A JP2012553108A JP5852967B2 JP 5852967 B2 JP5852967 B2 JP 5852967B2 JP 2012553108 A JP2012553108 A JP 2012553108A JP 2012553108 A JP2012553108 A JP 2012553108A JP 5852967 B2 JP5852967 B2 JP 5852967B2
Authority
JP
Japan
Prior art keywords
screen layout
gui
gui component
replacement
unit
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.)
Expired - Fee Related
Application number
JP2012553108A
Other languages
English (en)
Other versions
JPWO2012176365A1 (ja
Inventor
雄基 篠本
雄基 篠本
英明 矢島
英明 矢島
秦 秀彦
秀彦 秦
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.)
Panasonic Intellectual Property Corp of America
Original Assignee
Panasonic Intellectual Property Corp of America
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 Panasonic Intellectual Property Corp of America filed Critical Panasonic Intellectual Property Corp of America
Priority to JP2012553108A priority Critical patent/JP5852967B2/ja
Publication of JPWO2012176365A1 publication Critical patent/JPWO2012176365A1/ja
Application granted granted Critical
Publication of JP5852967B2 publication Critical patent/JP5852967B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/34Graphical or visual programming
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/38Creation or generation of source code for implementing user interfaces

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Stored Programmes (AREA)
  • User Interface Of Digital Computer (AREA)

Description

本発明は、GUI(Graphical User Interface・グラフィカルユーザインタフェース)プログラムの作成支援技術に関し、特に、GUIプログラムの生産性向上を図る技術に関する。
近年、パーソナルコンピュータ、携帯電話、及びデジタルTV等のデジタル家電製品(以降、機器と略称する。)は、GUIを備えることが一般的になっている。
GUIを機器で実行させるためのGUIプログラムの作成においては、開発効率の向上を図るために、GUIプログラムの作成を支援するGUIビルダが用いられる。
GUIビルダにおいて、デザイナは、ボタンや画像といったGUIを構成する部品(GUI部品)を作業画面に配置し、配置したGUI部品に大きさや色等の属性を設定する。GUIビルダは、作業画面に配置されたGUI部品と、各GUI部品に設定された属性とにしたがって画面レイアウトを作成する。
また、GUIビルダにおいて、デザイナは、画面レイアウトを構成する各GUI部品に処理プログラムを関連付ける作業を行う。ここで、処理プログラムは、GUI部品に対してユーザが操作を行った際に実行される処理を記載したプログラムであり、プログラマにより予め記述される。
デザイナにより処理プログラムを関連付ける作業が終了されると、GUIビルダは、画面レイアウトと、その画面レイアウトを構成する各GUI部品に関連付けられた処理プログラムとに従ってGUIプログラムのソースコードを自動生成する。このようなGUIビルダとして例えば、特許文献1が知られている。
しかしながら、特許文献1に記載のGUIビルダでは、処理プログラムが関連付けられた画面レイアウトを別の画面レイアウトに差し替えた場合、差し替え後の画面レイアウトを構成する各GUI部品に対して処理プログラムの関連付けの作業の簡略化を図ることが全く考慮されていなかった。
特許第4197095号公報
本発明の目的は、画面レイアウトを差し替えて新たなGUIプログラムを開発する際の開発効率を向上させることができる技術を提供することである。
本発明の一態様によるGUIプログラム作成支援装置は、ユーザの操作入力に基づき、複数のGUI(グラフィカルユーザインタフェース)部品を含むGUIの画面レイアウトを生成すると共に、生成済の画面レイアウトを別の画面レイアウトに差し替える画面レイアウト作成部と、ユーザの操作入力に基づき、前記GUI部品が操作された際に実行される処理に係る処理プログラムを作成する処理プログラム作成部と、ユーザの操作入力に基づき、前記GUI部品と前記処理プログラムとの関連付けを行い、当該関連付けを示す接続情報を生成する接続設定部と、前記画面レイアウトと前記処理プログラムと前記接続情報とに基づき、GUIプログラムのソースコードを生成するソースコード生成部と、前記画面レイアウト作成部により、生成済の画面レイアウトが別の画面レイアウトに差し替えられた場合、差替後画面レイアウトのGUI部品に類似するGUI部品を、差替前画面レイアウトから推測し、類似するGUI部品同士を対応付ける画面レイアウト比較部と、前記差替前画面レイアウトのGUI部品に関連付けられた前記処理プログラムを、前記画面レイアウト比較部により対応付けられたGUI部品に関連付ける接続復帰処理を行う接続情報復帰部とを備えている。
本発明の実施の形態におけるGUIプログラム作成支援装置のブロック図である。 画面レイアウト作成部が画面レイアウトを生成する際にディスプレイに表示する入力画面の一例を示す図である。 画面レイアウト定義情報の一例を示した図である。 ユーザがGUI部品と処理プログラムとを関連付ける作業を行う際に表示される入力画面の一例を示した図である。 接続情報の一例を示した図である。 処理プログラムの一例を示した図である。 ソースコードの一例を示した図である。 (A)は差替前画面レイアウトの一例を示す図である。(B)は差替後画面レイアウトの一例を示す図である。 本発明の実施の形態に係るGUIプログラム作成支援装置が行う、GUIプログラムの作成処理を示すフローチャートである。 画面レイアウトを差し替える際の処理を示すフローチャートである。 図10におけるS2300のサブルーチンを示すフローチャートである。 比較例のGUIビルダの構成を示すブロック図である。 本発明の実施の形態によるGUIプログラム作成支援装置のハードウェア構成を示すブロック図である。
(本実施の形態によるGUIプログラム作成支援装置を得るに至った経緯)
図12は、比較例のGUIビルダの構成を示すブロック図である。図12において、比較例のGUIビルダ2000は、画面レイアウト作成部2001、接続設定部2002、処理プログラム作成部2003、ソースコード生成部2004、及び記憶部2005を備えている。
画面レイアウト作成部2001は、ユーザからの操作入力に基づき、GUIの画面レイアウトを生成する。接続設定部2002は、ユーザからの操作入力に基づき、画面レイアウトを構成するGUI部品に処理プログラムを関連付け、GUI部品と処理プログラムとの接続関係を示す接続情報を生成する。処理プログラム作成部2003は、プログラマの操作入力にしたがって、処理プログラムを作成する。ソースコード生成部2004は、画面レイアウト、処理プログラム、接続情報に基づき、GUIプログラムのソースコードを生成する。記憶部2005は画面レイアウト、処理プログラム、接続情報、GUIプログラムのソースコードを保存する。
しかしながら、図12に示すGUIビルダでは、処理プログラムが関連付けられた画面レイアウトを別の画面レイアウトに差し替えた場合、ユーザは、差替後の画面レイアウトを構成する各GUI部品に対し、処理プログラムを関連付ける作業を1つずつ行わなければならず、非常に手間がかかるという課題があった。
特に、差替前の画面レイアウトに多少の修正を加えて差替後の画面レイアウトが作成されることもあり、この場合、ユーザは、差替前の画面レイアウトにおいて行った作業とほとんど同じ作業を再度行わなければならず、多大な負担となっていた。
そこで、本実施の形態の目的は、画面レイアウトを差し替えて新たなGUIプログラムを開発する際の開発効率を向上させることができる技術を提供することである。
(本発明の実施の形態によるGUIプログラム作成支援装置の説明)
以下、本発明の実施の形態について、図面を参照しながら説明する。図1は、本発明の実施の形態におけるGUIプログラム作成支援装置100のブロック図である。GUIプログラム作成支援装置100は、中央演算装置と、ROM、RAM及びハードディスク等の記憶装置と、ディスプレイ等の出力装置と、キーボード等の入力装置とを備えるコンピュータにより構成されている。
GUIプログラム作成支援装置100は、画面レイアウト作成部101、接続設定部102、処理プログラム作成部103、ソースコード生成部104、画面レイアウト比較部105、接続情報復帰部106、及び記憶部200を備えている。ここで、画面レイアウト作成部101〜接続情報復帰部106は、例えばCPUにより実行されるプログラムモジュールにより構成される。
画面レイアウト作成部101は、ユーザからの操作入力に基づき、複数のGUI部品を含むGUIの画面レイアウトを生成する。図2は、画面レイアウト作成部101が画面レイアウトを生成する際にディスプレイに表示する入力画面301の一例を示す図である。画面レイアウト作成部101はこの入力画面301を通じてユーザからの操作入力を受け付ける。
入力画面301は、作業エリアL31、プログラム配置エリアL32、及びGUI部品選択エリアL33を備えている。
作業エリアL31は、入力画面301の中央に設けられ、ユーザの操作入力に基づき、GUI部品302が配置される。作業エリアL31は画面レイアウトに対応しており、作業エリアL31の各位置が画面レイアウトの各位置となる。ここで、作業エリアL31は、水平方向(横方向)にX軸、垂直方向(縦方向)にY軸が規定され、X座標とY座標とで各位置が規定される。したがって、画面レイアウトの各位置も作業エリアL31におけるX座標とY座標とで表される。
プログラム配置エリアL32は入力画面301の下部に設けられ、GUI部品に対して関連付けることができる処理プログラムを示すアイコン304を表示する。図2の例では、player_programと記述された1つのアイコン304が表示されている。なお、GUI部品に関連付けることができる処理プログラムが複数あれば、各処理プログラムのアイコン304がプログラム配置エリアL32に表示される。
GUI部品選択エリアL33は、入力画面の右側に設けられ、ユーザが選択可能な予め定められた複数のGUI部品を一覧表示する。図2の例では、GUI部品として、Box、Button、Label、及びListが含まれている。
ユーザは、GUI部品選択エリアL33に表示されたGUI部品の中から好みのGUI部品を、例えばマウスをクリックして選択する。そして、選択したGUI部品を作業エリアL31にドラッグアンドドロップする。これにより、作成中の画面レイアウトにGUI部品が追加される。
また、画面レイアウト作成部101は、GUI部品の属性を設定する機能を備える。GUI部品の属性としては、例えば名前、位置、大きさ、及び文字列が含まれる。名前の属性はGUI部品に付与される名前を定義する。位置の属性はGUI部品が配置される作業エリアL31における位置を定義する。文字列の属性はGUI部品に表示される文字列を定義する。
図2において、作業エリアL31に表示されたGUI部品302が例えばマウスを用いてユーザによりダブルクリックされたとする。すると、画面レイアウト作成部101は、GUI部品302に隣接する位置にGUI部品302の属性を設定するための属性設定パネル303を表示する。
ユーザは、属性設定パネル303に設けられた各属性の入力欄に、属性値を入力することで、GUI部品302の属性を設定する。
図2の例では、属性設定パネル303において、“Name”の欄には名前の属性値が入力され、“X”、“Y”の欄には位置の属性値が入力され、“W”、“H”の欄には大きさの属性値が入力され、“Text”の欄には文字列の属性値が入力される。
“Name”の欄には“Button_01”が記入されている。そのため、GUI部品302の名前の属性値は“Button_01”となる。
また、“X”、“Y”の欄にそれぞれ“100”、“100”が記入されている。そのため、GUI部品302の位置の属性値はX座標が100、Y座標が100となる。つまり、GUI部品302は、画面レイアウトにおいて(X,Y)=(100,100)の位置に配置される。
なお、ユーザは、作業エリアL31内において、マウスを操作してGUI部品302を移動させると、作業エリアL31内におけるGUI部品302の位置が“X”、“Y”の欄に反映される。つまり、ユーザは、“X”、“Y”の欄に直接属性値を入力する、或いは、GUI部品302をマウスで移動させることでGUI部品302の位置の属性値を設定することができる。
“W”、“H”の欄にはそれぞれ“50”、“120”が記入されている。よって、GUI部品302の大きさの属性値は、水平方向が“50”、垂直方向が“120”となる。この場合、GUI部品302は、50×120の矩形サイズを持つことになる。
“Text”の欄には“push”が記入されている。そのため、GUI部品302の文字列の属性は、“push”となり、GUI部品302に“push”の文字列が重畳されている。
画面レイアウト作成部101は、作業エリアL31にGUI部品を配置し、配置したGUI部品に対して属性を設定するユーザによる作業が終了すると、各GUI部品の属性が定義された画面レイアウト定義情報201を生成し、記憶部200に格納する。このように、画面レイアウト作成部101は、画面レイアウトが定義された画面レイアウト定義情報201を生成することで画面レイアウトを生成する。
画面レイアウト定義情報201は、例えばXML(eXtensible Markup Language)により記述される。図3は、画面レイアウト定義情報201の一例を示した図である。図3の例では、GUI部品302を含む画面レイアウトの画面レイアウト定義情報201が示されている。
GUI部品302は、ボタンの部品クラスに属している。そのため、図3の例では<class>のタグに“Button”と記述されている。ここで、部品クラスはGUI部品の種類を定義する。その他、部品クラスとして、ラベル、リスト、ボックスなどが存在する。よって、GUI部品の種類として、ボタンの他、ラベル、リスト、ボックスなどが存在する。
また、GUI部品302は、位置の属性値が(X,Y)=(100,100)である。よって、<x>のタグに“100”と記述され、<y>のタグに100と記述されている。
また、GUI部品302は、大きさの属性値が(W,H)=(50,100)である。よって、<width>のタグに“50”と記述され、<height>のタグに“100”と記述されている。
また、GUI部品302は、文字列の属性値が“push”であるため、<text>のタグに“push”と記述されている。
更に、画面レイアウト作成部101は、上記の作業により作成した画面レイアウトを、ユーザの操作入力に基づき、保存済みの画面レイアウトと差し替える機能を持つ。
図1に戻り、接続設定部102は、ユーザの操作入力に基づき、GUI部品と処理プログラムとの関連付けを行い、当該関連付けを示す接続情報202を生成し、記憶部200に格納する。具体的には、接続設定部102は、ユーザが図2に示す作業エリアL31に配置されたGUI部品302をキーボードの特定のキーを押下した状態でマウスで選択し、図2に示すプログラム配置エリアL32に配置されたアイコン304に対してドラッグアンドドロップすると、図4に示す入力画面のディスプレイへの表示依頼を画面レイアウト作成部101に行う。
図4は、ユーザがGUI部品と処理プログラムとを関連付ける作業を行う際に表示される入力画面の一例を示した図である。
図4の入力画面では、GUI部品302とアイコン304とが線分502で接続されている。そして、この線分502の中央から線分503が分岐し、線分503の先にメソッドリスト501が表示されている。
メソッドリスト501は、アイコン304で示される処理プログラム(player_program)が持つ複数のメソッドをリスト表示する。図4の例では、“play”、“stop”、“fforward”、“rewind”のメソッドが表示されている。ユーザはこれらのメソッドから1又は複数のメソッドを選択し、GUI部品302に処理プログラムを関連付ける。図4の例では、“play”のメソッドが黒丸で表示され、ユーザにより選択されている。この場合、接続設定部102は、player_programの“play”のメソッドをGUI部品302に関連付ける。このように、本実施の形態では、GUI部品に対し、処理プログラムを関連付けると共にその処理プログラムが含むいずれかのメソッドを関連付ける。
図5は、接続情報202の一例を示した図である。図5に示すように、接続情報202は、例えばXMLにより記述されている。但し、これは一例であり、コンピュータが解釈可能な言語であればどのような言語を用いて記述してもよい。
図5では、図2に示すGUI部品302に対する接続情報202が示されている。図5において、<ui>のタグにはGUI部品302の名前である“Button_01”が記述されている。<program>のタグには処理プログラムの名前である“player_program”が記述されている。これにより、GUI部品302に“player_program”の処理プログラムが関連付けられる。
また、<method>のタグには、処理プログラムのうち関連付けられたメソッド名である“play”が記述されている。これにより、GUI部品302に、“play”メソッドが関連付けられる。
本実施の形態では、接続情報202は、例えばGUI部品毎に生成され、記憶部200に格納される。そして、接続情報202は、GUI部品の名前の属性値が記述されている。したがって、GUI部品302の名前の属性値をキーとして、GUI部品302の接続情報202を特定することができ、GUI部品に関連付けられた処理プログラムを特定することができる。
処理プログラム作成部103は、ユーザの操作入力に基づき、GUI部品が操作された際に実行される処理に係る処理プログラム203を作成する。具体的には、処理プログラム作成部103は、例えばテキストエディタにより構成され、処理プログラム203の作成および編集を行う。作成された処理プログラム203は記憶部200に保存される。
処理プログラム203は、例えばJavaScript(登録商標)等により記述され、少なくとも1個以上のメソッドを備えている。図6は、処理プログラム203の一例を示した図である。
図6の例では、図4に示す“player_program”の処理プログラム203が示されている。図6の1行目において、“player_program”と記述され、“player_program”が宣言されている。
図4に示すように、“player_program”は、“play”、“stop”、“fforward”、“rewind”のメソッドを備えている。したがって、図6の3〜6行目の各行においてこれらのメソッドが定義されている。図6の例では、各メソッドの詳細なプログラムコードは省略されている。
なお、処理プログラム203を作成するユーザは主にプログラマを想定しており、画面レイアウトを作成するデザイナとは別のユーザであることを想定している。
なお、メソッドを実行する機器は、GUIを表示する機器と異なっていてもよい。すなわち、GUIを表示する機器が、例えば、ネットワークを介してサーバと接続されている場合、ユーザによりGUI部品が操作されると、機器はGUI部品の操作情報をサーバに通知する。そして、サーバは、その操作情報からGUI部品に関連付けられたメソッドを実行し、処理結果を機器に返すようにしてもよい。
この場合、GUIが実装された機器は処理プログラム203を実装していなくてもよくなる。このように、処理プログラム203はGUIが実装された機器と同一の機器に存在させてもよいし、ネットワークで接続された異なる機器に存在させていてもよい。
ソースコード生成部104は、画面レイアウト定義情報201、接続情報202、及び処理プログラム203に基づいて、GUIプログラムのソースコード204を作成する。作成されたソースコード204は、記憶部200に保存される。ソースコード204は、例えばJava(登録商標)Scriptにより記述される。
なお、画面レイアウト作成部101は、処理プログラムを実装する機器と異なる機器に画面レイアウトが存在するよう画面レイアウトの設定を変更することができる。この場合、ソースコード生成部104は、画面レイアウト上のGUI部品がネットワークを経由して処理プログラム203を実装する機器にアクセスするソースコード204を生成する。
図7は、ソースコード204の一例を示した図である。図7の例では、GUI部品302に対するソースコード204が示されている。
1行目にボタンの部品クラスに属するオブジェクトである“button1”が宣言されている。2行目に“button1.setProgram(player_program)”と記述され、“button1”のオブジェクトに“player_program”が関連付けられている。
3行目に、“button1.setProgramMethod(“play”)”と記述され、button1のオブジェクトに“play”のメソッドが関連付けられている。
よって、ソースコード204を実装する機器は、GUI部品302が操作されると、player_programの“play”のメソッドを実行する。
このように、ソースコード生成部104は、画面レイアウト定義情報201を解析して、画面レイアウト上の各GUI部品の種類や表示位置を示す属性を抽出し、GUI部品毎のソースコード204を生成して、生成したソースコード204に抽出した属性を登録する。なお、図7の例では、GUI部品の属性の記述は省略されている。また、ソースコード生成部104は、接続情報202を解析し、各GUI部品に関連付けられている処理プログラム203及びのメソッドを抽出する。そして、ソースコード生成部104は、GUI部品にイベント(例えば、ユーザが部品のGUI部品を押す等のイベント)が発生したとき、GUI部品に関連付けられた処理プログラム203及びメソッドを呼び出すためのコードをソースコード204に記述する。これにより、GUI部品にイベントが発生した場合、ソースコード204が解釈されて、関連付けられた処理プログラムのメソッドが実行される。
本実施の形態では、ソースコード204は、GUI部品毎に生成され、画面レイアウト単位で1ファイルにまとめられる。
図1に戻り、記憶部200は、例えばHDD(ハードディスクドライブ)により構成され、画面レイアウト定義情報201、接続情報202、処理プログラム203、及びソースコード204を保存する。
画面レイアウト比較部105は、画面レイアウト作成部101により、生成済の画面レイアウトが別の画面レイアウトに差し替えられた場合、差替後画面レイアウトのGUI部品に類似するGUI部品を、差替前画面レイアウトから推測し、類似するGUI部品同士を対応付ける。この推測の詳細については後述する。
接続情報復帰部106は、差替前画面レイアウトのGUI部品に関連付けられた処理プログラムを、画面レイアウト比較部105により対応付けられたGUI部品に関連付ける接続復帰処理を行う。
従来のGUIビルダにおいては、生成済の画面レイアウトを差し替えて別の画面レイアウトを作成する場合、ユーザは差替後画面レイアウトの各GUI部品に対して処理プログラムを関連付ける作業を一個ずつ手作業で行わなければならなかった。
差替後画面レイアウトは、例えば、差替前画面レイアウトの一部のGUI部品を削除したり、差替前画面レイアウトに新たなGUI部品を追加したり、差替前画面レイアウトのGUI部品の位置を変更したりというようにして作成されることが多い。よって、差替後画面レイアウトは差替前画面レイアウトに対して多くのGUI部品が共通している可能性が高い。したがって、従来のGUIビルダのように差替後画面レイアウトの各GUI部品のそれぞれに対して、処理プログラムを関連付ける作業をユーザに課してしまうと、ユーザへの負担が重くなってしまう。
そこで、本実施の形態では、差替後画面レイアウトの各GUI部品につき、類似するGUI部品を差替前画面レイアウトの中から推測し、類似するGUI部品があると推測された差替後画面レイアウトのGUI部品については、類似するGUI部品に関連付けられた処理プログラムを自動的に関連付ける。
そのため、ユーザは差替後画面レイアウトにつき、処理プログラムを関連付ける作業を行う手間が軽減され、GUIの画面レイアウトの開発効率を大幅に増大させることができる。
具体的には、接続情報復帰部106は、接続復帰処理を行った差替後画面レイアウトのGUI部品の名前の属性値を、対応する差替前画面レイアウトのGUI部品の名前の属性値で更新する。例えば、差替後画面レイアウトのGUI部品につき、名前の属性値が“Button_01”であり、差替前画面レイアウトのGUI部品につき、名前の属性値が“Button_A”であったとすると、差替後画面レイアウトのGUI部品の名前の属性値が“Button_A”とされる。
これにより、差替前画面レイアウトのGUI部品に関連付けられていた処理プログラム及びメソッドが差替後画面レイアウトのGUI部品に関連付けられる。
つまり、差替後画面レイアウトのGUI部品の接続情報202及びソースコード204は、差替前画面レイアウトのGUI部品の名前の属性値である“Button_A”をキーとして差替前画面レイアウトの画面レイアウト定義情報201と関連付けられている。よって、差替後画面レイアウトのGUI部品の名前の属性値を差替前画面レイアウトのGUI部品の名前の属性値で更新すると、差替後画面レイアウトのGUI部品の接続情報202及びソースコード204を新たに生成することなく、差替後画面レイアウトのGUI部品に差替前画面レイアウトのGUI部品の処理プログラム及びメソッドを関連付けることができる。
また、接続情報復帰部106は、画面レイアウト比較部105により対応付けられたGUI部品をユーザに報知し、推測結果が正しいことを示す操作入力がユーザにより行われたGUI部品について、接続復帰処理を行う。
例えば、差替後画面レイアウトのGUI部品に対して、ユーザが想定するGUI部品とは別のGUI部品が類似すると推測されることもある。この場合、接続復帰処理が自動的に実行されてしまうと、ユーザは関連付けを解除し、差替後画面レイアウトのGUI部品に再度、希望する処理プログラム及びメソッドを関連付ける作業を行う必要がある。これでは、却って、ユーザの作業効率を低下させてしまう。
そこで、推測結果が正しいか否かをユーザに問い合わせる構成を採用する。これにより、推測結果が正しいか否かをユーザに事前に判断させることができ、差替後画面レイアウトのGUI部品に対してユーザが意図しない処理プログラムが関連付けられることを防止し、作業効率の向上を図ることができる。
問い合わせの形態としては、差替後画面レイアウトのGUI部品の名前の属性値と差替前画面レイアウトのGUI部品の名前の属性値とを対応付けて示し、かつ、“正しい”又は“正しくない”の選択項目を含むダイアログボックスをディスプレイに表示すればよい。そして、このダイアログボックスをGUI部品の数だけ繰り返し表示するようにすればよい。
或いは、全GUI部品の対応付けをリスト表示し、かつ、各対応付けにつき、“正しい”又は“正しくない”の選択項目を含む1枚のダイアログボックスをディスプレイに表示してもよい。或いは、差替前画面レイアウトと差替後画面レイアウトとを並べて表示し、GUI部品の対応付けをGUI部品間を結ぶ線分で表現し、かつ正しくない対応付けの線分をユーザ操作により削除するようにしてもよい。
以上がGUIプログラム作成支援装置100の構成についての説明である。
(フローチャート)
以下、本実施の形態におけるGUIプログラム作成支援装置100が行う処理を説明する。図9は、本発明の実施の形態に係るGUIプログラム作成支援装置100が行う、GUIプログラムの作成処理を示すフローチャートである。
まず、処理プログラム作成部103は、ユーザからの操作入力に基づき、図6に示すような、GUI部品に対する処理プログラム203を作成する(S1001)。作成された処理プログラム203は記憶部200に保存される。処理プログラム203が保存されると、処理プログラム203を示すアイコン304が、図2に示すプログラム配置エリアL32に表示される。
次に、画面レイアウト作成部101は、ユーザからの操作入力に基づき、GUI部品を配置し、画面レイアウトを作成する(S1002)。この場合、各GUI部品には、一意に名前の属性値が設定される。この名前の属性値は、画面レイアウト作成部101が自動的に付加してもよいし、ユーザが指定してもよい。画面レイアウト作成部101が自動的に付加する態様としては、例えば、GUI部品がボタンの部品クラスに属し、1個目のボタンのGUI部品であれば“Button_01”、2個目のボタンのGUI部品であれば“Button_02”、というように、クラスやラベルを示す文字列と作成順序を示す数値との組からなる名前の属性値を付与すればよい。
そして、画面レイアウト作成部101は、ユーザによる画面レイアウトの作成作業が終了すると、画面レイアウトを定義する画面レイアウト定義情報201を生成し、記憶部200に保存する。これにより、画面レイアウトが記憶部200に保存される。この場合、画面レイアウト作成部101は、ユーザに画面レイアウト定義情報201のファイル名を入力させ、このファイル名を持つ画面レイアウト定義情報201を記憶部200に保存させればよい。
これにより、ユーザはファイル名を指定することで、指定したファイル名を持つ画面レイアウト定義情報201で定義された作成済みの画面レイアウトをディスプレイに表示することができる。
そして、画面レイアウト作成部101は、ユーザにより作成済みの画面レイアウトが編集された場合、編集作業が終了したとき、編集後の画面レイアウトの画面レイアウト定義情報201を生成し、元の画面レイアウト定義情報201に上書き保存させればよい。
図8(A)は画面レイアウト作成部101により作成された画面レイアウト900の一例を示す図である。以後、図8(A)の画面レイアウト900を差替前画面レイアウトとして説明する。
次に、接続設定部102は、ユーザの操作入力に基づき、画面レイアウト作成部101により作成された画面レイアウト900を構成するGUI部品に対し、処理プログラム203を関連付ける(S1003)。
図8(A)の例では、GUI部品901はボタンクラスのGUI部品であり、ユーザにより処理プログラム203の“play”メソッドが関連付けられている。したがって、接続設定部102は、GUI部品901に処理プログラム203の“play”メソッドを関連付けた接続情報202を生成する。
接続設定部102は、他のGUI部品902〜904についても、同様に処理プログラム203との関連付けを行い、接続情報202を生成する。生成された接続情報202は記憶部200に保存される。
次に、ソースコード生成部104は、各GUI部品に関連付けられた処理プログラム203と、画面レイアウト910を定義する画面レイアウト定義情報201と、接続情報202との記述内容に基づき、図7に示すようなGUIプログラムのソースコード204を生成する(S1004)。生成されたソースコード204は記憶部200に保存される。
なお、処理プログラム203は、GUIプログラムを起動する時点で機器により読み込まれて利用可能となる。そのため、ソースコード204では明示的な初期化処理は定義されていない。しかしながら、ソースコード204において、初期化処理を明示的に定義した場合は、処理プログラム203には処理プログラムの定義のみを記述し、ソースコード204中で処理プログラム203の初期化処理を行うようにしてもよい。
以上が、GUIプログラムの作成処理である。
次に、画面レイアウトを差し替える際の処理について説明する。図10は、画面レイアウトを差し替える際の処理を示すフローチャートである。
まず、画面レイアウト作成部101は、S1002と同様の方法で画面レイアウト900とは異なる画面レイアウト910を作成する(S2100)。そして、画面レイアウト910を定義する画面レイアウト定義情報201を作成し、記憶部200に保存する。ここで、一旦、画面レイアウト作成部101は、画面レイアウト910の作成処理を終了する。図8(B)は画面レイアウト910の一例を示す図である。以後、画面レイアウト910を差替後画面レイアウトとして説明する。
次に、画面レイアウト作成部101は、ユーザの操作入力に基づき、画面レイアウト900を画面レイアウト910に差し替える(S2200)。
具体的には、画面レイアウト作成部101は、画面レイアウト910がディスプレイに表示された状態において、ユーザから画面レイアウトの差し替えの指示を受け付ける。すると、画面レイアウト作成部101は、記憶部200に保存されている画面レイアウト定義情報201のファイル名をリスト表示させる。そして、ユーザに1つの画面レイアウト定義情報201が選択されると、画面レイアウト作成部101は、選択された画面レイアウト定義情報201によって定義された画面レイアウト900を差替前画面レイアウトとしてディスプレイに表示する。
そして、画面レイアウト作成部101は、ユーザに画面レイアウト900を画面レイアウト910で差し替えて良いか否かを問い合わせるダイアログボックスをディスプレイに表示する。そして、ユーザにより差し替えて良いことを示す操作入力が行われると、画面レイアウト作成部101は、画面レイアウト900を画面レイアウト910の差し替え対象の画面レイアウトとして認識する。一方、ユーザにより差し替えては良くないことを示す操作入力が行われると、画面レイアウト作成部101は、再度、画面レイアウト定義情報201のファイル名をリスト表示し、別の画面レイアウトの選択をユーザに促せばよい。
そして、画面レイアウト作成部101は、画面レイアウト910の差し替え対象となる画面レイアウト900を認識すると、再度、画面レイアウト910をディスプレイに表示する。
次に、画面レイアウト比較部105は、画面レイアウト900と画面レイアウト910との比較を行い、画面レイアウト910を構成するGUI部品に対して類似するGUI部品を画面レイアウト900の中から推測する(S2300)。ここで、画面レイアウト比較部105は、類似するGUI部品同士を対応付け、推測データに記述し、記憶部200に格納する。
次に、接続情報復帰部106は、画面レイアウト比較部105により生成された推測データから、画面レイアウト910のGUI部品に対し、類似すると推測されたGUI部品が画面レイアウト900に存在するか否かを判定する(S2400)。そして、接続情報復帰部106は、類似するGUI部品が存在すると判定した場合(S2400でYES)、処理をS2500に進め、類似するGUI部品が存在しないと判定した場合(S2400でNO)処理を終了する。
次に、接続情報復帰部106は、類似するGUI部品が存在すると推測された画面レイアウト910のGUI部品の名前の属性値を類似するGUI部品の名前の属性値で更新する(S2500)。これにより、画面レイアウト900のGUI部品の処理プログラム及びメソッドが、対応する画面レイアウト910のGUI部品に関連付けられる。
例えば、GUI部品901とGUI部品911とが類似すると推測され、GUI部品911の名前の属性値が“Button_01”、GUI部品901の名前の属性値が“Button_A”であったとする。この場合、接続情報復帰部106は、画面レイアウト910のGUI部品911の名前の属性値を“Button_01”から“Button_A”に更新する。
なお、接続情報復帰部106は、GUI部品911以外の画面レイアウト910を構成するGUI部品912〜914についても、類似するGUI部品が画面レイアウト900に存在すれば、GUI部品911と同様にして、名前の属性値を対応するGUI部品の名前の属性値で更新する。
また、S2500において、接続情報復帰部106は、GUI部品の名前の属性値を更新した結果、他のGUI部品と名前の属性値が重複した場合は、重複したGUI部品の名前を適宜変更すればよい。
例えば、GUI部品911の名前の属性値を“Button_A”に更新したが、画面レイアウト910において、GUI部品912の名前の属性値が“Button_A”であったとする。
この場合、接続情報復帰部106は、GUI部品911の名前の属性値を“Button_A”とは別の属性値(例えば、“Button_A’”)に変更してもよいし、GUI部品912の名前の属性値を“Button_A”から“Button_A’”に変更してもよい。
なお、GUI部品911の名前の属性値を“Button_A’”とする場合、画面レイアウト900のGUI部品901の名前の属性値を“Button_A”から“Button_A’”に変更し、GUI部品901の接続情報202及びソースコード204のキーを“Button_A”から“Button_A’”に変更する。こうすることで、GUI部品901と処理プログラム203との関連づけが切れることを防止することができる。
なお、S2500において、接続情報復帰部106は、名前の属性値が更新されるGUI部品の候補をユーザに提示し、実際に名前の属性値を更新するか否かをユーザに問い合わせてもよい。
また、S2400において類似するGUI部品が存在しなかった場合(S2400でNO)、接続情報復帰部106は、画面レイアウト900と画面レイアウト910とを表示し、画面レイアウト910のGUI部品に類似する画面レイアウト900のGUI部品をユーザに指定させるようにしてもよい。この場合、接続情報復帰部106は、画面レイアウト910のGUI部品の名前の属性値をユーザが指定した画面レイアウト900のGUI部品の名前の属性値で更新すればよい。こうすることで、画面レイアウト910のGUI部品に対してユーザが指定したGUI部品の処理プログラム及びメソッドが関連付けられる。
以上が、画面レイアウトを差し替える際の処理である。
続いて、画面レイアウト900と画面レイアウト910とを比較する処理の詳細について説明する。図11は、図10におけるS2300のサブルーチンを示すフローチャートである。
なお、以下の説明では、GUI部品の名前の属性値は画面レイアウト作成部101により自動生成されており、重複していないものとする。
まず、画面レイアウト比較部105は、画面レイアウト900において、接続情報202が存在し、処理プログラム及びメソッドが関連付けられているGUI部品を抽出する(S2301)。以降、抽出されたGUI部品について、画面レイアウト910におけるGUI部品との比較が行われる。
次に、画面レイアウト比較部105は、S2301にて抽出されたGUI部品のうち比較が完了していないものが存在するかを判定する(S2302)。比較が完了していないGUI部品が存在する場合(S2302でYES)、処理をS2303に進める。
一方、S2301にて抽出されたGUI部品のうち、全てのGUI部品の比較が完了している場合(S2302でNO)、処理を終了する。
次に、画面レイアウト比較部105は、画面レイアウト910において、S2302で比較が未完了のGUI部品と、同じ名前の属性値を持つGUI部品が存在するか否かを判定する(S2303)。そして、画面レイアウト比較部105は、同じ名前の属性値を持つGUI部品が存在すると判定した場合(S2303でYES)、両GUI部品が類似していると推測し、両GUI部品同士を対応付けて推測データに記述する(S2308)。
一方、画面レイアウト比較部105は、同じ名前の属性値を持つGUI部品が存在しないと判定した場合(S2303でNO)、処理をS2304に進める。
例えば、画面レイアウトの作成過程においては、作成済みの画面レイアウトに対してGUI部品を追加する又は一部のGUI部品を削除するなどして、新たな画面レイアウトが作成されるケースが多い。この場合、新たな画面レイアウトにおいて元から存在していたGUI部品は名前の属性値がそのまま採用されるケースも多い。S2303の処理はこのようなケースにおいて有効である。
次に、画面レイアウト比較部105は、画面レイアウト910において、S2302で比較が未完了のGUI部品と、同じ種類のGUI部品が存在し、かつ、両画面レイアウトにおいて、当該種類のGUI部品が1個だけ存在するか否かを判定する(S2304)。
そして、画面レイアウト比較部105は、S2302で比較が未完了のGUI部品と、同じ種類のGUI部品が存在し、かつ、両画面レイアウトにおいて当該種類のGUI部品が1つだけ存在すると判定した場合(S2304でYES)、両GUI部品が類似していると推測し、両GUI部品同士を対応付け、推測データに記述する(S2308)。
ここで、GUI部品の種類としては、例えば、ボタン、リスト、画像等が存在し、GUI部品が属する部品クラスによって定義される。
図8(A)、(B)の例では、画面レイアウト900のGUI部品904の種類はリストである。また、画面レイアウト910のGUI部品914の種類はリストである。そして、両画面レイアウトにおいて、リストのGUI部品は1つしか存在していない。よって、GUI部品904と、GUI部品914とが類似すると推測される。
一方、両画面レイアウトにおいて、同じ種類のGUI部品が存在しない、又は同じ種類のGUI部品が存在していてもその個数が2個以上であった場合(S2304でNO)、処理がS2305に進められる。
例えば、動画コンテンツのGUIにおいては、動画コンテンツのファイル名又はサムネイル画像をリスト表示する1個のリストのGUI部品と、リスト表示された動画コンテンツを選択し、再生するための複数のボタンのGUI部品とによって構成されるケースが多い。
したがって、S2304の処理は、このような1個のリストのGUI部品を含む画面レイアウトにおいて有効である。なお、ここでは、同じ種類のGUI部品が1個である場合、両GUI部品は類似すると推測したが、これに限定されない。例えば、同じ種類のGUI部品が画面レイアウト900及び910において2個以上且つ同数存在する場合において、両GUI部品が類似すると推測してもよい。この場合、同じ種類の同数のGUI部品の例えば配置パターン等に基づいて、2個以上且つ同数のGUI部品を構成する各GUI部品の類似性を推測すればよい。
次に、画面レイアウト比較部105は、画面レイアウト910において、S2302で比較が未完了のGUI部品と、位置の属性値が同じであるGUI部品が存在するか否かを判定する(S2305)。そして、画面レイアウト比較部105は、位置の属性値が同じであるGUI部品が存在すると判定した場合(S2305でYES)、両GUI部品が類似していると推測し、両GUI部品同士を対応付け、推測データに記述する(S2308)。
一方、画面レイアウト比較部105は、位置の属性値が同じであるGUI部品が存在していないと判定した場合(S2305でNO)、処理をS2306に進める。ここで、画面レイアウト比較部105は、位置の属性値に多少誤差があっても位置の属性値は同じと判定してもよい。
具体的には、画面レイアウト比較部105は、X座標、Y座標のそれぞれにつき下限閾値と上限閾値とを設ける。そして、画面レイアウト900のGUI部品の位置の属性値を基準として、X座標及びY座標のそれぞれの下限閾値及び上限閾値の範囲内に位置するGUI部品が画面レイアウト910に存在すれば、画面レイアウト比較部105は、これらのGUI部品同士が類似すると推測すればよい。
例えば、画面レイアウトの作成過程においては、作成済みの画面レイアウトに対してGUI部品を追加する又は一部のGUI部品を削除するなどして、新たな画面レイアウトが作成されるケースが多い。この場合、新たな画面レイアウトにおいて元から存在していたGUI部品は位置が修正されていないケースも多い。S2305の処理はこのようなケースにおいて有効である。
また、定型パターンのGUIでは、GUI部品は種類に応じて配置位置が予め定められていることが多い。そのため、差替前画面レイアウトと差替後画面レイアウトとにおいて同じ位置に配置されたGUI部品は同じ処理プログラムが関連付けられる可能性が高くなる。したがって、S2305の処理は定型パターンのGUIにおいてGUI部品の類似性を精度良く推測することができる。
次に、画面レイアウト比較部105は、S2302で比較が未完了のGUI部品の中から種類が同じであるGUI部品群を特定し、当該GUI部品群と種類が同じ、かつ、名前の規則性が同じであるGUI部品群が画面レイアウト910に存在するか否かを判定する(S2306)。
そして、画面レイアウト比較部105は、種類が同じ、かつ、名前の規則性が同じであるGUI部品群が存在すると判定した場合(S2306でYES)、両GUI部品群のそれぞれから名前の属性値が若い順に同数のGUI部品を取り出し、取り出したGUI部品同士を対応付け、推測データに記述する(S2308)。
一方、画面レイアウト比較部105は、種類が同じ、かつ、名前の規則性が同じであるGUI部品群が存在しないと判定した場合(S2306でNO)、処理をS2307に進める。
ここで、GUI部品群同士の名前の規則性が同じであるとは、例えば一方のGUI部品群が“Button01”、“Button02”、“Button03”という名前の属性値を持つGUI部品から構成され、他方のGUI部品群が“naviButton01”、“naviButton02”、“naviButton03”という名前の属性値を持つGUI部品が構成されているような場合が該当する。
例えば、画面レイアウト900において、GUI部品901〜903の名前の属性値が、それぞれ、“Button01”、“Button02”、“Button03”であったとする。また、画面レイアウト910において、GUI部品911〜913の名前の属性値がそれぞれ、“naviButton01”、“naviButton02”、“naviButton03”であったとする。
この場合、GUI部品901〜903は、それぞれ、種類がボタンであり、かつ、名前の属性値が“Button01”、“Button02”、“Button03”というように規則性を持っている。より具体的には、文字列が一致し、かつ、文字列に続く数値が1ずつ連続して増大している。よって、GUI部品901〜903がGUI部品群として特定される。
一方、GUI部品911〜913は、種類がボタンであり、かつ、名前の属性値が“naviButton01”、“naviButton02”、“naviButton03”であり規則性を持っている。よって、GUI部品911〜913は、GUI部品群として特定される。
そして、画面レイアウト900から特定されたGUI部品群において、名前の属性値は、GUI部品901が最も若く、次にGUI部品902が若く、次にGUI部品903が若い。一方、画面レイアウト910から特定されたGUI部品群において、名前の属性値は、GUI部品911が最も若く、次にGUI部品912が若く、次にGUI部品913が若い。よって、画面レイアウト比較部105は、GUI部品901〜903をそれぞれ、GUI部品911〜913と類似していると推測し、これらのGUI部品同士を対応付ける。
なお、画面レイアウト900から特定したGUI部品群を構成するGUI部品の個数と画面レイアウト910から特定したGUI部品群のGUI部品の個数とが一致しないケースもある。例えば、画面レイアウト900のGUI部品群において4個のGUI部品901〜904が存在しているのに対し、画面レイアウト910において3個のGUI部品911〜913が存在しているような場合である。この場合、GUI部品904の名前の属性値が“Button04”であったとすると、画面レイアウト比較部105は、GUI部品901〜903をそれぞれ、GUI部品911〜913と対応付けるというように、名前の属性値順に同数のGUI部品同士を対応付ければよい。
次に、画面レイアウト比較部105は、S2302で比較が未完了のGUI部品の中から、位置が連続しているGUI部品群を特定し、当該GUI部品群と種類が同じ、かつ、位置が連続しているGUI部品群が存在するか否かを判定する(S2307)。そして、画面レイアウト比較部105は、種類が同じ、かつ、位置が連続しているGUI部品群が存在すると判定した場合(S2307でYES)、両GUI部品群のそれぞれから同数のGUI部品を取り出し、取り出したGUI部品同士を対応づけ、推測データに記述する(S2308)。
一方、画面レイアウト比較部105は、種類が同じ、かつ、位置が連続しているGUI部品群が存在しないと判定した場合(S2307でNO)、処理をS2302に戻す。
ここで、位置が連続しているとは、GUI部品が例えば垂直方向あるいは水平方向に連続していることを意味する。
図8(A)に示す画面レイアウト900において、GUI部品901〜903は種類が同じであり、位置が水平方向に連続しているため、GUI部品群として特定される。
また、図8(B)に示す画面レイアウト910において、GUI部品911〜913は種類が同じであり、位置が垂直方向に連続しているため、GUI部品群として特定される。このGUI部品群は、GUI部品901〜903と種類が同じである。また、画面レイアウト900のGUI部品群においてGUI部品901は左端に位置し、画面レイアウト910のGUI部品群においてGUI部品911は上端に位置している。そのため、GUI部品901とGUI部品911とが類似していると推測され、両GUI部品が対応付けられる。
また、GUI部品902,903は、画面レイアウト900のGUI部品群において左から2,3番目に位置し、GUI部品912,913は、画面レイアウト910のGUI部品群において上から2,3番目に位置している。よって、GUI部品902とGUI部品912同士が対応付けられ、GUI部品903とGUI部品913同士が対応付けられる。
なお、画面レイアウト900のGUI部品群が水平方向に連続して配置された4個のGUI部品901〜904から構成されるというように、GUI部品群同士でGUI部品の個数が一致しない場合もある。この場合、画面レイアウト900のGUI部品群において左端から3つのGUI部品901〜903を、それぞれ、画面レイアウト910のGUI部品群の上端から3つのGUI部品911〜913と対応づければよい。
S2307でNOの場合は、推測データには、GUI部品同士の対応付けは全く記述されず、処理がS2302に戻される。
以上が、画面レイアウトを比較する処理の詳細である。
<変形例1>
次に、上記のGUIプログラム作成支援装置100の変形例1について説明する。この変形例では、ユーザに画面レイアウトにおけるGUI部品の配置パターンを示すパターン情報を入力させ、そのパターン情報に応じて図11のS2303〜S2307に示す推測処理の順序を適宜変更することを特徴とする。
この変形例1において、画面レイアウト作成部101は、ユーザの操作入力に基づき、GUI部品の配置パターンを示すパターン情報を画面レイアウトに設定する。具体的には、画面レイアウト作成部101は、画面レイアウトの作成作業において、予め定められた複数のパターン情報の中からいずれか1つのパターン情報をユーザに選択させる。そして、ユーザによって選択されたパターン情報を画面レイアウト定義情報201に記述することで、画面レイアウトにパターン情報を設定する。
ここで、パターン情報としては、動画コンテンツの画面レイアウトのGUI部品の配置パターンを示す動画コンテンツパターン、操作メニューの画面レイアウトのGUI部品の配置パターンを示す操作メニューパターン、及び定型の画面レイアウトのGUI部品の配置パターンを示す定型パターンが存在する。
動画コンテンツパターンは、例えば、DVDレコーダ等のAV機器において、ユーザが動画コンテンツを再生するに際して、複数の動画コンテンツの中からいずれかのコンテンツをユーザに選択させるGUIのGUI部品の配置パターンを想定したものである。
操作メニューパターンは、例えば、AV機器やカーナビゲーションシステム等のデジタル機器を操作するために画面上に表示される操作メニューのGUIのGUI部品の配置パターンを想定したものである。
定型パターンは、仕様書等でGUI部品の種類に応じた配置位置が予め指定されているような定型のGUIのGUI部品の配置パターンを想定したものである。
動画コンテンツのGUIでは、動画コンテンツのファイル名又はサムネイル画像をリスト表示する1個のリストのGUI部品と、リスト表示された動画コンテンツを選択し、再生するための複数のボタンのGUI部品とによって構成されるケースが多い。
このようなGUIを設計する場合、差替前画面レイアウト及び差替後画面レイアウトにおいて共に1個のリストのGUI部品が含まれる可能性が高くなる。
したがって、画面レイアウト比較部105は、パターン情報が動画コンテンツパターンを示す場合、図11に示すS2304の“同じ種類の部品が1つだけ存在する”の推測処理(第1推測処理の一例)をS2302の次に行い、続いて、S2303,S2305〜S2307の残りの推測処理を順次に実行する。これにより、動画コンテンツのGUIに適用される画面レイアウトにおいて、GUI部品を精度良く類推することができる。
操作メニューのGUIでは、ボタンのGUI部品が複数個、連続的に配置され、画像のGUI部品が複数個、連続的に配置されているというように、同じ種類のGUI部品が規則的に配置されることが多い。
したがって、画面レイアウト比較部105は、パターン情報が操作メニューパターンを示す場合、S2307の“種類が同じ、かつ、位置が連続している”の推測処理(第2推測処理の一例)をS2302の次に実行し、続いて、S2303〜S2306の推測処理を順次に実行する。これにより、操作メニューのGUIに適用される画面レイアウトにおいて、GUI部品の類似性を精度良く推測することができる。
定型パターンのGUIでは、GUI部品は種類に応じて配置位置が予め定められていることが多い。そのため、差替前画面レイアウトと差替後画面レイアウトとにおいて同じ位置に配置されたGUI部品は同じ処理プログラムが関連付けられる可能性が高くなる。
そこで、画面レイアウト比較部105は、パターン情報が定型パターンを示す場合、S2305の“位置が同じ”の推測処理(第3推測処理の一例)を、S2302の次に実行し、続いて、S2303,S2304,S2306,S2307の推測処理を順次に実行する。これにより、定型パターンのGUIに適用される画面レイアウトにおいて、GUI部品の類似性を精度良く推測することができる。
このように変形例1では、画面レイアウトが適用されるGUIの種類に応じて、推測精度が高い推測処理が優先的に適用されるため、GUI部品同士の類似性を比較する処理を効率よく実行することができる。
なお、変形例1では、ユーザは1つのパターン情報を選択するものとしたが、これに限定されず、複数のパターン情報を選択してもよい。この場合、パターン情報毎に優先度を予め設けておき、複数のパターン情報が設定されている場合は、優先度にしたがって、推測処理の順序を決定すればよい。
例えば、ユーザがパターン情報として、動画コンテンツパターン、操作メニューパターンを設定しており、操作メニューパターンより動画コンテンツパターンの方が優先度が高いとする。この場合、画面レイアウト比較部105は、S2302の推測処理の次に、S2304の推測処理を実行し、次に、S2307の推測処理を実行し、続いて残りの推測処理を順次に実行すればよい。
<変形例2>
上記の実施の形態では、対応付けられたGUI部品同士において、差替後画面レイアウトのGUI部品の名前の属性値を差替前画面レイアウトの名前の属性値で更新した。変形例2では、対応付けられたGUI部品同士において、差替前画面レイアウトのGUI部品の名前の属性値を差替後画面レイアウトの名前の属性値で更新する。
例えば、差替後画面レイアウトのGUI部品の名前の属性値が“Button_01”であり、差替前画面レイアウトのGUI部品の名前の属性値が“Button_A”であったとすると、“Button_A”が“Button_01”で更新される。
デザイナは、差替後画面レイアウトの作成後、再度、差替前画面レイアウトを編集することも想定される。この場合、デザイナは、差替後画面レイアウトにおいて、GUI部品(B1)に対し、名前の属性値を“Button_01”と設定したため、差替前画面レイアウトにおいて、“Button_A”の名前の属性値のGUI部品がGUI部品(B1)であるかを速やかに認識することができなくなってしまう。
そこで、差替前画面レイアウトのGUI部品に対して、差替後画面レイアウトのGUI部品の名前の属性値を設定することで、差替前画面レイアウトの編集作業の効率化を図ることができる。
この場合、GUI部品901の処理プログラムの関連づけが切断されるため、GUI部品901に対して処理プログラムを関連付ける必要がある。例えば、図8(A)、(B)において、GUI部品901,911が対応付けられたとする。この場合、接続情報復帰部106は、GUI部品901の接続情報202において、名前の属性値を“Button_A”から“Button_01”に書き換えればよい。これにより、GUI部品901,911共、処理プログラムの関連付けが復帰されることになる。
<変形例3>
上記実施の形態では、差替前画面レイアウトと差替後画面レイアウトとの類似性を基準として、差替後画面レイアウトに対して処理プログラムを関連付けた。変形例3は、差替前画面レイアウトに関連付けられた処理プログラムの特徴から差替後画面レイアウトの各GUI部品に関連付ける処理プログラムを類推することを特徴としている。
例えば、差替前画面レイアウトがAV機器において動画コンテンツを再生するようなオフライン用の画面レイアウトであり、この差替前画面レイアウトをインターネット上で動画コンテンツを再生するオンライン用の画面レイアウトに差し替える場合を想定する。
この場合、差替前画面レイアウトにおいて、例えば再生ボタンのGUI部品に対し、オフライン用の再生プログラムが関連付けられているとする。すると、画面レイアウト比較部105は、このオフライン用の再生プログラムに対応するオンライン用の再生プログラムを再生ボタンのGUI部品に対して関連付ける。
ここで、画面レイアウト比較部105は、例えばオフライン用の再生プログラムの名前や選択可能なメソッドの種類からオンライン用の再生プログラムを特定すればよい。具体的には、オフライン用の再生プログラムの名前が、“off_play_program”であり、オンライン用の再生プログラムの名前が、“on_play_program”であり両プログラムの名前の類似度が高いとすると、この“on_play_program”を再生ボタンのGUI部品に関連付ければよい。類似度としては、両名前において一致する文字数を採用すればよい。
また、“off_play_program”及び“on_play_program”が共に、“play”、“stop”、“fforward”、“rewind”のメソッドを持っているというように、両プログラムのメソッドの類似度が高い場合、再生ボタンのGUI部品に対して、“on_play_program”を関連付ければよい。ここで、メソッドの類似度としては、両プログラムにおいて一致するメソッド数を採用すればよい。
また、“off_play_program”と、“on_play_program”とがプログラマによって予め対応付けられているとする。この場合、画面レイアウト比較部105は、“off_play_program”に対応付けられた“on_play_program”を再生ボタンのGUI部品に関連付ければよい。
このような構成は、例えば差替前画面レイアウトに関連付けられた処理プログラムがバージョンアップされた場合にも有効である。
例えば、差替前画面レイアウトにおいて、再生ボタンのGUI部品に対し、“play_program(ver.1)”が関連付けられ、この“play_program(ver.1)”に対して次世代のバージョンの“play_program(ver.2)”が対応付けられていたとする。
すると、画面レイアウト比較部105は、差替後画面レイアウトにおいて、再生ボタンのGUI部品に対し、“play_program(ver.2)”を関連付ければよい。
図13は、本発明の実施の形態によるGUIプログラム作成支援装置100のハードウェア構成を示すブロック図である。GUIプログラム作成支援装置100は、CPU(CENTRAL PROCESSING UNIT)1201、ROM/RAM1202、表示部1203、I/O1204、ネットワークインターフェイス1205、外部記憶装置1206、及び入力部1207を備えている。CPU1201〜入力部1207は、バス1200を介して相互に接続されている。
ROM/RAM1202或いは外部記憶装置1206は、コンピュータをGUIプログラム作成支援装置100として機能させるためのプログラムを格納する。
表示部1203は、例えば、液晶表示ディスプレイや有機ELディスプレイ等により構成され、CPU1201によって処理された処理結果を表示する。
I/O1204は、外部装置を接続するための入出力インターフェイスであり、例えばUSBポートが採用される。ネットワークインターフェイス1205は、例えばGUIプログラム作成支援装置100をインターネットに接続するための通信回路により構成されている。外部記憶装置1206は、例えば、HDD(ハードディスク)等の記憶装置により構成される。入力部1207は、例えば、キーボード、マウス等の入力装置により構成され、ユーザから種々の操作入力を受け付ける。
図1に示す画面レイアウト作成部101、接続設定部102、及び処理プログラム作成部103は、表示部1203に所定のGUIを表示して、ユーザからの操作入力をGUIを介して受け付けるプログラムモジュールであり、ROM/RAM1202或いは外部記憶装置1206に格納され、CPU1201により実行されて実現される。
図1に示すソースコード生成部104、画面レイアウト比較部105、及び接続情報復帰部106は、ROM/RAM1202或いは外部記憶装置1206に格納されたGUIの表示を伴わないプログラムモジュールであり、CPU1201によって実行されて実現される。図1に示す記憶部200は、例えば、ROM/RAM1202或いは外部記憶装置1206により構成される。
また、図1に示すGUIプログラム作成支援装置100は集積回路であるLSIとして実現されてもよい。この場合、図1に示す画面レイアウト作成部101〜接続情報復帰部106を集積化すればよい。また、この場合、ROM/RAM1202或いは外部記憶装置1206からCPU1201にプログラムをロードする必要はなくなる。これらは個別に1チップ化されても良いし、一部又は全てを含むように1チップ化されても良い。
ここでは、LSIとしたが、集積度の違いにより、IC、システムLSI、スーパーLSI、ウルトラLSIと呼称されることもある。
また、集積回路化の手法はLSIに限るものではなく、専用回路又は汎用プロセッサで実現してもよい。LSI製造後に、プログラムすることが可能なFPGA(Field Programmable Gate Array)や、LSI内部の回路セルの接続や設定を再構成可能なリコンフィギュラブル・プロセッサを利用しても良い。
さらには、半導体技術の進歩又は派生する別技術によりLSIに置き換わる集積回路化の技術が登場すれば、当然、その技術を用いて機能ブロックの集積化を行ってもよい。バイオ技術の適応等が可能性としてあり得る。
また、GUIプログラム作成支援装置100の構成要素のうち、記憶部200も画面レイアウト作成部101〜接続情報復帰部106と併せて1チップ化してもよい。
また、本実施の形態では、GUIプログラム作成支援装置100を構成する処理手段をステップとする方法として実現できる。そして、本実施の形態は、その方法に含まれるステップをコンピュータに実行させるプログラムとして実現できる。さらに、本実施の形態は、そのプログラムを記憶したCD−ROM等のコンピュータ読み取り可能な記憶媒体として実現できる。
(本実施の形態によるGUIプログラム作成支援装置の纏め)
(1)本実施の形態によるGUIプログラム作成支援装置は、ユーザの操作入力に基づき、複数のGUI(グラフィカルユーザインタフェース)部品を含むGUIの画面レイアウトを生成すると共に、生成済の画面レイアウトを別の画面レイアウトに差し替える画面レイアウト作成部と、ユーザの操作入力に基づき、前記GUI部品が操作された際に実行される処理に係る処理プログラムを作成する処理プログラム作成部と、ユーザの操作入力に基づき、前記GUI部品と前記処理プログラムとの関連付けを行い、当該関連付けを示す接続情報を生成する接続設定部と、前記画面レイアウトと前記処理プログラムと前記接続情報とに基づき、GUIプログラムのソースコードを生成するソースコード生成部と、前記画面レイアウト作成部により、生成済の画面レイアウトが別の画面レイアウトに差し替えられた場合、差替後画面レイアウトのGUI部品に類似するGUI部品を、差替前画面レイアウトから推測し、類似するGUI部品同士を対応付ける画面レイアウト比較部と、前記差替前画面レイアウトのGUI部品に関連付けられた前記処理プログラムを、前記画面レイアウト比較部により対応付けられたGUI部品に関連付ける接続復帰処理を行う接続情報復帰部とを備える。
この構成によれば、差替後画面レイアウトの各GUI部品につき、類似するGUI部品を差替前画面レイアウトの中から推測し、類似するGUI部品があると推測された差替後画面レイアウトのGUI部品については、類似するGUI部品に関連付けられた処理プログラムが自動的に関連付けられる。
そのため、ユーザは差替後画面レイアウトにつき、処理プログラムを関連付ける作業を行う手間が軽減され、GUIの画面レイアウトの開発効率を大幅に増大させることができる。
(2)前記接続情報復帰部は、前記画面レイアウト比較部により対応付けられたGUI部品をユーザに報知し、推測結果が正しいことを示す操作入力がユーザにより行われたGUI部品について、前記接続復帰処理を行うことが好ましい。
この構成によれば、推測結果が正しいか否かをユーザに事前に判断させることができ、差替後画面レイアウトのGUI部品に対してユーザが意図しない処理プログラムが関連付けられることを防止し、作業効率の向上を図ることができる。
(3)前記画面レイアウト比較部は、前記差替前画面レイアウトと前記差替後画面レイアウトとにおいて、各GUI部品に付与された名前を比較することで、類似性を推測することが好ましい。
この構成によれば、差替後画面レイアウトと差替前画面レイアウトとにおいて、名前の共通するGUI部品が多く用いられている場合、類似するGUI部品を精度良く推測することができる。
(4)前記画面レイアウト比較部は、前記差替後画面レイアウトと前記差替前画面レイアウトとにおいて、同じ種類のGUI部品の個数を比較することで、類似性を推測することが好ましい。
この構成によれば、リストのGUI部品を1個持つような動画コンテンツのGUIの画面レイアウトにおいて、類似するGUI部品を精度良く推測することができる。
(5)前記画面レイアウト比較部は、前記差替後画面レイアウトと前記差替前画面レイアウトとにおいて、各GUI部品に付与された名前の連続性から類似性を推測することが好ましい。
この構成によれば、GUIの名前が一定の規則で自動作成された画面レイアウトにおいて、類似するGUI部品を精度良く検出することができる。
(6)前記画面レイアウト比較部は、前記差替後画面レイアウトと前記差替前画面レイアウトとにおいて、GUI部品の位置から類似性を推測することが好ましい。
この構成によれば、仕様書によりGUI部品の配置位置が予め定められた定型パターンのGUIに適用される画面レイアウトにおいて、GUI部品の類似性を精度良く推測することができる。
(7)前記画面レイアウト比較部は、前記差替後画面レイアウトと前記差替前画面レイアウトとにおいて、各GUI部品の配置の規則性から類似性を推測することが好ましい。
この構成によれば、AV機器等を操作するために画面に表示される操作メニューのGUIの画面レイアウトにおいて、類似するGUI部品を精度良く検出することができる。
(8)前記接続情報復帰部は、前記接続復帰処理を行った前記差替後画面レイアウトのGUI部品の名前を、対応する前記差替前画面レイアウトのGUI部品の名前で更新することが好ましい。
この構成によれば、差替後画面レイアウトのGUI部品の接続情報及びソースコードを新たに生成することなく、差替後画面レイアウトのGUI部品に差替前画面レイアウトのGUI部品の処理プログラムを関連付けることができる。
(9)前記接続情報復帰部は、前記接続復帰処理を行った前記差替後画面レイアウトのGUI部品の名前で、対応する前記差替前画面レイアウトのGUI部品の名前を更新することが好ましい。
この構成によれば、差替前画面レイアウトを再度編集する場合の編集作業の効率化を図ることができる。
(10)前記画面レイアウト生成部は、ユーザの操作入力に基づき、GUI部品の配置パターンを示すパターン情報を前記画面レイアウトに設定し、前記画面レイアウト比較部は、複数の推測処理を順次に実行して類似性を推測し、前記パターン情報に応じて推測処理の順序を変更することが好ましい。
この構成によれば、画面レイアウトが適用されるGUIの種類に応じて、推測精度の高い推測処理が優先的に適用されるため、GUI部品同士の類似性を比較する処理を効率よく実行することができる。
(11)前記推測処理は、前記差替後画面レイアウトと前記差替前画面レイアウトとにおいて、同じ種類のGUI部品の個数を比較することで、類似性を推測する第1推測処理を含み、前記画面レイアウト比較部は、前記パターン情報が動画コンテンツのGUIのGUI部品の配置パターンを示す動画コンテンツパターンである場合、前記第1推測処理を最初に実行することが好ましい。
この構成によれば、動画コンテンツのGUIのように、リストのGUI部品を1個持つ画面レイアウトにおいて、類似するGUI部品をより精度良く推測することができる。
(12)前記推測処理は、前記差替後画面レイアウトと前記差替前画面レイアウトとにおいて、各GUI部品の配置の規則性から類似性を推測する第2推測処理を含み、前記画面レイアウト比較部は、前記パターン情報が操作メニューのGUIのGUI部品の配置パターンを示す操作メニューパターンである場合、前記第2推測処理を最初に実行することが好ましい。
この構成によれば、AV機器等を操作するために画面に表示される操作メニューのようなGUIの画面レイアウトにおいて、類似するGUI部品をより精度良く検出することができる。
(13)前記推測処理は、前記差替後画面レイアウトと前記差替前画面レイアウトとにおいて、GUI部品の位置から類似性を推測する第3推測処理を含み、前記画面レイアウト比較部は、前記パターン情報が予め規定された配置位置にGUI部品が配置されている定型のGUIを示す定型パターンである場合、前記第3推測処理を最初に実行することが好ましい。
この構成によれば、仕様書によりGUI部品の配置位置が予め定められた定型パターンのGUIに適用される画面レイアウトにおいて、GUI部品の類似性をより精度良く推測することができる。
本発明にかかるGUIプログラム作成支援装置は、画面レイアウト比較部と接続情報復帰部を有し、複数の画面レイアウトを差し替えながら開発されるGUIプログラムの開発効率を向上させるGUIビルダとして有用である。

Claims (15)

  1. ユーザの操作入力に基づき、複数のGUI(グラフィカルユーザインタフェース)部品を含むGUIの画面レイアウトを生成すると共に、生成済の画面レイアウトを別の画面レイアウトに差し替える画面レイアウト作成部と、
    ユーザの操作入力に基づき、前記GUI部品が操作された際に実行される処理に係る処理プログラムを作成する処理プログラム作成部と、
    ユーザの操作入力に基づき、前記GUI部品と前記処理プログラムとの関連付けを行い、当該関連付けを示す接続情報を生成する接続設定部と、
    前記画面レイアウトと前記処理プログラムと前記接続情報とに基づき、GUIプログラムのソースコードを生成するソースコード生成部と、
    前記画面レイアウト作成部により、生成済の画面レイアウトが別の画面レイアウトに差し替えられた場合、差替後画面レイアウトのGUI部品に類似するGUI部品を、差替前画面レイアウトから推測し、類似するGUI部品同士を対応付ける画面レイアウト比較部と、
    前記差替前画面レイアウトのGUI部品に関連付けられた前記処理プログラムを、前記画面レイアウト比較部により対応付けられたGUI部品に関連付ける接続復帰処理を行う接続情報復帰部とを備え
    前記接続情報復帰部は、前記画面レイアウト比較部により対応付けられたGUI部品をユーザに報知し、推測結果が正しいことを示す操作入力がユーザにより行われたGUI部品について、前記接続復帰処理を行うGUIプログラム作成支援装置。
  2. 前記画面レイアウト比較部は、前記差替前画面レイアウトと前記差替後画面レイアウトとにおいて、各GUI部品に付与された名前を比較することで、類似性を推測する請求項1記載のGUIプログラム作成支援装置。
  3. 前記画面レイアウト比較部は、前記差替後画面レイアウトと前記差替前画面レイアウトとにおいて、同じ種類のGUI部品の個数を比較することで、類似性を推測する請求項1または2のいずれかに記載のGUIプログラム作成支援装置。
  4. 前記画面レイアウト比較部は、前記差替後画面レイアウトと前記差替前画面レイアウトとにおいて、各GUI部品に付与された名前の連続性から類似性を推測する請求項1〜のいずれかに記載のGUIプログラム作成支援装置。
  5. 前記画面レイアウト比較部は、前記差替後画面レイアウトと前記差替前画面レイアウトとにおいて、GUI部品の位置から類似性を推測する請求項1〜のいずれかに記載のGUIプログラム作成支援装置。
  6. 前記画面レイアウト比較部は、前記差替後画面レイアウトと前記差替前画面レイアウトとにおいて、各GUI部品の配置の規則性から類似性を推測する請求項1〜のいずれかに記載のGUIプログラム作成支援装置。
  7. 前記接続情報復帰部は、前記接続復帰処理を行った前記差替後画面レイアウトのGUI部品の名前を、対応する前記差替前画面レイアウトのGUI部品の名前で更新する請求項1〜のいずれかに記載のGUIプログラム作成支援装置。
  8. 前記接続情報復帰部は、前記接続復帰処理を行った前記差替後画面レイアウトのGUI部品の名前で、対応する前記差替前画面レイアウトのGUI部品の名前を更新する請求項1〜のいずれかに記載のGUIプログラム作成支援装置。
  9. 前記画面レイアウト成部は、ユーザの操作入力に基づき、GUI部品の配置パターンを示すパターン情報を前記画面レイアウトに設定し、
    前記画面レイアウト比較部は、複数の推測処理を順次に実行して類似性を推測し、前記パターン情報に応じて推測処理の順序を変更する請求項1〜のいずれかに記載のGUIプログラム作成支援装置。
  10. 前記推測処理は、前記差替後画面レイアウトと前記差替前画面レイアウトとにおいて、同じ種類のGUI部品の個数を比較することで、類似性を推測する第1推測処理を含み、
    前記画面レイアウト比較部は、前記パターン情報が動画コンテンツのGUIのGUI部品の配置パターンを示す動画コンテンツパターンである場合、前記第1推測処理を最初に実行する請求項記載のGUIプログラム作成支援装置。
  11. 前記推測処理は、前記差替後画面レイアウトと前記差替前画面レイアウトとにおいて、各GUI部品の配置の規則性から類似性を推測する第2推測処理を含み、
    前記画面レイアウト比較部は、前記パターン情報が操作メニューのGUIのGUI部品の配置パターンを示す操作メニューパターンである場合、前記第2推測処理を最初に実行する請求項又は10記載のGUIプログラム作成支援装置。
  12. 前記推測処理は、前記差替後画面レイアウトと前記差替前画面レイアウトとにおいて、GUI部品の位置から類似性を推測する第3推測処理を含み、
    前記画面レイアウト比較部は、前記パターン情報が予め規定された配置位置にGUI部品が配置されている定型のGUIを示す定型パターンである場合、前記第3推測処理を最初に実行する請求項11のいずれかに記載のGUIプログラム作成支援装置。
  13. コンピュータが、ユーザの操作入力に基づき、複数のGUI(グラフィカルユーザインタフェース)部品を含むGUIの画面レイアウトを生成すると共に、生成済の画面レイアウトを別の画面レイアウトに差し替える画面レイアウト作成ステップと、
    コンピュータが、ユーザの操作入力に基づき、前記GUI部品が操作された際に実行される処理に係る処理プログラムを作成する処理プログラム作成ステップと、
    コンピュータが、ユーザの操作入力に基づき、前記GUI部品と前記処理プログラムとの関連付けを行い、当該関連付けを示す接続情報を生成する接続設定ステップと、
    コンピュータが、前記画面レイアウトと前記処理プログラムと前記接続情報とに基づき、GUIプログラムのソースコードを生成するソースコード生成ステップと、
    コンピュータが、前記画面レイアウト作成ステップにより、生成済の画面レイアウトが別の画面レイアウトに差し替えられた場合、差替後画面レイアウトのGUI部品に類似するGUI部品を、差替前画面レイアウトから推測し、類似するGUI部品同士を対応付ける画面レイアウト比較ステップと、
    コンピュータが、前記差替前画面レイアウトのGUI部品に関連付けられた前記処理プログラムを、前記画面レイアウト比較ステップにより対応付けられたGUI部品に関連付ける接続復帰処理を行う接続情報復帰ステップとを備え
    前記接続情報復帰ステップは、前記画面レイアウト比較ステップにより対応付けられたGUI部品をユーザに報知し、推測結果が正しいことを示す操作入力がユーザにより行われたGUI部品について、前記接続復帰処理を行うGUIプログラム作成支援方法。
  14. ユーザの操作入力に基づき、複数のGUI(グラフィカルユーザインタフェース)部品を含むGUIの画面レイアウトを生成すると共に、生成済の画面レイアウトを別の画面レイアウトに差し替える画面レイアウト作成部と、
    ユーザの操作入力に基づき、前記GUI部品が操作された際に実行される処理に係る処理プログラムを作成する処理プログラム作成部と、
    ユーザの操作入力に基づき、前記GUI部品と前記処理プログラムとの関連付けを行い、当該関連付けを示す接続情報を生成する接続設定部と、
    前記画面レイアウトと前記処理プログラムと前記接続情報とに基づき、GUIプログラムのソースコードを生成するソースコード生成部と、
    前記画面レイアウト作成部により、生成済の画面レイアウトが別の画面レイアウトに差し替えられた場合、差替後画面レイアウトのGUI部品に類似するGUI部品を、差替前画面レイアウトから推測し、類似するGUI部品同士を対応付ける画面レイアウト比較部と、
    前記差替前画面レイアウトのGUI部品に関連付けられた前記処理プログラムを、前記画面レイアウト比較部により対応付けられたGUI部品に関連付ける接続復帰処理を行う接続情報復帰部とし、
    前記接続情報復帰部は、前記画面レイアウト比較部により対応付けられたGUI部品をユーザに報知し、推測結果が正しいことを示す操作入力がユーザにより行われたGUI部品について、前記接続復帰処理を行うようにコンピュータを機能させるプログラム。
  15. ユーザの操作入力に基づき、複数のGUI(グラフィカルユーザインタフェース)部品を含むGUIの画面レイアウトを生成すると共に、生成済の画面レイアウトを別の画面レイアウトに差し替える画面レイアウト作成部と、
    ユーザの操作入力に基づき、前記GUI部品が操作された際に実行される処理に係る処理プログラムを作成する処理プログラム作成部と、
    ユーザの操作入力に基づき、前記GUI部品と前記処理プログラムとの関連付けを行い、当該関連付けを示す接続情報を生成する接続設定部と、
    前記画面レイアウトと前記処理プログラムと前記接続情報とに基づき、GUIプログラムのソースコードを生成するソースコード生成部と、
    前記画面レイアウト作成部により、生成済の画面レイアウトが別の画面レイアウトに差し替えられた場合、差替後画面レイアウトのGUI部品に類似するGUI部品を、差替前画面レイアウトから推測し、類似するGUI部品同士を対応付ける画面レイアウト比較部と、
    前記差替前画面レイアウトのGUI部品に関連付けられた前記処理プログラムを、前記画面レイアウト比較部により対応付けられたGUI部品に関連付ける接続復帰処理を行う接続情報復帰部とを備え
    前記接続情報復帰部は、前記画面レイアウト比較部により対応付けられたGUI部品をユーザに報知し、推測結果が正しいことを示す操作入力がユーザにより行われたGUI部品について、前記接続復帰処理を行う集積回路。

JP2012553108A 2011-06-20 2012-04-20 Guiプログラム作成支援装置、guiプログラム作成支援方法、プログラム、及び集積回路 Expired - Fee Related JP5852967B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2012553108A JP5852967B2 (ja) 2011-06-20 2012-04-20 Guiプログラム作成支援装置、guiプログラム作成支援方法、プログラム、及び集積回路

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
JP2011136589 2011-06-20
JP2011136589 2011-06-20
PCT/JP2012/002737 WO2012176365A1 (ja) 2011-06-20 2012-04-20 Guiプログラム作成支援装置、guiプログラム作成支援方法、プログラム、及び集積回路
JP2012553108A JP5852967B2 (ja) 2011-06-20 2012-04-20 Guiプログラム作成支援装置、guiプログラム作成支援方法、プログラム、及び集積回路

Publications (2)

Publication Number Publication Date
JPWO2012176365A1 JPWO2012176365A1 (ja) 2015-02-23
JP5852967B2 true JP5852967B2 (ja) 2016-02-03

Family

ID=47422230

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012553108A Expired - Fee Related JP5852967B2 (ja) 2011-06-20 2012-04-20 Guiプログラム作成支援装置、guiプログラム作成支援方法、プログラム、及び集積回路

Country Status (4)

Country Link
US (1) US8910064B2 (ja)
JP (1) JP5852967B2 (ja)
CN (1) CN102959511B (ja)
WO (1) WO2012176365A1 (ja)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5852967B2 (ja) * 2011-06-20 2016-02-03 パナソニック インテレクチュアル プロパティ コーポレーション オブアメリカPanasonic Intellectual Property Corporation of America Guiプログラム作成支援装置、guiプログラム作成支援方法、プログラム、及び集積回路
JP5907534B2 (ja) * 2013-02-20 2016-04-26 日本電信電話株式会社 ユーザインタフェース制御方法、その装置およびプログラム
US20140372973A1 (en) * 2013-06-12 2014-12-18 Level 3 Communications, Llc System and methods for generating data objects
EP2881882B1 (en) 2013-12-05 2017-03-01 Kaspersky Lab, ZAO System and method for blocking elements of application interface
RU2645265C2 (ru) 2013-12-05 2018-02-19 Закрытое акционерное общество "Лаборатория Касперского" Система и способ блокировки элементов интерфейса приложения
JP2017040952A (ja) * 2014-01-10 2017-02-23 三菱電機株式会社 ユーザインタフェース設計支援装置
USD772911S1 (en) * 2015-04-29 2016-11-29 Adp, Llc Display screen with graphical user interface
JP2017049778A (ja) * 2015-09-01 2017-03-09 富士ゼロックス株式会社 表示方法変更プログラム及び情報処理装置
JP6665493B2 (ja) * 2015-11-10 2020-03-13 富士ゼロックス株式会社 文書点検支援装置、文書点検支援システム及びプログラム
CN107092477B (zh) * 2017-01-03 2020-07-03 北京安云世纪科技有限公司 一种桌面布局的修正方法、装置和移动终端
JP6870479B2 (ja) 2017-05-30 2021-05-12 オムロン株式会社 Hmi開発支援装置、hmi開発支援方法、および、hmi開発支援プログラム
JP7050605B2 (ja) * 2018-07-13 2022-04-08 株式会社日立ソリューションズ アプリケーション生成装置、アプリケーション生成方法、及びアプリケーション生成プログラム
US10949173B1 (en) * 2018-10-29 2021-03-16 The Mathworks, Inc. Systems and methods for automatic code generation
CN110147381B (zh) * 2019-05-27 2021-07-09 智者四海(北京)技术有限公司 信息处理方法、***及记录介质
CN115004234A (zh) * 2020-01-17 2022-09-02 发那科株式会社 图像生成辅助装置以及图像生成辅助方法
JP7461817B2 (ja) 2020-07-08 2024-04-04 三菱重工業株式会社 表示情報作成装置、表示システム、及び表示情報作成方法
WO2023127139A1 (ja) * 2021-12-28 2023-07-06 三菱電機株式会社 監視画面作成支援装置、監視画面作成支援システム、監視画面作成支援方法および監視画面作成支援プログラム

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10207701A (ja) 1996-11-22 1998-08-07 Toshiba Corp Gui画面作成装置及びプログラムを記録した記録媒体
US6064382A (en) * 1997-11-19 2000-05-16 International Business Machines Corporation Object oriented apparatus and method for providing a graphical user interface for host-based software applications
JPH11232087A (ja) * 1998-02-12 1999-08-27 Hitachi Ltd ユーザインタフェース作成支援装置
US6262726B1 (en) * 1998-10-09 2001-07-17 Dell U.S.A., L.P. Factory installing desktop components for an active desktop
JP4197095B2 (ja) 1999-03-24 2008-12-17 富士通株式会社 Guiプログラムの作成支援装置及び作成支援方法並びに作成支援プログラムを記録したコンピュータが読取可能な記録媒体
US6425121B1 (en) * 2000-01-14 2002-07-23 Softwire Technology, Llp Method and apparatus for resolving divergent paths in graphical programming environments
US8495679B2 (en) * 2000-06-30 2013-07-23 Thomson Licensing Method and apparatus for delivery of television programs and targeted de-coupled advertising
US7287227B2 (en) * 2001-06-29 2007-10-23 Ve Enterprises Llc System and method for editing web pages in a client/server architecture
US7234111B2 (en) * 2001-09-28 2007-06-19 Ntt Docomo, Inc. Dynamic adaptation of GUI presentations to heterogeneous device platforms
CA2388101A1 (en) * 2002-02-01 2003-08-01 Concepts Egeria Inc. Conceptual user interface
US7412658B2 (en) * 2002-11-14 2008-08-12 Sap Ag Modeling system for graphic user interface
US7895064B2 (en) * 2003-09-02 2011-02-22 Computer Sciences Corporation Graphical input display in an insurance processing system
US7730410B2 (en) * 2003-09-22 2010-06-01 Sap Ag System and method for customizing form elements in a form building application
ES2328924T3 (es) * 2003-10-15 2009-11-19 Canon Kabushiki Kaisha Previsualizacion y revision selectiva de documentos o esquemas que contienen datos variables.
JP4726519B2 (ja) 2005-03-28 2011-07-20 富士通株式会社 画面定義データ差分抽出方法、装置及びプログラム
US8489984B1 (en) * 2006-04-27 2013-07-16 Oracle America, Inc. Cross platform layout
US8091036B1 (en) * 2006-04-27 2012-01-03 Oracle America, Inc. GUI builder tool for designing cross platform layout
US8527907B2 (en) * 2006-07-31 2013-09-03 Adobe Systems Incorporated Screen relayout
CN100487645C (zh) * 2007-06-29 2009-05-13 中兴通讯股份有限公司 基于数据驱动的界面自动生成方法
JP4692529B2 (ja) * 2007-08-07 2011-06-01 セイコーエプソン株式会社 グラフィカルユーザインタフェース装置
US8352884B2 (en) * 2009-05-21 2013-01-08 Sony Computer Entertainment Inc. Dynamic reconfiguration of GUI display decomposition based on predictive model
JP5852967B2 (ja) * 2011-06-20 2016-02-03 パナソニック インテレクチュアル プロパティ コーポレーション オブアメリカPanasonic Intellectual Property Corporation of America Guiプログラム作成支援装置、guiプログラム作成支援方法、プログラム、及び集積回路
US20130212487A1 (en) * 2012-01-09 2013-08-15 Visa International Service Association Dynamic Page Content and Layouts Apparatuses, Methods and Systems
KR20140046329A (ko) * 2012-10-10 2014-04-18 삼성전자주식회사 멀티 디스플레이 장치 및 그 디스플레이 제어 방법
IN2012CH04482A (ja) * 2012-10-26 2015-06-19 Exceed Technology Solutions Private Ltd I
US20140282055A1 (en) * 2013-03-15 2014-09-18 Agilent Technologies, Inc. Layout System for Devices with Variable Display Screen Sizes and Orientations

Also Published As

Publication number Publication date
JPWO2012176365A1 (ja) 2015-02-23
CN102959511A (zh) 2013-03-06
CN102959511B (zh) 2016-05-25
US20130111376A1 (en) 2013-05-02
WO2012176365A1 (ja) 2012-12-27
US8910064B2 (en) 2014-12-09

Similar Documents

Publication Publication Date Title
JP5852967B2 (ja) Guiプログラム作成支援装置、guiプログラム作成支援方法、プログラム、及び集積回路
KR101312848B1 (ko) 브라우즈 모드 디자이너
KR101320919B1 (ko) 분할 화면을 통한 gui 제공방법 및 이를 적용한멀티미디어 기기
US9390125B2 (en) Query authoring by modifying a view of the results of the query
CN102915237B (zh) 根据用户应用程序要求改写数据质量规则的方法和***
EP3770775A1 (en) Information processing device and information processing method
JP2023182817A (ja) ウェブサイト構築システム用の構成可能なアプリケーションの作成および処理のためのシステムおよび方法
US20160124723A1 (en) Graphically building abstract syntax trees
JP2015194808A (ja) 情報処理装置及び情報処理プログラム
US20060036994A1 (en) Hierarchical modeling method and software tool
JP2011180796A (ja) コンテンツ共有システム
US9684738B2 (en) Text-based command generation
JP2020123175A (ja) コード管理システムおよびコード管理方法
US20060200482A1 (en) System, Method and Program Product for Setting and Managing Breakpoints in a Data Schema Mapping Editor
US9244651B2 (en) Document revision control
KR20180135654A (ko) 프로그램의 직관적 제작방법
KR20140041603A (ko) 미리 구축된 컨트롤을 사용하는 로직 생성 기법
US11809844B2 (en) Creating an app method and system
JP2011186720A (ja) 情報処理装置,処理方法,処理プログラム及び同プログラムを記録したコンピュータ読取可能な記録媒体
US20210294966A1 (en) Systems and methods for binding lookup controls
US11061664B2 (en) Code management system and code management method
JP5984358B2 (ja) ソフトウェア開発支援装置及びプログラム
JP5768571B2 (ja) 閲覧情報編集装置、プログラムおよび閲覧情報編集方法
JP6744549B2 (ja) 開発支援装置、開発支援方法および開発支援プログラム
JP5255865B2 (ja) 画面遷移設計支援装置、画面遷移設計支援方法および画面遷移設計支援プログラム

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20151006

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20151109

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20151201

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20151207

R150 Certificate of patent or registration of utility model

Ref document number: 5852967

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees