@Override
	public TreeRow next() {
		if (hasNext()) {
			if (mIterator == null) {
				TreeRow row = mRows.get(mIndex++);
				if (row instanceof TreeContainerRow) {
					TreeContainerRow containerRow = (TreeContainerRow) row;
					if (containerRow.getChildCount() > 0) {
						mIterator = new TreeRowIterator(containerRow.getChildren());
					}
				}
				return row;
			}
			return mIterator.next();
		}
		throw new NoSuchElementException();
	}