01: /*
02: * uDig - User Friendly Desktop Internet GIS client
03: * http://udig.refractions.net
04: * (C) 2004, Refractions Research Inc.
05: *
06: * This library is free software; you can redistribute it and/or
07: * modify it under the terms of the GNU Lesser General Public
08: * License as published by the Free Software Foundation;
09: * version 2.1 of the License.
10: *
11: * This library is distributed in the hope that it will be useful,
12: * but WITHOUT ANY WARRANTY; without even the implied warranty of
13: * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14: * Lesser General Public License for more details.
15: *
16: */
17: package net.refractions.udig.project.render;
18:
19: import java.util.List;
20:
21: import net.refractions.udig.project.ILayer;
22:
23: /**
24: * A toolkit that is provided to composite renderers.
25: * <p>
26: * In addition to the references available in the Toolkit class, RenderToolkit has the layers and
27: * services the renderer is responsible for and the buffered image that the renderer draws to.
28: * </p>
29: * <p>
30: * Responsibilities:
31: * <ul>
32: * <li>Provide access to the objects that an extension can use for its operations.</li>
33: * <li>Provide convenience methods for extension developers to use.</li>
34: * <li>Provide a consistent interface for extensions which will not easily change in future
35: * versions</li>
36: * </ul>
37: * </p>
38: *
39: * @author Jesse
40: * @since 0.5
41: * @see IRenderContext
42: */
43: public interface ICompositeRenderContext extends IRenderContext {
44:
45: /**
46: * @return List <IRenderContext>The list of RenderContexts that contain the information about
47: * how each layer should be rendered.
48: * @see IRenderContext
49: * @see List
50: */
51: List<IRenderContext> getContexts();
52:
53: /**
54: * Returns the list of all the layers referenced by the contained Contexts.
55: * <p>
56: * The method iterates throught the list of contexts and collects all the Layers
57: * </p>
58: *
59: * @return List <ILayer>The list of Layers
60: * @see ILayer
61: * @see List
62: */
63: List<ILayer> getLayers();
64:
65: public ICompositeRenderContext copy();
66:
67: }
|