Ext JS の味見 - 6 編集

「ボタンをいろいろ。」
Ext JS が用意している標準的なボタンの紹介。名前と、ボタンを押した時の処理を渡すだけの簡単実装。

bbar, tbar のところは、ボタンかどうか分かり難いので、実際に開発する時はアイコンを付けることになる。extjs.com に用意されてるサンプルは、ほとんど (すべて?) アイコンが付いてるところから見て、アイコンを付ける前提でデザインされてるのだろう。

では、早速ソースコードを。

<html>
<head>
  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

  <!-- CacheFly を使って、Ext JS を読み込む -->
  <link rel="stylesheet" type="text/css" href="http://extjs.cachefly.net/ext-2.2.1/resources/css/ext-all.css" />
  <script type="text/javascript" src="http://extjs.cachefly.net/builds/ext-cdn-771.js"></script>

  <script type="text/javascript">

  function sample6() {
    // ボタンを押された時の処理
    var func = function(btn, evt) {
      Ext.Msg.alert('Message', '"' + btn.text + '" が押されました');
    };
  
    var panel = new Ext.Panel({
      title:      'TestPanel',
      height:     300,
      width:      300,
      tbar: [                             // 上部のツールバー
        {text: 'ボタン1', handler: func},
        {text: 'ボタン2', handler: func}
      ],
      bbar: [                             // 下部のツールバー
        {text: 'ボタン3', handler: func},
        {text: 'ボタン4', handler: func},
        '->',                             // 以後のボタンを右寄せ
        {text: 'ボタン5', handler: func, enableToggle: true} // トグルボタンも可能
      ],
      buttons: [                          // ボタンの配列
        {text: 'ボタン6', handler: func},
        {text: 'ボタン7', handler: func}
      ],
      buttonAlign:  'center'          // ボタンをセンタリング
    });

    return panel;
  }
  
  Ext.onReady(function() {
    var panel = sample6();
    panel.render('foo6');
  });

  </script>
</head>
<body style="margin:5mm;">
  <h1>Ext JS の味見 - 6</h1>
  <h2>- ボタン類のサンプル -</h2>
  <br />
  <div id="foo6"></div>
</body>

</html>

今回の動作画面は下図の通り。今回は、モーダルダイアログが出ているところの画像なので、ダイアログ以外のところにはマスクがかかってる。このあたりも Ext JS が自動的にやってくれる。