    public void eventFired(EventObject event) {
		if (event instanceof ChangeEvent) {
			final ChangeEvent changeEvent = (ChangeEvent)event;
			final Object source = changeEvent.getSource();
			if (source instanceof IModel) {
				IPeerModel node = (IPeerModel)((IModel)source).getAdapter(IPeerModel.class);
				refresh(node, false);
			}
			else if (source instanceof IModelNode) {
				if ("expanded".equals(changeEvent.getEventId())) { 
					boolean expanded = ((Boolean)changeEvent.getNewValue()).booleanValue();
					getViewer().setExpandedState(source, expanded);
				} else {
					refresh(source, false);
				}
			}
		}
	}

    public void eventFired(EventObject event) {
		if (event instanceof ChangeEvent) {
			final ChangeEvent changeEvent = (ChangeEvent)event;
			final Object source = changeEvent.getSource();
			if (source instanceof IModel) {
				IPeerModel node = (IPeerModel)((IModel)source).getAdapter(IPeerModel.class);
				refresh(node, false);
			}
			else if (source instanceof IModelNode) {
				if ("expanded".equals(changeEvent.getEventId())) { 
					boolean expanded = ((Boolean)changeEvent.getNewValue()).booleanValue();
					if (getViewer() != null) getViewer().setExpandedState(source, expanded);
				} else {
					refresh(source, false);
				}
			}
		}
	}
