デザインは、二つの方法で適用可能です。コンポーネントに直接Style属性を変更する方法と、Styleファイルを利用して適用する方法とがあります。Styleファイルを利用する方法は、コンポーネントを直接修正する必要がなく、その後の変更が簡単であるという長所があります。Styleファイルを利用してデザインを適用する方法を学びます。
イメージファイルの追加
画面をデザインするためには、多くのイメージファイルが必要です。プロジェクトにイメージファイルを使うためには、プロジェクトディレクトリ内にイメージを置いたあと、サービスグループの登録が必要です。サービスグループの登録が必要な理由は、XPLATFORM HTML5プロジェクトでは、サービスグループが登録されたディレクトリ内のファイルのみがHTML5サーバーに送信されて、使用が可能になるからです。
イメージファイルを配置する
イメージファイルをプロジェクト内の適当なディレクトリに置きます。プロジェクトディレクトリ下に“images”ディレクトリを作って、イメージをコピーします。
サービスグループの登録
プロジェクトの“TypeDefinition”をダブルクリックして、“Edit TypeDefinition” ウィンドウを開きます。
“Edit TypeDefinition”ウィンドウの“Add” ボタンをクリックして、“Add Service Group” ウィンドウを開いた後に、値を入力します。
“Add Service Group”ウィンドウで使ったオプションは、次の通りです。
属性 | 説明 |
|---|---|
Service ID | Images |
Service Type | File |
Service Url | ./images/ |
グローバルイメージの登録
プロジェクトのGlobalVariablesをマウスを右クリックして、“Insert GlobalVariables Item” “Image”を選択します。
プロジェクト内のグローバルイメージ登録が必要なイメージを選択します。
イメージ選択が終われば、GlobalVariablesに選択したイメージが、ファイル名の拡張子を除いた同じ名前で追加されます。プロジェクト内では、該当名で参照可能です。
Styleファイルの作成
Styleファイルの追加
プロジェクトのADLをマウスを右クリックして、“Insert ADL Item” “Style”を選択します。ADLにStyleファイルを追加する場合には、プロジェクト全体に影響が及びます。
適当なStyleファイル名を入力します。
Styleファイル作成
コンポーネントのStyle指定は、3種の方法で可能です。
コンポーネント型毎に指定 : コンポーネント型が同じコンポーネントに全て適用
Style例題 | 適用コンポーネント |
|---|---|
Static { color : #808080ff; font : Malgun Gothic,9,antialias; } | すべてのStaticコンポーネント |
class毎に指定 : 同型コンポーネントTypeと同じ classが指定されたコンポーネントに適用
Style例題 | 適用コンポーネント |
|---|---|
Static.title { color : #808080ff; font : Malgun Gothic,9,antialias; } | classが“title”であるすべてのStaticコンポーネント (classはFormのPropertiesウィンドウで修正できる) |
id毎に指定 : 同型コンポーネントと同じidが指定されたコンポーネント適用
Style例題 | 適用コンポーネント |
|---|---|
Static#sttJobTitle { color : #808080ff; font : Malgun Gothic,9,antialias; } | id属性値が“sttJobTitle”である Staticコンポーネント(id属性はFormの Propertiesウィンドウで修正することができる) |
また、コンポーネントの状態を意味するPseudoは、以下の5種をサポートします。 それぞれの状態によってStyleを指定することができます。
Pseudo コード | 説明 |
|---|---|
normal | 一般的な状態 |
disabled | 非活性化された状態 |
focused | フォーカスを獲得した状態 |
mouseover | マウスが上っている状態 |
pushed | マウスで押された状態 |
次は、例題Styleです。各コンポーネントで設定することができるStyleプロパティに対しては、“ヘルプ(Help)”を参照してください。
Static
{
font: Malgun Gothic,9,antialias;
}
Button
{
font: Malgun Gothic,9,antialias;
}
Edit
{
font: Malgun Gothic,9,antialias;
border: 1px solid #cecbce;
}
TextArea
{
font: Malgun Gothic,9,antialias;
}
Combo
{
font: Malgun Gothic,9,antialias;
itembackground: #ffffff;
}
Combo:mouseover
{
border: 1px solid #00deff;
itemcolor: #ffffff;
itembackground: #1d77c3;
}
Combo>#dropbutton
{
background: transparent URL('ComboBtn') center middle no-repeat ;
border: 0px none #808080;
focusborder: 0px none #ffffff;
}
Grid
{
font: Malgun Gothic,9,antialias;
border: 1px solid #c0c9f1;
}
Grid>#head
{
cellcolor: #5b6392;
cellbackground: #e9edff;
cellfont: Malgun Gothic,9,antialias;
cellline: 1px solid #c0c9f1;
}
Grid>#body
{
cellcolor: #666666;
cellcolor2: #666666;
cellbackground: #ffffff;
cellbackground2: #f9f9f9;
cellfont: Malgun Gothic,9,antialias;
cellfont2: Malgun Gothic,9,antialias;
cellline: 1px solid #c0c9f1;
selectcolor: #5259a3;
selectbackground: #f2efe0;
selectfont: Malgun Gothic,9,bold antialias;
}
Menu
{
color: #ffffff;
background : URL('MenuBg') repeat;
font: Malgun Gothic,9,bold antialias;
border: 1px solid #1d77c2;
itemfont: Malgun Gothic,9,bold antialias;
popupcolor : #3c0db2;
popupbackground : #ffffff;
popupborder: 1px solid #1d77c2;
popupfont: Malgun Gothic,9,bold antialias;
}
Static.title
{
color: #001863;
font: Malgun Gothic,13,bold;
}
Button.command
{
background : URL('CommandBtn_Nor');
border: 0px none #808080;
padding: 0px 0px 0px 0px;
}
Button.command:mouseover
{
background : URL('CommandBtn_Ove');
border: 0px none #808080;
}
Button.command:pushed
{
background : URL('CommandBtn_Pus');
border: 0px none #808080;
}
Div.command
{
border: 2px solid #cabef0;
}
Static.detail
{
color: #5b6392;
background: #eaedff;
font: Malgun Gothic,9,bold;
border: 1px solid #c0c9f1;
}
Div.detail
{
border: 1px solid #c0c9f1;
}
Static.menu
{
color: #ffffff;
background: #958ed8;
font: Malgun Gothic,10,bold;
cursor: pointer;
}
Static.menu:mouseover
{
background: #4c44a1;
}
Div.menu
{
border: 4px solid #958ed8;
}
Div.main
{
border: 1px solid #cabef0;
}コンポーネントのclass指定
コンポーネントのclass指定
コンポーネントのclass毎にStyleを作成した場合には、該当コンポーネントがデザインに適用出来るように、classプロパティ値を指定しなければなりません。
コンポーネントのclass属性を指定するコンポーネントは、次の通りです。
フォーム ID | コンポーネント ID | コンポーネント text | class 属性値 |
|---|---|---|---|
list.xfdl | sttList | 顧客リスト照会 | title |
divCommand | command | ||
divCommand. btnSearch | 照会 | command | |
entry.xfdl | sttList | 顧客詳細照会 | title |
divCommand | command | ||
divCommand.btnSearch | 照会 | command | |
divCommand.btnInsert | 追加 | command | |
divCommand.btnDelete | 削除 | command | |
divCommand.btnSave | 保存 | command | |
sttName | 顧客名 | detail | |
divName | detail | ||
sttEmail | 電子メール | detail | |
divEmail | detail | ||
sttBirthday | 生年月日 | detail | |
divBirthday | detail | ||
sttPhone | 電話番号 | detail | |
divPhone | detail | ||
sttHomeAddr | 住所 | detail | |
divHomeAddr | detail | ||
sttCompany | 会社名 | detail | |
divCompany | detail | ||
sttJobTitle | 職責 | detail | |
divJobTitle | detail | ||
sttBusiPhone | 勤務先電話番号 | detail | |
divBusiPhone | detail | ||
sttBusiAddr | 勤務先住所 | detail | |
divBusiAddr | detail | ||
menu.xfdl | divLeft | menu | |
sttList | 顧客リスト照会 | menu | |
sttEntry | 顧客詳細照会 | menu | |
sttMenu03 | menu | ||
sttMenu04 | menu | ||
sttMenu05 | menu |
コンパイル及び実行
HTML5メニューの中で、Compile File及びQuickViewメニューを使用した実行画面です。