package uk.ac.leeds.ccg.geotools; import java.lang.*; import java.awt.*; import java.util.*; import java.io.*; /** an experimental class to hold multiple layers in a * single theme. Layers are drawn in the order they are added. * Other than painting this object behaves as a theme with the first layer * being used for highlighting/selection etc. Feel free to modify this * behaviour if you need. *

Ian */ public class MultiTheme extends Theme{ static boolean DEBUG=false; static String DBC="MT->"; Vector layers = new Vector(); GeoRectangle bounds = new GeoRectangle(); public MultiTheme(Layer l){ super(l); layers.addElement(l); bounds.add(l.getBounds()); } public MultiTheme(Layer l, Shader s){ super(l,s); layers.addElement(l); bounds.add(l.getBounds()); } public MultiTheme(Layer l, Shader s, java.lang.String n){ super(l,s,n); layers.addElement(l); bounds.add(l.getBounds()); } public MultiTheme(Layer l, Shader s, java.lang.String n, HighlightManager hm) { super(l,s,n,hm); layers.addElement(l); bounds.add(l.getBounds()); } public MultiTheme(Layer l, Shader s, java.lang.String n, HighlightManager hm, GeoData d){ super(l,s,n,hm,d); layers.addElement(l); bounds.add(l.getBounds()); } public MultiTheme(Layer l, Shader s, java.lang.String n, HighlightManager hm, GeoData d, GeoData t, ShadeStyle style){ super(l,s,n,hm,d,t,style); layers.addElement(l); bounds.add(l.getBounds()); } public MultiTheme(Layer l, Shader s, java.lang.String n, HighlightManager hm, GeoData d, ShadeStyle style){ super(l,s,n,hm,d,style); layers.addElement(l); bounds.add(l.getBounds()); } protected void paintScaled(Graphics g,Scaler scale){ GeoGraphics gg = new GeoGraphics(g,scale,shade,data,null,style,filter,1); GeoRectangle ext = scale.getMapExtent(); for(int i=0;i