Revision: 4999
http://sourceforge.net/p/jump-pilot/code/4999
Author: edso
Date: 2016-07-30 19:36:56 +0000 (Sat, 30 Jul 2016)
Log Message:
-----------
some refactoring
added list of selected layerables to dialog context of SaveWizPlugin
Modified Paths:
--------------
core/trunk/src/org/openjump/core/ui/io/file/DataSourceFileLayerSaver.java
core/trunk/src/org/openjump/core/ui/plugin/datastore/SaveToDataStorePanel.java
core/trunk/src/org/openjump/core/ui/plugin/file/SaveWizardPlugIn.java
core/trunk/src/org/openjump/core/ui/plugin/file/save/SelectFilePanel.java
Added Paths:
-----------
core/trunk/src/org/openjump/core/ui/plugin/file/save/SaveToFileWizard.java
Removed Paths:
-------------
core/trunk/src/org/openjump/core/ui/plugin/file/save/SaveFileWizard.java
Modified:
core/trunk/src/org/openjump/core/ui/io/file/DataSourceFileLayerSaver.java
===================================================================
--- core/trunk/src/org/openjump/core/ui/io/file/DataSourceFileLayerSaver.java
2016-07-30 16:36:38 UTC (rev 4998)
+++ core/trunk/src/org/openjump/core/ui/io/file/DataSourceFileLayerSaver.java
2016-07-30 19:36:56 UTC (rev 4999)
@@ -9,33 +9,29 @@
import org.openjump.util.UriUtil;
import com.vividsolutions.jump.feature.FeatureCollection;
-import com.vividsolutions.jump.io.DriverProperties;
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.util.LangUtil;
-import com.vividsolutions.jump.workbench.WorkbenchContext;
import com.vividsolutions.jump.workbench.datasource.FileDataSourceQueryChooser;
import com.vividsolutions.jump.workbench.model.Layer;
-import com.vividsolutions.jump.workbench.plugin.PlugInContext;
-import com.vividsolutions.jump.workbench.ui.GUIUtil;
public class DataSourceFileLayerSaver extends AbstractFileLayerSaver {
private Class dataSourceClass;
- private PlugInContext context;
+ private Layer layer;
- public DataSourceFileLayerSaver(WorkbenchContext workbenchContext,
+ public DataSourceFileLayerSaver(Layer layer,
Class dataSourceClass, String description, List<String> extensions) {
super(description, extensions);
- this.context = workbenchContext.createPlugInContext();
this.dataSourceClass = dataSourceClass;
+ this.layer = layer;
}
- public DataSourceFileLayerSaver(WorkbenchContext workbenchContext,
+ public DataSourceFileLayerSaver(Layer layer,
FileDataSourceQueryChooser fdsqc) {
- this(workbenchContext, fdsqc.getDataSourceClass(), fdsqc.getDescription(),
+ this(layer, fdsqc.getDataSourceClass(), fdsqc.getDescription(),
Arrays.asList(fdsqc.getExtensions()));
}
@@ -43,7 +39,6 @@
public boolean write(TaskMonitor monitor, URI uri, Map<String, Object>
options)
throws Exception {
DataSource dataSource = (DataSource) LangUtil.newInstance(dataSourceClass);
- Layer layer = context.getSelectedLayer(0);
FeatureCollection fc = layer.getFeatureCollectionWrapper();
monitor.allowCancellationRequests();
Modified:
core/trunk/src/org/openjump/core/ui/plugin/datastore/SaveToDataStorePanel.java
===================================================================
---
core/trunk/src/org/openjump/core/ui/plugin/datastore/SaveToDataStorePanel.java
2016-07-30 16:36:38 UTC (rev 4998)
+++
core/trunk/src/org/openjump/core/ui/plugin/datastore/SaveToDataStorePanel.java
2016-07-30 19:36:56 UTC (rev 4999)
@@ -155,7 +155,7 @@
//setData(SaveFileWizard.DATAKEY_FILE, file);
setData(WritableDataStoreDataSource.CONNECTION_DESCRIPTOR_KEY,
getConnectionDescriptor());
- setData(WritableDataStoreDataSource.DATASET_NAME_KEY,
getData(SaveWizardPlugIn.DATAKEY_LAYERNAME));
+ setData(WritableDataStoreDataSource.DATASET_NAME_KEY,
getData(SaveWizardPlugIn.DATAKEY_SIMPLIFIED_LAYERNAME));
setData(WritableDataStoreDataSource.GEOM_DIM_KEY,
writeCreate3dGeometriesSelected()?3:2);
setData(WritableDataStoreDataSource.NAN_Z_TO_VALUE_KEY, nanZToValue());
setData(WritableDataStoreDataSource.CREATE_PK,
isCreatePrimaryKeyColumnSelected());
Modified: core/trunk/src/org/openjump/core/ui/plugin/file/SaveWizardPlugIn.java
===================================================================
--- core/trunk/src/org/openjump/core/ui/plugin/file/SaveWizardPlugIn.java
2016-07-30 16:36:38 UTC (rev 4998)
+++ core/trunk/src/org/openjump/core/ui/plugin/file/SaveWizardPlugIn.java
2016-07-30 19:36:56 UTC (rev 4999)
@@ -1,10 +1,11 @@
package org.openjump.core.ui.plugin.file;
+import java.util.Collection;
import java.util.List;
import org.openjump.core.ui.plugin.AbstractThreadedUiPlugIn;
import org.openjump.core.ui.plugin.datastore.SaveToDataStoreWizard;
-import org.openjump.core.ui.plugin.file.save.SaveFileWizard;
+import org.openjump.core.ui.plugin.file.save.SaveToFileWizard;
import org.openjump.core.ui.swing.wizard.WizardGroup;
import org.openjump.core.ui.swing.wizard.WizardGroupDialog;
@@ -14,6 +15,7 @@
import com.vividsolutions.jump.util.Blackboard;
import com.vividsolutions.jump.workbench.JUMPWorkbench;
import com.vividsolutions.jump.workbench.WorkbenchContext;
+import com.vividsolutions.jump.workbench.model.Layerable;
import com.vividsolutions.jump.workbench.plugin.EnableCheck;
import com.vividsolutions.jump.workbench.plugin.EnableCheckFactory;
import com.vividsolutions.jump.workbench.plugin.MultiEnableCheck;
@@ -29,14 +31,17 @@
private static final String KEY = SaveWizardPlugIn.class.getName();
private static final String LASTWIZARDCLASSNAME = KEY + ".lastwizard";
- public static final String DATAKEY_LAYERNAME = KEY+".layername";
+ public static final String DATAKEY_SIMPLIFIED_LAYERNAME = KEY
+ + ".simplified-layername";
+ public static final String DATAKEY_SELECTED_LAYERABLES = KEY
+ + ".selected-layerables";
private static WizardGroupDialog dialog = null;
private WizardGroup lastWizard;
private Blackboard blackboard;
public SaveWizardPlugIn() {
- super(I18N.get(KEY)+" (experimental)");
+ super(I18N.get(KEY) + " (experimental)");
}
public static void addWizard(final WorkbenchContext workbenchContext,
@@ -56,21 +61,20 @@
FeatureInstaller.getInstance().addMainMenuPlugin(this,
new String[] { MenuNames.FILE });
- // setWizard(new SaveFileWizard(context));
- // add file wiz
- addWizard(context.getWorkbenchContext(), new SaveFileWizard(context));
+ // add each wiz one by one
+ addWizard(context.getWorkbenchContext(), new SaveToFileWizard(context));
addWizard(context.getWorkbenchContext(), new
SaveToDataStoreWizard(context));
}
- public boolean execute(PlugInContext context) throws Exception {
+ public boolean execute(PlugInContext pluginContext) throws Exception {
Registry registry = workbenchContext.getRegistry();
- WorkbenchFrame workbenchFrame = context.getWorkbenchFrame();
- String name = getName();
List<WizardGroup> wizards = registry.getEntries(KEY);
WizardGroup lastwizard = null;
- //dialog = null;
+ // dialog = null;
if (dialog == null) {
+ WorkbenchFrame workbenchFrame = pluginContext.getWorkbenchFrame();
+ String name = getName();
dialog = new WizardGroupDialog(workbenchContext, workbenchFrame, name);
String lastwizardid =
String.valueOf(blackboard.get(LASTWIZARDCLASSNAME));
@@ -81,17 +85,23 @@
}
}
}
-
- // legalize selected layer name (to be used by contained wizards)
- String layerName =
workbenchContext.getLayerNamePanel().getSelectedLayers()[0].
- getName().replaceAll("[/:\\\\><\\|]","_");
- dialog.setData(DATAKEY_LAYERNAME, layerName);
-
+
+ // fetch the selected layer from the plugincontext
+ Collection<Layerable> layers = pluginContext.getSelectedLayerables();
+ // save it to dialog context for use in subsequent wizards
+ dialog.setData(DATAKEY_SELECTED_LAYERABLES, layers);
+
+ // legalize selected layer's name (to be used by contained wizards)
+ Layerable layer = layers.iterator().next();
+ String layerName = layer.getName().replaceAll("[/:\\\\><\\|]", "_");
+ dialog.setData(DATAKEY_SIMPLIFIED_LAYERNAME, layerName);
+
// activate initial wizard
if (lastWizard != null)
dialog.setSelectedWizard(lastWizard);
- else if (wizards.size() > 0)
- dialog.setSelectedWizard(wizards.get(0));
+ // or activate first
+ else if (dialog.getWizardCount() > 0)
+ dialog.setSelectedWizard(dialog.getWizardAt(0));
dialog.pack();
GUIUtil.centreOnWindow(dialog);
Deleted:
core/trunk/src/org/openjump/core/ui/plugin/file/save/SaveFileWizard.java
===================================================================
--- core/trunk/src/org/openjump/core/ui/plugin/file/save/SaveFileWizard.java
2016-07-30 16:36:38 UTC (rev 4998)
+++ core/trunk/src/org/openjump/core/ui/plugin/file/save/SaveFileWizard.java
2016-07-30 19:36:56 UTC (rev 4999)
@@ -1,62 +0,0 @@
-package org.openjump.core.ui.plugin.file.save;
-
-import java.io.File;
-
-import org.openjump.core.ui.io.file.DataSourceFileLayerSaver;
-import org.openjump.core.ui.swing.wizard.AbstractWizardGroup;
-
-import com.vividsolutions.jump.I18N;
-import com.vividsolutions.jump.task.TaskMonitor;
-import com.vividsolutions.jump.workbench.WorkbenchContext;
-import com.vividsolutions.jump.workbench.datasource.FileDataSourceQueryChooser;
-import com.vividsolutions.jump.workbench.plugin.PlugInContext;
-import com.vividsolutions.jump.workbench.ui.images.IconLoader;
-import com.vividsolutions.jump.workbench.ui.wizard.WizardDialog;
-
-public class SaveFileWizard extends AbstractWizardGroup {
- /** The key for the wizard. */
- public static final String KEY = SaveFileWizard.class.getName();
- public static final String DATAKEY_FILE = KEY + ".selected-file";
- public static final String DATAKEY_DATASOURCEQUERYCHOOSER = KEY
- + ".selected-datasourcequerychooser";
- public static final String DATAKEY_FOLDER = KEY + ".last-folder";
- //public static final String DATAKEY_LAYERNAME = KEY + ".layername";
-
- /** The plugin context. */
- private PlugInContext context;
-
- private File file;
-
- public SaveFileWizard(final PlugInContext context) {
- super(I18N.get(KEY), IconLoader.icon("disk_dots.png"),
SelectFilePanel.KEY);
- this.context = context;
- }
-
- @Override
- public void initialize(WorkbenchContext workbenchContext, WizardDialog
dialog) {
-// //for debugging
-// removeAllPanels();
- // already initialized
- if (!getPanels().isEmpty())
- return;
-
- SelectFilePanel selectFilePanel = new SelectFilePanel(workbenchContext);
- selectFilePanel.setDialog(dialog);
- addPanel(selectFilePanel);
- }
-
-
- @Override
- public void run(WizardDialog dialog, TaskMonitor monitor) throws Exception {
- // retrieve selected file
- File file = (File) dialog.getData(DATAKEY_FILE);
- // retrieve selected file loader
- FileDataSourceQueryChooser fdsqc = (FileDataSourceQueryChooser) dialog
- .getData(DATAKEY_DATASOURCEQUERYCHOOSER);
-
- DataSourceFileLayerSaver writer = new DataSourceFileLayerSaver(
- context.getWorkbenchContext(), fdsqc);
-
- writer.write(monitor, file.toURI(), null);
- }
-}
\ No newline at end of file
Copied:
core/trunk/src/org/openjump/core/ui/plugin/file/save/SaveToFileWizard.java
(from rev 4996,
core/trunk/src/org/openjump/core/ui/plugin/file/save/SaveFileWizard.java)
===================================================================
--- core/trunk/src/org/openjump/core/ui/plugin/file/save/SaveToFileWizard.java
(rev 0)
+++ core/trunk/src/org/openjump/core/ui/plugin/file/save/SaveToFileWizard.java
2016-07-30 19:36:56 UTC (rev 4999)
@@ -0,0 +1,76 @@
+package org.openjump.core.ui.plugin.file.save;
+
+import java.io.File;
+import java.util.Collection;
+
+import org.openjump.core.ui.io.file.DataSourceFileLayerSaver;
+import org.openjump.core.ui.plugin.file.SaveWizardPlugIn;
+import org.openjump.core.ui.swing.wizard.AbstractWizardGroup;
+
+import com.vividsolutions.jump.I18N;
+import com.vividsolutions.jump.JUMPException;
+import com.vividsolutions.jump.task.TaskMonitor;
+import com.vividsolutions.jump.workbench.WorkbenchContext;
+import com.vividsolutions.jump.workbench.datasource.FileDataSourceQueryChooser;
+import com.vividsolutions.jump.workbench.model.Layer;
+import com.vividsolutions.jump.workbench.model.Layerable;
+import com.vividsolutions.jump.workbench.plugin.PlugInContext;
+import com.vividsolutions.jump.workbench.ui.images.IconLoader;
+import com.vividsolutions.jump.workbench.ui.wizard.WizardDialog;
+
+public class SaveToFileWizard extends AbstractWizardGroup {
+ /** The key for the wizard. */
+ public static final String KEY = SaveToFileWizard.class.getName();
+ public static final String DATAKEY_FILE = KEY + ".selected-file";
+ public static final String DATAKEY_DATASOURCEQUERYCHOOSER = KEY
+ + ".selected-datasourcequerychooser";
+ public static final String DATAKEY_FOLDER = KEY + ".last-folder";
+ //public static final String DATAKEY_LAYERNAME = KEY + ".layername";
+
+ /** The plugin context. */
+ private PlugInContext context;
+
+ private File file;
+
+ public SaveToFileWizard(final PlugInContext context) {
+ super(I18N.get(KEY), IconLoader.icon("disk_dots.png"),
SelectFilePanel.KEY);
+// this.context = context;
+ }
+
+ @Override
+ public void initialize(WorkbenchContext workbenchContext, WizardDialog
dialog) {
+// //for debugging
+// removeAllPanels();
+ // already initialized
+ if (!getPanels().isEmpty())
+ return;
+
+ SelectFilePanel selectFilePanel = new SelectFilePanel(workbenchContext);
+ selectFilePanel.setDialog(dialog);
+ addPanel(selectFilePanel);
+ }
+
+
+ @Override
+ public void run(WizardDialog dialog, TaskMonitor monitor) throws Exception {
+ // retrieve selected file
+ File file = (File) dialog.getData(DATAKEY_FILE);
+ // retrieve selected file loader
+ FileDataSourceQueryChooser fdsqc = (FileDataSourceQueryChooser) dialog
+ .getData(DATAKEY_DATASOURCEQUERYCHOOSER);
+ // retrieve selected layer
+ Collection<Layerable> layers = (Collection<Layerable>)
dialog.getData(SaveWizardPlugIn.DATAKEY_SELECTED_LAYERABLES);
+ if (layers == null || layers.isEmpty())
+ throw new JUMPException("no layers selected");
+
+ Layerable layerable = layers.iterator().next();
+ if (!(layerable instanceof Layer))
+ throw new JUMPException("selected layerable is not of type layer");
+
+ Layer layer = (Layer)layerable;
+ DataSourceFileLayerSaver writer = new DataSourceFileLayerSaver(
+ layer, fdsqc);
+
+ writer.write(monitor, file.toURI(), null);
+ }
+}
\ 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
2016-07-30 16:36:38 UTC (rev 4998)
+++ core/trunk/src/org/openjump/core/ui/plugin/file/save/SelectFilePanel.java
2016-07-30 19:36:56 UTC (rev 4999)
@@ -121,12 +121,12 @@
rescanCurrentDirectory();
// reset selection
- setData(SaveFileWizard.DATAKEY_DATASOURCEQUERYCHOOSER, null);
- setData(SaveFileWizard.DATAKEY_FILE, null);
+ setData(SaveToFileWizard.DATAKEY_DATASOURCEQUERYCHOOSER, null);
+ setData(SaveToFileWizard.DATAKEY_FILE, null);
setSelectedFile(new File(""));
// preset selected layer name, if set
- String dataSetName = (String) getData(SaveWizardPlugIn.DATAKEY_LAYERNAME);
+ String dataSetName = (String)
getData(SaveWizardPlugIn.DATAKEY_SIMPLIFIED_LAYERNAME);
if (dataSetName != null && !dataSetName.isEmpty()) {
setSelectedFile(new File(dataSetName));
}
@@ -137,7 +137,7 @@
if (!isInputValid())
throw new CancelNextException();
- File file = (File) getData(SaveFileWizard.DATAKEY_FILE);
+ File file = (File) getData(SaveToFileWizard.DATAKEY_FILE);
// file overwriting is only checked when the selection is finally approved
if (file.exists()) {
boolean overwrite = GUIUtil.showConfirmOverwriteDialog(getDialog(),
file);
@@ -187,8 +187,8 @@
@Override
public boolean isInputValid() {
// reset selection
- setData(SaveFileWizard.DATAKEY_DATASOURCEQUERYCHOOSER, null);
- setData(SaveFileWizard.DATAKEY_FILE, null);
+ setData(SaveToFileWizard.DATAKEY_DATASOURCEQUERYCHOOSER, null);
+ setData(SaveToFileWizard.DATAKEY_FILE, null);
// [2016.07 ede] the following runs the filechoosers own routine to fill up
// the internal selected files vars properly
@@ -230,9 +230,9 @@
return false;
// save successful selection
- setData(SaveFileWizard.DATAKEY_DATASOURCEQUERYCHOOSER,
+ setData(SaveToFileWizard.DATAKEY_DATASOURCEQUERYCHOOSER,
datasourcefilter.getFileDataSourceQueryChooser());
- setData(SaveFileWizard.DATAKEY_FILE, file);
+ setData(SaveToFileWizard.DATAKEY_FILE, file);
return true;
}
------------------------------------------------------------------------------
_______________________________________________
Jump-pilot-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/jump-pilot-devel