private void fillNode(Element parentElement, VCNTreeItem parentItem) {
		NodeList children = parentElement.getChildNodes();

		for (int i = 0; i < children.getLength(); i++) {
			Node child = children.item(i);

			if (child instanceof Element) {
				Element childElement = (Element) child;
				String nodeName = childElement.getNodeName();

				if (nodeName.equals(VCNConstants.NODE)) {
					// recursion
					String nodeNameAttr = childElement.getAttribute(VCNConstants.NAME);
					boolean isExpanded = new Boolean(
							childElement.getAttribute(VCNConstants.EXPANDED));

					VCNTreeItem item = new VCNTreeItem(parentItem, 0);
					item.setText(nodeNameAttr);

					fillNode(childElement, item);

					item.setExpanded(isExpanded);
				}

				// no attr => empty string (not null)
				if (nodeName.equals(VCNConstants.TEXT)) {
					String content = childElement.getAttribute(VCNConstants.CONTENT);
					String wrapAttr = childElement.getAttribute(VCNConstants.WRAP);
					String isBoldStr = childElement.getAttribute(VCNConstants.IS_BOLD_ITEM_NAME);
					String nodeColorStr = childElement.getAttribute(VCNConstants.ITEM_NAME_COLOR);
					System.out.println("isBoldStr = '" + isBoldStr + "' => " + getBoolean(isBoldStr));
					
					boolean wrap = new Boolean(wrapAttr);
					if (wrapAttr == null || wrapAttr.trim().isEmpty()) {
						wrap = true;
					}
					
					parentItem.setContent(content);
					parentItem.setWrap(wrap);
					
					if (getBoolean(isBoldStr) != null) {
						parentItem.setBold(getBoolean(isBoldStr));
					}
					
					Color color = getColor(nodeColorStr, parentItem.getDisplay());
					if (color != null) {
						parentItem.setForeground(color);
					}
				}
			}
		}
	}