package com.vividsolutions.jump.workbench.ui.renderer;
import java.awt.Graphics2D;
import java.awt.geom.NoninvertibleTransformException;
import com.vividsolutions.jump.workbench.ui.LayerViewPanel;
/**
* First call #createRunnable. If it returns null, get the image using #copyTo.
* Otherwise, run the Runnable in a separate thread. You can call #copyTo while
* it's drawing to get the partially drawn image. Drawing is done when
* #isRendering returns false.
*/
public interface Renderer {
public abstract void clearImageCache();
public abstract boolean isRendering();
/**
*@return contentID which identifies this Renderer by what it draws
*/
public abstract Object getContentID();
public abstract void copyTo(Graphics2D graphics);
/**
* @return null if no rendering work needs to be done
*/
public abstract Runnable createRunnable();
public abstract void cancel();
public static interface Factory {
public Renderer create();
}
//[sstein: 20.01.2006] from Ole for RenderingManager changes
// for not hardwired renderers and to including pirol image layers
/**
* @deprecated Replaced by {@link RendererFactory}
*/
public static interface ContentDependendFactory {
public Renderer create(Object contentID);
}
}