package org.erlide.tracing.core.mvc.model.treenodes;
import java.util.ArrayList;
import java.util.List;
import org.eclipse.swt.graphics.Image;
/**
* Tree node displayed in treeviewer.
*
* @author Piotr Dorobisz
*
*/
public class TreeNode implements ITreeNode {
private ITreeNode parent;
private String label;
private final List<ITreeNode> children = new ArrayList<>();
private Image image;
public TreeNode() {
this(null, null);
}
public TreeNode(final String label) {
this(label, null);
}
public TreeNode(final String label, final Image image) {
this.label = label;
this.image = image;
}
@Override
public ITreeNode getParent() {
return parent;
}
@Override
public void setParent(final ITreeNode parent) {
this.parent = parent;
}
@Override
public String getLabel() {
return label;
}
@Override
public boolean hasChildren() {
return children.size() > 0;
}
@Override
public List<ITreeNode> getChildren() {
return children;
}
@Override
public void addChildren(final ITreeNode... childrenList) {
for (final ITreeNode child : childrenList) {
children.add(child);
}
}
@Override
public void removeChild(final ITreeNode child) {
children.remove(child);
}
@Override
public void setLabel(final String label) {
this.label = label;
}
@Override
public void setImage(final Image image) {
this.image = image;
}
@Override
public Image getImage() {
return image;
}
}