/** * @deprecated since BEAM 4.10, use getDefaultStyleCss() */ @SuppressWarnings({"JavaDoc"}) @Deprecated public String getDefaultCSS() { return getDefaultStyleCss(); }
void writeNodeProperties(VectorDataNode vectorDataNode, Writer writer) throws IOException { OrderRetainingMap properties = new OrderRetainingMap(); final Map<Object, Object> userData = vectorDataNode.getFeatureType().getUserData(); final Set<Map.Entry<Object, Object>> entries = userData.entrySet(); for (Map.Entry<Object, Object> entry : entries) { if (entry.getKey() instanceof String && entry.getValue() instanceof String) { properties.put(entry.getKey().toString(), entry.getValue().toString()); } } String description = vectorDataNode.getDescription(); if (StringUtils.isNotNullAndNotEmpty(description)) { properties.put(ProductNode.PROPERTY_NAME_DESCRIPTION, description); } String defaultCSS = vectorDataNode.getDefaultStyleCss(); if (StringUtils.isNotNullAndNotEmpty(defaultCSS)) { properties.put(VectorDataNodeIO.PROPERTY_NAME_DEFAULT_CSS, defaultCSS); } writeProperties(properties, writer); }
private void updateFigureCollection() { FeatureCollection<SimpleFeatureType, SimpleFeature> featureCollection = vectorDataNode.getFeatureCollection(); Figure[] figures = figureCollection.getFigures(); Map<SimpleFeature, SimpleFeatureFigure> figureMap = new HashMap<>(); for (Figure figure : figures) { if (figure instanceof SimpleFeatureFigure) { SimpleFeatureFigure simpleFeatureFigure = (SimpleFeatureFigure) figure; figureMap.put(simpleFeatureFigure.getSimpleFeature(), simpleFeatureFigure); } } FeatureIterator<SimpleFeature> featureIterator = featureCollection.features(); while (featureIterator.hasNext()) { SimpleFeature simpleFeature = featureIterator.next(); SimpleFeatureFigure featureFigure = figureMap.get(simpleFeature); if (featureFigure != null) { figureMap.remove(simpleFeature); final String css = SimpleFeatureFigureFactory.getStyleCss(simpleFeature, vectorDataNode.getDefaultStyleCss()); final FigureStyle normalStyle = DefaultFigureStyle.createFromCss(css); final FigureStyle selectedStyle = getFigureFactory().deriveSelectedStyle(normalStyle); featureFigure.setNormalStyle(normalStyle); featureFigure.setSelectedStyle(selectedStyle); } else { featureFigure = getFigureFactory().createSimpleFeatureFigure(simpleFeature, vectorDataNode.getDefaultStyleCss()); figureCollection.addFigure(featureFigure); } featureFigure.forceRegeneration(); } Collection<SimpleFeatureFigure> remainingFigures = figureMap.values(); figureCollection.removeFigures(remainingFigures.toArray(new Figure[remainingFigures.size()])); }
public void vectorDataLayerSelected(VectorDataLayer vectorDataLayer) { Debug.trace("VectorDataFigureEditor.vectorDataLayerSelected: " + vectorDataLayer.getName()); this.vectorDataNode = vectorDataLayer.getVectorDataNode(); setFigureCollection(vectorDataLayer.getFigureCollection()); setFigureFactory(vectorDataLayer.getFigureFactory()); final DefaultFigureStyle style = new DefaultFigureStyle(); style.fromCssString(vectorDataLayer.getVectorDataNode().getDefaultStyleCss()); setDefaultLineStyle(style); setDefaultPolygonStyle(style); }
public TrackLayer(VectorDataLayerType vectorDataLayerType, VectorDataNode vectorDataNode, PropertySet configuration) { super(vectorDataLayerType, vectorDataNode, configuration); String styleCss = vectorDataNode.getDefaultStyleCss(); DefaultFigureStyle style = new DefaultFigureStyle(styleCss); style.fromCssString(styleCss); style.setSymbolName("circle"); style.setStrokeColor(STROKE_COLOR); style.setStrokeWidth(STROKE_WIDTH); style.setStrokeOpacity(STROKE_OPACITY); style.setFillColor(FILL_COLOR); style.setFillOpacity(FILL_OPACITY); strokePaint = style.getStrokePaint(); vectorDataNode.setDefaultStyleCss(style.toCssString()); }
@Test public void testProperties() throws Exception { VectorDataNode vectorDataNode = new VectorDataNode("aName", Placemark.createGeometryFeatureType()); vectorDataNode.setDescription("Contains a set of pins"); vectorDataNode.setDefaultStyleCss("stroke:#ff0000"); VectorDataNodeWriter vectorDataNodeWriter = new VectorDataNodeWriter(); File tempFile = File.createTempFile("VectorDataNodeWriterTest_testProperties", "csv"); tempFile.deleteOnExit(); vectorDataNodeWriter.write(vectorDataNode, tempFile); FileReader fileReader = new FileReader(tempFile); LineNumberReader lineNumberReader = new LineNumberReader(fileReader); String firstLine = lineNumberReader.readLine(); assertNotNull(firstLine); assertEquals("#description=Contains a set of pins", firstLine); String secondLine = lineNumberReader.readLine(); assertNotNull(secondLine); assertEquals("#defaultCSS=stroke:#ff0000", secondLine); VectorDataNode vectorDataNode2 = VectorDataNodeReader.read("mem", new FileReader(tempFile), createDummyProduct(), new FeatureUtils.FeatureCrsProvider() { @Override public CoordinateReferenceSystem getFeatureCrs(Product product) { return DefaultGeographicCRS.WGS84; } }, placemarkDescriptorProvider, DefaultGeographicCRS.WGS84, VectorDataNodeIO.DEFAULT_DELIMITER_CHAR, ProgressMonitor.NULL); assertNotNull(vectorDataNode2); assertEquals(vectorDataNode.getDescription(), vectorDataNode2.getDescription()); assertEquals(vectorDataNode.getDefaultStyleCss(), vectorDataNode2.getDefaultStyleCss()); }
@Override public VectorDataNode readVectorDataNode(File file, Product product, ProgressMonitor pm) throws IOException { FeatureCollection<SimpleFeatureType, SimpleFeature> featureCollection = FeatureUtils.loadShapefileForProduct(file, product, crsProvider, pm); Style[] styles = SLDUtils.loadSLD(file); ProductNodeGroup<VectorDataNode> vectorDataGroup = product.getVectorDataGroup(); String name = VectorDataNodeImporter.findUniqueVectorDataNodeName(featureCollection.getSchema().getName().getLocalPart(), vectorDataGroup); if (styles.length > 0) { SimpleFeatureType featureType = SLDUtils.createStyledFeatureType(featureCollection.getSchema()); VectorDataNode vectorDataNode = new VectorDataNode(name, featureType); FeatureCollection<SimpleFeatureType, SimpleFeature> styledCollection = vectorDataNode.getFeatureCollection(); String defaultCSS = vectorDataNode.getDefaultStyleCss(); SLDUtils.applyStyle(styles[0], defaultCSS, featureCollection, styledCollection); return vectorDataNode; } else { return new VectorDataNode(name, featureCollection); } }
@Test public void testDefaultStyle() { SimpleFeatureType unknownType = PlacemarkDescriptorRegistryTest.createYetUnknownFeatureType(); Product p = new Product("p", "pt", 4, 4); VectorDataNode vdn = new VectorDataNode("vdn", unknownType); p.getVectorDataGroup().add(vdn); MyProductNodeListenerAdapter pnl = new MyProductNodeListenerAdapter(); p.addProductNodeListener(pnl); String styleCss = vdn.getStyleCss(); assertNotNull(vdn.getDefaultStyleCss()); vdn.setDefaultStyleCss("fill:#aabbcc"); assertEquals("fill:#aabbcc", vdn.getDefaultStyleCss()); assertNotNull(pnl.event); assertEquals("defaultStyleCss", pnl.event.getPropertyName()); assertEquals("fill:#aabbcc", pnl.event.getNewValue()); pnl.event = null; vdn.setDefaultStyleCss("fill:#aabbcc"); assertNull(pnl.event); vdn.setDefaultStyleCss("fill:#000000"); assertNotNull(pnl.event); assertEquals("defaultStyleCss", pnl.event.getPropertyName()); assertEquals("fill:#000000", pnl.event.getNewValue()); // test that styleCss is not affected assertEquals(styleCss, vdn.getStyleCss()); }
@Test public void testStyle() { SimpleFeatureType unknownType = PlacemarkDescriptorRegistryTest.createYetUnknownFeatureType(); Product p = new Product("p", "pt", 4, 4); VectorDataNode vdn = new VectorDataNode("vdn", unknownType); p.getVectorDataGroup().add(vdn); MyProductNodeListenerAdapter pnl = new MyProductNodeListenerAdapter(); p.addProductNodeListener(pnl); String defaultStyleCss = vdn.getDefaultStyleCss(); assertNull(vdn.getStyleCss()); vdn.setStyleCss("fill:#aabbcc"); assertEquals("fill:#aabbcc", vdn.getStyleCss()); assertNotNull(pnl.event); assertEquals("styleCss", pnl.event.getPropertyName()); assertEquals("fill:#aabbcc", pnl.event.getNewValue()); pnl.event = null; vdn.setStyleCss("fill:#aabbcc"); assertNull(pnl.event); vdn.setStyleCss("fill:#000000"); assertNotNull(pnl.event); assertEquals("styleCss", pnl.event.getPropertyName()); assertEquals("fill:#000000", pnl.event.getNewValue()); // test that defaultStyleCss is not affected assertEquals(defaultStyleCss, vdn.getDefaultStyleCss()); }
targetVDN.setDefaultStyleCss(sourceVDN.getDefaultStyleCss()); targetVDN.setDescription(sourceVDN.getDescription()); targetVDN.getPlacemarkGroup(); targetVDN.getFeatureCollection().addAll(featureCollection); targetVDN.setDefaultStyleCss(sourceVDN.getDefaultStyleCss()); targetVDN.setDescription(sourceVDN.getDescription());