void notifyPageListeners(final PageEvent e) {
		if (pageListenerList == null || pageListenerList.isEmpty())
			return;
		Runnable r = new Runnable() {
			public void run() {
				synchronized (pageListenerList) {
					for (PageListener l : pageListenerList)
						l.pageUpdate(e);
				}
			}
		};
		if (EventQueue.isDispatchThread()) {
			r.run();
		} else {
			EventQueue.invokeLater(r);
		}
	}