読者です 読者をやめる 読者になる 読者になる

JFace

前回の続きってことで・・・
えっと、無視できる空白をTextノードと認識してしまうのをはずそうってとこからだ!


っと、これは意外と簡単にできますね。ちょっとめんどいけど^^;

DocumentBuilderFactory#validating
DocumentBuilderFactory#setIgnoringElementContentWhiteSpace

の両方にtrueをセットしてあげればOK
これで、妥当性の検証と空白を無視できます。

で、このメソッド使うにあたってXML側で検証モード搭載しないといけないのでDTDを書いてあげましょう〜


それでおしまい。


うっこのままじゃ終われない!
昨日サボったしなぁw


っと、上記内容だと文章宣言がツリーにでちゃいましたね。



じゃぁこいつを取っ払いましょうっ



TreeViewerに限らずリスト構造を持ってるものにはFilterをかけることができます。
ViewerFileterを継承した自作Fileterクラスを作ってやりましょう。

package jface.list.sample;

import org.eclipse.jface.viewers.Viewer;
import org.eclipse.jface.viewers.ViewerFilter;
import org.w3c.dom.Node;

public class FiletrSample extends ViewerFilter {
	public boolean select(Viewer viewer, Object parentElement, Object element) {
		//ノードが文書宣言かどうかを判定
		return (((Node) element).getNodeType() == Node.DOCUMENT_TYPE_NODE) ?
				false : true;
	}
}

こんな感じで、文書宣言だったらfalseでそれ以外ならtrueを返してあげます。

で、WindowViewerを継承してるメインクラスにて、

viewer.addFilter(new FilterSample());

を追加してあげたら完了!

今日はこれくらいにして、画像を探しますw


次回はこれのにLabelProviderを使ってリストの前にイメージアイコンをつけるってのをやってみようと思います。
まぁEclipseのOutLineでよく見るやつですね。