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
Jump-pilot-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/jump-pilot-devel

Reply via email to