Archive for 1 月, 2010
Twitter Weekly Updates for 2010-01-31
- ExtJSに使えるかもしれないアイコン集http://www.iconfinder.net/free_icons/ #
- あすのチュートリアルはhttp://bit.ly/a6lU7f #
- ExtJS入門11からやれるところまでやります #
- あすは、千種駅のニューキャストさんセミナールームで行いますので、お時間ある方はぜひお越しください #
- ユーザー事例は、ちょっと趣向をかえて、モンゴルでExtJSを教育してきたので、その話をしたいと思っています(アジアにビジネスで出るときとかに参考になると思います) #
- コードリーデングはtyamaに引き続きお願いしています #
- 本日7:00より勉強会を開催します。本日は場所が違いますので、ご注意くださいhttp://extjs.co.jp/blog/2010/01/12/ext-study-nagoya-4/ #
- 本日もたくさん集まっていただきありがとうございます。ちょっとぐだぐだになってしまいすいませんでしたー、次回からは真面目にやりますw #
- @ncinagaki 今日はチュートリアルのスピーカーが風邪で来れなかったので、Ext.Directの話をしました。ブログの方は進んでいないので、次回宜しくお願いします。 in reply to ncinagaki #
- @ken_kiku Directは再利用の必要のないシステムなんかにはあんまり向いていないと思いますが、規模が大きくなるとサーバ側の受け口を一本化できていいかもしれないですね。導入事例が増えてくるといいかもしれないです。 in reply to ken_kiku #
Powered by Twitter Tools
Twitter Updates for 2010-01-29
- 本日7:00より勉強会を開催します。本日は場所が違いますので、ご注意くださいhttp://extjs.co.jp/blog/2010/01/12/ext-study-nagoya-4/ #
- 本日もたくさん集まっていただきありがとうございます。ちょっとぐだぐだになってしまいすいませんでしたー、次回からは真面目にやりますw #
- @ncinagaki 今日はチュートリアルのスピーカーが風邪で来れなかったので、Ext.Directの話をしました。ブログの方は進んでいないので、次回宜しくお願いします。 in reply to ncinagaki #
- @ken_kiku Directは再利用の必要のないシステムなんかにはあんまり向いていないと思いますが、規模が大きくなるとサーバ側の受け口を一本化できていいかもしれないですね。導入事例が増えてくるといいかもしれないです。 in reply to ken_kiku #
Powered by Twitter Tools
Twitter Updates for 2010-01-28
- あすのチュートリアルはhttp://bit.ly/a6lU7f #
- ExtJS入門11からやれるところまでやります #
- あすは、千種駅のニューキャストさんセミナールームで行いますので、お時間ある方はぜひお越しください #
- ユーザー事例は、ちょっと趣向をかえて、モンゴルでExtJSを教育してきたので、その話をしたいと思っています(アジアにビジネスで出るときとかに参考になると思います) #
- コードリーデングはtyamaに引き続きお願いしています #
Powered by Twitter Tools
第5回ExtJS勉強会@名古屋 2/25 パネル内のエレメントを作成する
第4回ExtJS勉強会@名古屋のチュートリアルセクション用の資料用のまとめです。
前回までのセッションでパネルを作るところまで行きました。今回はそのパネルの中に表示するHTML要素を生成するためのクラスを中心に扱います。クラスとしては以下の3つが中心になります。
Ext.XTemplateではHTMLをテンプレートと記述して、パネルに設定します。
Ext.DomHelperではDOMの追加や削除を行います。
Ext.DataView,ListViewはストアの内容をパネルに配置する簡単な方法を紹介します。
前回までのセッションのまとめはこちらです。
第2回ExtJS勉強会@名古屋 勉強会Ext.onReadyからはじめるExtJSのまとめ
第3回ExtJS勉強会@名古屋 11/27 Ext.Panelからはじめるコンポーネントの基礎
各チュートリアル記事へのリンク
・ExtJS入門10 Ext.XTemplateを使う
http://extjs.blog.sus4.co.jp/2009/12/03/extjs-tutorial10/
・ExtJS入門11 Ext.XtemplateでJS内のテンプレートを使う
http://extjs.blog.sus4.co.jp/2009/12/04/extjs-tutorial11/
・ExtJS入門13 Ext.DomHelperの使い方
http://extjs.blog.sus4.co.jp/2010/01/14/extjs-tutorial13-domhelper1/
・ExtJS入門14 DomHelperの使い方2
http://extjs.blog.sus4.co.jp/2010/01/14/extjs-tutorial14-domhelper2/
・ExtJS入門14 DomHelperの使い方3
http://extjs.blog.sus4.co.jp/2010/02/25/extjs-domhelper-insert-remove/
・ExtJS入門15 DataViewの使い方
http://extjs.blog.sus4.co.jp/2010/01/26/extjs-tutrorial15/
・ExtJS入門16 ListViewの使い方
http://extjs.blog.sus4.co.jp/2010/01/27/extjs-tutorial16/
ExtJS入門16 ListViewの使い方
DataViewと同じストアを簡易に表示させるクラスに、Ext.ListViewがあります。DataViewでは項目に対してHTMLのテンプレートを用意してストアの内容を表示させていましたが、ListViewでは簡易のグリッドのようにリスト項目を並べてくれます。
Ext.ListView
ExtJS -3.0 日本語APIドキュメント – Ext.ListView
http://extdocs.xenophy.com/?class=Ext.ListView
Ext.DataViewの使い方はこちらから
ExtJS入門15 DataViewの使い方
・PHP
<?php
$row = array();
for ($i = 0; $i < 10; $i++){
$row[$i] = array(
'title' => 'データ' . $i,
'datetime' => date('Y/m/d H:i:s')
);
}
$arr = array(
'total' => $i,
'row' => $row,
'success' => true
);
header("Content-Type: text/javascript; charset=utf-8");
echo json_encode($arr);
die();
?>
今回はJsonStoreへのデータは動的にPHPから提供するようにします。ここでは単純にtitleと時刻を生成してJSONで出力しています。
・HTML
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>ExtJS名古屋勉強会 ListViewの使い方</title>
<!--Ext JS CSS-->
<link rel="stylesheet" href="../js/ext/resources/css/ext-all.css" type="text/css" />
<!--Ext JS-->
<script type="text/javascript" src="../js/ext/adapter/ext/ext-base.js"></script>
<script type="text/javascript" src="../js/ext/ext-all.js"></script>
<script type="text/javascript" src="listview.js"></script>
</head>
<body>
<div class="body">
</div>
</body>
</html>
HTMLは基本的にいつもと同じですね。
・JS
Ext.onReady(function(){
//ストアを用意する
var store = new Ext.data.JsonStore({
url:'listview.php',
totleProperty:'total',
root:'row',
autoLoad:true,
fields:['title','datetime']
});
new Ext.Panel({
renderTo:Ext.getBody(),
id:'myPanel',
title:'ListViewでStoreの内容を表示する',
items:{
xtype:'listview',
store: store,
autoHeight:true,
emptyText: 'No images to display',
reserveScrollOffset: true,
columns: [{
header: '項目',
width: .5,
dataIndex: 'title'
},{
header: '日付',
width: .5,
dataIndex: 'datetime',
}]
},
//ボタン設定
buttonAlign:'center',
buttons:[
{
text:'更新',
handler:function(){
store.reload();
}
}
]
});
});
・実行結果
Ext.ListViewのxtypeはlistviewです。戻り値はBoxComponentですので親にパネルを設定して、そのitemsにListViewを設定します。
基本はDataViewとよく似ています。違いはtplコンフィグが無くcolumnsを指定します。columnsの書き方はグリッドのcolumModelとよく似ています。グリッドについてはまた詳しく解説します。
columnにはオブジェクトを配列で表示設定を指定します。
- headerは項目の見出しテキストを設定します
- dataIndexがストアに保持されているデータのプロパティ名を指定します。JsonStoreで指定したfieldsの項目の一つになります。/li>
- widthは各列の幅のパーセンテージを指定します。0.5とすると画面の50%ということになります。
実行すると、綺麗なグリッドが自動的に作られています。見出しをクリックするとソートの方向も変更できます。
APIドキュメントでは以下のような特徴を上げています。
Ext.ListViewは、Gridの様な高速で軽いリストビュー機能を提供します。 主な機能は、次の通りです。
・カラムのリサイズ
・カラム選択
・カラム幅は、初期状態でコンテナの比率に自動的に調整されます。
・あらゆる形式に対応するためレンダーとしてテンプレートが使用できます。
・水平スクロールはサポートされません。
・カラム編集はサポートされません。
より多機能はグリッドはExt.grid.GridPanelクラスを使うべきですが、お手軽にストアの内容をグリッド表示させてたい場合は有効です。
ExtJS入門15 DataViewの使い方
テンプレートの関連のクラスとしてもう一つ、Ext.DataViewクラスがあります。
DataViewはStoreに保持しているデータをページに表示できる形式でアウトプットしてくれるクラスです。
Ext.DataViewでは、BoxComponentが帰ってきます。
Ext.ListView
ExtJS -3.0 日本語APIドキュメント – Ext.DataView
http://extdocs.xenophy.com/?class=Ext.DataView
DataViewではストアに登録されているデータをシンプルに表示させるのに使います。
以下がサンプルコードです。
・HTML
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>ExtJS名古屋勉強会 DataViewの使い方</title>
<!--Ext JS CSS-->
<link rel="stylesheet" href="../js/ext/resources/css/ext-all.css" type="text/css" />
<!--Ext JS-->
<script type="text/javascript" src="../js/ext/adapter/ext/ext-base.js"></script>
<script type="text/javascript" src="../js/ext/ext-all.js"></script>
<script type="text/javascript" src="dataview-paul.js"></script>
</head>
<body>
<div class="body">
</div>
</body>
</html>
今回はJS側でテンプレートを生成するんので、ほとんど何もありません。
・JS
Ext.onReady(function(){
var calcData = function() {
var data = [];
var item = {}
for (var i =0; i < 50; i++) {
var r = Math.floor(Math.random() * 255);
var g = Math.floor(Math.random() * 255);
var b = Math.floor(Math.random() * 255);
item = {
id:i,
rgb:String.format('rgb({0},{1},{2})', r, g, b)
};
data[i] = item;
}
return data;
};
var initData = calcData();
var store = new Ext.data.JsonStore({
autoLoad:true,
data:initData,
fields:['id','rgb']
});
//XTemplate.fromだとstyleに値を設定できない(Firefox)
var dataViewTpl = new Ext.XTemplate(
'<tpl for=".">',
'<div class="paul">',
'<div>',
'<div style="background:{rgb};width:100%;height:15px;color:#EEE; font-size:small;">',
'<div>',
'</div>',
'</div>',
'</tpl>'
);
new Ext.Panel({
renderTo:Ext.getBody(),
id:'myPanel',
title:'DataViewでカラーバーを表示',
bodyStyle:{
'text-align':'center'
},
items:{
xtype:'dataview',
tpl:dataViewTpl,
store: store,
autoHeight:true,
itemSelector:'div.paul'
},
buttonAlign:'center',
buttons:[{
scale:'large',
text:'New Color!',
handler:function(){
var newData = calcData();
store.loadData(newData);
}
}]
});
});
まずストアを用意して、データを設定します。今回はJava Scriptでデータを生成していますが、urlでJSONを取得することもできます。
今回はランダムな色を生成してJsonStoreに保持します。アップデートボタンをつけてJsonStoreの値を変更するため関数を作っておきます。
dataViewはそのままではBoxComponentですので、パネルのアイテムとして設定します。これで階層が少し深くなりますが、パネルの機能が使えるようになります。
・実行結果
ランダムに生成された色の値をdivに設定して表示します。ボタンをクリックして内容を更新することができます。なんちゃって横ポールスミスみたいな画面です。
XTemplateなどでは、毎回overwriteメソッドのように上書きを自分で指定していましたが、DataViewの場合はStoreの内容が更新されると自動的に再描画されます。
ストアの内容をさっと表示したい場所では便利です。また外部にAPIを持っていて、頻繁に更新するような場合もDataViewの方が簡単に表示を更新できます。
さらにストアの内容を簡易のグリッドとして表示するExt.ListViewクラスもあります。
ExtJS入門16 ListViewの使い方
http://extjs.blog.sus4.co.jp/2010/01/27/extjs-tutorial16/
Twitter Updates for 2010-01-25
ExtJSテーマいろいろ
こんにちは。野村です。
ExtJSでアプリケーションを作る際、ExtJS標準のスキンを利用することがあまり好ましくない状態の時もあると思います。そんな時に、どうぞ。
ExtJSスキンのベースは青なのですが、それを色々な色で構成したスキン群です。
Ext JS – 20 Ext JS themes (via @fudi)



