}
protected void fireTreeStructureMoved(Object source, TreePath path, Object from, Object to) {
// Guaranteed to return a non-null array
Object[] listeners = listenerList.getListenerList();
WorkspaceModelEvent e = null;
// Process the listeners last to first, notifying
// those that are interested in this event
for (int i = listeners.length - 2; i >= 0; i -= 2) {
if (listeners[i] == IProjectModelListener.class) {
// Lazily create the event:
if (e == null) e = new WorkspaceModelEvent(getProject(), source, path, WorkspaceModelEventType.MOVED, from, to);
((IProjectModelListener) listeners[i + 1]).treeStructureChanged(e);
}
}
}