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}