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でよく見るやつですね。