protected void handleNoStyles() { // handle no styles -- use default try { if (styleCount == 0 && info != null && info instanceof LayerInfo) { StyleInfo styleInfo = ((LayerInfo) info).getDefaultStyle(); if (styleInfo != null) { visit(styleInfo.getStyle()); } } } catch (IOException e) { throw new UncheckedIOException(e); } finally { // clean up state styleCount = 0; } }
protected boolean handleLayerGroup() { // NamedLayer - LayerGroup: ignore any defined styles and use the layer group instead if (info != null && info instanceof LayerGroupInfo) { LayerGroupInfo lg = (LayerGroupInfo) info; List<LayerInfo> layers = lg.layers(); List<StyleInfo> styles = lg.styles(); try { for (int i = 0; i < layers.size(); i++) { info = layers.get(i); StyleInfo style = styles.get(i); if (style == null) { visit(layers.get(i).getDefaultStyle().getStyle()); } else { visit(styles.get(i).getStyle()); } } } catch (IOException e) { throw new UncheckedIOException(e); } return true; } return false; }
@Test public void testStyleWithExternalEntities() throws Exception { StyleInfo si = getCatalog().getStyleByName(EXTERNAL_ENTITIES); try { si.getStyle(); fail("Should have failed with a parse error"); } catch (Exception e) { String message = e.getMessage(); assertThat(message, containsString("Entity resolution disallowed")); assertThat(message, containsString("/this/file/does/not/exist")); } }
@Test public void testParseExternalMark() throws Exception { StyleInfo si = getCatalog().getStyleByName(HUMANS); // used to blow here with an NPE Style s = si.getStyle(); s.accept( new AbstractStyleVisitor() { @Override public void visit(Mark mark) { assertEquals( "ttf://Webdings", mark.getExternalMark() .getOnlineResource() .getLinkage() .toASCIIString()); } }); }
@Test public void testSEStyleWithRelativePathProtocol() throws IOException { StyleInfo si = getCatalog().getStyleByName("relative_protocol"); assertNotNull(si); Style style = si.getStyle(); PolygonSymbolizer ps = (PolygonSymbolizer) style.featureTypeStyles().get(0).rules().get(0).symbolizers().get(0); ExternalGraphic eg = (ExternalGraphic) ps.getFill().getGraphicFill().graphicalSymbols().get(0); URI uri = eg.getOnlineResource().getLinkage(); assertNotNull(uri); File actual = URLs.urlToFile(uri.toURL()).getCanonicalFile(); assertEquals(rockFillSymbolFile, actual); }
@Test public void testSEStyleWithRelativePath() throws IOException { StyleInfo si = getCatalog().getStyleByName("relative"); assertNotNull(si); Style style = si.getStyle(); PolygonSymbolizer ps = (PolygonSymbolizer) style.featureTypeStyles().get(0).rules().get(0).symbolizers().get(0); ExternalGraphic eg = (ExternalGraphic) ps.getFill().getGraphicFill().graphicalSymbols().get(0); URI uri = eg.getOnlineResource().getLinkage(); assertNotNull(uri); File actual = URLs.urlToFile(uri.toURL()).getCanonicalFile(); assertEquals(rockFillSymbolFile, actual); }
expect(s.getSLDVersion()).andReturn(version).anyTimes(); try { expect(s.getStyle()) .andReturn( Styles.style(
@Test public void testLayerGroupNullLayerOrStyleReferences() throws IOException { Catalog catalog = getCatalog(); LayerGroupInfo lg = catalog.getFactory().createLayerGroup(); LayerInfo l = catalog.getLayerByName(getLayerId(MockData.ROAD_SEGMENTS)); StyleInfo s = catalog.getStyleByName("singleStyleGroup"); lg.setWorkspace(null); lg.setName("threeTypeLayerGroup"); // layer with default style lg.getLayers().add(l); lg.getStyles().add(null); // style group lg.getLayers().add(null); lg.getStyles().add(s); lg.getLayers().add(null); lg.getStyles().add(null); catalog.add(lg); LayerGroupInfo resolved = catalog.getLayerGroupByName("threeTypeLayerGroup"); assertEquals(2, resolved.layers().size()); assertEquals(2, resolved.styles().size()); assertEquals(l, resolved.layers().get(0)); assertEquals(s.getStyle(), resolved.styles().get(1).getStyle()); }
@Test public void testSingleStyleGroup() throws Exception { Catalog catalog = getCatalog(); LayerGroupInfo lg = catalog.getFactory().createLayerGroup(); StyleInfo s = catalog.getStyleByName("singleStyleGroup"); lg.setWorkspace(null); lg.setName("singleStyleLayerGroup"); lg.getLayers().add(null); lg.getStyles().add(s); catalog.add(lg); LayerGroupInfo resolved = catalog.getLayerGroupByName("singleStyleLayerGroup"); assertEquals(1, resolved.layers().size()); assertEquals(1, resolved.styles().size()); assertEquals(s.getStyle(), resolved.styles().get(0).getStyle()); // Test bounds calculation new LayerGroupHelper(lg).calculateBounds(); assertEquals( catalog.getLayerByName((getLayerId(MockData.STREAMS))) .getResource() .getLatLonBoundingBox(), lg.getBounds()); }
assertTrue( styles.get(0) .getStyle() .featureTypeStyles() .get(0) assertTrue( styles.get(1) .getStyle() .featureTypeStyles() .get(0) instanceof LineSymbolizer); assertEquals(catalog.getLayerByName((getLayerId(MockData.ROAD_SEGMENTS))), layers.get(2)); assertEquals(catalog.getStyleByName("line").getStyle(), styles.get(2).getStyle()); assertTrue( styles.get(5) .getStyle() .featureTypeStyles() .get(0)
public Style getDefaultStyle() { if (layerInfo != null) { try { return layerInfo.getDefaultStyle().getStyle(); } catch (IOException e) { throw new RuntimeException(e); } } return null; }
public Style getStyleByName(String styleName) throws IOException { StyleInfo styleInfo = getCatalog().getStyleByName(styleName); return styleInfo == null ? null : styleInfo.getStyle(); }
private Style getDefaultStyle(LayerInfo layer) throws IOException { if (layer.getResource() instanceof WMSLayerInfo) { // NamedStyle is a subclass of Style -> we use it as a way to convey // cascaded WMS layer styles NamedStyle namedStyle = CommonFactoryFinder.getStyleFactory(null).createNamedStyle(); namedStyle.setName(null); return namedStyle; } else { StyleInfo defaultStyle = layer.getDefaultStyle(); return defaultStyle.getStyle(); } }
private ChannelSelection getChannelSelection(LayerInfo layer) throws IOException { Style style = layer.getDefaultStyle().getStyle(); List<FeatureTypeStyle> fts = style.featureTypeStyles(); assertEquals(1, fts.size()); List<Rule> rules = fts.get(0).rules(); assertEquals(1, rules.size()); List<Symbolizer> symbolizers = rules.get(0).symbolizers(); assertEquals(1, symbolizers.size()); RasterSymbolizer rs = (RasterSymbolizer) symbolizers.get(0); return rs.getChannelSelection(); }
private void addToMap(final WMSMapContent map, final QName typeName) throws IOException { final FeatureTypeInfo ftInfo = getCatalog() .getFeatureTypeByName(typeName.getNamespaceURI(), typeName.getLocalPart()); List<LayerInfo> layers = getCatalog().getLayers(ftInfo); StyleInfo defaultStyle = layers.get(0).getDefaultStyle(); Style style = defaultStyle.getStyle(); map.addLayer(new FeatureLayer(ftInfo.getFeatureSource(null, null), style)); }
public void testResolveStylesForLayerGroup() throws Exception { GetMapRequest request = (GetMapRequest) reader.createRequest(); BufferedReader input = getResourceInputStream("WMSPostLayerGroupNonDefaultStyle.xml"); request = (GetMapRequest) reader.read(request, input, new HashMap()); String layer = MockData.BASIC_POLYGONS.getLocalPart(); assertEquals(1, request.getLayers().size()); assertTrue(request.getLayers().get(0).getName().endsWith(layer)); assertEquals(1, request.getStyles().size()); Style expected = getCatalog().getStyleByName("polygon").getStyle(); Style style = request.getStyles().get(0); assertEquals(expected, style); }
private CoverageInfo addRasterToMap(QName typeName) throws Exception { CoverageInfo coverageInfo = getCatalog().getCoverageByName(typeName.getNamespaceURI(), typeName.getLocalPart()); GridCoverage2DReader reader = (GridCoverage2DReader) coverageInfo.getGridCoverageReader(null, null); Style style = getCatalog().getStyleByName("rainfall").getStyle(); this.map.addLayer(new GridReaderLayer(reader, style)); return coverageInfo; }
private void addRasterToMap(final WMSMapContent map, final QName typeName) throws IOException, FactoryRegistryException, TransformException, SchemaException { final CoverageInfo coverageInfo = getCatalog().getCoverageByName(typeName.getNamespaceURI(), typeName.getLocalPart()); List<LayerInfo> layers = getCatalog().getLayers(coverageInfo); StyleInfo defaultStyle = layers.get(0).getDefaultStyle(); Style style = defaultStyle.getStyle(); SimpleFeatureCollection fc = FeatureUtilities.wrapGridCoverageReader( (GridCoverage2DReader) coverageInfo.getGridCoverageReader(null, null), new GeneralParameterValue[] {}); map.addLayer(new FeatureLayer(fc, style)); }
@Test public void testHandle() throws Exception { Style style = style(featureTypeStyle(rule(Filter.INCLUDE, grayCircle()))); StyleInfo s = createNiceMock(StyleInfo.class); expect(s.getStyle()).andReturn(style); Catalog cat = createNiceMock(Catalog.class); expect(cat.getStyleByName("foo")).andReturn(s); replay(s, cat); dispatch("/icon/foo", "0.0.0=", cat); }
@Test public void testAcceptedNames() throws Exception { // test a name with non word characters Style style = style(featureTypeStyle(rule(Filter.INCLUDE, grayCircle()))); StyleInfo s = createNiceMock(StyleInfo.class); expect(s.getStyle()).andReturn(style); Catalog cat = createNiceMock(Catalog.class); expect(cat.getStyleByName("foo-bar")).andReturn(s); replay(s, cat); dispatch("/icon/foo-bar", "0.0.0=", cat); }