Revision: 5919
http://sourceforge.net/p/jump-pilot/code/5919
Author: michaudm
Date: 2018-08-22 06:49:20 + (Wed, 22 Aug 2018)
Log Message:
---
Fix LayerView to make it compatible with project persistence
Modified Paths:
--
core/trunk/ChangeLog
core/trunk/src/com/vividsolutions/jump/workbench/model/LayerView.java
core/trunk/src/com/vividsolutions/jump/workbench/ui/LayerNameRenderer.java
core/trunk/src/com/vividsolutions/jump/workbench/ui/plugin/AddNewLayerViewPlugIn.java
core/trunk/src/org/openjump/core/ui/plugin/file/open/OpenProjectWizard.java
Added Paths:
---
core/trunk/src/com/vividsolutions/jump/workbench/model/LayerView.java2xml
Modified: core/trunk/ChangeLog
===
--- core/trunk/ChangeLog2018-08-21 20:33:57 UTC (rev 5918)
+++ core/trunk/ChangeLog2018-08-22 06:49:20 UTC (rev 5919)
@@ -3,6 +3,9 @@
# 2. make sure that lines break at 80 chars for constricted display situations
#< 80 chars
-->#
+2018-08-22 mmichaud
+ * Fix LayerView to make it compatible with project persistence
+
2018-08-19 mmichaud
* Add two plugins :
- GenerateUniqueRandomIdPlugIn (menu tools/edit attributes)
Modified: core/trunk/src/com/vividsolutions/jump/workbench/model/LayerView.java
===
--- core/trunk/src/com/vividsolutions/jump/workbench/model/LayerView.java
2018-08-21 20:33:57 UTC (rev 5918)
+++ core/trunk/src/com/vividsolutions/jump/workbench/model/LayerView.java
2018-08-22 06:49:20 UTC (rev 5919)
@@ -1,7 +1,8 @@
package com.vividsolutions.jump.workbench.model;
-import com.vividsolutions.jump.feature.FeatureCollection;
+import com.vividsolutions.jump.feature.*;
+import java.util.ArrayList;
import java.util.Collection;
public class LayerView extends Layer {
@@ -8,16 +9,44 @@
private Layer layer;
- public LayerView(Layer layer) {
-super(layer.getName(), layer.getBasicStyle().getFillColor(),
layer.getFeatureCollectionWrapper(), layer.getLayerManager());
+ /**
+ * Called by Java2XML
+ */
+ public LayerView() {
+ }
+
+ // 2018-08-22 : add layerName attribute (original name of the underlying
layer)
+ // to increase compatibility with java2xml and to make it possible to build
the
+ // LayerView from the xml project file before the underlying Layer is
completely
+ // initialized
+ String layerName;
+ public String getLayerName() {
+return layerName;
+ }
+ public void setLayerName(String layerName) {
+this.layerName = layerName;
+ }
+
+ @Override
+ public void setLayerManager(LayerManager layerManager) {
+super.setLayerManager(layerManager);
+this.layer = layerManager.getLayer(getLayerName());
+ }
+
+ public LayerView(final String layerName, LayerManager layerManager) {
+super(layerName,
+layerManager.generateLayerFillColor(),
+layerManager.getLayer(layerName).getFeatureCollectionWrapper(),
+layerManager);
+this.layerName = layerName;
+this.layer = layerManager.getLayer(layerName);
boolean firingEvents = getLayerManager().isFiringEvents();
getLayerManager().setFiringEvents(false);
try {
- setName(getName().replaceAll(layer.getName(),"").trim());
+ setName(getName().replaceAll(this.layer.getName(),"").trim());
} finally {
getLayerManager().setFiringEvents(firingEvents);
}
-this.layer = layer;
}
@@ -43,6 +72,28 @@
super.setFeatureCollectionWrapper(observableFeatureCollection);
}
+
+ @Override
+ public FeatureCollectionWrapper getFeatureCollectionWrapper() {
+// When the LayerView is build from the project xml file, it may be built
+// before underlying Layer is defined...
+if (layer != null) {
+ return layer.getFeatureCollectionWrapper();
+} else {
+ // ... in this case, try again to load data from the underlying Layer
+ // next time the application need to display the data.
+ this.layer = getLayerManager().getLayer(layerName);
+ if (this.layer != null) {
+return layer.getFeatureCollectionWrapper();
+ } else {
+return new ObservableFeatureCollection(
+FeatureDatasetFactory.createFromGeometry(new
ArrayList())
+);
+ }
+}
+ }
+
+
public Layer getLayer() {
return layer;
}
Added: core/trunk/src/com/vividsolutions/jump/workbench/model/LayerView.java2xml
===
--- core/trunk/src/com/vividsolutions/jump/workbench/model/LayerView.java2xml
(rev 0)
+++ core/trunk/src/com/vividsolutions/jump/workbench/model/LayerView.java2xml
2018-08-22 06:49:20 UTC (rev 5919)
@@ -0,0 +1,22 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newli