[JPP-Devel] SVN: [5918] core/trunk/src/org/openjump/core/ui/plugin/datastore/ transaction/DataStoreTransactionManagerPlugIn.java

2018-08-21 Thread jump-pilot-svn--- via Jump-pilot-devel
Revision: 5918
  http://sourceforge.net/p/jump-pilot/code/5918
Author:   michaudm
Date: 2018-08-21 20:33:57 + (Tue, 21 Aug 2018)
Log Message:
---
Protection against NPE

Modified Paths:
--

core/trunk/src/org/openjump/core/ui/plugin/datastore/transaction/DataStoreTransactionManagerPlugIn.java

Modified: 
core/trunk/src/org/openjump/core/ui/plugin/datastore/transaction/DataStoreTransactionManagerPlugIn.java
===
--- 
core/trunk/src/org/openjump/core/ui/plugin/datastore/transaction/DataStoreTransactionManagerPlugIn.java
 2018-08-19 07:27:05 UTC (rev 5917)
+++ 
core/trunk/src/org/openjump/core/ui/plugin/datastore/transaction/DataStoreTransactionManagerPlugIn.java
 2018-08-21 20:33:57 UTC (rev 5918)
@@ -82,7 +82,8 @@
 Logger.info("Task loaded : " + task.getName());
 java.util.List layers = 
taskEvent.getTask().getLayerManager().getLayers();
 for (Layer layer : layers) {
-if (layer.getDataSourceQuery().getDataSource() instanceof 
WritableDataStoreDataSource) {
+if (layer.getDataSourceQuery() != null &&
+layer.getDataSourceQuery().getDataSource() 
instanceof WritableDataStoreDataSource) {
 getTransactionManager().registerLayer(layer, task);
 }
 }


--
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
___
Jump-pilot-devel mailing list
Jump-pilot-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/jump-pilot-devel


[JPP-Devel] SVN: [5919] core/trunk

2018-08-21 Thread jump-pilot-svn--- via Jump-pilot-devel
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