昨日の続き


TreeViewer最後です!


結局アイコン画像は見つからなかったのでサンプルだけをw

package jface.list.sample;

import org.eclipse.jface.viewers.LabelProvider;
import org.eclipse.swt.graphics.Image;
import org.eclipse.swt.widgets.Display;
import org.w3c.dom.Node;

public class LabelProviderSample extends LabelProvider {
    Image imageParent;
    Image imageChild;
    Image imageGrandChild;
    
    public String getText(Object element) {
	return ((Node) element).getNodeName();
  }
	
    public LabelProviderSample() {
        Display display = Display.getCurrent();
        imageParent = new Image(display, "image1.gif");
        imageChild = new Image(display, "image2.gif");
        imageGrandChild = new Image(display, "image3.gif");
    }
    
  public void dispose() {
      if (imageParent.isDisposed()) {
      imageParent.dispose();
    }
        if (imageChild.isDisposed()) {
        	imageChild.dispose();
        }
        if (imageGrandChild.isDisposed()) {
            imageGrandChild.dispose();
        }
    }

    public Image getImage(Object element) {
        String nodeName = ((Node) element).getNodeName();
        
        if (nodeName.equals("parent")) {
          return imageParent;
        }
        
        if (nodeName.equals("child")) {
          return imageChild;
        }
        
        if (nodeName.equals("grandchild")) {
          return imageGrandChild;
        }
        
        return null;
    }
}

コンストラクタでImageを登録します。
そして、
Image#getImage(Object)でノードに対してのイメージを返してあげます。
これだけです。

意外と簡単♪
(単純に端折りすぎなだけ?@@)


まぁ今日は雨にぬれて寒いので勘弁してやってくださいm(__)m