Ext JS -Ext.tree.TreePanel-

社内学習の一環として、Ext JSを使って掲示板を作成しています。

メモレベルですが、備忘録として残しておきたいと思います。

まずは、Ext.tree.TreePanelです。
Ext.tree.TreePanelでは、ツリービューを表示するためのクラスです。

TreePanel1.html

<html>
	<!-- head -->
	<head>
		<!-- content-type -->
		<meta http-equiv="content-type" content="text/html; charset=utf-8" />
		<meta http-equiv="content-script-type" content="text/javascript" />
		<meta http-equiv="content-style-type" content="text/css" />
		<!-- /content-type -->
		<!-- Title -->
		<title>ExtJS Examples - TreePanel1 -</title>
		<!-- /Title -->

		<!-- Ext JS -->
		<link rel="stylesheet" type="text/css" href="http://extjs.cachefly.net/ext-3.2.0/resources/css/ext-all.css" />
		<!-- /Ext JS -->

		<!-- Ext JS -->
		<script type="text/javascript" src="http://extjs.cachefly.net/ext-3.2.0/adapter/ext/ext-base.js" charset="utf-8"></script>
		<script type="text/javascript" src="http://extjs.cachefly.net/ext-3.2.0/ext-all.js" charset="utf-8"></script>
		<script type="text/javascript" src="http://extjs.cachefly.net/ext-3.2.0/src/locale/ext-lang-ja.js" charset="utf-8"></script>
		<!-- /Ext JS -->

		<!-- App -->
		<script type="text/javascript" src="../../src/Panel/TreePanel1.js" charset="utf-8"></script>
		<!-- /App -->
	</head>
	<!-- /head -->
	<!-- body -->
	<body style="margin: 20 0 0 30;">
	</body>
	<!-- /body -->
</html>

TreePanel1.js

Ext.onReady( function() {
	Ext.BLANK_IMAGE_URL = 'http://extjs.cachefly.net/ext-3.2.0/resources/images/default/s.gif';
	Ext.QuickTips.init();

	// rootのツリーノードを生成
	var root = new Ext.tree.AsyncTreeNode({
		text: 'forum',
		leaf: false
	});

	var treePanel = new Ext.tree.TreePanel({
		title: 'Tree Panel',		// PanelのTitleを指定
		renderTo: Ext.getBody(),	// 表示する要素を指定
		width: 225,					// 幅
		height: 200,				// 高さ
		minSize: 150,				// 最小の幅
		maxSize: 300,				// 最大の幅
		rootVisible: false,			// rootのツリーノードを表示するか
		root: root					// rootのツリーノードを指定
	});

	// 子ノードを生成

	var node1 = new Ext.tree.TreeNode({
		text: 'thread1',
		leaf: true
	});

	var node2 = new Ext.tree.TreeNode( {
		text: 'thread2',
		leaf: true
	});

	var node3 = new Ext.tree.TreeNode( {
		text: 'thread3',
		leaf: true
	});

	// 生成した子ノードをrootノードに追加
	root.appendChild(node1);
	root.appendChild(node2);
	root.appendChild(node3);

});

実行結果

Ext.tree.TreePanelのサンプル

上のリンクは、サンプルソースを実際に動かした場合のリンクです。
このサンプルでは、ベタでツリーノードを指定していますが、
TreeLoaderを使ってサーバ側から処理結果を、XMLやJSON形式で受け取ることもできます。

参考


Ext 3.0 API Documentation 日本語版 Ext.tree.TreePanel

ブラウザ上での文字編集機能(WYSIWYGエディタ)

div等のブロック要素で、文字編集をしたい場合、JavaScriptなどで
contenteditable=true
とすると、ブロック要素での文字編集が可能になる。

FireFoxの場合は、
designMode=true
にすると編集可能になる。

これすごい。

初めて知ったときは本当に驚いた。。。

ボールドやイタリックとか文字サイズ変更とかもできるみたい。

思えば、ブログ書くときに使う編集機能はこれが使われてるのかな。

ネットで検索するとたくさん出てくるから、かなり昔の情報だと思うのですが
最近知って驚いたので、載せておきます。

Redmineのインストール

Redmineは、Ruby On Railsで作られたプロジェクト管理ツール。

自宅サーバでTracを使って遊んでいたのだが、Tracよりも使いやすいと

書いてあったので、インストールしてみた。

RubyとRailsがインストールされていること

データベース(PostgresqlやMySQL)がインストールされていること

前提として載せてます。

1.モジュールをダウンロード

#wget http://rubyforge.org/frs/download.php/39477/redmine-0.7.3.tar.gz
#tar zxvf redmine-0.7.3.tar.gz

最新版はここ

2.テーブルを作成

ここでは、MySQLで試した。

まず、MySQLにredmine用データベースと専用ユーザを作成する。

その後、モジュールを解凍したディレクトリ配下のconfigに移動

#cd redmine-0.7.3/config
データベース設定ファイルのサンプルをコピー

#cp database.yml.example database.yml
設定ファイルを編集

#vi database.yml
production:
adapter: mysql
database: 作成したデータベースの名前
host: localhost
username: 作成したユーザ名
password: 作成したユーザのパスワード
encoding: utf8

編集後、以下のコマンドを実行
# rake db:migrate RAILS_ENV=”production”
# rake load_default_data RAILS_ENV=”production”

言語設定を聞かれるので、jaを選択する。

これで、redmineのテーブルができた。

3.起動

ダウンロードしたモジュールの解凍後のディレクトリから以下のコマンドを実行する。

#ruby script/server

※停止時は、ctrl+cで止める。

4.接続

ブラウザから、「http://サーバ名:3000」で接続できる。

■所感

これはTracより使いやすい。

Rubyで作られてるから、RichなUIだし、かっこいい。

是非、お試しあれ。

ちなみに、デモサイトもあります。

http://my.redmine.jp/demo/

次回は、apacheとRailsの連携方法を。

そもそも、Rubyをしたことないからそこから勉強しないとな。。。