@Override
	public void update(Document document) {
		NodeList node = null;
		NodeList items = null;
		Element element = null;

		node = document.getElementsByTagName("SomaticContext");
		element = (Element) node.item(0);
		items = element.getElementsByTagName("FrameState");
		if (!synchronizeMode && !updateFlag)
			return;
		for (int i = 0; i < items.getLength(); i++) {
			Element item = (Element) items.item(i);
			valuePanel.setFrame(item);

			// FIXME dirty hack
			String name = item.getAttribute("name");
			if (name.equals("HeadPitch") || name.equals("LElbowRoll")
					|| name.equals("LSole") || name.equals("RSole")
					|| name.equals("RElbowRoll"))
				valuePanel.setChain(item);
		}
		updateFlag = false;
	}