/*
*
*/
package ext.egantt.drawing;
import java.util.List;
import com.egantt.awt.graphics.GraphicsManager;
import com.egantt.awt.graphics.GraphicsState;
import com.egantt.awt.graphics.manager.BasicGraphicsManager;
import com.egantt.awt.graphics.state.GraphicsState2D;
import com.egantt.drawing.view.manager.LongViewManager;
import com.egantt.model.component.ComponentManager;
import com.egantt.model.drawing.ContextResources;
import com.egantt.model.drawing.DrawingContext;
import com.egantt.model.drawing.axis.*;
import com.egantt.model.drawing.axis.interval.LongInterval;
import com.egantt.model.drawing.context.BasicDrawingContext;
import com.egantt.model.scrolling.range.view.BasicViewRange;
import com.egantt.swing.scroll.ScrollManager;
import com.egantt.swing.scroll.manager.BasicScrollManager;
import ext.egantt.component.field.manager.DefaultFieldManager;
import ext.egantt.drawing.module.BasicColorModule;
import ext.egantt.drawing.module.BasicPainterModule;
import ext.egantt.drawing.module.BoundedPainterModule;
import ext.egantt.drawing.module.CalendarDrawingModule;
import ext.egantt.drawing.module.EditorDrawingModule;
import ext.egantt.drawing.module.FilledPainterModule;
import ext.egantt.drawing.module.GanttDrawingModule;
import ext.egantt.drawing.module.GradientColorModule;
import ext.egantt.drawing.module.StandardDrawingModule;
import ext.egantt.model.drawing.ComponentUtilities;
public class GanttComponentUtilities
implements ComponentUtilities
{
public GanttComponentUtilities(String axises[])
{
managers = new ScrollManager[2];
graphics = new BasicGraphicsManager();
state = new GraphicsState2D();
this.axises = axises;
}
public GanttComponentUtilities(String axises[], List eventList)
{
managers = new ScrollManager[2];
graphics = new BasicGraphicsManager();
state = new GraphicsState2D();
this.axises = axises;
this.eventList = eventList;
}
public void setDrawingGraphics(GraphicsManager graphics)
{
this.graphics = graphics;
}
public void setGraphicsState(GraphicsState state)
{
this.state = state;
}
public DrawingContext getContext()
{
return context;
}
public ComponentManager getManager()
{
context = createContexts();
AxisInterval intervals[] = createIntervals(axises);
for(int i = 0; i < axises.length; i++)
{
LongAxis axis = new LongAxis();
axis.setInterval(intervals[i]);
initialiseContext(axises[i], axis.getView(i % 2), context);
}
return new DefaultFieldManager(state, context);
}
public ScrollManager getScrollManager(int pos)
{
return managers[pos];
}
protected AxisInterval[] createIntervals(String axises[])
{
AxisInterval intervals[] = new AxisInterval[axises.length];
for(int i = 0; i < axises.length; i++)
intervals[i] = new LongInterval(0L, 100L);
return intervals;
}
protected DrawingContext createContexts()
{
BasicDrawingContext context = new BasicDrawingContext();
(new BasicColorModule()).initialise(context);
(new GradientColorModule()).initialise(context, eventList);
(new BasicPainterModule()).initialise(context);
(new BoundedPainterModule()).initialise(context);
(new CalendarDrawingModule()).initialise(context);
(new FilledPainterModule()).initialise(context);
(new GanttDrawingModule()).initialise(context);
(new StandardDrawingModule()).initialise(context);
(new EditorDrawingModule()).initialise(context);
return context;
}
protected void initialiseContext(String key, AxisView view, DrawingContext context)
{
LongViewManager manager = new LongViewManager();
manager.setView(view);
BasicViewRange viewRange = new BasicViewRange();
viewRange.setManager(manager);
BasicScrollManager scrollModel = new BasicScrollManager();
scrollModel.setRangeModel(viewRange);
context.put(key, ContextResources.AXIS_VIEW, view);
context.put(key, ContextResources.SCROLL_MANAGER, scrollModel);
if(managers[0] == null)
managers[0] = scrollModel;
context.put(key, ContextResources.VIEW_MANAGER, manager);
}
protected GraphicsManager graphics;
protected GraphicsState state;
protected DrawingContext context;
protected ScrollManager managers[];
String axises[];
private List eventList = null;
}