// License: GPL. For details, see Readme.txt file.
package org.openstreetmap.gui.jmapviewer;
import java.util.ArrayList;
import java.util.List;
public class AbstractLayer {
private LayerGroup parent;
private String name;
private String description;
private Style style;
private Boolean visible;
private Boolean visibleTexts = Boolean.TRUE;
public AbstractLayer(String name) {
this(name, (String) null);
}
public AbstractLayer(String name, String description) {
this(name, description, MapMarkerCircle.getDefaultStyle());
}
public AbstractLayer(String name, Style style) {
this(name, null, style);
}
public AbstractLayer(String name, String description, Style style) {
this(null, name, description, style);
}
public AbstractLayer(LayerGroup parent, String name) {
this(parent, name, MapMarkerCircle.getDefaultStyle());
}
public AbstractLayer(LayerGroup parent, String name, Style style) {
this(parent, name, null, style);
}
public AbstractLayer(LayerGroup parent, String name, String description, Style style) {
setParent(parent);
setName(name);
setDescription(description);
setStyle(style);
setVisible(Boolean.TRUE);
if (parent != null) parent.add(this);
}
public LayerGroup getParent() {
return parent;
}
public void setParent(LayerGroup parent) {
this.parent = parent;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getDescription() {
return description;
}
public void setDescription(String description) {
this.description = description;
}
public Style getStyle() {
return style;
}
public void setStyle(Style style) {
this.style = style;
}
public Boolean isVisible() {
return visible;
}
public void setVisible(Boolean visible) {
this.visible = visible;
}
public static <E> List<E> add(List<E> list, E element) {
if (element != null) {
if (list == null) list = new ArrayList<>();
if (!list.contains(element)) list.add(element);
}
return list;
}
public Boolean isVisibleTexts() {
return visibleTexts;
}
public void setVisibleTexts(Boolean visibleTexts) {
this.visibleTexts = visibleTexts;
}
@Override
public String toString() {
return name;
}
}