001package org.openstreetmap.gui.jmapviewer;
002
003import java.util.ArrayList;
004import java.util.List;
005
006public class AbstractLayer {
007    private LayerGroup parent;
008    private String name;
009    private String description;
010    private Style style;
011    private Boolean visible;
012    private Boolean visibleTexts=true;
013    
014    public AbstractLayer(String name){
015        this(name, (String)null);
016    }
017    public AbstractLayer(String name, String description){
018        this(name, description, MapMarkerCircle.getDefaultStyle());
019    }
020    public AbstractLayer(String name, Style style){
021        this(name, null, style);
022    }
023    public AbstractLayer(String name, String description, Style style){
024        this(null, name, description, style);
025    }
026    public AbstractLayer(LayerGroup parent, String name){
027        this(parent, name, MapMarkerCircle.getDefaultStyle());
028    }
029    public AbstractLayer(LayerGroup parent, String name, Style style){
030        this(parent, name, null, style);
031    }
032    public AbstractLayer(LayerGroup parent, String name, String description, Style style){
033        setParent(parent);
034        setName(name);
035        setDescription(description);
036        setStyle(style);
037        setVisible(true);
038
039        if(parent!=null) parent.add(this);
040    }
041    public LayerGroup getParent() {
042        return parent;
043    }
044    public void setParent(LayerGroup parent) {
045        this.parent = parent;
046    }
047    public String getName() {
048        return name;
049    }
050    public void setName(String name) {
051        this.name = name;
052    }
053    public String getDescription() {
054        return description;
055    }
056    public void setDescription(String description) {
057        this.description = description;
058    }
059    public Style getStyle() {
060        return style;
061    }
062    public void setStyle(Style style) {
063        this.style = style;
064    }
065    public Boolean isVisible() {
066        return visible;
067    }
068    public void setVisible(Boolean visible) {
069        this.visible = visible;
070    }
071    public static <E> List<E> add(List<E> list, E element) {
072        if(element!=null){
073            if(list==null) list = new ArrayList<E>();
074            if(!list.contains(element)) list.add(element);
075        }
076        return list;
077    }
078    public Boolean isVisibleTexts() {
079        return visibleTexts;
080    }
081    public void setVisibleTexts(Boolean visibleTexts) {
082        this.visibleTexts = visibleTexts;
083    }
084    public String toString(){
085        return name;
086    }
087}