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