@Override
	public Component getTreeCellRendererComponent(JTree tree, Object value, boolean sel, boolean expanded,
						boolean leaf, int row, boolean hasFocus) {
		/* get the default renderer */
		super.getTreeCellRendererComponent(tree, value, sel, expanded, leaf, row, hasFocus);
		
		/* set the icon */
		Task task = (Task) value;
		Icon icon = this.defaultIcon;
		
		if (task == null) return this;
		
		if (task.getChildCount() > 0) {
			switch (task.getStatus()) {
			case Task.STATUS_DONE: icon = this.doneFolderIcon; break;
			case Task.STATUS_UNDONE: icon = this.undoneFolderIcon; break;
			case Task.STATUS_DEFAULT: icon = this.defaultFolderIcon; break;
			}
		} else {
			switch (task.getStatus()) {
			case Task.STATUS_DONE: icon = this.doneIcon; break;
			case Task.STATUS_UNDONE: icon = this.undoneIcon; break;
			case Task.STATUS_DEFAULT: icon = this.defaultIcon; break;
			}
		}
		
		this.setIcon(icon);
		
		return this;
	}