(57)【要約】      （修正有）【課題】複数のＧＵＩ部品セットにまたがった編集作業で、編集対象とする複数のＧＵＩ部品セットを俯瞰して整合性の問題を抑止できる編集装置を提供する。【解決手段】複数のＧＵＩ部品を少なくとも第一と第二のプロパティグループに属させて記憶手段に格納し、記憶手段が第一と第二のプロパティ値群を複数有し、さらに記憶手段から読み出した複数の第一と第二のプロパティ値群のうちから選んで複数のＧＵＩ部品セットのＧＵＩ部品に対し適用させる選択手段と、選ばれた第一のプロパティ値群と第二のプロパティ値群とが複数のＧＵＩ部品セットで不整合となるか判定する判定手段と、ＧＵＩ部品セットを表示する表示手段とを含み、判定手段は選択された第一と第二のプロパティ値群が不整合となるＧＵＩ部品セットがあるかどうかを判断し、表示手段は選択で不整合がなかった場合にＧＵＩ部品セットに選択された第一と第二のプロパティ値群を適用させ表示する。【選択図】図３
2011070500.tif 000002
【特許請求の範囲】
【請求項１】
ひとつ以上のＧＵＩ（Graphical User Interface）部品から各々が構築される複数のＧＵＩ部品セットを持つアプリケーションを編集するための編集装置であって、前記ＧＵＩ部品の各々は、ひとつ以上のプロパティと、前記ひとつ以上のプロパティの各々に対応したプロパティ値と、を含み、前記編集装置が、
(a) 前記複数のＧＵＩ部品を表すデータを格納し、また、前記複数のＧＵＩ部品が持つプロパティのそれぞれを、少なくとも第一のプロパティグループおよび第二のプロパティグループに属させるように分類されて格納された、記憶手段
を含み、ここで、
前記記憶手段が、前記第一のプロパティグループに関するプロパティ値の組み合わせを、第一のプロパティ値群として複数種類有しており、
前記記憶手段が、前記第二のプロパティグループに関するプロパティ値の組み合わせを、第二のプロパティ値群として複数種類有しており、また、
さらに前記編集装置が、
(b) 前記記憶手段から読み出した複数種類の前記第一のプロパティ値群のうちからいずれかを選んで、前記複数のＧＵＩ部品セットのうちに含まれるＧＵＩ部品に対して適用させ、また、前記記憶手段から読み出した複数種類の前記第二のプロパティ値群のうちからいずれかを選んで、前記複数のＧＵＩ部品セットのうちに含まれるＧＵＩ部品に対して適用させる、選択手段と、
(c) 前記選択手段により選択された前記第一のプロパティ値群と前記第二のプロパティ値群とが、前記複数のＧＵＩ部品セットのうちの前記ひとつ以上のうちのいずれかにて、不整合となるかどうかを判定する、判定手段と、
(d) 前記複数のＧＵＩ部品セットのうちのひとつ以上を表示するための、表示手段と
を含み、ここで、
前記判定手段は、選択された前記第一のプロパティ値群と前記第二のプロパティ値群とが不整合となるＧＵＩ部品セットが存在した場合に、前記選択手段の行った選択が不適切であると判断し、
前記表示手段は、
前記選択手段の行った選択が前記判定手段によって不適切であるとされていないかを確認し、
不適切であるとされていなかった場合には、前記複数のＧＵＩ部品セットのうちの前記ひとつ以上を、前記選択手段により選択された前記第一のプロパティ値群と前記第二のプロパティ値群が適用された状態にて表示する
ことを特徴とする、編集装置。
【請求項２】
ひとつ以上のＧＵＩ（Graphical User Interface）部品から各々が構築される複数のＧＵＩ部品セットを持つアプリケーションを編集するための編集プログラムであって、前記ＧＵＩ部品の各々は、ひとつ以上のプロパティと、前記ひとつ以上のプロパティの各々に対応したプロパティ値と、を含み、
前記コンピュータが、
前記複数のＧＵＩ部品を表すデータを格納し、かつ、少なくとも第一のプロパティグループおよび第二のプロパティグループに属させるように分類された前記複数のＧＵＩ部品が持つプロパティのそれぞれを格納するための、記憶手段と、
表示手段と
を含み、
ここで、
前記記憶手段が、前記第一のプロパティグループに関するプロパティ値の組み合わせを、第一のプロパティ値群として複数種類有しており、
前記記憶手段が、前記第二のプロパティグループに関するプロパティ値の組み合わせを、第二のプロパティ値群として複数種類有しており、また、
さらに前記編集プログラムが前記コンピュータ上で実行されたときに実施される方法が、
前記記憶手段から読み出した複数種類の前記第一のプロパティ値群のうちからいずれかを選んで、前記複数のＧＵＩ部品セットのうちに含まれるＧＵＩ部品に対して適用させ、また、前記記憶手段から読み出した複数種類の前記第二のプロパティ値群のうちからいずれかを選んで、前記複数のＧＵＩ部品セットのうちに含まれるＧＵＩ部品に対して適用するステップと、
前記複数のＧＵＩ部品セットに適用した前記第一のプロパティ値群と前記第二のプロパティ値群とが、前記複数のＧＵＩ部品セットのいずれかにて、不適合となるかどうかを判定するステップと、
選択された前記第一のプロパティ値群と前記第二のプロパティ値群とが不整合となるＧＵＩ部品セットが存在した場合に、選択を不適切であると判断するステップと、
選択された前記第一のプロパティ値群と前記第二のプロパティ値群についての選択が不適切であると判断されていないかを確認し、不適切であると判断されていなかった場合には、前記複数のＧＵＩ部品セットのうちの前記ひとつ以上を、前記選択手段により選択された前記第一のプロパティ値群と前記第二のプロパティ値群が適用された状態にて、前記表示手段に表示させるステップと
を含む
ことを特徴とする、編集プログラム。
【請求項３】
前記記憶手段が、
前記複数のＧＵＩ部品セットにわたって適用したときに不整合を生じない、複数種類の前記第一のプロパティ値群のうちのひとつ以上と複数種類の前記第二のプロパティ値群のうちのひとつ以上との組み合わせを、上位グループとして定義した上位グループ情報
を有する
ことを特徴とする、請求項２記載の編集プログラム。
【請求項４】
前記上位グループ情報が、或る上位グループに属する前記第一のプロパティ値群のうちのいずれかおよび前記第二のプロパティ値群のうちのいずれかが改修されたときに、改修された内容に基づき、変更されたいずれかのプロパティ値群の属す先を、別の上位グループに変えるために用いられる
ことを特徴とする、請求項３記載の編集プログラム。
【請求項５】
前記判定するステップが、
前記複数のＧＵＩ部品セットのうちのいずれかに対して、複数種類の前記第一のプロパティ値群のうちの前記選択手段が選んだいずれかが２Ｄであることを表すものであり、かつ複数種類の前記第二のプロパティ値群のうちの前記選択手段が選んだいずれかが３Ｄであることを表すものであるときに、前記ひとつ以上に適用した前記第一のプロパティ値群と前記第二のプロパティ値群とが不適合となると判定するステップ
を含む
ことを特徴とする、請求項２記載の編集プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ソフトウェアアプリケーションのＧＵＩ画面の編集に関する。
【背景技術】
【０００２】
ＧＵＩ（Graphical User Interface；グラフィカルユーザーインターフェイス）を有するソフトウェアアプリケーション（以下、単に"アプリケーション"とも称する）には、表示画面（"ビュー"とも称する）を複数種類持つものも多い。
【０００３】
こうしたアプリケーションを開発するにあたり、開発者は、ＧＵＩエディター（ＧＵＩビルダーとも呼ばれる）というツールを使うことがある。ＧＵＩエディターでは、ビューを構築するＧＵＩ部品の配置や外観、およびビュー上での動作や音声出力などといった設定事項の管理作業・編集作業を行うことができる。なお、ＧＵＩエディターのうちの編集作業を担う機能のことを、特に分けてビルダーと呼ぶこともある。
【０００４】
或るビューは、一個以上のＧＵＩ部品から形成される。以下、ビューを形成する一個以上のＧＵＩ部品のことをＧＵＩ部品セットと呼ぶ。ＧＵＩ部品には通常、一種以上のプロパティ（画面内座標や背景色など）とそれに対応する値（"プロパティ値"；例えば背景色については「0xFFFFFF」など）が含まれている。つまり、複数種類のＧＵＩ部品セットを持つアプリケーションを編集しようとするならば、当然ながら各ＧＵＩ部品セットがそれぞれ持つ複数のＧＵＩ部品のそれぞれに対し、プロパティとプロパティ値に関する編集作業が発生するのである。
【０００５】
また、ＧＵＩ部品セットが持つプロパティをまとめて扱うことも行われている。例えば、或るＧＵＩ部品セットに十個のＧＵＩ部品がありそのすべてが画面内座標というプロパティを持っていたとする。すると、その十個の画面内座標についてのプロパティをまとめて「レイアウト」と称したデータのグループ（"プロパティグループ"）として扱うことが可能である。プロパティグループが持つプロパティ値の組み合わせ（この例では十個の画面内座標の値の組み合わせとなる）を複数種類用意し、適宜編集選択管理をすることもできる。
【０００６】
また、こうした編集作業を容易にするために、ＧＵＩ部品の配置の自由かつ動的な設定を可能にするための技術が知られている。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２００６−３３１３３９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
複数のＧＵＩ部品セットに関連するＧＵＩ部品群のプロパティを、複数種類のプロパティグループにまとめて管理しようとする場合（例えば複数のビューに使用する外観や配置について各々プロパティグループを設定する場合）を考える。
【０００９】
こうした場合、従来では、複数種類のプロパティグループの値の設定をそれぞれ独立に行っていた。しかし、各々のプロパティグループに含まれるプロパティとそのプロパティ値によっては、プロパティグループ同士をひとつのＧＵＩ部品セットへと併せて適用できなくなるような不整合もありえる。すなわち、不整合発生の可能性を考慮することなくプロパティグループをそれぞれ独立に設定できてしまうがために、或るＧＵＩ部品セットについてはプロパティグループ同士の整合に問題がなかったとしても、別のＧＵＩ部品セットにおいては不整合となる場合がある、という問題が起きていた。
【００１０】
こうして、不整合となるようなプロパティグループの組み合わせが或るＧＵＩ部品セットについて生じてしまうと、複数のＧＵＩ部品セットにまたがってプロパティグループを設定しているがゆえに、それらすべてのＧＵＩ部品セットの編集に悪影響が及びかねない。
【００１１】
しかも、プロパティグループの組み合わせが不整合となっているかどうかは、開発者が編集作業を行っているＧＵＩ部品セット（から構築されるビュー）についてしか通常は確認ができない。このため開発者にとっては、別のＧＵＩ部品セットで不整合による問題が発生しているのかどうかが、編集対象のＧＵＩ部品セット（から構築されるビュー）を切り換えてみるまでわからず、作業上余計な手間をかけざるをえないという問題もあった。
【００１２】
以上に述べた背景の下、複数のＧＵＩ部品セットにまたがった複数種類のプロパティグループを扱う編集作業において、編集対象とするそれらの複数のＧＵＩ部品セットを俯瞰して整合性の問題を抑止できるような新規な技術が必要とされている。
【課題を解決するための手段】
【００１３】
本発明の或る実施形態においては、
ひとつ以上のＧＵＩ（Graphical User Interface）部品から各々が構築される複数のＧＵＩ部品セットを持つアプリケーションを編集するための編集装置であって、前記ＧＵＩ部品の各々は、ひとつ以上のプロパティと、前記ひとつ以上のプロパティの各々に対応したプロパティ値と、を含み、前記編集装置が、
(a) 前記複数のＧＵＩ部品を表すデータを格納し、また、前記複数のＧＵＩ部品が持つプロパティのそれぞれを、少なくとも第一のプロパティグループおよび第二のプロパティグループに属させるように分類されて格納された、記憶手段
を含み、ここで、
前記記憶手段が、前記第一のプロパティグループに関するプロパティ値の組み合わせを、第一のプロパティ値群として複数種類有しており、
前記記憶手段が、前記第二のプロパティグループに関するプロパティ値の組み合わせを、第二のプロパティ値群として複数種類有しており、また、
さらに前記編集装置が、
(b) 前記記憶手段から読み出した複数種類の前記第一のプロパティ値群のうちからいずれかを選んで、前記複数のＧＵＩ部品セットのうちに含まれるＧＵＩ部品に対して適用させ、また、前記記憶手段から読み出した複数種類の前記第二のプロパティ値群のうちからいずれかを選んで、前記複数のＧＵＩ部品セットのうちに含まれるＧＵＩ部品に対して適用させる、選択手段と、
(c) 前記選択手段により選択された前記第一のプロパティ値群と前記第二のプロパティ値群とが、前記複数のＧＵＩ部品セットのうちの前記ひとつ以上のうちのいずれかにて、不整合となるかどうかを判定する、判定手段と、
(d) 前記複数のＧＵＩ部品セットのうちのひとつ以上を表示するための、表示手段と
を含み、ここで、
前記判定手段は、選択された前記第一のプロパティ値群と前記第二のプロパティ値群とが不整合となるＧＵＩ部品セットが存在した場合に、前記選択手段の行った選択が不適切であると判断し、
前記表示手段は、
前記選択手段の行った選択が前記判定手段によって不適切であるとされていないかを確認し、
不適切であるとされていなかった場合には、前記複数のＧＵＩ部品セットのうちの前記ひとつ以上を、前記選択手段により選択された前記第一のプロパティ値群と前記第二のプロパティ値群が適用された状態にて表示する
という編集装置が提供される。
【００１４】
また、そうした効果が得られる方法とプログラムも、本発明の或る実施形態において提供される。
【発明の効果】
【００１５】
本発明の実施形態にかかる装置、方法、もしくはプログラムにより、複数のＧＵＩ部品セットにまたがって適用される複数種類のプロパティグループを扱う編集作業にて、それら複数のＧＵＩ部品セットを俯瞰して整合性の問題を抑止できるという効果が得られる。
【図面の簡単な説明】
【００１６】
【図１】単純化したビューとプロパティグループの関係を表した模式図である。
【図２Ａ】単純化したビューとプロパティグループの関係を図１に掲げた関係をもとに示す表である。
【図２Ｂ】単純化したビューとプロパティグループの関係を図１に掲げた関係をもとに示す表である。
【図２Ｃ】単純化したビューとプロパティグループの関係を図１に掲げた関係をもとに示す表である。
【図３】本発明の実施形態の第一の実施例にかかる、システム 300 の構造を示す模式図である。
【図４】本発明の実施例にて使用可能な、データの格納態様の例 400 の概観を示す図である。
【図５】本発明の実施例にて使用可能な、ビューデータの構造例 500 を示す図である。
【図６】プロパティグループとしてのレイアウトの値（の一部）の第一の例を示すデータ 600 を表す模式図である。
【図７】プロパティグループとしてのレイアウトの値（の一部）の第二の例を示すデータ 700 を表す模式図である。
【図８】プロパティグループとしてのスキンの値（の一部）の第一の例を示すデータ 800 を表す模式図である。
【図９】プロパティグループとしてのスキンの値（の一部）の第二の例を示すデータ 900 を表す模式図である。
【図１０】システムデータの例 1000 を示す模式図である。
【図１１】リスト 1010 をツリー構造で表現して格納するグループデータ 1100 を示す模式図である。
【図１２】第一の実施例における処理の流れを表すフローチャートである。
【図１３Ａ】図１２に示した処理を実施できるユーザーインターフェイス 1300 を描いた模式図である。
【図１３Ｂ】図１３Ａに示したユーザーインターフェイス 1300 の別の態様を示した図である。
【図１４】本発明の実施形態の第二の実施例にかかる、システム 1400 の構造を示す模式図である。
【図１５Ａ】第二の実施例における処理の流れを表すフローチャート（その1）である。
【図１５Ｂ】第二の実施例における処理の流れを表すフローチャート（その2）である。
【図１６Ａ】本発明の実施形態にかかるＧＵＩ編集プログラムの持つ編集画面のスクリーンショット例である。
【図１６Ｂ】編集対象ビュー（２Ｄ）のスクリーンショット例である。
【図１６Ｃ】編集対象ビュー（３Ｄ）のスクリーンショット例である。
【図１７】本発明の実施形態にかかるプログラムを実行することができるハードウェア構造を示す概要図である。
【図１８】本発明の実施形態にかかるプログラムを実行することができるハードウェアの実装例を示す模式図である。
【発明を実施するための形態】
【００１７】
以下、本発明の実施形態を図面を参照しつつ詳細に説明するが、これは本発明を何ら限定するものではない。
【００１８】
〔定義〕
本明細書において使用する術語についてこれより解説を行う。
【００１９】
「ＧＵＩ」とは、アプリケーションをユーザーが使うためのインターフェイスのことを指す。
【００２０】
「ＧＵＩ部品」とは、アプリケーションの持つＧＵＩを構築するための構成要素（コンポーネント）のことを指す。ＧＵＩ部品の種別としては例えば、ウィンドウ、ラベル、アイコン、チェックボックス、プッシュボタン、ラジオボタン、スピンボタン、アローボタン、スクロールバー、プログレスバー、プルダウンバー、コンボボックス、パネル、スライダー、ダイアログ、タブ、ペイン、テキストフィールド、などが含まれるが、これらに限定はされない。また本明細書では、「ＧＵＩ部品」という語により、上述したコンポーネントとしてのＧＵＩ部品から作成したインスタンスのことも指す。
【００２１】
「ビュー」とは、アプリケーションが画面に描画され表示されるさま、あるいはユーザーに表示手段を介して提示されるさまのことを指す。ＧＵＩを持つアプリケーションはビューを一種類以上有する。ビューは、一種以上のＧＵＩ部品（"ＧＵＩ部品セット"）から構築される。複数のビューを持つアプリケーションの場合、各ビューに含まれるＧＵＩ部品の組み合わせ同士は、一部が重複していてもよく、まったく異なっていてもよく、あるいはまったく同じであってもかまわない。また、ビューのことを「表示画面」とも、また単に「画面」と称することもある。
【００２２】
「プロパティ」とは、ここでは各々のＧＵＩ部品が持つ一種以上の特性（属性）を表す情報（の名称）を指す。プロパティとしては例えば、そのＧＵＩ部品が画面内でどこに配置されるかを示す座標（Ｘ座標、Ｙ座標、Z座標など）、ＧＵＩ部品の幅や高さ（ピクセル単位などで表すことができる）、背景色、フォント種別、文字色、カメラ設定、２Ｄ/３Ｄの別、背景イメージ、２Ｄイメージ、ボタン押下時に表示するイメージ（押下時イメージ）、３Ｄモデル、光源設定、材質、拡大率、音声などが含まれるがこれらに限定はされない。
【００２３】
「プロパティ値」とは、プロパティに応じた値のことである。例えばプロパティが"背景色"であれば、プロパティ値として"白"（を表す16進数である"0xFFFFFF"）などを設定できる。別の例として、プロパティが"幅"であれば、プロパティ値として"100px"などを設定できる。さらに別の例として、プロパティが"押下時イメージ"であれば、プロパティ値として"push_button.png"（ファイル名）などを設定できる。
【００２４】
「プロパティグループ」とは、複数個のプロパティをまとめたもののことを指す。例えば、プロパティを三個ずつ持つＧＵＩ部品が二個あったとして、その六個のプロパティをまとめて「プロパティグループ」と称することができる。また、或る種のプロパティグループのことを、「スキン」や「レイアウト」と呼ぶこともある（例は後述する）。なお、プロパティグループが持つプロパティの各々に対応するプロパティ値を（まとめて）設定することを、本明細書では簡単のため「プロパティグループに属するプロパティ値の設定」とも「プロパティグループ値の設定」とも表現することがある旨に留意されたい。敷衍して、或るビューを構築する複数のＧＵＩ部品（ＧＵＩ部品セットの各々）が持つ或るプロパティのプロパティ値をまとめて設定することを、簡単のため「ビューにプロパティグループ値を設定する」とも「ビューにスキン／レイアウトを適用する」とも表現することがある。
【００２５】
「スキン」とは、ＧＵＩ部品の外観に関する設定をするためのプロパティグループの持つプロパティ値の組み合わせ、またはそうした組み合わせの群のことをいう。例えば、複数のビューにまたがって外観を統一するようにプロパティ値をまとめて設定したとき、「スキン（の値）を適用した」ともいう。スキンとしてくくられうるプロパティとしては、２Ｄイメージ、背景イメージ、文字色、３Ｄモデル、材質、光源設定などがあるが、これはあくまで例である。
【００２６】
「レイアウト」とは、ＧＵＩ部品の配置に関する設定をするためのプロパティグループの持つプロパティ値の組み合わせ、またはそうした組み合わせの群のことをいう。例えば、複数のビューにまたがってＧＵＩ部品をどこに置くかを統一的に決めるようにプロパティ値をまとめて設定したとき、「レイアウト（の値）を適用した」ともいう。レイアウトとしてくくられうるプロパティとしては、Ｘ座標、Ｙ座標、Z座標、幅、高さ、拡大率、２Ｄ／３Ｄの別などがあるが、これはあくまで例である。なお、レイアウトとスキンは排他的なものではなく、含まれるプロパティが重複していてもかまわない。
【００２７】
（ＧＵＩ部品やインターフェイスなどが）「２Ｄ」であるとは、それらが二次元環境内で使用されることを前提として定義されている旨を意味する。なお二次元環境は、例えばＸ座標とＹ座標で定義できる。
【００２８】
（ＧＵＩ部品やインターフェイスなどが）「３Ｄ」であるとは、それらが三次元環境内で使用されること、を前提として定義されている旨を意味する。三次元環境は、例えばＸ座標とＹ座標とZ座標で定義できる。なお、平面ディスプレイなどの旧来の二次元的表示手段では、三次元環境を二次元的に表示することになる。しかしそのように表示されたからといって「３Ｄ」が「２Ｄ」に変わるわけではないのは、当業者には理解できることだろう。「２Ｄ」と「３Ｄ」をわけへだてているのはデータの種別であって、画面表示の方法ではない。とはいえ本発明の他の実施形態では、上述したような「２Ｄ」と「３Ｄ」の区別法以外の区別もまた想定されている。例えば、平面ディスプレイで平面的に表示されるＧＵＩ部品を２Ｄとくくり、立体的に影つきを施したＧＵＩ部品のことを３Ｄとくくるような場合もまた、本発明の実施形態が想定する範囲内といえる。
【００２９】
（プロパティグループ同士が）「不整合である」または「共存できない」とは、第一のプロパティグループが持ついずれかのプロパティ値と、第二のプロパティグループが持ついずれかのプロパティ値とが、いずれかのビューにおいて共存できないということを指す。あるいは換言すれば、それらのプロパティ値を設定してしまうと、或るビューの編集をするうえで不適切となる、ということでもある。例えば、或るＧＵＩ部品の持つ或るプロパティが、２Ｄであるか３Ｄであるかを示すもの（"２Ｄ/３Ｄの別"）であったとする。簡単のため、そのプロパティのプロパティ値は "２Ｄ" か"３Ｄ" であるとする。そのＧＵＩ部品のプロパティ "２Ｄ/３Ｄの別" が二種類あり、それらを、第一のプロパティグループと第二のプロパティグループがそれぞれ設定するものとする。このとき、或るビューにて、第一のプロパティグループと第二のプロパティグループのプロパティ値が等しくならないことが、プロパティグループ同士が「不整合」となる一例といえる。より具体的には、或るビューにて、第一のプロパティグループのプロパティ値が "２Ｄ" で、第二のプロパティグループのプロパティ値が "３Ｄ" になる場合が「不整合」となる一例といえる。あるいは別の例として、第一のプロパティグループのプロパティ値が静止画像を示すものであって、第二のプロパティグループのプロパティ値が動画を示すという場合も、環境・形式によっては「不整合」となりうる。その他、当該分野の技術常識に照らして「不整合」となると考えられるあらゆるプロパティ値の組み合わせも、本発明の実施形態は包摂する。
【００３０】
〔実施形態〕
本発明の実施形態を以降に説明してゆく。 k, lk, m, i, ni,j, jm, j'm はいずれも自然数である。
【００３１】
或るソフトウェアアプリケーションが持つＧＵＩ部品を、lk個ずつk種類の組に分けたおのおのを「ＧＵＩ部品セット」として、 U(k) (k=1,2,...,lk) と表す。
【００３２】
なお、後述する例では簡単のため k がビューの種類数と等しくなるような例を説明しているが、本発明の別の実施形態では k がビューの種類数と異なる場合についても想定されている。例えば、或るひとつのビューに複数種類のＧＵＩ部品セットを使う場合についても、本発明の実施形態を適用することが可能である。
【００３３】
m種類のプロパティグループを設定するとして、おのおのをPG(i) (i=1,2,...,m) と表す。
【００３４】
上述したように、或るプロパティグループ PG(i) の設定に含まれるプロパティと、そのプロパティに設定するプロパティ値の組み合わせの集合を、その「プロパティグループ PG(i) の値（設定）」と称する。プロパティグループ PG(i) の値は複数種類用意でき、そのなかから実際のＧＵＩ部品のプロパティに設定される値を動的に選択して使用できる。 PG(i) がni種類の値を持つとして、その選択に使用される識別子を T(i,j) (i=1,2,...,m; j=1,2,...,ni) と表す。
【００３５】
すると或るＧＵＩ部品セット U(k) に対するプロパティグループ PG(i) の設定のことを、「 U(k) に対するプロパティグループ PG(i) の設定」と称し、 C(U(k),T(i,j)) (k=1,2,..,lk; i=1,2,...,m; j=1,2,..,ni) と表す。
【００３６】
或るＧＵＩ部品セット U(k) についてのプロパティ値の設定は、 U(k) に対するプロパティグループ PG(i) の設定をすべてのプロパティグループについて組合せたものとなる。これは「ＧＵＩ部品セット U(k) の設定」と称する。 U(k) の設定は、 UC(k,j1,...,jm) = C(U(k),T(1,j1))・C(U(k),T(2,j2))・...・C(U(k),T(m,jm)) と表される。ここで j1〜jm はそれぞれ、 PG(1)〜PG(m) が持つ値の種類数を上限とする自然数である。
【００３７】
また、 T(1,j1)・T(2,j2)・...・T(m,jm) のことを、「プロパティグループの設定の組み合わせ」とも呼ぶ。
【００３８】
すると、ＧＵＩ部品セット U(k) の設定 UC(k,j1,...,jm) は、ビューを設計するうえでの制約や、ＧＵＩ部品描画レンダラに課される制限などにより、全ての可能な k, j1,...,jmの組み合わせについて成り立つとは限らない。そこで、この k, j1,...,jmの組み合わせが可能かどうかの判定を行う。こうした判定のことを、「ＧＵＩ部品セット U(k) の設定 UC(k,j1,...,jm) の実現可能判定」と呼び、 JUC(k,j1,...,jm) と表す。
【００３９】
判断 JUC(k,j1,...,jm) は、ＧＵＩ部品セット U(k) とその設定 UC(k,j1,...,jm) の内容に基づいて実施される。
【００４０】
ここで、 JUC(k,j1,...,jm) と JUC(k,j'1,...,j'm) が実現可能と判定されたうえで、或るプロパティグループの設定識別子 T(i,ji) と T(i,j'i) を入れ換えた判定 JUC(k,j1,...,j'i,...,jm) が実現可能と判定されたとする。このとき、どのプロパティグループの設定識別子 T(i,ji) と T(i,j'i) を入れ換えた判定も実現可能と判定されるものとできる。
【００４１】
逆に、或る属性グループの設定識別子 T(i,ji) と T(i,j'i) を入れ換えた判定 JUC(k,j1,...,j'i,...,jm) が実現不可能と判定されたとする。このときは、どのプロパティグループの設定識別子 T(i,ji) と T(i,j'i) を入れ換えた判定も、実現不可能と判定されるものとできる。
【００４２】
以上述べたことを前提として、本発明の実施形態は、編集対象であるソフトウェアアプリケーションに含まれるＧＵＩ部品セット U(k) の各々について、その設定 UC(k) を作成する。
【００４３】
そして本発明の実施形態は UC(k) の作成にあたり、プロパティグループ PG(i) の各々について、それぞれ独立して設定識別子を定めることができる。さらに本発明の実施形態は、それら設定識別子の組み合わせの整合／不整合を確認させることも可能である。
【００４４】
また本発明の実施形態では、編集対象となるうちのＧＵＩ部品セットのすべてに対して、選択された設定識別子の組み合わせが適用されうる。
【００４５】
しかし、或るＧＵＩ部品セット U(k1) の設定の実現可能判定 JUC(k1,j1,...,jm) にて実現不可能と判定されたとしても、他のＧＵＩ部品セット U(k2) の設定の実現可能判定 JUC(k2,j1,...,jm) では、必ずしも実現不可能と判定されるとはかぎらない。
【００４６】
そこで、編集対象とするＧＵＩ部品セットて実現不可能な判定がなされないような設定識別子の集合を作成することで、上記の問題を回避できる。こうした設定識別子の集合を「実現可能設定識別子群」とも呼ぶ。実現可能設定識別子群は、以下の二つの性質を具える。
【００４７】
(a) 編集対象とするＧＵＩ部品セットに関する実現可能判定 JUC(k,j1,...,jm) によって実現可能と判定される設定識別子の組み合わせ T(1,j1)・T(2,j2)・...・T(m,jm) に関与するそれぞれのプロパティグループの設定識別子のすべてを含むこと。
【００４８】
(b) 上記(a)の設定識別子群において、あるプロパティグループ PG(i) の設定識別子 T(i,ji) を T(i,j'i) に変更しても、編集対象とするＧＵＩ部品セット含まれるＧＵＩ部品セットに対して JUC(k,j1,...,j'i,...,jm) が実現可能と判定される場合には、 T(i,j'i) を含むこと。
【００４９】
こうした実現可能設定識別子群は、装置がプロパティ値に基づいて算出することもできるし、あるいはユーザーの指定によってあらかじめ作成しておくことも可能である。
【００５０】
このように実現可能設定識別子群を定めることにより、或るＧＵＩ部品セット（または、そのＧＵＩ部品セットから構築されるビュー）に、或るプロパティグループの設定を適用できるのかどうかが容易に判別できるという効果が得られる。
【００５１】
ここより以下、上述した実施形態を具体的な例にあてはめてさらに説明してゆく。
【００５２】
図１は、本発明の実施形態の作用を説明するための、単純化したビューとプロパティグループの関係を表した模式図である。以降では簡単のため、ビューの数とＧＵＩ部品セットの数が等しい場合を例示している。とはいえ上述したように、ビューの数とＧＵＩ部品セットの数が異なっていてもかまわない。したがって本発明の他の実施形態では、ビューの数とＧＵＩ部品セットの数が異なる。
【００５３】
図１では、三つのビュー(あ)(い)(う)があり、それらにまたがって適用する第一のプロパティグループと第二のプロパティグループがある場合を仮定してある。さらに図１には、ビュー(あ)の設定データ 110 と、ビュー(い)の設定データ 120 と、ビュー(う)の設定データ 130 とを示してある。
【００５４】
例えば、第一のプロパティグループとしてはレイアウトなど、第二のプロパティグループとしてはスキンなどが含まれる。なおこうしたプロパティグループの例示にはとらわれず、第一のプロパティグループと第二のプロパティグループとしてスキンやレイアウト以外のものを選択することも、本発明の実施形態群では想定されている。また、プロパティグループが二種であるというのもまた一例に過ぎない。二種よりもプロパティグループが多い場合をも、本発明の実施形態群が包摂している旨が、本明細書を通読すれば理解できるであろう。
【００５５】
図１の例では、第一のプロパティグループの値（換言すれば、第一のプロパティグループに属するプロパティの持つプロパティグループの値の組み合わせ）は、[1], [2], [3] の三種類とする。同様に第二のプロパティグループの値も[A], [B], [C] の三種類とする。当然のことながら、これよりも多い種類数を用いてもよいし、もしくは、これよりも少ない種類数を用いてもよい。
【００５６】
第一のプロパティグループの値にも第二のプロパティグループの値にも、共存できないプロパティ値αとβのいずれかが含まれるものとする。そうしたプロパティ値αとβの例としては、２Ｄであることと３Ｄであること、などがあるが、これには限定はされない。
【００５７】
プロパティ値αとβを考慮したうえで、ビュー(あ)の設定データ 110 では、許容される値の組み合わせは C(U(1)) = ([1],[A]), ([1],[B]), ([2],[A]), ([2],[B]), ([3],[C]) の五通りとなる。
【００５８】
同様にビュー(い)の設定データ 120 での許容される値の組み合わせは C(U(2)) = ([1],[A]), ([1],[B]), ([1],[C]), ([2],[A]), ([2],[B]), ([2],[C]), ([3],[A]), ([3],[B]), ([3],[C]) の九通りとなる。
【００５９】
そしてビュー(う)の設定データ 130 での許容される値の組み合わせは、 C(U(3)) = ([1],[A]), ([1],[B]), ([1],[C]), ([2],[A]), ([2],[B]), ([2],[C]), ([3],[A]), ([3],[B]), ([3],[C]) の九通りとなる。
【００６０】
すると、三種のビューすべてで不整合とならない値の組み合わせは、 ([1],[A]), ([1],[B]), ([2],[A]), ([2],[B]), ([3],[C]) の五通りとなる。これらはすなわち、実線矢印で結ばれた第一のプロパティグループと第二のプロパティグループの組み合わせに相当する。それ以外の第一のプロパティグループと第二のプロパティグループの組み合わせは、いずれかのビューで不整合になってしまうため、不適であるといえる。
【００６１】
不整合となる具体例を考える。例えば点線矢印で結んだ第一のプロパティグループと第二のプロパティグループの組み合わせは、ビュー(い)とビュー(う)では不整合を起こさない。しかし、ビュー(あ)では不整合を起こすのである。この場合に留意されたいのは、ビュー(い)ではどちらのプロパティグループもプロパティ値αを持っていて、ビュー(う)ではどちらのプロパティグループもプロパティ値βを持っていることである。つまり、単純にプロパティグループがプロパティ値がαかβを持っていることだけからでは、プロパティグループが不整合となるかどうかが判別できるとはかぎらないのである。
【００６２】
設定データ 110, 120, 130 について、さらに以下に図２Ａから図２Ｃに関連させて説明してゆく。
【００６３】
図２Ａから図２Ｃは、本発明の実施形態の動作を説明するための、単純化したビューとプロパティグループの関係を図１に掲げた関係をもとに示す表である。これらの表では、行方向に第一のプロパティグループの値を、列方向に第二のプロパティグループの値を、それぞれ並べてある。第一のプロパティグループの値と第二のプロパティグループの値に、共存できないプロパティ値αとβのいずれかが含まれることも示してある。
【００６４】
図２Ａにはビュー(あ)に関する設定データ 110 を模式化した表 210 を示してある。表 210 では、 ([1],[C]), ([2],[C]), ([3],[A]), ([3],[B]) の四通りの組み合わせにて不整合が生じることがわかる。また、図２Ａには後述するブロック240, 242 も示してある。
【００６５】
図２Ｂにはビュー(い)に関する設定データ 120 を模式化した表 220 を示してある。また、図２Ｃにはビュー(う)に関する設定データ 130 を模式化した表 230 を示してある。表 220 でも表 230 でも、表 210 とは異なり、不整合はいずれの組み合わせでも生じないことがわかる。この例においては、不整合とならない組み合わせを律しているのはビュー(あ)である。
【００６６】
すると、本発明の或る実施形態においては、三種のビューを通して不整合を生じない組み合わせ同士をまとめた矩形ブロック（以下、簡単のためただ"ブロック"とも称する）を見出せることもわかる。
【００６７】
例えば、ひとつめのブロック 240 として、([1],[A]), ([1],[B]), ([2],[A]), ([2],[B]) の 2x2 ブロック。ふたつめのブロック 242 として、 ([3],[C]) という 1x1 ブロック。と、二種のブロックを"矩形に"括ることもできる。
【００６８】
あるいは、ひとつめのブロックとして、 ([1],[A]), ([1],[B]) の 2x1 ブロック。ふたつめのブロックとして、 ([2],[A]), ([2],[B]) の 2x1 ブロック。みっつめのブロックとして、([3],[C]) という 1x1 ブロック。と、三種のブロックを括ることもできる。
【００６９】
なお当然のことではあるが、こうしたブロックを括るにあたり、これらの表で示された行と列の順序を入れ換えてもよい。
【００７０】
こうしたブロックを算定するにはあたっては例えば、ブロックの候補に含まれる行と列のすべての組み合わせが、少なくとも一部のビューに対して不整合が生じないかを確認することで行うことができる。あるいは別の手法として、表 210, 220, 230 の各項をAND演算でかけあわせた表をつくってその表上で矩形にブロックを括ってもよい。なお「AND演算でかけあわせる」とは、ここでは表 210, 220, 230 の「○」を1に、「×」を0としてAND演算をすることを意味している。例えば表 210, 220, 230 のAND演算かけあわせからは、各項に表 210 と同じ値を持つ表が得られることになる。
【００７１】
こうしたブロックは、不整合を生じることなく相互に変換できる、プロパティグループの値の組み合わせ（群）を示すことになる。本発明の或る実施形態では、そうしたブロックのことを、「上位グループ」または「デザイングループ」と称することもある。
【００７２】
本発明の或る実施形態では、プロパティグループ値の組み合わせがどのブロックに属するのかを参照することで、或るビューの編集中にプロパティグループの値を変更する際に、不整合を生じずに使用できるプロパティグループ値の組み合わせを提示できるという効果が得られる。
【００７３】
なお、ここまでの説明では二種のプロパティグループについてのみ述べてきたが、それよりも多種のプロパティグループも同様の考えかたで本発明の実施形態に包摂されることは明らかといえよう。また、"共存できない"プロパティ値も、二種よりも多く用いてもよい。その際の共存できない組み合わせもまた任意のものが本発明の実施形態に包摂される。例えば、三種のプロパティ値α、β、γがあったとして、プロパティ値αとβが共存できず、βとγが共存できないが、αとγは共存できる、という場合についても、本発明の実施形態が想定するところである。
【００７４】
例えば本発明の別の実施形態では、三種のプロパティグループを用いる。この場合、 m=3, i が1から3の整数のとき ni=3 とすれば、ありえる値の組み合わせの種類数 T は 3*3*3 = 27通りになる。そして用いるビュー群を通じて不整合が起きないような三次元の"方形の"ブロックを、例えば上述した手法で算定できる。そうした"方形の"ブロックの大きさは例えば1x1x1から3x3x3まで想定できる。なお、"矩形"や"方形"というのはあくまで座標空間を表すための比喩的な表現であることに留意されたい。
【００７５】
以下、本発明の実施形態をさらにくわしく説明してゆく。本発明の実施形態群は、以下の実施例を含むが、これらに限定はされず、他の実施例をも想定していることに留意されたい。
【００７６】
後述する実施例では、編集対象とする複数のビューにまたがって適用する二種のプロパティグループとして「レイアウト」と「スキン」がある場合を仮定してある。レイアウトの値（換言すれば、レイアウトに属するプロパティの持つプロパティグループの値の組み合わせ）は、[1], [2], [3] の三種類とする。同様にスキンの値も[A], [B], [C] の三種類とする。レイアウトの値にもスキンの値にも、２Ｄ/３Ｄの別を示すプロパティ値が含まれているものとする。そして、一方が２Ｄで他方が３Ｄであったときにはレイアウトとスキンの値が共存できない（不整合である）ものとする。
【００７７】
〔第一の実施例〕
［システム構造］
図３は、本発明の第一の実施例にかかる、システム 300 の構造を示す模式図である。システム 300 には、ビュー編集ユニット 310 と、システムデータ管理ユニット 320 と、処理ユニット 360 とが含まれる。なお、システム 300 をプログラムとして実施する場合には、システム 300 のこれらの構成ユニットは、記憶手段（後述する外部記憶装置 1708 など）に保存されたデータに基づいたものとなる。それらのデータが、バッファ（後述するメモリ 1702 など）に読み出されたうえで実行手段（後述するＣＰＵ 1700 など）によって実行されることで、これらの構成ユニットとして機能できる。実行手段により実行されたこれらの構成ユニットは、記憶手段からデータを読み出して使用できる。
【００７８】
ビュー編集ユニット 310 は、編集対象であるソフトウェアアプリケーションのビュー（またはそのビューを構築するＧＵＩ部品セット）を編集するにあたってのユーザーインターフェイスを提供するための手段である。ビュー編集ユニット 310 には、選択ユニット 312 と、判定ユニット 314 と、表示制御ユニット 316 とが含まれる。
【００７９】
選択ユニット 312 は、レイアウトデータ管理ユニット330 およびスキンデータ管理ユニット 340 が管理するうちからレイアウトとスキンの値を選択する。この例では選択ユニット 312 は、レイアウト[1]-[3] 331-333 のうちのいずれかと、スキン[A]-[C] 341-343 のうちのいずれかを選択することになる。
【００８０】
判定ユニット 314 は、デザイングループ情報管理ユニット 350 の持つ情報を参照して、不整合が生じるレイアウトとスキンの値の組み合わせを選択ユニット 312 が選択しないように抑制する。こうした抑制は例えば、選択ユニット 312 にまず組み合わせを選ばせてから、不適であるかどうかを判別し、不適であったならその選択を無効にすることで、実施できる。あるいは別の手法として、判定ユニット 314 が選択ユニット 312 のとりうる選択肢のうち不適であると判別したものをマスクして、選択ユニット 312 の選択肢を狭めるようにしても、抑制を実施可能である。
【００８１】
表示制御ユニット 316 は、処理ユニット 360 からの出力を承けて、レイアウトとスキンの適用されたビューを、表示手段（後述する出力装置 1706 など）に表示させる。換言すれば、プロパティグループとしてのレイアウトに含まれるうちの値のいずれかと、スキンに含まれるうちの値のいずれかとが、組み合わせて適用されたビューを、表示制御ユニット 316 が表示手段に表示させる、ということである。
【００８２】
システムデータ管理ユニット 320 は、システム 300 が用いるデータ（"システムデータ"）を管理している。システムデータ管理ユニット 320 には、レイアウトデータ管理ユニット 330 と、スキンデータ管理ユニット 340 と、デザイングループ情報管理ユニット 350 とが含まれる。また、システムデータ管理ユニット 320 では、ビューを定義するためのビューデータ（図３には不図示）も管理できる。
【００８３】
レイアウトデータ管理ユニット 330 は、この実施例では三種の値、すなわちレイアウト[1]-[3] 331-333 を管理する。
【００８４】
スキンデータ管理ユニット 340 は、この実施例では三種の値、すなわちスキン[A]-[C] 341-343 を管理する。なお、これらのレイアウトとスキンの値は、前述した記憶手段などから読み出されたものである。
【００８５】
デザイングループ情報管理ユニット 350 は、レイアウトとスキンを組み合わせた一種以上のデザイングループ（"上位グループ"）を表すデータを管理するためのユニットである。この実施例では、各デザイングループは、一種以上のレイアウトの値と、一種以上のスキンの値に対応する。同一デザイングループに含まれるレイアウトとスキンの値の組み合わせは、値を入れかえても不整合を生じないものと設定できる。
【００８６】
処理ユニット 360 は、選択ユニット 312 によるレイアウトとスキンの選択された値をビューデータ（に含まれるＧＵＩ部品）に適用してビューを生成し、表示制御ユニット 316 へ出力してそのビューを表示させる。
【００８７】
［データ構造］
図４は、本発明の実施例、例えばシステム 300 にて使用可能な、データの格納態様の例 400 の概観を示す図である。ここでは簡単のため、ビュー(あ)とビュー(い)の二種類のビューだけを考えている。なお本発明の実施形態では、二種よりも多いビューを想定していることも既に明らかといえよう。またここでは、各ビューにＧＵＩ部品をひとつだけ描いてあるが、これはあくまでも説明をわかりやすくするための表現に過ぎない。当然のことながら、各ビューは複数のＧＵＩ部品を含むことができる。
【００８８】
格納態様 400 には、ビュー(あ)のビューデータ 412 と、ビュー(い)のビューデータ 414 とが含まれる。ビューデータ 412 もビューデータ 414 も、この実施例ではＧＵＩ部品をひとつ持っているように描かれているが、これはあくまで一例に過ぎないことは既に述べた通りである。。
【００８９】
格納態様 400 にはさらに、レイアウトデータ 430 とスキンデータ 440 とが含まれる。レイアウトデータ 430 は図３のレイアウトデータ管理ユニット 330 に管理されるものであって、三種の値すなわちレイアウト[1]-[3]を含む。スキンデータ 440 は図３のスキンデータ管理ユニット 340 に管理されるものであって、三種の値すなわちスキン[A]-[C]を含む。これらの値は、ビューデータ 412, 414 のＧＵＩ部品に適用できる。
【００９０】
格納態様 400 にはさらに、デザイングループ情報450 が含まれる。この実施例では、デザイングループ情報 450 は、デザイングループ甲（についての情報） 452 とデザイングループ乙（についての情報） 454 とを含んでいる。
【００９１】
レイアウトデータ 430 とスキンデータ 440 とデザイングループ情報 450 のことを、システムデータとも称する。このシステムデータがまとめて、図３のシステムデータ管理ユニット 320 に管理されていると解釈してもよい。またこのシステムデータは、記憶手段に保存され、使用される際にはシステム（システム 300 など）の構成ユニットにより呼び出される。（あるいはシステムがプログラムとして実現される場合には、そうした構成ユニットが、いずれかのシステムデータを読み出して使用するように、実行手段により実行される、と考えてもよい。）
【００９２】
レイアウトとスキンの値は複数のビューにて適用されうる。この実施例ではつまり、ビューデータ 412 およびビューデータ 414 の持つＧＵＩ部品にはどちらにも、レイアウト[1]-[3]のうちのいずれかと、スキン[A]-[C]のうちのいずれかが選択されて適用されることになる。
【００９３】
判定ユニット（図３の判定ユニット 314 など）は、レイアウト[1]-[3]とスキン[A]-[C]の組み合わせを、デザイングループに分別する。この実施例では、デザイングループ甲 452 が、レイアウト[1], [2] およびスキン[A], [B] の組み合わせを含む。すなわち、レイアウト[1]とスキン[A]の組み合わせが整合するものであるなら、レイアウト[1]とスキン[B]、レイアウト[2]とスキン[A]、レイアウト[2]とスキン[B]、のいずれの組み合わせも整合するということである。また、デザイングループ乙 454 は、レイアウト[3]とスキン[C]の組み合わせを含む。
【００９４】
この実施例では、デザイングループ甲 452 とデザイングループ乙 454 に含まれる以外の組み合わせは、不整合を生ずるものであるとしている。本発明の他の実施形態では、不整合なデザイングループを定めて利用してもよい。
【００９５】
図５は、本発明の実施例にて使用可能な、ビューデータの構造例 500 を示す図である。こうしたビューデータは、記憶手段に格納され、データ管理ユニット（システムデータ管理ユニット 320 など）により読み出され使用される。
【００９６】
ビューデータ構造 500 は、例えば図４のビューデータ412 に対応する。
【００９７】
ビューデータ構造 500 には、これがどのビューに対応したものなのかを示すラベル 502 が含まれている。さらに構造 500 には、ラベル 502 の直下に、ビュー(あ)が持つＧＵＩ部品（図４の 412 内の"ＧＵＩ部品"に相当）として、ボタンが三つとパネルが一つを含む。ボタンとしては、ボタンＩＤ(あ)-01 512 と、ボタンＩＤ(あ)-02 514 と、ボタンＩＤ(あ)-04 518 が含まれる。パネルとしては、パネルＩＤ(あ)-03 516 が含まれる。
【００９８】
この例では、ボタンＩＤ(あ)-01 512 と、ボタンＩＤ(あ)-02 514 と、パネルＩＤ(あ)-03 516 とは、独立して並列に存在している。一方、ボタンＩＤ(あ)-04 518 は、パネルＩＤ(あ)-03 522 に従属する「子部品」である。こうした場合例えば、ボタンＩＤ(あ)-04 518 は、パネルＩＤ(あ)-03 522 の表面に貼りつけられたボタンである。こうした際、ボタンＩＤ(あ)-04 518 のプロパティ値はパネルＩＤ(あ)-03 522 のプロパティ値に束縛されうる。例えばボタンＩＤ(あ)-04 518 の座標は、パネルＩＤ(あ)-03 516 の座標に束縛されうる。
【００９９】
図６は、プロパティグループとしてのレイアウトの値の第一の例を示すデータ 600 を表す模式図である。なおデータ 600 は、レイアウトの値のうち特定のビュー（この例ではビュー(あ)）に適用するものだけを抜粋していることに留意されたい。レイアウトの値には、ビュー(あ)以外のビューに適用するプロパティ値も含まれうる。
【０１００】
データ 600 は、例えば図４のビューデータ 412 内の"レイアウト[1]"に対応する。
データ 600 は、適用先であるビューのID（ここではビュー(あ)）を示すラベル 602 を含む。またデータ 600 は、レイアウトのどの値であるかを示すラベル 604 も含む。この例では、データ 600 はレイアウト[1]の一部であるので、ラベル 604 は "レイアウト[1]" であることを（当該技術分野において周知である手法により）示すことができる。
【０１０１】
またデータ 600 は、図５に示したボタンとパネルにそれぞれ対応する四種のプロパティ値群 612, 614, 616, 618 も含む。なお図６から図９では、具体的なプロパティ値を記載するに代えて、一部を除き簡単のためプロパティ名で示してある。
【０１０２】
ボタンＩＤ(あ)-01に対応するプロパティ値群 612 は、（このボタンがビュー(あ)上で表示されるに際しての）Ｘ座標と、Ｙ座標と、幅と、高さとを含んでいる。ボタンＩＤ(あ)-02に対応するプロパティ値群614 と、ボタンＩＤ(あ)-04に対応するプロパティ値群 618 についても同様である。また、パネルＩＤ(あ)-03に対応するプロパティ値群 616 も、"２Ｄ/３Ｄの別"を示すプロパティ値が含まれていることを除けばプロパティ値群 612 などと同様である。これら四種のプロパティ値群 612, 614, 616, 618 は、この実施例ではいずれも「２Ｄである」。
【０１０３】
図７は、プロパティグループとしてのレイアウトの値の第二の例を示すデータ 700 を表す模式図である。なおデータ 700 も、レイアウトの値のうち特定のビュー（この例ではビュー(あ)）に適用するものだけを抜粋していることに留意されたい。
【０１０４】
データ 700 は、例えば図４のビューデータ 412 内の"レイアウト[3]"に対応する。
データ 700 も、適用先であるビューのIDを示すラベル 702 と、レイアウトのどの値であるかを示すラベル 704 も含む。この例では、データ 700 はレイアウト[3]の一部であるので、ラベル 704 は "レイアウト[3]" であることを示している。
【０１０５】
またデータ 700 は、データ 600 と同様、図５に示したボタンとパネルにそれぞれ対応する四種のプロパティ値群 712, 714, 716, 718 も含む。
【０１０６】
ボタンＩＤ(あ)-01に対応するプロパティ値群 712 とボタンＩＤ(あ)-02に対応するプロパティ値群 714 は、この例では図６のプロパティ値群 612, 614 と同様に２Ｄである。
【０１０７】
しかし、パネルＩＤ(あ)-03に対応するプロパティ値群 716 は、"２Ｄ/３Ｄの別"を示すプロパティ値と、（３Ｄに特有である）"カメラ設定"を示すプロパティ値とを含んでいる。また、ボタンＩＤ(あ)-04に対応するプロパティ値群 718 も、"Z座標"と"拡大率"という３Ｄに特有であるプロパティ値を含んでいる。よって、プロパティ値群716, 718 は、この実施例では「３Ｄである」。
【０１０８】
図８は、プロパティグループとしてのスキンの値の第一の例を示すデータ 800 を表す模式図である。なおデータ 800 も、スキンの値のうち特定のビュー（この例ではビュー(あ)）に適用するものだけを抜粋していることに留意されたい。スキンの値には、ビュー(あ)以外のビューに適用するプロパティ値も含まれうる。
【０１０９】
データ 800 は、例えば図４のビューデータ 412 内の"スキン[A]"に対応する。
データ 800 も、適用先であるビューのIDを示すラベル 802 と、スキンのどの値であるかを示すラベル 804 も含む。この例では、データ 800 はスキン[A]の一部であるので、ラベル 804 は "スキン[A]" であることを示している。
【０１１０】
またデータ 800 は、データ 600 ほかと同様、図５に示したボタンとパネルにそれぞれ対応する四種のプロパティ値群 812, 814, 816, 818 も含む。
【０１１１】
ボタンＩＤ(あ)-01に対応するプロパティ値群 812 は、（このボタンがビュー(あ)上で表示されるに際しての）２Ｄイメージと、文字色とを含んでいる。ボタンＩＤ(あ)-02に対応するプロパティ値群814 と、ボタンＩＤ(あ)-04に対応するプロパティ値群 818 についても同様である。また、パネルＩＤ(あ)-03に対応するプロパティ値群 816 も、２Ｄイメージが背景イメージであること除けばプロパティ値群 812 などと同様である。なお、この実施例では「背景イメージ」も２Ｄであることを示すものとする。したがって、これら四種のプロパティ値群 812, 814, 816, 818 は、この実施例ではいずれも「２Ｄである」。
【０１１２】
図９は、プロパティグループとしてのスキンの値の第二の例を示すデータ 900 を表す模式図である。なおデータ 900 も、スキンの値のうち特定のビュー（この例ではビュー(あ)）に適用するものだけを抜粋していることに留意されたい。
【０１１３】
データ 900 も、適用先であるビューのIDを示すラベル 902 と、スキンのどの値であるかを示すラベル 904 も含む。この例では、データ 900 はスキン[C]の一部であるので、ラベル 904 は "スキン[C]" であることを示している。
【０１１４】
データ 900 は、例えば図４のビューデータ 412 内の"スキン[C]"に対応する。
プロパティ値群 912, 914 はそれぞれプロパティ値群 812, 814 と同様である。
【０１１５】
しかし、パネルＩＤ(あ)-03に対応するプロパティ値群 916 は、"光源設定"という３Ｄに特有であるプロパティ値を含んでいる。ボタンＩＤ(あ)-04に対応するプロパティ値群918 は、"３Ｄモデル"と"材質"という３Ｄに特有であるプロパティ値を含んでいる。よって、プロパティ値群 916, 918 は、この実施例では「３Ｄである」。なお、上記にて２Ｄか３Ｄであるとして示したプロパティはあくまで一例であることに留意されたい。本発明の別の実施形態では、例えば"材質"や"光源設定"についてのプロパティ値が、３Ｄに特有ではなく、２Ｄにも適用できうるものである。
【０１１６】
図６から図９に示したデータの例では、（ビュー(あ)に関して）レイアウト[1]とスキン[A]の組み合わせ、またはレイアウト[3]とスキン[C]の組み合わせは整合する。その一方で、レイアウト[1]とスキン[C]の組み合わせ、またはレイアウト[3]とスキン[A]の組み合わせは、（ビュー(あ)に関して）不整合となる。
【０１１７】
図１０は、システムデータの例 1000 を示す模式図である。システムデータ 1000 は、用意されたスキンの値とレイアウトの値が、どのデザイングループ名に対応するかについてのリスト 1010 を含む。システムデータ 1000 はさらに、ビューの名前（ID）のリスト 1020 も含む。本発明の或る実施形態では、システムデータ 1000 は、図４のレイアウトデータ 430 と、スキンデータ 440 と、デザイングループ情報 450 とに相当するデータといえる。
【０１１８】
図１１は、リスト 1010 をツリー構造で表現して格納するグループデータ 1100 の模式図である。
【０１１９】
グループデータ 1100 には、これがグループデータであることを示すラベル 1102 が含まれる。
【０１２０】
また、グループデータ 1100 は、デザイングループ甲に括られるレイアウト・スキンを示すデータ 1110 と、デザイングループ乙に括られるレイアウト・スキンを示すデータ 1120 とを含む。
【０１２１】
データ 1110 は、図１０に示したように、デザイングループ甲にレイアウト[1]とスキン[A]とが括られることを表す。データ 1120 は、図１０に示したように、デザイングループ乙にレイアウト[3]とスキン[C]とが括られることを表す。
【０１２２】
このようにグループデータを設定することで、後述するように実現可能なレイアウトの値とスキンの値の組み合わせを、効果的に提示することができる。
【０１２３】
なお、ここでは実施形態では各種のデータについて、理解しやすいようにツリー構造の例を開示してはいるが、この例に限らず、データを対応付けて管理可能なXMLやテーブル形式などの他の管理形式を採用してもよい。
【０１２４】
［処理の流れ］
図１２は、第一の実施例における処理の流れを表すフローチャートである。
【０１２５】
なお、ここに示す処理に先立ち、上述したようにデザイングループを作成しておく。デザイングループは例えば、候補となるレイアウトとスキンの値の組み合わせを選びだしてから、そのうちのレイアウト（スキン）の値を候補中の別の値と入れ換えて各ＧＵＩ部品セットについて不整合が生じないかを計算して作成できる。あるいは別の手法として、あらかじめ整合確認済のレイアウトとスキンの値の組み合わせを登録しておいてもよい。そして後述するように整合確認済のレイアウトとスキンの値の組み合わせを順次登録してゆくようにしてもよい。
【０１２６】
なお以下の処理の流れを説明するにあたっては、図３に示された構成ユニットおよび図４から図１１に示されたデータ構造を引用するが、本発明の実施形態はそれのみには限定はされない。
【０１２７】
まず段階 S1200 にて、編集画面にて編集中であるレイアウト（スキン）の値の選択先の変更が、ビュー編集ユニット 310 （図３参照）に指示される。つまり、レイアウト[1]のレイアウト[2]への変更などが指示される。この指示は、後述するユーザーインターフェイスを介し、任意の入力手段（後述する入力装置 1704 など）を使って行われることが可能である。なおここでいう「編集画面」とは、編集対象であるソフトウェアが持つビューを編集するための、本発明の実施形態にかかる編集装置が有するインターフェイスのことを指している。
【０１２８】
次に段階 S1210 にて、判定ユニット 314 が、上述した指示を受けた場合に変更されるレイアウト（スキン）の値が属するデザイングループを表すデータ（デザイングループ情報 450 ）を、例えばデザイングループ情報管理ユニット 350 から呼び出して、取得する処理を行う。
【０１２９】
そして段階 S1220 にて、判定ユニット 314 が、編集対象であるビューに現在適用されているスキン（レイアウト）の値が属するデザイングループを表すデータ（デザイングループ情報 450 ）を、例えばデザイングループ情報管理ユニット 350 から呼び出して、取得する処理を行う。
【０１３０】
こうして段階 S1230 では、段階 S1210 で得た変更先のレイアウト（スキン）の値と、段階 S1220 で得たスキン（レイアウト）の値とが、同じデザイングループに属しているかどうかを、判定ユニット 314 が比較して判断する。（あるいは、この処理をプログラムとして実施する場合には、実行手段が、そうした判定処理を行わせるように判定ユニット 314 を読み出して実行する。）
【０１３１】
段階 S1230 にて同じデザイングループに属していたと判断された場合、フローは段階 S1240 に進む。段階 S1240 では、変更先のレイアウト（スキン）の値（レイアウトデータ 430 など）と、もともと適用中であったスキン（レイアウト）の値（スキンデータ 440 など）とを適用された編集対象ビューについてのデータ（ビューデータ 412, 414 など）を、処理ユニット 360 が表示制御ユニット 316 へと出力する。表示制御ユニット 316 は、その編集対象ビューを表示手段（後述する出力装置 1706 など）に表示させる処理を行う。つまり、このレイアウトとスキンの値の組み合わせは整合する、ということである。望むならば、このレイアウトとスキンの値の組み合わせを、整合確認済組み合わせとしてシステムデータの一部として登録し、システムデータ管理ユニット 320 に管理させてもよい。そのように登録をすることで、デザイングループを参照することなくレイアウトとスキンの値の整合を判断することも可能となる。
【０１３２】
一方、段階 S1230 にて同じデザイングループに属していないと判断された場合、フローは段階 S1250 に進む。段階 S1250 では、判定ユニット 314 が、編集対象ビューの表示を抑制する。すなわち、不整合であるレイアウトとスキンの値を編集対象ビューに適用しない（あるいは適用したとしてもそれを表示せず、不整合である旨を通知する）、という処理を、判定ユニット 314 が行うということである。別の手法として、編集対象ビューにおいてはレイアウトとスキンの値が整合するが別のビューでは不整合となるという場合に、とりあえず編集対象ビューを編集画面に表示はするものの、このレイアウトとスキンの値が不整合であることを、判定ユニット 314 が通知してもよい。その際、不整合となるビューを具体的に提示してもよい。あるいはなおも別の手法として、選択ユニット 312 にそうした不整合となる選択肢を選ばせないようにすることも可能である。より具体的には、後述するレイアウト選択領域 1324 やスキン選択領域 1326 といった選択手段において、不整合となる選択肢を選ばせない（選択肢として表示させない）ようにすることも可能である。
【０１３３】
図１３Ａは、図１２に示した処理を実施できるユーザーインターフェイス 1300 を描いた模式図である。
【０１３４】
ユーザーインターフェイス 1300 は、デザイングループ情報表示領域 1310 と、ビュー編集領域 1320 を含む。
【０１３５】
ユーザーインターフェイス 1300 は例えば、図３の表示制御ユニット 316 を介して、表示手段（後述する出力装置 1706 など）に表示させることができるものである。
【０１３６】
デザイングループ情報表示領域 1310 は、編集中のレイアウトまたはスキンの値が属するデザイングループを表示する領域 1312 を含む。この例では、レイアウト[1]とスキン[A]が選択されているため、領域 1312 にはレイアウト[1]とスキン[A]が属するデザイングループ甲が表示される。
【０１３７】
またデザイングループ情報表示領域 1310 には、ビューにおいて現在選択されているレイアウトとスキンの値を示す領域 1314, 1316, 1318 も含まれる。この例では、ビュー(あ)からビュー(う)までのすべてに対し、レイアウト[1]とスキン[A]が適用されていると仮定している。領域 1314, 1316, 1318 では、組み合わせを実線で結んでいることが、現在選択中であることを示している。また、領域 1314, 1316, 1318 にて点線で結ばれた組み合わせは、不整合を起こさない組み合わせであって現在適用されていないものである。
【０１３８】
ビュー編集領域 1320 は、ビュー選択領域 1322 と、レイアウト選択領域 1324 と、スキン選択領域 1326 とを含んでいる。この例では、これらの領域にビュー(あ)が編集中であってレイアウト[1]とスキン[A]が適用されている旨が示されている。他の実施形態では、選択されたビュー・レイアウト・スキンが別の表示領域に表示されるようにしてもよい。
【０１３９】
ビュー編集領域 1320 はさらに、ビュー表示領域1328 も含む。ビュー表示領域 1328 では、編集中であるビューを表示し、ユーザーは任意の入力手段（後述する入力装置 1704 など）を用いてそのビューの編集を行うことができる。本発明の別の実施形態では、ビュー表示領域 1328 が、編集中であるビューを表示する領域と、そのビューを編集するための領域とを別々に有していてもよい。本発明のなおも別の実施形態では、編集中のビュー以外のビューを表示する領域が、ユーザーインターフェイス 1300 に含まれていてもよい。
【０１４０】
図１３Ｂは、図１３Ａに示したユーザーインターフェイス 1300 の別の態様 1300b を示した図である。ここでは、デザイングループ情報表示領域 1310 とビュー編集領域 1320 に顕れた違いについて、構成要素番号に接尾辞 "b" をつけて示してある。
【０１４１】
ここに示した例では、レイアウト選択領域 1324b にて、レイアウト[1]をレイアウト[2]に変更していることが表されている。この変更は、デザイングループ甲の裡であるので、領域 1312 の表示は変化しない。
【０１４２】
この変更にともない、領域 1314b, 1316b, 1318b では、レイアウトとスキンの値の組み合わせが変更される（実線での結び先が変わる）。なお、この例では三種のビューすべてに対して変更が行われることに留意されたい。
【０１４３】
あるいは別の状況として、レイアウトかスキンの値をデザイングループ甲に属さないものへ変更しようとした場合を考える。この際には例えば、レイアウト選択領域 1324 かスキン選択領域 1326 にて、そうした変更をさせないよう選択肢を提示しないようにできる。あるいは、変更はさせるものの、不整合が生じる旨をユーザーへ（出力装置 1706 などを介して）通知するようにしてもよい。あるいは、レイアウト（スキン）の値が別のデザイングループに属するものへ変更された時点で、スキン（レイアウト）の値をその別のデザイングループに属するものへ変更させるよう促してもよい。またはそうした場合、強制的にスキン（レイアウト）の値を別のデザイングループへ変更するようにしてもよい。
【０１４４】
こうした変更が行われると、デザイングループ情報表示領域 1310 も表示を変えることができる。例えばそうした場合、領域 1310 には、デザイングループ乙とそれに属するレイアウト[3]とスキン[C]を表示させることができる。
【０１４５】
〔第二の実施例〕
［システム構造］
図１４は、本発明の実施形態の第二の実施例にかかる、システム 1400 の構造を示す模式図である。システム 1400 は、システム 300 とは、ビュー編集ユニット 1410 が改修ユニット 1418 を有し、判定ユニット 1414 がデザイングループの更新を行わせるところが異なっている。
【０１４６】
改修ユニット 1418 は、レイアウトデータ管理ユニット1430 とスキンデータ管理ユニット1440 にそれぞれ管理されているレイアウトとスキンの値自体を改修できる。例えば、「２Ｄであった」レイアウトの値を、「３Ｄにする」という改修が可能である。
【０１４７】
このような（レイアウトとスキンの値の不整合にかかわりうる）改修が行われたことを、判定ユニット 1414 は、処理ユニット 1460 からの出力を受けて認知することができる。このとき判定ユニット 1414 は、デザイングループ情報管理ユニット 1450 にアクセスして、デザイングループに関する情報（デザイングループ情報 450 など）の更新を行わせることができる。つまり、処理ユニット 1460 は、判定ユニット 1414 にシステムデータの現状を与え、適切な判定を促すのだと解釈してもよい。この第二の実施例の動作については以降でさらにくわしく述べる。
【０１４８】
なお、システム 1400 が有する他の要素、すなわち選択ユニット 1412 、表示制御ユニット 1416 、システムデータ管理ユニット 1420 、レイアウトデータ管理ユニット 1430 、スキンデータ管理ユニット 1440 については、図３の同名・類似番号の要素と同様であるため、ここでは説明をくりかえすことはしない。なお、システム 1400 をプログラムとして実施する場合には、システム 1400 のこれらの構成ユニットは、記憶手段（後述する外部記憶装置 1708 など）に保存されたデータに基づいたものとなる。それらのデータが、バッファ（後述するメモリ 1702 など）に読み出されたうえで実行手段（後述するＣＰＵ 1700 など）によって実行されることで、これらの構成ユニットとして機能できる。実行手段により実行されたこれらの構成ユニットは、記憶手段からデータを読み出して使用できる。
【０１４９】
［データ構造］
第二の実施例では、第一の実施例と同様に、図４から図１１に示したデータ構造とその格納態様を使用可能である。
【０１５０】
［処理の流れ］
図１５Ａおよび図１５Ｂは、第二の実施例における処理の流れを表すフローチャートである。ここでは、レイアイトもしくはスキンの値そのものを改修する場合を考えている。すなわち、或るプロパティグループに含まれるプロパティやプロパティ値自体を改修する場合である。こうした改修により、「２Ｄであった」レイアウトやスキンの値が、「３Ｄになる」ことがありえる。なお当然のことながら、ここで"２Ｄ/３Ｄの別"について述べているのはあくまで一例に過ぎない。本発明の別の実施形態では、不整合を生じうる別のプロパティグループの値の組み合わせをこうした実施例に用いることができる。
【０１５１】
なお以下の処理の流れを説明するにあたっては、図１４に示された構成ユニットおよび図４から図１１に示されたデータ構造を引用するが、本発明の実施形態はそれのみには限定はされない。
【０１５２】
図１５Ａでは、まず段階 S1500 にて、編集中であるレイアウト（スキン）の値の改修が、ビュー編集ユニット 1410 に指示される。つまり、レイアウト[1]などに含まれるプロパティやプロパティ値の改修などが指示される。この指示は、出力手段（出力装置 1706 など）により表示される後述するユーザーインターフェイスを介し、任意の入力手段（入力装置 1704 など）を使って行われうる。こうした指示をビュー編集ユニット 1410 が受けると、改修ユニット 1418 が、レイアウトデータ管理ユニット 1430 もしくはスキンデータ管理ユニット 1440 が管理するデータを改修する。具体的には改修ユニット 1418 は、レイアウトデータ管理ユニット 1430 が管理するレイアウトデータ（図４のレイアウトデータ 430 などに相当）として記憶手段（後述する外部記憶装置 1708 など）から読み出して、改修指示に応じた改修を施すことができる。あるいは改修ユニット 1418 は、スキンデータ管理ユニット 1440 が管理するスキンデータ（図４のスキンデータ 440 などに相当）として記憶手段から読み出して、改修指示に応じた改修を施すこともできる。
【０１５３】
次に段階 S1510 にて、判定ユニット 1414 が、改修により２Ｄ/３Ｄの切替が行われたかどうかを判断する。こうした判断に際しては、上述したものなどの３Ｄに特有のプロパティ／プロパティ値が追加／削除されたかを考慮してよい。
【０１５４】
段階 S1510 にて２Ｄ/３Ｄの切替が行われなかったと判断された場合、フローは段階 S1520 に進み、ビューの編集をそのまま継続することになる。そしてまた改修指示があれば段階 S1500 に戻る。
【０１５５】
段階 S1510 にて２Ｄ/３Ｄの切替が行われたと判断された場合には、フローは段階 S1530 に進む。段階 S1530 では、判定ユニット 1414 が、改修を受けたレイアウト（スキン）の値がもと属していたデザイングループを確認する。
【０１５６】
次に段階 S1540 では、判定ユニット 1414 が、段階 S1530 で確認したデザイングループ以外のデザイングループに属するレイアウト（スキン）の値（レイアウトデータ 430 など）を、例えばデザイングループ情報管理ユニット 1450 から呼び出して、取得する。そして判定ユニット 1414 は、改修を受けたレイアウト（スキン）の値（レイアウトデータ 430 など）が、改修を経てどのデザイングループに属することになるのかを判断してゆくことになる。
【０１５７】
まず、段階 S1550 では、判定ユニット 1414 が、改修されたレイアウト（スキン）の値と同じデザイングループに属するスキン（レイアウト）の値（スキンデータ 440 など）があるかを、例えばデザイングループ情報管理ユニット 1450 からデータを取得することで、判断する。換言すれば、改修されたレイアウト（スキン）の値とデザイングループを組めるスキン（レイアウト）の値が存在するかどうかを、判定ユニット 1414 がそれらの値を比較して判断するわけである。
【０１５８】
段階 S1550 にて"YES"と判断された場合には、フローは段階 S1560 へ進み、判定ユニット 1414 は、その値の組み合わせが新しいデザイングループを成立させたと仮定する。とはいえこの時点で、現在編集に用いているデザイングループがその新しいデザイングループになったことを、表示制御ユニット 1416 を介して通知・掲示してもよい。そしてフローは記号{a}を介して図１５Ｂへと移る。
【０１５９】
段階 S1550 にて"NO"と判断された場合には、フローは記号{a}を介して図１５Ｂへと移る。
【０１６０】
図１５Ｂでは、まず段階 S1570 にて、判定ユニット1414は、新しいデザイングループが他の既存のデザイングループと集約できるかを判断する。この判断に際しては例えば、新しいデザイングループと既存のデザイングループのいずれかが統合されたとして、その構成要素であるレイアウトとスキンの値を交換してみて不整合が生じないかを計算して行うことが可能である。
【０１６１】
図２Ａから図２Ｃの例でいえば、ビュー(あ)にて第一のプロパティグループの値[3]に関してプロパティ値をβからαに改修したとすると、許容される値の組み合わせはC(U(1)) = ([1],[A]), ([1],[B]), ([2],[A]), ([2],[B]), ([3],[A]), ([3],[B]), ([3],[C]) の七通りとなる。ビュー(い)とビュー(う)については変化がないのでC(U(2)) と C(U(3)) はそのままである。この場合、"新しい上位グループ（デザイングループ）"として ([3],[A]), ([3],[B]) が仮定でき、さらにそれを既存の上位グループ([1],[A]), ([1],[B]), ([2],[A]), ([2],[B]) と集約できるわけである。あるいは別の手法として、上述した"新しい上位グループ"を、別の既存の上位グループ ([3],[C]) と集約して、集約した上位グループ ([3],[A]), ([3],[B]), ([3],[C]) を得てもよい。
【０１６２】
こうした集約は、段階 S1560 の後に続けて自動的に判定ユニット 1414 がデザイングループ情報管理ユニット 1450 に行わせてもよい。あるいはユーザーの指示を受けた際に、判定ユニット 1414 がデザイングループ情報管理ユニット 1450 に行わせてもよい。
【０１６３】
段階 S1570 にて"NO"と判断された場合には、フローは段階 S1580 に進み、ビューの編集を継続する。そしてまた改修指示があれば記号{b}を介して段階 S1500 に戻る。
【０１６４】
段階 S1570 にて"YES"と判断された場合には、フローは段階 S1590 に進み、判定ユニット 1414 が、デザイングループ情報管理ユニット 1450 に、新しいデザイングループと他の既存のデザイングループのいずれかとを集約させる。そしてまた改修指示があれば記号{b}を介して段階 S1500 に戻る。
【０１６５】
〔画面実装例〕
図１６Ａから図１６Ｃにかけては、本発明の実施形態のスクリーンショットを例示する。
【０１６６】
図１６Ａは、本発明の実施形態にかかるＧＵＩ編集プログラム（ＧＵＩエディター）の持つ編集画面のスクリーンショット例である。なおここでいう「編集画面」とは、編集対象であるソフトウェアが持つビューを編集するための、本発明の実施形態にかかる編集装置が有するインターフェイスのことを指している。ここには一例として、スキンの値として "２Ｄ CITY" と "２Ｄ WILD" を選択できるさまを示してある。
【０１６７】
画面上部のメニュー部には、 "Skin" として現在選択されているスキンの値（の識別子）（"skin type 0"）と、"Layout" として現在選択されているレイアウトの値（の識別子）（"layout type 0"）を表示している。
【０１６８】
図１６Ｂには、「２Ｄである」編集対象ビューのスクリーンショット例を示してある。ここでは「３Ｄのような」陰翳をパネル他のＧＵＩ部品に付してはあるが、「２Ｄである」として処理をされる。
【０１６９】
図１６Ｃには、「３Ｄである」編集対象ビューのスクリーンショット例を示してある。この例では、「３Ｄである」アイコンが、Z座標（紙面に直交する方向）というプロパティ値を有している。
【０１７０】
もちろん上述したように、本発明の別の実施形態を、「３Ｄのような（擬似３Ｄの）」レイアウト・スキンの値と「２Ｄのような（擬似２Ｄの）」レイアウト・スキンの値とを不整合を生じうる組み合わせとみなして適用することもまた可能である。
【０１７１】
本発明の実施形態にかかるＧＵＩエディターは例えば、組み込み用途向けのＧＵＩランタイムとして実施できる。こうしたＧＵＩランタイムでは、例えばXMLとスクリプトで設定を行うことができる。
【０１７２】
〔ハードウェア〕
図１７は、本発明の実施形態にかかるプログラムを実行することができるハードウェア構造を示す概要図である。ここでは、ＣＰＵ 1700 、メモリ 1702 、入力装置 1704 、出力装置 1706 、外部記憶装置 1708 、媒体駆動装置 1710 、可搬記録媒体 1712 、ネットワーク接続装置 1714 が、バス 1716 によって接続されている。
【０１７３】
ＣＰＵ（中央処理ユニット） 1700 としては、任意の種類のプロセッサを使用でき、例えばMPUや組み込み用途ＣＰＵを使用できる。ＣＰＵ 1700 は、本発明の実施形態にかかるプログラムをバッファ（メモリ 1702 など）に読み出したうえで実行できる。
【０１７４】
メモリ 1702 としては、ダイナミックランダムアクセスメモリ（DRAM）が含まれるがこれには限定はされない。そうしたDRAMとしては、SDRAM、SLDRAM、RDRAM、および他のDRAMなどがある。メモリ 1702 にはまた、フラッシュメモリなどの不揮発性メモリを含めてもよい。
【０１７５】
入力装置 1704 としては、キーボード、マウス、トラックボール、タッチパネル、ゲームコントローラー、もしくは音声認識装置といった、ユーザーが情報を入力しできる任意の装置が含まれる。
【０１７６】
出力装置 1706 としては、２Ｄディスプレイ、スピーカー、３Ｄディスプレイといった、情報を出力してユーザーへ伝達できる任意の装置が含まれる。
【０１７７】
外部記憶装置 1708 としては、同様に特定の用途に適するひとつ以上の記憶媒体を使用でき、例えば、ハードディスクドライブ、SSD（Solid State Drive）を使用できる。
【０１７８】
媒体駆動装置 1710 には、任意の種類の可搬記録媒体1712 を駆動できる任意のドライブが含まれる。可搬記録媒体 1712 としては、フレキシブルディスク、コンパクトディスク（CD）、デジタルビデオディスク（DVD）、などといったものが含まれる。
【０１７９】
ネットワーク接続装置 1714 には、ネットワークに接続可能な任意の装置が含まれる。ネットワーク接続装置 1714 としては、イーサネットアダプタ、有線LAN（Local Area Network）ルータ、無線LANルータなどが含まれる。
【０１８０】
本発明の実施形態にかかるプログラムは、外部記憶装置 1708 もしくは媒体駆動装置 1710 によって駆動される可搬記録媒体 1712 に格納することができる。また、ハードウェアは、ネットワーク接続装置 914 を介してネットワークと接続することができ、入力装置 1704 および出力装置 1706 を通じて実施形態にかかるプログラムを入出力することが可能である。また、サーバが持つ記憶装置に実施形態にかかるプログラムを保存し、クライアントからそのプログラムを実行させることで、本発明の実施形態にかかる効果を得ることも可能である。そうしたサーバ-クライアントネットワークは、例えばP2P（peer to peer）ネットワークであってもかまわない。
【０１８１】
図１８は、図１７のハードウェアの実装例を描いた模式図である。ここでは、ＣＰＵ 1700 やメモリ 1702 を含むことができるコンピュータ 1800 が示されている。コンピュータ 1800 は、本発明の実施形態にかかるプログラムを読み出して実行することができる。
【０１８２】
コンピュータ 1800 には、入力装置 1704 に対応するディスプレイ 1804 と、出力装置 1706 に対応するキーボード 1806a およびマウス 1806b が含まれている。ユーザーは、キーボード 1806a およびマウス 1806b を介してコンピュータ 1800 に情報を入力できる。ユーザーは、ディスプレイ 1804 を介してコンピュータ 1800 からの情報の伝達を受けられる。
【０１８３】
以上の実施例1〜2を含む実施形態に関し、さらに以下の付記を開示する。
（付記１）
ひとつ以上のＧＵＩ部品から各々が構築される複数のＧＵＩ部品セットを持つアプリケーションを編集するための編集装置であって、前記ＧＵＩ部品の各々は、ひとつ以上のプロパティと、前記ひとつ以上のプロパティの各々に対応したプロパティ値と、を含み、前記編集装置が、
(a) 前記複数のＧＵＩ部品を表すデータを格納し、また、前記複数のＧＵＩ部品が持つプロパティのそれぞれを、少なくとも第一のプロパティグループおよび第二のプロパティグループに属させるように分類されて格納された、記憶手段
を含み、ここで、
前記記憶手段が、前記第一のプロパティグループに関するプロパティ値の組み合わせを、第一のプロパティ値群として複数種類有しており、
前記記憶手段が、前記第二のプロパティグループに関するプロパティ値の組み合わせを、第二のプロパティ値群として複数種類有しており、また、
さらに前記編集装置が、
(b) 前記記憶手段から読み出した複数種類の前記第一のプロパティ値群のうちからいずれかを選んで、前記複数のＧＵＩ部品セットのうちに含まれるＧＵＩ部品に対して適用させ、また、前記記憶手段から読み出した複数種類の前記第二のプロパティ値群のうちからいずれかを選んで、前記複数のＧＵＩ部品セットのうちに含まれるＧＵＩ部品に対して適用させる、選択手段と、
(c) 前記選択手段により選択された前記第一のプロパティ値群と前記第二のプロパティ値群とが、前記複数のＧＵＩ部品セットのうちの前記ひとつ以上のうちのいずれかにて、不整合となるかどうかを判定する、判定手段と、
(d) 前記複数のＧＵＩ部品セットのうちのひとつ以上を表示するための、表示手段と
を含み、ここで、
前記判定手段は、選択された前記第一のプロパティ値群と前記第二のプロパティ値群とが不整合となるＧＵＩ部品セットが存在した場合に、前記選択手段の行った選択が不適切であると判断し、
前記表示手段は、
前記選択手段の行った選択が前記判定手段によって不適切であるとされていないかを確認し、
不適切であるとされていなかった場合には、前記複数のＧＵＩ部品セットのうちの前記ひとつ以上を、前記選択手段により選択された前記第一のプロパティ値群と前記第二のプロパティ値群が適用された状態にて表示する
ことを特徴とする、編集装置。
（付記２）
さらに
前記複数のＧＵＩ部品セットにわたって適用したときに不整合を生じない、複数種類の前記第一のプロパティ値群のうちのひとつ以上と複数種類の前記第二のプロパティ値群のうちのひとつ以上との組み合わせを、上位グループとして定義した情報を管理する、上位グループ情報管理手段
を含む
ことを特徴とする、付記１記載の編集装置。
（付記３）
前記上位グループ情報管理手段が、
或る上位グループに属する前記第一のプロパティ値群のうちのいずれかおよび前記第二のプロパティ値群のうちのいずれかが改修されたときに、改修された内容に基づき、変更されたいずれかのプロパティ値群の属す先を、別の上位グループに変える
ことを特徴とする、付記２記載の編集装置。
（付記４）
前記別の上位グループが、改修された際に既存であった上位グループである
ことを特徴とする、付記３記載の編集装置。
（付記５）
前記別の上位グループが、改修された際に存在していなかった新たな上位グループである
ことを特徴とする、付記３記載の編集装置。
（付記６）
前記上位グループ情報管理手段が、前記別の上位グループと、改修された際に既存であった上位グループとを集約してひとつの上位グループとする、付記３記載の編集装置。
（付記７）
前記複数のＧＵＩ部品セットのうちのいずれかに対して、複数種類の前記第一のプロパティ値群のうちの前記選択手段が選んだいずれかが２Ｄであることを表すものであり、かつ複数種類の前記第二のプロパティ値群のうちの前記選択手段が選んだいずれかが３Ｄであることを表すものであるときに、前記ひとつ以上に適用した前記第一のプロパティ値群と前記第二のプロパティ値群とが不適合となると前記判定手段が判定する
ことを特徴とする、付記１記載の編集装置。
（付記８）
前記２Ｄであることが、前記複数のＧＵＩ部品セットのうちの前記いずれかに含まれるＧＵＩ部品が２Ｄに特有のプロパティ値を有することを意味し、
前記３Ｄであることが、前記複数のＧＵＩ部品セットのうちの前記いずれかに含まれるＧＵＩ部品が３Ｄに特有のプロパティ値を有することを意味する
ことを特徴とする、付記７記載の編集装置。
（付記９）
前記３Ｄに特有のプロパティ値が、３Ｄモデル、光源設定、材質、もしくは拡大率を含む
ことを特徴とする、付記８記載の編集装置。
（付記１０）
前記複数のＧＵＩ部品セットの各々が、前記アプリケーションのビューの各々をそれぞれ構築する
ことを特徴とする、付記１から９のいずれか一項に記載の編集装置。
（付記１１）
ひとつ以上のＧＵＩ（Graphical User Interface）部品から各々が構築される複数のＧＵＩ部品セットを持つアプリケーションを編集するためのコンピュータ上で実行される編集方法であって、前記ＧＵＩ部品の各々は、ひとつ以上のプロパティと、前記ひとつ以上のプロパティの各々に対応したプロパティ値と、を含み、
前記コンピュータが、
前記複数のＧＵＩ部品を表すデータを格納し、かつ、少なくとも第一のプロパティグループおよび第二のプロパティグループに属させるように分類された前記複数のＧＵＩ部品が持つプロパティのそれぞれを格納するための、記憶手段と、
表示手段と
を含み、
ここで、
前記記憶手段が、前記第一のプロパティグループに関するプロパティ値の組み合わせを、第一のプロパティ値群として複数種類有しており、
前記記憶手段が、前記第二のプロパティグループに関するプロパティ値の組み合わせを、第二のプロパティ値群として複数種類有しており、また、
さらに前記編集プログラムが前記コンピュータ上で実行されたときに実施される方法が、
前記記憶手段から読み出した複数種類の前記第一のプロパティ値群のうちからいずれかを選んで、前記複数のＧＵＩ部品セットのうちに含まれるＧＵＩ部品に対して適用させ、また、前記記憶手段から読み出した複数種類の前記第二のプロパティ値群のうちからいずれかを選んで、前記複数のＧＵＩ部品セットのうちに含まれるＧＵＩ部品に対して適用するステップと、
前記複数のＧＵＩ部品セットに適用した前記第一のプロパティ値群と前記第二のプロパティ値群とが、前記複数のＧＵＩ部品セットのいずれかにて、不適合となるかどうかを判定するステップと、
選択された前記第一のプロパティ値群と前記第二のプロパティ値群とが不整合となるＧＵＩ部品セットが存在した場合に、選択を不適切であると判断するステップと、
選択された前記第一のプロパティ値群と前記第二のプロパティ値群についての選択が不適切であると判断されていないかを確認し、不適切であると判断されていなかった場合には、前記複数のＧＵＩ部品セットのうちの前記ひとつ以上を、前記選択手段により選択された前記第一のプロパティ値群と前記第二のプロパティ値群が適用された状態にて、前記表示手段に表示させるステップと
を含む
ことを特徴とする、編集方法。
（付記１２）
ひとつ以上のＧＵＩ（Graphical User Interface）部品から各々が構築される複数のＧＵＩ部品セットを持つアプリケーションを編集するための編集プログラムであって、前記ＧＵＩ部品の各々は、ひとつ以上のプロパティと、前記ひとつ以上のプロパティの各々に対応したプロパティ値と、を含み、
前記コンピュータが、
前記複数のＧＵＩ部品を表すデータを格納し、かつ、少なくとも第一のプロパティグループおよび第二のプロパティグループに属させるように分類された前記複数のＧＵＩ部品が持つプロパティのそれぞれを格納するための、記憶手段と、
表示手段と
を含み、
ここで、
前記記憶手段が、前記第一のプロパティグループに関するプロパティ値の組み合わせを、第一のプロパティ値群として複数種類有しており、
前記記憶手段が、前記第二のプロパティグループに関するプロパティ値の組み合わせを、第二のプロパティ値群として複数種類有しており、また、
さらに前記編集プログラムが前記コンピュータ上で実行されたときに実施される方法が、
前記記憶手段から読み出した複数種類の前記第一のプロパティ値群のうちからいずれかを選んで、前記複数のＧＵＩ部品セットのうちに含まれるＧＵＩ部品に対して適用させ、また、前記記憶手段から読み出した複数種類の前記第二のプロパティ値群のうちからいずれかを選んで、前記複数のＧＵＩ部品セットのうちに含まれるＧＵＩ部品に対して適用するステップと、
前記複数のＧＵＩ部品セットに適用した前記第一のプロパティ値群と前記第二のプロパティ値群とが、前記複数のＧＵＩ部品セットのいずれかにて、不適合となるかどうかを判定するステップと、
選択された前記第一のプロパティ値群と前記第二のプロパティ値群とが不整合となるＧＵＩ部品セットが存在した場合に、選択を不適切であると判断するステップと、
選択された前記第一のプロパティ値群と前記第二のプロパティ値群についての選択が不適切であると判断されていないかを確認し、不適切であると判断されていなかった場合には、前記複数のＧＵＩ部品セットのうちの前記ひとつ以上を、前記選択手段により選択された前記第一のプロパティ値群と前記第二のプロパティ値群が適用された状態にて、前記表示手段に表示させるステップと
を含む
ことを特徴とする、編集プログラム。
（付記１３）
前記記憶手段が、
前記複数のＧＵＩ部品セットにわたって適用したときに不整合を生じない、複数種類の前記第一のプロパティ値群のうちのひとつ以上と複数種類の前記第二のプロパティ値群のうちのひとつ以上との組み合わせを、上位グループとして定義した上位グループ情報
を有する
ことを特徴とする、付記12記載の編集プログラム。
（付記１４）
前記上位グループ情報が、或る上位グループに属する前記第一のプロパティ値群のうちのいずれかおよび前記第二のプロパティ値群のうちのいずれかが改修されたときに、改修された内容に基づき、変更されたいずれかのプロパティ値群の属す先を、別の上位グループに変えるために用いられる
ことを特徴とする、付記13記載の編集プログラム。
（付記１５）
前記別の上位グループが、改修された際に既存であった上位グループである
ことを特徴とする、付記14記載の編集プログラム。
（付記１６）
前記別の上位グループが、改修された際に存在していなかった新たな上位グループである
ことを特徴とする、付記14記載の編集プログラム。
（付記１７）
前記別の上位グループと、改修された際に既存であった上位グループとを集約してひとつの上位グループとして、前記上位グループ情報に格納する、付記14記載の編集プログラム。
（付記１８）
前記判定するステップが、
前記複数のＧＵＩ部品セットのうちのいずれかに対して、複数種類の前記第一のプロパティ値群のうちの前記選択手段が選んだいずれかが２Ｄであることを表すものであり、かつ複数種類の前記第二のプロパティ値群のうちの前記選択手段が選んだいずれかが３Ｄであることを表すものであるときに、前記ひとつ以上に適用した前記第一のプロパティ値群と前記第二のプロパティ値群とが不適合となると判定するステップ
を含む
ことを特徴とする、付記12記載の編集プログラム。
（付記１９）
前記２Ｄであることが、前記複数のＧＵＩ部品セットのうちの前記いずれかに含まれるＧＵＩ部品が２Ｄに特有のプロパティ値を有することを意味し、
前記３Ｄであることが、前記複数のＧＵＩ部品セットのうちの前記いずれかに含まれるＧＵＩ部品が３Ｄに特有のプロパティ値を有することを意味する
ことを特徴とする、付記18記載の編集プログラム。
（付記２０）
前記３Ｄに特有のプロパティ値が、３Ｄモデル、光源設定、材質、もしくは拡大率を含む
ことを特徴とする、付記19記載の編集プログラム。
（付記２１）
前記複数のＧＵＩ部品セットの各々が、前記アプリケーションのビューの各々をそれぞれ構築する
ことを特徴とする、付記１２から２０のいずれか一項に記載の編集プログラム。
【符号の説明】
【０１８４】
110 ビュー(あ)の設定データ
120 ビュー(い)の設定データ
130 ビュー(う)の設定データ
210 ビュー(あ)の設定データ（表形式）
220 ビュー(い)の設定データ（表形式）
230 ビュー(う)の設定データ（表形式）
300 システム
310 ビュー編集ユニット
312 選択ユニット
314 判定ユニット
316 表示ユニット
320 システムデータ管理ユニット
330 レイアウトデータ管理ユニット
340 スキンデータ管理ユニット
350 デザイングループ情報管理ユニット
360 処理ユニット
400 データ格納態様
412 ビュー(あ)のビューデータ
414 ビュー(い)のビューデータ
430 レイアウトデータ
440 スキンデータ
450 デザイングループ情報
452 デザイングループ甲
452 デザイングループ乙
500 ビューデータ構造
600 レイアウトデータ構造
700 レイアウトデータ構造
800 スキンデータ構造
900 スキンデータ構造
1000 システムデータ構造
1100 グループデータ
1300 ユーザーインターフェイス
1310 デザイングループ情報表示領域
1320 ビュー編集領域
1322 ビュー選択領域
1324 レイアウト選択領域
1326 スキン選択領域
1328 ビュー表示領域
1300b ユーザーインターフェイス
1400 システム
1410 ビュー編集手段
1412 選択ユニット
1414 判定ユニット
1416 表示制御ユニット
1418 改修ユニット
1420 システムデータ管理ユニット
1430 レイアウトデータ管理ユニット
1440 スキンデータ管理ユニット
1450 デザイングループ情報管理ユニット
1460 処理ユニット
1700 ＣＰＵ
1702 メモリ
1704 入力装置
1706 出力装置
1708 外部記憶装置
1710 媒体駆動装置
1712 可搬記録媒体
1714 ネットワーク接続装置
1716 バス
1800 コンピュータ
1804 ディスプレイ
1806a キーボード
1806b マウス
【図２Ｂ】
2011070500.tif 000003
【図３】
2011070500.tif 000004
【図４】
2011070500.tif 000005
【図５】
2011070500.tif 000006
【図６】
2011070500.tif 000007
【図７】
2011070500.tif 000008
【図８】
2011070500.tif 000009
【図９】
2011070500.tif 000010
【図１０】
2011070500.tif 000011
【図１１】
2011070500.tif 000012
【図１２】
2011070500.tif 000013
【図１３Ａ】
2011070500.tif 000014
【図１４】
2011070500.tif 000015
【図１５Ａ】
2011070500.tif 000016
【図１５Ｂ】
2011070500.tif 000017
【図１】
2011070500.tif 000018
【図２Ａ】
2011070500.tif 000019
【図２Ｃ】
2011070500.tif 000020
【図１３Ｂ】
2011070500.tif 000021
【図１６Ａ】
2011070500.tif 000022
【図１６Ｂ】
2011070500.tif 000023
【図１６Ｃ】
2011070500.tif 000024
【図１７】
2011070500.tif 000025
【図１８】
2011070500.tif 000026