進行状況表示バー

タスクが実行中であって、行うことがどの程度残っているのかを示す視覚的な合図として使用できる、 進行状況表示バーを描画します。

「プロパティー」ビューと「すべての属性」ビュー

コンポーネントの「プロパティー」ビューには、 コンポーネントに設定できる最も一般的な属性のセットが表示されます。 コンポーネントによっては、制御、アクション、 または他のコンポーネントの追加に関するオプションが 表示される場合もあります。 「プロパティー」ビューを開くには、 「ウィンドウ」 > 「ビューの表示」 > 「プロパティー」とクリックします。

「進行状況表示バー」コンポーネントの共通属性は、 「プロパティー」ビューの「hx:Progressbar」タブに表示されます。 属性の完全なリストについては、「進行状況表示バー」の属性 の テーブルを参照してください。

「すべての属性」ビューには、コンポーネントで設定できるすべての属性のテーブルが表示されます。 このテーブルには、「プロパティー」ビューからアクセスできる属性も含まれます。 「すべての属性」ビューに切り替えるには、 「プロパティー」ビューの右上隅にある「すべての属性」アイ コン「すべての属性」
アイコンをクリックします。

表 1. 「進行状況表示バー」の属性

属性名

説明

auto

true の場合、 進行状況表示バーは自己タイミング型になります。 開始後、指定された間隔で、自分自身を自動的に更新します。 false の場合、または省略された場合、 進行状況表示バーは手動で更新する必要があります。 現在の状況を 指定する JavaScript 呼び出し によって、バーを再表示します。 auto が true の場合、「完了 (%)」はバーに表示されません。false の場合、「完了 (%)」は表示されます。

binding

コンポーネントの インスタンス (通常はユーザー・インターフェース・ コンポーネント) を、Bean プロパティー (通常は バッキング・ファイル内にあります) にバインドする式です。

id

コンポーネントに名前を割り当てます。ページ内で固有の名前にする必要があります。

initHidden

true の場合は、ページが最初に表示されたときに進行状況表示バーは非表示になります。進行状況表示バーのスタイルに display:none を設定する代わりに、この属性を使用してください。

initValue

auto が false か設定されていない場合は (オプションで、デフォルトはゼロ)、最初に表示されるバーの量 (パーセント)。例えば、値が 15 の場合、バーは開始値 15% を表示します。

message

バーの上に表示されるメッセージです。 バーの実行中に、JavaScript に よって変更することができます。

outward

true の場合、進行状況表示バーは中心から外側に向かって描画します。省略されているか false の場合、バーは左から右に向かって描画します。

proportion

auto が true の場合は (オプションで、デフォルトは 5)、バーが更新するたびに増分する量 (進行状況表示バーの幅のパーセント)。例えば、値が 10 の場合は、バーの幅が全体の 10% 分毎回拡大します。auto が false か設定されていない場合は (オプションで、デフォルトはゼロ)、最初に表示されるバーの量 (パーセント)。例えば、値が 15 の場合、バーは開始値 15% を表示します。

rendered

true または false に設定できます。
  • false - コンポーネントは、実行時にブラウザーにレンダリングされません。
  • true - コンポーネントがレンダリングされます。これはデフォルト値です。

style

コンポーネントに対して CSS スタイル情報を指定します (例えば、style="font-size : 8pt ; color : red")。 選択されたコンポーネントのプロパティー (例えば、フォントおよび色) を定義します。 これは手動で行うか、またはボタンをクリックして、 ウィンドウ内から必要なプロパティーを選択してください。

styleClass

この要素がレンダリングされるときに適用される、 CSS スタイル・クラスのリスト (スペース区切り)。 この値は、生成されたマークアップの クラス属性として渡されなければなりません。 選択されたコンポーネントのクラス (例えば、スタイルシート) を定義します。 これは手動で行うか、またはボタンをクリックして、 ウィンドウ内から必要なクラスを選択してください。

timeInterval

auto が true の場合は、バーが更新される間隔 (頻度)。 ミリ秒単位で指定します。 例えば、値を 5000 にすると、バーは 5 秒ごとに変更されます。

title

実行時にツールチップとしてブラウザーに表示される、タイトル・テキストを指定します。 コンポーネントの代替テキストが指定されていない場合、 ブラウザーはこのテキストを代替テキストとして使用します。

CSS クラス

表 2. 進行状況表示バー CSS クラス

CSS クラス名

説明

progressBar これは、進行状況表示バー・コントロール全体に適用されるスタイルです。
progressBar-Table これは、進行状況表示バーを構成するテーブルに適用されるスタイルです。
progressBar-Message これは、メッセージ・テキストを格納する領域とメッセージ・テキストに適用されるスタイルです。
progressBar-Bar これは、移動バーに適用されるスタイルです。
progressBar-Bar_container これは、移動バーとパーセント・テキストの両方を格納する領域に適用されるスタイルです。
progressBar-Bar_text これは、パーセント・テキストを格納する領域とパーセント・テキストに適用されるスタイルです。

API 呼び出し

表 3. 進行状況表示バー API 呼び出し

API 呼び出し

説明

redraw() 基本タグの属性/プロパティーに加えられた 変更内容が反映されるように、コンポーネントを書き直します。
start(string) 進行状況表示バーの実行を開始し、メッセージ・テキストを文字列の値に変更します。メッセージが不要な場合は、パラメーターを渡さないようにします。 この API 呼び出しが使用されるのは、進行状況表示バーが進行状況モードになっているときです。
stop(string) 進行状況表示バーの実行を停止し、メッセージ・テキストを文字列の値に変更します。メッセージが不要な場合は、パラメーターを渡さないようにします。 この API 呼び出しが使用されるのは、進行状況表示バーが進行状況モードになっているときです。
reset() バーの表示値をゼロにリセットします。
upDatePercentage(integer) 進行状況表示バーを整数の値に更新します。整数値は 0 から 100 までの値でなければなりません。この範囲を超えた値に対しては、それぞれ切り上げおよび切り下げが行われます。 この API 呼び出しが使用されるのは、進行状況表示バーがパーセント・モードになっているときです。
UpdateMessage(string) 表示されるメッセージを変更するために使用されます。メッセージをクリアしたい場合は、このパラメーターを空白のままにします。

説明

タスクが実行中であって、行うことがどの程度残っているのかを示す視覚的な合図として使用できる、 進行状況表示バーを描画します。

進行状況表示バーでは、バーの表示を制御する JavaScript がページに追加されている必要があります。 auto 属性が true に設定されている場合は、JavaScript を使用してバーの表示が開始および停止されます (バーは指定されたタイマー間隔で描画されます)。 auto 属性が false に設定されている場合は、バーに対する各更新は、バーに対する別個の JavaScript 呼び出しによって行われます。

進行状況表示バーが auto に設定されているときは、次のスクリプトを使用してバーの表示を開始します。
hX.getComponentById("id").start("message");
ここで、 "id" はコンポーネントの ID ("form1:progressBar1" など) であり、"message" はバーの上に表示されるメッセージです。
バーの進行を停止するには、次のように、進行状況表示バーの stop を呼び出します。
hX.getComponentById("id").stop();
バーが「始動」した場合、バーは明示的に停止されるまで実行を継続します (必要に応じて自身をゼロにリセットします)。
進行状況表示バーが auto に設定されていないときは、バーに対する更新 (進行) が JavaScript にコーディングされている必要があります。 バーのサイズ (パーセント) における各変更は、次のスクリプトの結果です。
hX.getComponentById("id").upDatePercentage(value);
ここで、 "id" はコンポーネントの ID ("form1:progressBar1" など) であり、"value" は完了率を表す整数 (10 は 10% 完了していることを意味する) です。

アクセシビリティー

このコンポーネントは「出力」コンポーネントなので、ページのタブ順序には含まれていません。このコンポーネントを読み取っているときに、スクリーン・リーダーはタイトル (存在する場合) とメッセージを報告します。規則として、スクリーン・リーダーはメッセージを一度しか読み取らないので、スクリーン・リーダーにとってはメッセージよりもバーの存否 (非表示になっているのか、それとも表示されているのか) の方が重要となります。

制限と注意

サンプル・コード

左から右へ伸び、毎秒 10% ずつサイズが大きくなる「自動」進行状況表示バーを定義します。

<hx:progressBar id="pb1" auto="true" styleClass="progressBar"
title="Progress bar" message="<b>hello</b>"
proportion="10" timeInterval="1000"/>
<input type="button" value="start" onclick="start1();"/>
<input type="button" value="stop" onclick="end1();"/>
<script>
function start1() {
    hX.getComponentById("pb1").start();
}
function end1() {
    hX.getComponentById("pb1").stop();
}
</script>

左から右へ伸びる「手動」進行状況表示バーを定義します。バーのパーセントは、JavaScript 呼び出しによって手動で設定されます。初期パーセント値は 15% です。

<hx:progressBar id="pb3" auto="false" styleClass="progressBar" message="hello" initValue="15"/>
<input type="button" value="set to 20%" onclick="move1();" />
<input type="button" value="set to 72%" onclick="move2();" />
<script>
function move1() {
    var obj = hX.getComponentById("pb3");
    obj.upDatePercentage(20);
    obj.redraw();
}

function move2() {
var obj = hX.getComponentById("pb3");
    obj.upDatePercentage(72);
    obj.upDateMessage("value is now set to 72 %");
    obj.redraw();
}
</script>

フィードバック