@Override public void nodeChanged(ProductNodeEvent event) { if (event.getSourceNode() == getVectorDataNode()) { Debug.trace("VectorDataLayer$VectorDataChangeHandler.nodeChanged: event = " + event); if (ProductNode.PROPERTY_NAME_NAME.equals(event.getPropertyName())) { setName(getVectorDataNode().getName()); } else if (VectorDataNode.PROPERTY_NAME_STYLE_CSS.equals(event.getPropertyName())) { if (event.getNewValue() != null) { setLayerStyle(event.getNewValue().toString()); } } else if (VectorDataNode.PROPERTY_NAME_FEATURE_COLLECTION.equals(event.getPropertyName())) { if (!reactingAgainstFigureChange) { updateFigureCollection(); // todo - compute changed modelRegion instead of passing null (nf) fireLayerDataChanged(null); } } } else if (event.getSourceNode() instanceof Placemark) { final Placemark sourceNode = (Placemark) event.getSourceNode(); if (getVectorDataNode().getPlacemarkGroup().contains(sourceNode)) { if (event.getPropertyName().equals(Placemark.PROPERTY_NAME_STYLE_CSS)) { updateFigureCollection(); } else if (event.getPropertyName().equals("geometry")) { updateFigureCollection(); } } } } }
protected VectorDataLayer(VectorDataLayerType vectorDataLayerType, VectorDataNode vectorDataNode, PropertySet configuration) { super(vectorDataLayerType, configuration); setUniqueId(); this.vectorDataNode = vectorDataNode; setName(vectorDataNode.getName()); figureFactory = new SimpleFeatureFigureFactory(vectorDataNode.getFeatureType()); figureCollection = new DefaultFigureCollection(); updateFigureCollection(); vectorDataChangeHandler = new VectorDataChangeHandler(); vectorDataNode.getProduct().addProductNodeListener(vectorDataChangeHandler); figureCollection.addChangeListener(new FigureChangeHandler()); }