package org.geogebra.common.kernel;
import java.util.ArrayList;
import org.geogebra.common.kernel.geos.GeoElement;
/**
* Interface for views that need more info from the kernel
*
*/
public interface ClientView extends View {
/**
* Notify the client that all updates related to renaming an object are
* finished
*/
public void renameUpdatesComplete();
/**
* Notify client that a polygon and all it's related GeoElms are about the
* be created
*/
public void addingPolygon();
/**
* Notify the client that a new polygon is complete.
*
* @param polygon
* The fully defined, new polygon
*/
public void addPolygonComplete(GeoElement polygon);
/**
* Notify the client that a group of objects are being moved together. Using
* this, the client can ignore the individual updates from the base View
* interface when a group of elms are being moved together.
*/
public void movingGeos();
/**
* Update the client with the new location of the objects
*
* @param elms
* The list of GeoElements that were moved.
*/
public void movedGeos(ArrayList<GeoElement> elms);
/**
* Notifies the client that elements have been delete. This includes geoElms
* that get deleted when and object with dependents is deleted. It also
* notifies when only one elm is deleted, so it can be a full replacement
* for the View's remove api.
*
* @param elms
* The full list of elms that were removed due to an object with
* dependents being deleted.
*/
public void deleteGeos(ArrayList<GeoElement> elms);
/**
* Notify client that objects are about to pasted into the construction.
*
* @param pasteXml
* XML of pasted construction
*/
public void pasteElms(String pasteXml);
/**
* Provide the full list of pasted elms to the client, in their finished
* state (e.g. no temporary MAGIC_STRING labels)
*
* @param pastedElms
* The full list of pasted elms, in their finished state.
*/
public void pasteElmsComplete(ArrayList<GeoElement> pastedElms);
}