Revision: 6552
          http://sourceforge.net/p/jump-pilot/code/6552
Author:   edso
Date:     2020-09-27 20:53:57 +0000 (Sun, 27 Sep 2020)
Log Message:
-----------
implement closing of opened db connections in adddatastorelayerwizard if it is 
cancelled
add exitingToLeft() to wizard panels to notify that they got disabled/cancelled
added a new SpatialDSLayer class to differentiate spatial db datasource layers 
from ordinary Layers, implement dispose() to close db connections on layer 
removal

Modified Paths:
--------------
    
core/trunk/src/com/vividsolutions/jump/workbench/ui/plugin/datastore/ConnectionPanel.java
    
core/trunk/src/com/vividsolutions/jump/workbench/ui/plugin/wms/URLWizardPanel.java
    
core/trunk/src/com/vividsolutions/jump/workbench/ui/wizard/AbstractWizardPanel.java
    core/trunk/src/com/vividsolutions/jump/workbench/ui/wizard/WizardDialog.java
    
core/trunk/src/com/vividsolutions/jump/workbench/ui/wizard/WizardPanelV2.java
    
core/trunk/src/org/openjump/core/ui/plugin/datastore/AddDataStoreLayerWizard.java
    
core/trunk/src/org/openjump/core/ui/plugin/datastore/AddDataStoreLayerWizardPanel.java
    core/trunk/src/org/openjump/core/ui/plugin/file/open/SelectFilesPanel.java
    core/trunk/src/org/openjump/core/ui/plugin/file/save/SelectFilePanel.java

Added Paths:
-----------
    
core/trunk/src/com/vividsolutions/jump/datastore/spatialdatabases/SpatialDSLayer.java

Added: 
core/trunk/src/com/vividsolutions/jump/datastore/spatialdatabases/SpatialDSLayer.java
===================================================================
--- 
core/trunk/src/com/vividsolutions/jump/datastore/spatialdatabases/SpatialDSLayer.java
                               (rev 0)
+++ 
core/trunk/src/com/vividsolutions/jump/datastore/spatialdatabases/SpatialDSLayer.java
       2020-09-27 20:53:57 UTC (rev 6552)
@@ -0,0 +1,25 @@
+package com.vividsolutions.jump.datastore.spatialdatabases;
+
+import java.awt.Color;
+
+import com.vividsolutions.jump.feature.FeatureCollection;
+import com.vividsolutions.jump.workbench.JUMPWorkbench;
+import com.vividsolutions.jump.workbench.datastore.ConnectionManager;
+import com.vividsolutions.jump.workbench.model.Layer;
+import com.vividsolutions.jump.workbench.model.LayerManager;
+
+public class SpatialDSLayer extends Layer {
+
+  public SpatialDSLayer() {
+    super();
+  }
+
+  public SpatialDSLayer(String name, Color fillColor, FeatureCollection 
featureCollection, LayerManager layerManager) {
+    super(name, fillColor, featureCollection, layerManager);
+  }
+
+  public void dispose() {
+    super.dispose();
+    
ConnectionManager.instance(JUMPWorkbench.getInstance().getContext()).closeConnection(this);
+  }
+}


Property changes on: 
core/trunk/src/com/vividsolutions/jump/datastore/spatialdatabases/SpatialDSLayer.java
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Modified: 
core/trunk/src/com/vividsolutions/jump/workbench/ui/plugin/datastore/ConnectionPanel.java
===================================================================
--- 
core/trunk/src/com/vividsolutions/jump/workbench/ui/plugin/datastore/ConnectionPanel.java
   2020-09-27 20:32:42 UTC (rev 6551)
+++ 
core/trunk/src/com/vividsolutions/jump/workbench/ui/plugin/datastore/ConnectionPanel.java
   2020-09-27 20:53:57 UTC (rev 6552)
@@ -70,7 +70,6 @@
         return context;
     }
 
-
     public void populateConnectionComboBox() {
         ConnectionDescriptor selectedConnectionDescriptor = 
getConnectionDescriptor();
         connectionComboBox.setModel( new DefaultComboBoxModel(
@@ -81,6 +80,13 @@
         connectionComboBox.setSelectedItem( selectedConnectionDescriptor );
     }
 
+    /**
+     * close opened connectors not in use currently
+     */
+    public void closeConnectionsUnused() {
+      connectionManager().closeConnectionsUnused();
+    }
+
     public String validateInput() {
         if ( getConnectionDescriptor() == null ) {
             return 
I18N.get("com.vividsolutions.jump.workbench.ui.plugin.datastore.ConnectionPanel.Required-field-missing-Connection");

Modified: 
core/trunk/src/com/vividsolutions/jump/workbench/ui/plugin/wms/URLWizardPanel.java
===================================================================
--- 
core/trunk/src/com/vividsolutions/jump/workbench/ui/plugin/wms/URLWizardPanel.java
  2020-09-27 20:32:42 UTC (rev 6551)
+++ 
core/trunk/src/com/vividsolutions/jump/workbench/ui/plugin/wms/URLWizardPanel.java
  2020-09-27 20:53:57 UTC (rev 6552)
@@ -283,7 +283,6 @@
   }
   
 
-
   public static URLWizardPanel getInstance(){
     if (instance == null) {
       instance = new URLWizardPanel();
@@ -291,6 +290,11 @@
     
     return instance;
   }
+
+  @Override
+  public void exitingToLeft() {
+    // nothing to do
+  }
 }
 
 

Modified: 
core/trunk/src/com/vividsolutions/jump/workbench/ui/wizard/AbstractWizardPanel.java
===================================================================
--- 
core/trunk/src/com/vividsolutions/jump/workbench/ui/wizard/AbstractWizardPanel.java
 2020-09-27 20:32:42 UTC (rev 6551)
+++ 
core/trunk/src/com/vividsolutions/jump/workbench/ui/wizard/AbstractWizardPanel.java
 2020-09-27 20:53:57 UTC (rev 6552)
@@ -71,6 +71,9 @@
   public void exitingToRight() throws Exception {
   }
 
+  public void exitingToLeft() {
+  }
+
   public String getID() {
     return id;
   }

Modified: 
core/trunk/src/com/vividsolutions/jump/workbench/ui/wizard/WizardDialog.java
===================================================================
--- 
core/trunk/src/com/vividsolutions/jump/workbench/ui/wizard/WizardDialog.java    
    2020-09-27 20:32:42 UTC (rev 6551)
+++ 
core/trunk/src/com/vividsolutions/jump/workbench/ui/wizard/WizardDialog.java    
    2020-09-27 20:53:57 UTC (rev 6552)
@@ -118,7 +118,11 @@
 
   private void setCurrentWizardPanel(WizardPanel wizardPanel) {
     if (currentWizardPanel != null) {
+      // remove actionlistener
       currentWizardPanel.remove(this);
+      // inform panel that we left it
+      if (currentWizardPanel instanceof WizardPanelV2)
+        ((WizardPanelV2)currentWizardPanel).exitingToLeft();
     }
 
     titleLabel.setText(wizardPanel.getTitle());

Modified: 
core/trunk/src/com/vividsolutions/jump/workbench/ui/wizard/WizardPanelV2.java
===================================================================
--- 
core/trunk/src/com/vividsolutions/jump/workbench/ui/wizard/WizardPanelV2.java   
    2020-09-27 20:32:42 UTC (rev 6551)
+++ 
core/trunk/src/com/vividsolutions/jump/workbench/ui/wizard/WizardPanelV2.java   
    2020-09-27 20:53:57 UTC (rev 6552)
@@ -11,4 +11,10 @@
    * next panel to (re)initialize this panel, see e.g. {@link 
org.openjump.core.ui.plugin.file.open.SelectFilesPanel}
    */
   void enteredFromRight() throws Exception;
+  
+  /**
+   * Called in WizardDialog when the user leaves this panel without taking 
action
+   * @throws Exception
+   */
+  void exitingToLeft();
 }

Modified: 
core/trunk/src/org/openjump/core/ui/plugin/datastore/AddDataStoreLayerWizard.java
===================================================================
--- 
core/trunk/src/org/openjump/core/ui/plugin/datastore/AddDataStoreLayerWizard.java
   2020-09-27 20:32:42 UTC (rev 6551)
+++ 
core/trunk/src/org/openjump/core/ui/plugin/datastore/AddDataStoreLayerWizard.java
   2020-09-27 20:53:57 UTC (rev 6552)
@@ -1,11 +1,12 @@
 package org.openjump.core.ui.plugin.datastore;
 
 import java.awt.Color;
+import java.util.ArrayList;
 import java.util.Collection;
+import java.util.List;
 
 import javax.swing.SwingUtilities;
 
-import com.vividsolutions.jump.workbench.Logger;
 import org.openjump.core.ccordsys.srid.SRIDStyle;
 import org.openjump.core.ui.plugin.file.open.ChooseProjectPanel;
 import org.openjump.core.ui.swing.wizard.AbstractWizardGroup;
@@ -13,11 +14,13 @@
 import com.vividsolutions.jump.I18N;
 import com.vividsolutions.jump.coordsys.CoordinateSystemRegistry;
 import com.vividsolutions.jump.datastore.DataStoreLayer;
+import com.vividsolutions.jump.datastore.spatialdatabases.SpatialDSLayer;
 import com.vividsolutions.jump.feature.FeatureCollection;
 import com.vividsolutions.jump.io.datasource.Connection;
 import com.vividsolutions.jump.io.datasource.DataSource;
 import com.vividsolutions.jump.io.datasource.DataSourceQuery;
 import com.vividsolutions.jump.task.TaskMonitor;
+import com.vividsolutions.jump.workbench.Logger;
 import com.vividsolutions.jump.workbench.WorkbenchContext;
 import com.vividsolutions.jump.workbench.datastore.ConnectionDescriptor;
 import com.vividsolutions.jump.workbench.model.Category;
@@ -29,8 +32,6 @@
 import 
com.vividsolutions.jump.workbench.ui.plugin.datastore.AddDatastoreLayerPanel;
 import 
com.vividsolutions.jump.workbench.ui.plugin.datastore.DataStoreDataSource;
 import com.vividsolutions.jump.workbench.ui.wizard.WizardDialog;
-import java.util.ArrayList;
-import java.util.List;
 
 public class AddDataStoreLayerWizard extends AbstractWizardGroup {
 
@@ -113,7 +114,7 @@
     LayerManager layerManager = workbenchContext.getLayerManager();
     Color fillColor = layerManager.generateLayerFillColor();
     FeatureCollection featureCollection = 
AddNewLayerPlugIn.createBlankFeatureCollection();
-    Layer layer = new Layer(dsLayer.getFullName(), fillColor, 
featureCollection,
+    Layer layer = new SpatialDSLayer(dsLayer.getFullName(), fillColor, 
featureCollection,
         layerManager);
     
     String geometryAttributeName = dsLayer.getGeoCol().getName();

Modified: 
core/trunk/src/org/openjump/core/ui/plugin/datastore/AddDataStoreLayerWizardPanel.java
===================================================================
--- 
core/trunk/src/org/openjump/core/ui/plugin/datastore/AddDataStoreLayerWizardPanel.java
      2020-09-27 20:32:42 UTC (rev 6551)
+++ 
core/trunk/src/org/openjump/core/ui/plugin/datastore/AddDataStoreLayerWizardPanel.java
      2020-09-27 20:53:57 UTC (rev 6552)
@@ -32,6 +32,11 @@
     dataStorePanel.populateConnectionComboBox();
   }
 
+  public void exitingToLeft() {
+    // remove established connection
+    dataStorePanel.closeConnectionsUnused();
+  }
+
   public String getID() {
     return KEY;
   }

Modified: 
core/trunk/src/org/openjump/core/ui/plugin/file/open/SelectFilesPanel.java
===================================================================
--- core/trunk/src/org/openjump/core/ui/plugin/file/open/SelectFilesPanel.java  
2020-09-27 20:32:42 UTC (rev 6551)
+++ core/trunk/src/org/openjump/core/ui/plugin/file/open/SelectFilesPanel.java  
2020-09-27 20:53:57 UTC (rev 6552)
@@ -286,5 +286,10 @@
       listener.inputChanged();
     }
   }
+
+  @Override
+  public void exitingToLeft() {
+    // nothing to do
+  }
   
 }
\ No newline at end of file

Modified: 
core/trunk/src/org/openjump/core/ui/plugin/file/save/SelectFilePanel.java
===================================================================
--- core/trunk/src/org/openjump/core/ui/plugin/file/save/SelectFilePanel.java   
2020-09-27 20:32:42 UTC (rev 6551)
+++ core/trunk/src/org/openjump/core/ui/plugin/file/save/SelectFilePanel.java   
2020-09-27 20:53:57 UTC (rev 6552)
@@ -275,4 +275,9 @@
       return dialog.getData(key);
     return null;
   }
+
+  @Override
+  public void exitingToLeft() {
+    // nothing to do
+  }
 }



_______________________________________________
Jump-pilot-devel mailing list
Jump-pilot-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/jump-pilot-devel

Reply via email to