ScrollPanelのTreeについて

64 views
Skip to first unread message

ougotti

unread,
Apr 14, 2011, 7:25:20 AM4/14/11
to Google Web Toolkit in Japanese (GWTJP)
こんにちは
鶴野と申します。

ScrollPanel内のTreeの(長い文字列の)Itemをクリックして選択したとき、
スクロールバーの位置が、そのItemの右端までスクロールしてしまい、
他のItem(root)が見えなくなってしまい困っています。

スクロール位置は、そのままのように変更したいのですが、
この振る舞いは、
com.google.gwt.dom.client.DOMImpl#scrollIntoView()
あたりが関連していそうなのですが、
Treeのためだけ変更するには、なにか良いアイデアは無いでしょうか?


public void onModuleLoad() {
// Create a tree with a few items in it.
TreeItem root = new TreeItem("root");
root.addItem("item0");

// Add a CheckBox to the tree
TreeItem item = new TreeItem("foobarhogehoge"); // 長い文字列アイテム
item.addItem(new TreeItem("item11"));
item.addItem("item12");
item.addItem("item13");
item.addItem("item14");

root.addItem(item);

Tree t = new Tree();

ScrollPanel scrollPanel = new ScrollPanel();
scrollPanel.setHeight("100px");
scrollPanel.setWidth("100px");
t.addItem(root);
scrollPanel.add(t);
RootPanel.get().add(scrollPanel);
}

なにか良い方法があれば、教えてください。
よろしくお願い致します

大橋啓介

unread,
Apr 21, 2011, 5:38:37 AM4/21/11
to gwt...@googlegroups.com
お疲れ様です。
大橋(soundTricker)ともうします。

ちょっと細かいところまで見れてないですが、
無理矢理やるならばTreeクラスのソースをgwtのリポジトリから落としてきて、
同じパッケージ同じクラス名で作成して対象の処理(Tree#moveFocusのscrollIntoViewを呼び出すところ)を上書きしてしまうか、
GWT2.1以降ならば確かCellTreeを使えばクリック時に特に移動しなかったはずです!

間違ってたらすいません、、、

2011年4月14日20:25 ougotti <takanobu...@gmail.com>:

Reply all
Reply to author
Forward
0 new messages