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