001package org.openstreetmap.gui.jmapviewer;
002
003import java.util.List;
004
005public class LayerGroup extends AbstractLayer{
006    private List<AbstractLayer> layers;
007    
008    public LayerGroup(String name){
009        super(name);
010    }
011    public LayerGroup(String name, String description){
012        super(name, description);
013    }
014    public LayerGroup(String name, Style style){
015        super(name, style);
016    }
017    public LayerGroup(String name, String description, Style style){
018        super(name, description, style);
019    }
020    public LayerGroup(LayerGroup parent, String name){
021        super(parent, name);
022    }
023    public LayerGroup(LayerGroup parent, String name, String description, Style style){
024        super(name, description, style);
025    }
026    public List<AbstractLayer> getLayers() {
027        return layers;
028    }
029    public void setElements(List<AbstractLayer> layers) {
030        this.layers = layers;
031    }
032    public Layer addLayer(String name) {
033        Layer layer = new Layer(this, name);
034        layers = add(layers, layer);
035        return layer;
036    }
037    public LayerGroup add(AbstractLayer layer) {
038        layer.setParent(this);
039        layers = add(layers, layer);
040        return this;
041    }
042    public void calculateVisibleTexts(){
043        Boolean calculate=null;
044        if(layers!=null&&layers.size()>0){
045            calculate=layers.get(0).isVisibleTexts();
046            for(int i=1;i<layers.size(); i++){
047                calculate = resultOf(calculate, layers.get(i).isVisibleTexts());
048            }
049        }
050        setVisibleTexts(calculate);
051        if(getParent()!=null) getParent().calculateVisibleTexts();
052    }
053    public Boolean resultOf(Boolean b1, Boolean b2){
054        if(b1==null||b2==null) return null;
055        else if(b1.booleanValue() == b2.booleanValue()) return b1.booleanValue();
056        else return null;
057    }
058}