private GetLegendGraphicRequest runGetLegendGraphics(String requestURL) throws Exception { Map rawKvp = (Map) caseInsensitiveKvp(KvpUtils.parseQueryString(requestURL)); Map kvp = parseKvp(rawKvp); GetLegendGraphicKvpReader reader = new GetLegendGraphicKvpReader(getWMS()); GetLegendGraphicRequest request = reader.read(reader.createRequest(), kvp, rawKvp); legendProducer.buildLegendGraphic(request); this.lastRequest = request; return request; } }
addStylesFrom(sldStyles, styleNames, loadRemoteStyle(sldUrl)); addStylesFrom(sldStyles, styleNames, parseSldBody(sldBody)); List<LayerInfo> groupLayers = layerGroupInfo.layers(); if (pos < groupLayers.size()) { sldStyles.add(getStyleFromLayer(groupLayers.get(pos))); if (styleInfo != null) { LegendInfo legend = resolveLegendInfo(styleInfo.getLegend(), req, styleInfo); if (legend != null) { LayerInfo layerInfo = (LayerInfo) infoObj; LegendRequest legendRequest = req.getLegend(name); if (legendRequest != null) { configureLegendInfo(req, legendRequest, legend); } else { LOGGER.log(Level.FINE, "Unable to set LegendInfo for " + name); if (infoObj instanceof LayerInfo) { LayerInfo layerInfo = (LayerInfo) infoObj; sldStyles.add(getStyleFromLayer(layerInfo)); LegendInfo legend = resolveLegendInfo(defaultStyle.getLegend(), req, defaultStyle); if (legend != null) { Name name = layerInfo.getResource().getQualifiedName(); LegendRequest legendRequest = req.getLegend(name); if (legendRequest != null) {
/** * Adds styles whose name matches names from a given source of styles. * * @param sldStyles final styles container * @param styleNames names of styles to find in the given source * @param source list of styles from a given source */ private void addStylesFrom(List<Style> sldStyles, List<String> styleNames, Style[] source) { if (styleNames.size() == 0) { sldStyles.add(findStyle(null, source)); } else { for (String styleName : styleNames) { sldStyles.add(findStyle(styleName, source)); } } }
@org.junit.Test public void testStylesForLayerGroup() throws Exception { GetLegendGraphicRequest request; requiredParameters.put("LAYER", NATURE_GROUP); requiredParameters.put("STYLE", "style1,style2"); request = requestReader.read( new GetLegendGraphicRequest(), requiredParameters, requiredParameters); assertTrue(request.getStyles().size() == 2); }
FeatureType featureType = getLayerFeatureType(layerInfo); if (featureType != null) { LegendRequest legend = legend.setTitle(mli.getLabel()); LegendInfo legendInfo = resolveLegendInfo(layerInfo.getLegend(), request, null); if (legendInfo != null) { configureLegendInfo(request, legend, legendInfo);
if (layerInfo != null) { LegendRequest legend = addLayer(layerInfo, request); legend.setLayer(layer); LegendRequest legend = addLayer(singleLayer, request); legend.setLayerGroupInfo(layerGroupInfo); parseOptionalParameters(request, infoObject, rawKvp);
this.requestReader = new GetLegendGraphicKvpReader(wms); this.httpRequest = createRequest("wms", allParameters);
@org.junit.Test public void testRulesForLayerGroup() throws Exception { GetLegendGraphicRequest request; requiredParameters.put("LAYER", NATURE_GROUP); requiredParameters.put("RULE", "rule1,rule2"); request = requestReader.read( new GetLegendGraphicRequest(), requiredParameters, requiredParameters); assertTrue(request.getRules().size() == 2); }
public void testScaleDependent(String bboxSpecification, String expectedLabel) throws Exception { // around 4k String requestURL = "wms?service=WMS&version=1.1.1&request=GetLegendGraphic&format=image/png" + "&layer=" + getLayerId(SF_STATES) + "&style=scaleDependent&width=20&height=20&srs=EPSG:4326" // + "&bbox=" + bboxSpecification + "&legend_options=" + GetLegendGraphicRequest.COUNT_MATCHED_KEY + ":true" + "&srcwidht=768&srcheight=300"; Map rawKvp = (Map) caseInsensitiveKvp(KvpUtils.parseQueryString(requestURL)); Map kvp = parseKvp(rawKvp); GetLegendGraphicKvpReader reader = new GetLegendGraphicKvpReader(getWMS()); GetLegendGraphicRequest request = reader.read(reader.createRequest(), kvp, rawKvp); // run legendProducer.buildLegendGraphic(request); this.lastRequest = request; assertEquals(1, ruleSets.size()); Rule[] rules = ruleSets.get(0); logLabels(rules); assertEquals(1, rules.length); assertLabel(expectedLabel, rules[0]); }
@org.junit.Test public void testLayerGroup() throws Exception { GetLegendGraphicRequest request; request = requestReader.read( new GetLegendGraphicRequest(), requiredParameters, requiredParameters); assertTrue(request.getLayers().size() == 1); requiredParameters.put("LAYER", NATURE_GROUP); request = requestReader.read( new GetLegendGraphicRequest(), requiredParameters, requiredParameters); assertTrue(request.getLayers().size() > 1); }
GetLegendGraphicKvpReader reader = new GetLegendGraphicKvpReader(getWMS()); GetLegendGraphicRequest request = reader.read(reader.createRequest(), kvp, rawKvp);
@org.junit.Test public void testStrictParameter() throws Exception { GetLegendGraphicRequest request; // default value request = requestReader.read(new GetLegendGraphicRequest(), allParameters, allParameters); assertTrue(request.isStrict()); allParameters.put("STRICT", "false"); allParameters.remove("LAYER"); request = requestReader.read(new GetLegendGraphicRequest(), allParameters, allParameters); assertFalse(request.isStrict()); }
@org.junit.Test public void testLanguage() throws Exception { GetLegendGraphicRequest request; request = requestReader.read( new GetLegendGraphicRequest(), requiredParameters, requiredParameters); assertNull(request.getLocale()); request = requestReader.read(new GetLegendGraphicRequest(), allParameters, allParameters); assertEquals(Locale.ENGLISH, request.getLocale()); }
@org.junit.Test public void testLabelsForLayerGroup() throws Exception { GetLegendGraphicRequest request; requiredParameters.put("LAYER", NATURE_GROUP); request = requestReader.read( new GetLegendGraphicRequest(), requiredParameters, requiredParameters); assertNotNull(request.getTitle(new NameImpl("http://www.opengis.net/cite", "Lakes"))); } }
/** * This test ensures that when a SLD parameter has been passed that refers to a SLD document * with multiple styles, the required one is choosed based on the LAYER parameter. * * <p>This is the case where a remote SLD document is used in "library" mode. */ @org.junit.Test public void testRemoteSLDMultipleStyles() throws Exception { final URL remoteSldUrl = getClass().getResource("MultipleStyles.sld"); this.allParameters.put("SLD", remoteSldUrl.toExternalForm()); this.allParameters.put("LAYER", "cite:Ponds"); this.allParameters.put("STYLE", "Ponds"); GetLegendGraphicRequest request = requestReader.read(new GetLegendGraphicRequest(), allParameters, allParameters); // the style names Ponds is declared in third position on the sld doc Style selectedStyle = request.getStyles().get(0); assertNotNull(selectedStyle); assertEquals("Ponds", selectedStyle.getName()); this.allParameters.put("LAYER", "cite:Lakes"); this.allParameters.put("STYLE", "Lakes"); request = requestReader.read(new GetLegendGraphicRequest(), allParameters, allParameters); // the style names Ponds is declared in third position on the sld doc selectedStyle = request.getStyles().get(0); assertNotNull(selectedStyle); assertEquals("Lakes", selectedStyle.getName()); }
@org.junit.Test public void testMissingFormatParameter() throws Exception { requiredParameters.remove("FORMAT"); try { requestReader.read( new GetLegendGraphicRequest(), requiredParameters, requiredParameters); fail("Expected ServiceException"); } catch (ServiceException e) { assertEquals("MissingFormat", e.getCode()); } }
@org.junit.Test public void testMissingLayerParameter() throws Exception { requiredParameters.remove("LAYER"); try { requestReader.read( new GetLegendGraphicRequest(), requiredParameters, requiredParameters); fail("Expected ServiceException"); } catch (ServiceException e) { assertEquals("LayerNotDefined", e.getCode()); } }
params.put("FORMAT", "image/png"); GetLegendGraphicRequest getLegendGraphics = requestReader.read(new GetLegendGraphicRequest(), params, params);