package org.geogebra.desktop.gui.view;
import org.geogebra.common.kernel.View;
import org.geogebra.common.kernel.geos.GeoElement;
/**
* * This class will collect update events in a time slice and bundles them in a
* Set and after the time slice it will handle them to its attached view.
* (Multiple updates of the same GeoElement in a time slice are only handled
* down to the extends AlgebraView once at the end of the time slice.)
*
* @author Lucas Binter
*/
public interface CompressedView extends View {
/**
* This function should invoke view.update(geo) directly
*
* @param geo
* the GeoElement which has changed
*/
public void updateNow(GeoElement geo);
/**
* Calls the original repaint() function You need to overwrite the repaint
* function with an empty one to get the desired effect
*
*/
public void repaintNow();
/**
* e.g.:
*
* @Override final public void repaint() { if (!repaintTimer.isRunning()) {
* repaintNow(); }else{ repaintTimer.start(); } }
*/
public void repaint();
}