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