SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

DeveloperZine(デベロッパージン)- エンジニアの意思決定を支える技術情報メディア ProductZine

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

japan.internet.com翻訳記事

XMLとXSLによるプログレスバーの作成

XMLとXSLを使った高度なUIデザイン:パート5

XML設定ファイル

 有効なプログレスバー設定ファイルを次に示します。

<?xml version="1.0"?>
<ProgressIndicator>
  <styles>
    <leftBackgroundColor>gray</leftBackgroundColor>
    <leftFontColor>white</leftFontColor>
    <rightBackgroundColor>white</rightBackgroundColor>
    <rightFontColor>black</rightFontColor>
    <borderTop>1px solid black</borderTop>
    <borderLeft>1px solid black</borderLeft>
    <borderBottom>1px solid black</borderBottom>
    <borderRight>1px solid black</borderRight>
    <height>25</height>
    <width>200</width>
  </styles>
  <percentComplete>0</percentComplete>
</ProgressIndicator>

 このファイルでは、使用するプログレスバーのスタイルおよび既定のパーセント値を定義します。

XSLTファイル

 初期化および更新の際にプログレスバーXMLに適用されるXSLTドキュメントを次に示します。

<xsl:stylesheet version="1.0"
 xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
 xmlns:dt="urn:schemas-microsoft-com:datatypes">
  <xsl:template match="ProgressIndicator">
    <TABLE BORDER="0" CELLSPACING="0" CELLPADDING="0">
      <xsl:attribute name="STYLE">
        border-top: <xsl:value-of select="styles/borderTop"/>;
        border-left: <xsl:value-of select="styles/borderLeft"/>;
        border-bottom: <xsl:value-of select="styles/borderBottom"/>;
        border-right: <xsl:value-of select="styles/borderRight"/>;
        height: <xsl:value-of select="styles/height"/>;
        width: <xsl:value-of select="styles/width"/>;
      </xsl:attribute>
      <TR>
        <TD ALIGN="right">
          <xsl:attribute name="STYLE">
            background-color: 
            <xsl:value-of select="styles/leftBackgroundColor" />;
            color: <xsl:value-of select="styles/leftFontColor" />;
            font-family: arial;
            font-size: 11px;
            font-weight: bold;
            width: <xsl:value-of 
              select="styles/width div 100 * percentComplete" />px;
          </xsl:attribute>
          <xsl:if test="percentComplete > 50">
            <span style="padding-left: 5px; padding-right: 5px;">
              <xsl:value-of select="percentComplete" />%
            </span>
          </xsl:if>
        </TD>
        <TD ALIGN="left">
          <xsl:attribute name="STYLE">
            background-color: <xsl:value-of 
              select="styles/rightBackgroundColor" />;
            color: <xsl:value-of select="styles/rightFontColor" />;
            font-family: arial;
            font-size: 11px;
            font-weight: bold;
            width: <xsl:value-of select= 
"styles/width - (styles/width div 100 * percentComplete)" />px;
          </xsl:attribute>
          <xsl:if test="percentComplete <= 50">
            <span style="padding-left: 5px; padding-right: 5px;">
              <xsl:value-of select="percentComplete" />%
            </span>
          </xsl:if>
        </TD>
      </TR>
    </TABLE>
  </xsl:template>
</xsl:stylesheet>

 このスタイルシートは、2つのセルを持つテーブルを作成します。パーセント値が0から50まで増えると、パーセントラベルの位置が右側のセルから左側のセルに切り替わります(パーセントラベルはHTMLのSPAN要素内に含まれています)。この位置の計算式は左側セルと右側セルで異なっており、上記のドキュメントにはそれぞれの式が示されています。

デモ

 デモ用のプログレスバーは、1秒ごとに10パーセント単位で更新を行うように設定されています。本稿のプログレスバーをデータバインドテーブルに関連付け、簡単なレコード/行の式を使ってプログレスバーを更新すると、クライアント側のデータバインドプロセスの進捗状況をリアルタイムで表示できるようになります。

次回記事の予定

 次回は、このプログレスバーをデータ連結テーブルで利用する方法を紹介します。図2は予告用のスクリーンショットです。

図2 次回記事のプレビュー
図2 次回記事のプレビュー

終わりに

 本稿の内容が、Webアプリケーションインターフェイスの質的向上に役立てば幸いです。質問・コメント・提案があれば、著者紹介にあるアドレスまで遠慮なくメールをお送りください。

 最後に、ここNashvilleに滞在している間、PC機器を使わせてくれたBarry Carter氏に感謝します。

本連載のその他の記事

この記事は参考になりましたか?

連載通知を行うには会員登録(無料)が必要です。
既に会員の方はを行ってください。
japan.internet.com翻訳記事連載記事一覧

もっと読む

この記事の著者

japan.internet.com(ジャパンインターネットコム)

japan.internet.com は、1999年9月にオープンした、日本初のネットビジネス専門ニュースサイト。月間2億以上のページビューを誇る米国 Jupitermedia Corporation (Nasdaq: JUPM) のニュースサイト internet.comEarthWeb.com からの最新記事を日本語に翻訳して掲載するとともに、日本独自のネットビジネス関連記事やレポートを配信。

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

Joe Slovinski(Joe Slovinski)

1993年以来、Webアプリケーションの開発に継続的に携わる。本稿で紹介したコードについてのお問い合わせはJoe Slovinskiまで。

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

CodeZine(コードジン)
https://codezine.jp/article/detail/269 2006/04/11 19:06

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー