Revision 681b057e
Added by Andreas Müller almost 16 years ago
cdmlib-model/src/main/java/eu/etaxonomy/cdm/model/description/Distribution.java | ||
---|---|---|
9 | 9 |
|
10 | 10 |
package eu.etaxonomy.cdm.model.description; |
11 | 11 |
|
12 |
import java.util.ArrayList; |
|
13 |
import java.util.HashMap; |
|
14 |
import java.util.HashSet; |
|
15 |
import java.util.List; |
|
16 |
import java.util.Map; |
|
17 |
import java.util.Set; |
|
18 |
|
|
19 |
import eu.etaxonomy.cdm.common.CdmUtils; |
|
20 |
import eu.etaxonomy.cdm.model.common.Language; |
|
21 |
import eu.etaxonomy.cdm.model.common.Representation; |
|
12 | 22 |
import eu.etaxonomy.cdm.model.location.NamedArea; |
23 |
import eu.etaxonomy.cdm.model.location.TdwgArea; |
|
13 | 24 |
import eu.etaxonomy.cdm.model.taxon.Taxon; |
14 | 25 |
|
15 | 26 |
import org.apache.log4j.Logger; |
... | ... | |
94 | 105 |
return result; |
95 | 106 |
} |
96 | 107 |
|
108 |
@Transient |
|
109 |
//TODO move to an other place -> e.g. service layer |
|
110 |
public static String getWebServiceUrl(Set<Distribution> distributions, String webServiceUrl){ |
|
111 |
if (webServiceUrl == null){ |
|
112 |
logger.warn("No WebServiceURL defined"); |
|
113 |
return null; |
|
114 |
} |
|
115 |
String result = webServiceUrl + "?"; |
|
116 |
//TODO |
|
117 |
String layer = "l=tdwg3"; |
|
118 |
List<String> layers = new ArrayList(); |
|
119 |
layers.add(layer); |
|
120 |
|
|
121 |
String areaData = "ad="; |
|
122 |
//TODO |
|
123 |
areaData += "tdwg3:"; |
|
124 |
String areaStyle = "as="; |
|
125 |
//TODO |
|
126 |
String bbox = "bbox=-20,40,40,40"; |
|
127 |
String mapSize = "ms=400x300"; |
|
128 |
List<PresenceAbsenceTermBase> statusList = new ArrayList<PresenceAbsenceTermBase>(); |
|
129 |
for (Distribution distribution:distributions){ |
|
130 |
//collect status |
|
131 |
PresenceAbsenceTermBase status = distribution.getStatus(); |
|
132 |
if (! statusList.contains(status)){ |
|
133 |
statusList.add(status); |
|
134 |
} |
|
135 |
//collect |
|
136 |
} |
|
137 |
|
|
138 |
//style |
|
139 |
Map<PresenceAbsenceTermBase, Character> styleMap = new HashMap<PresenceAbsenceTermBase, Character>(); |
|
140 |
int i = 1; |
|
141 |
for (PresenceAbsenceTermBase status: statusList){ |
|
142 |
char style; //TODO char |
|
143 |
//TODO ASCII Translation 64+i |
|
144 |
int ascii = 96 + i; |
|
145 |
if (i >26){ |
|
146 |
ascii = 64 + i; |
|
147 |
} |
|
148 |
style = (char)ascii; |
|
149 |
String color = status.getDefaultColor();//"00FFAA"; //TODO |
|
150 |
if (i > 1){ |
|
151 |
areaStyle += "|"; |
|
152 |
} |
|
153 |
areaStyle += style + ":" + color; |
|
154 |
styleMap.put(status, style); |
|
155 |
i++; |
|
156 |
} |
|
157 |
|
|
158 |
//areaData |
|
159 |
i = 1; |
|
160 |
for (Distribution distribution: distributions){ |
|
161 |
//TODO null |
|
162 |
char style = styleMap.get(distribution.getStatus()); |
|
163 |
//TODO |
|
164 |
|
|
165 |
NamedArea area = distribution.getArea(); |
|
166 |
Representation representation = area.getRepresentation(Language.DEFAULT()); |
|
167 |
String areaAbbrev = representation.getAbbreviatedLabel(); |
|
168 |
if (i > 1){ |
|
169 |
areaData += "|"; |
|
170 |
} |
|
171 |
areaData += style + ":" + areaAbbrev; |
|
172 |
i++; |
|
173 |
} |
|
174 |
|
|
175 |
result += CdmUtils.concat("&", new String[] {layer, areaData, areaStyle, bbox, mapSize}); |
|
176 |
return result; |
|
177 |
} |
|
178 |
|
|
97 | 179 |
/** |
98 | 180 |
* Deprecated because {@link Feature feature} should always be {@link Feature#DISTRIBUTION() DISTRIBUTION} |
99 | 181 |
* for all distribution instances. |
Also available in: Unified diff
colors for PresenceAbsence & DistributionUrl