Project

General

Profile

« Previous | Next » 

Revision 681b057e

Added by Andreas Müller almost 16 years ago

colors for PresenceAbsence & DistributionUrl

View differences:

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