package org.icepdf.ri.common.views.listeners; import org.icepdf.core.events.PageImageEvent; import org.icepdf.core.events.PageInitializingEvent; import org.icepdf.core.events.PageLoadingEvent; import org.icepdf.core.events.PagePaintingEvent; import org.icepdf.ri.common.views.DocumentViewController; import javax.swing.*; /** * DefaultPageViewLoadingListener takes advantage of the PageLoadingListener * interface to set the current page cursor to a wait symbol during page load. * * @since 5.1.0 */ public class DefaultPageViewLoadingListener extends PageViewLoadingListener { private JComponent pageComponent; private DocumentViewController documentViewController; public DefaultPageViewLoadingListener(JComponent pageComponent, DocumentViewController documentViewController) { this.pageComponent = pageComponent; this.documentViewController = documentViewController; } public void setDocumentViewController(DocumentViewController documentViewController) { this.documentViewController = documentViewController; } public void pageLoadingStarted(PageLoadingEvent event) { SwingUtilities.invokeLater(new Runnable() { public void run() { if (documentViewController != null) pageComponent.setCursor(documentViewController.getViewCursor( DocumentViewController.CURSOR_WAIT)); } }); } public void pageInitializationStarted(PageInitializingEvent event) { SwingUtilities.invokeLater(new Runnable() { public void run() { if (documentViewController != null) pageComponent.setCursor(documentViewController.getViewCursor( DocumentViewController.CURSOR_WAIT)); } }); } public void pagePaintingStarted(PagePaintingEvent event) { SwingUtilities.invokeLater(new Runnable() { public void run() { if (documentViewController != null) pageComponent.setCursor(documentViewController.getViewCursor( DocumentViewController.CURSOR_WAIT)); } }); } @Override public void pageInitializationEnded(PageInitializingEvent event) { // null will make the parent view icon be the default. SwingUtilities.invokeLater(new Runnable() { public void run() { pageComponent.setCursor(null); } }); } @Override public void pageImageLoaded(PageImageEvent event) { super.pageImageLoaded(event); } @Override public void pagePaintingEnded(PagePaintingEvent event) { // null will make the parent view icon be the default. SwingUtilities.invokeLater(new Runnable() { public void run() { pageComponent.setCursor(null); } }); } public void pageLoadingEnded(PageLoadingEvent event) { // null will make the parent view icon be the default. SwingUtilities.invokeLater(new Runnable() { public void run() { pageComponent.setCursor(null); } }); } }