/*
*
*/
package ext.egantt.drawing.module;
import com.egantt.awt.graphics.GraphicsContext;
import com.egantt.awt.graphics.GraphicsManager;
import com.egantt.awt.graphics.manager.BasicGraphicsManager;
import com.egantt.drawing.component.painter.PartPainter;
import com.egantt.drawing.component.painter.part.BasicPartPainter;
import com.egantt.drawing.component.painter.part.PartView;
import com.egantt.drawing.component.painter.part.view.BasicPartView;
import com.egantt.drawing.painter.RangePainter;
import com.egantt.drawing.painter.range.model.GranularityRangeModel;
import com.egantt.model.drawing.ContextResources;
import com.egantt.model.drawing.DrawingContext;
import com.egantt.model.drawing.axis.view.ViewResources;
import ext.egantt.drawing.DrawingModule;
import java.awt.Graphics;
import java.awt.Rectangle;
import java.util.List;
// Referenced classes of package ext.egantt.drawing.module:
// TextCalendarModule, LineCalendarModule
public class CalendarDrawingModule
implements DrawingModule
{
protected final class LocalGranularityRangeModel extends GranularityRangeModel
{
protected boolean accepts(Object key, Object gran, Graphics g, Rectangle bounds)
{
if(bounds.width == 0)
{
return false;
} else
{
RangePainter partPainter = (RangePainter)attributes.get((new StringBuilder()).append(CalendarDrawingModule.TIMELINE_TOP).append(CalendarDrawingModule.TEXT_PAINTER).toString(), ContextResources.DRAWING_PAINTER);
GraphicsContext context = (GraphicsContext)attributes.get((new StringBuilder()).append(CalendarDrawingModule.TIMELINE_TOP).append(CalendarDrawingModule.TEXT_PAINTER).toString(), ContextResources.GRAPHICS_CONTEXT);
long width = partPainter.width(key, gran, g, bounds, context);
return width <= (long)bounds.width;
}
}
final DrawingContext attributes;
final CalendarDrawingModule this$0;
public LocalGranularityRangeModel(int axisKey, int offset, DrawingContext attributes)
{
super(axisKey, offset);
this$0 = CalendarDrawingModule.this;
this.attributes = attributes;
}
}
public CalendarDrawingModule()
{
orientation = ViewResources.HORIZONTAL.intValue();
}
public void initialise(DrawingContext drawingcontext, List eventList) {
}
public void initialise(DrawingContext attributes)
{
loadTextModule(TIMELINE_TOP, 2, false, attributes);
loadLineModule(TIMELINE_TOP, 2, true, attributes);
loadTextModule(TIMELINE_BOTTOM, 1, true, attributes);
loadLineModule(TIMELINE_BOTTOM, 1, true, attributes);
}
public void terminate(DrawingContext drawingcontext)
{
}
protected PartPainter createPainter(PartView view, GraphicsManager graphics)
{
BasicPartPainter painter = new BasicPartPainter();
return painter;
}
protected void loadTextModule(String key, int offset, boolean value, DrawingContext attributes)
{
GranularityRangeModel model = new LocalGranularityRangeModel(orientation, offset, attributes);
TextCalendarModule module = new TextCalendarModule((new StringBuilder()).append(key).append(TEXT_PAINTER).toString(), model, value);
module.setGraphics(graphics);
module.initialise(attributes);
PartView view = new BasicPartView();
attributes.put((new StringBuilder()).append(key).append(TEXT_PAINTER).toString(), ContextResources.PART_PAINTER, createPainter(view, graphics));
}
protected void loadLineModule(String key, int offset, boolean value, DrawingContext attributes)
{
GranularityRangeModel model = new LocalGranularityRangeModel(orientation, offset, attributes);
LineCalendarModule module = new LineCalendarModule((new StringBuilder()).append(key).append(LINE_PAINTER).toString(), model);
module.setGraphics(graphics);
module.initialise(attributes);
PartView view = new BasicPartView();
attributes.put((new StringBuilder()).append(key).append(LINE_PAINTER).toString(), ContextResources.PART_PAINTER, createPainter(view, graphics));
}
public static String TIMELINE_BOTTOM = "TimelineBottom";
public static String TIMELINE_TOP = "TimelineTop";
public static String LINE_PAINTER = "-line";
public static String TEXT_PAINTER = "-text";
protected final int orientation;
protected final GraphicsManager graphics = new BasicGraphicsManager();
}