private void copyTree(VCNTreeItem sourceItem, Object destinationItem, Integer index) {
		assert sourceItem != null && destinationItem != null;
		
		VCNTreeItem newItem;
		
		if (destinationItem instanceof Tree) {
			if (index != null) {
				newItem = new VCNTreeItem((Tree) destinationItem, SWT.NONE, index);
			} else {
				newItem = new VCNTreeItem((Tree) destinationItem, SWT.NONE);
			}
		} else {
			if (index != null) {
				newItem = new VCNTreeItem((TreeItem) destinationItem, SWT.NONE, index);
			} else {
				newItem = new VCNTreeItem((TreeItem) destinationItem, SWT.NONE);
			}			
		}
//		newItem.setText(sourceItem.getText());
//		newItem.setContent(sourceItem.getContent());
		newItem.buildItemAgainstSource(sourceItem);
		
		for (TreeItem childItem : sourceItem.getItems()) {
			copyTree((VCNTreeItem)childItem, newItem, null);
		}
		
	}