/**
* @(#)DrawingPart.java
*
* Copyright 2002 EGANTT LLP. All rights reserved.
* PROPRIETARY/QPL. Use is subject to license terms.
*/
package com.egantt.model.drawing;
import java.util.Iterator;
import java.util.List;
import com.egantt.model.drawing.axis.AxisInterval;
import com.egantt.model.drawing.part.event.DrawingPartListener;
/**
* The diagram model is the information behind the actual diagram panel for table
* functionality it is advisable to extend the diagram model as maintaining two
* models is easier than maintaining the one
*/
public interface DrawingPart
{
// ________________________________________________________________________
boolean isSummaryPart();
// __________________________________________________________________________
/**
* Add a new listener to the model
*/
void addDrawingPartListener(DrawingPartListener listener);
/**
* Remove an existing listener from the model
*/
void removeDrawingPartListener(DrawingPartListener listener);
// __________________________________________________________________________
/**
* Returns the axis keys in use
*/
List keys();
/**
* Returns the keys
*/
Iterator values(AxisInterval interval[]);
// __________________________________________________________________________
/**
* Returns a unique reference to the painter for this part i.e. a PartPainter
*/
Object getPainter();
// __________________________________________________________________________
/**
* Returns the location on the given Axis
*/
AxisInterval [] getInterval(Object key, AxisInterval intervals []);
AxisInterval [] getInterval();
// __________________________________________________________________________
/**
* Returns a unique reference to the proxy required for the paint operation
*/
Object getContext(Object key);
/**
* Returns a unique reference to the plotter required for the paint operation
*/
Object getPainter(Object key);
/**
* Returns a unique reference to the State required for the paint operation
*/
Object getState(Object key);
}