@Override
	public void update() {
		if (doc.isShowingAttributes()) {
			AttributeContainer node = doc.tree.getEditingNode();
			
			model.keys.clear();
			model.values.clear();
			model.readOnly.clear();
			clearSelection();
			
			Iterator it = node.getAttributeKeys();
			if (it != null) {
				while (it.hasNext()) {
					String key = (String) it.next();
					Object value = node.getAttribute(key);
					boolean readOnly = node.isReadOnly(key);
					model.keys.add(key);
					model.values.add(value);
					model.readOnly.add(new Boolean(readOnly));
				}
			}
			
			if (isEditing()) {
				getCellEditor().cancelCellEditing();
			}
			
			model.fireTableDataChanged();
		}
	}