void addItem(TableTreeItem item, int index) {
		if (item == null)
			SWT.error(SWT.ERROR_NULL_ARGUMENT);
		if (index < 0 || index > items.length)
			SWT.error(SWT.ERROR_INVALID_ARGUMENT);

		/* Now that item has a sub-node it must indicate that it can be expanded */
		if (items.length == 0 && index == 0) {
			if (tableItem != null) {
				Image image = expanded ? parent.getMinusImage() : parent
						.getPlusImage();
				tableItem.setImage(0, image);
			}
		}

		/* Put the item in the items list */
		TableTreeItem[] newItems = new TableTreeItem[items.length + 1];
		System.arraycopy(items, 0, newItems, 0, index);
		newItems[index] = item;
		System.arraycopy(items, index, newItems, index + 1, items.length
				- index);
		items = newItems;
		if (expanded)
			item.setVisible(true);
	}