Revision: 6003
          http://sourceforge.net/p/jump-pilot/code/6003
Author:   ma15569
Date:     2018-11-30 15:20:31 +0000 (Fri, 30 Nov 2018)
Log Message:
-----------
Added Load and Save style plugins

Added Paths:
-----------
    core/trunk/src/org/openjump/core/ui/plugin/style/LoadStylePlugIn.java
    core/trunk/src/org/openjump/core/ui/plugin/style/SaveStylePlugIn.java

Added: core/trunk/src/org/openjump/core/ui/plugin/style/LoadStylePlugIn.java
===================================================================
--- core/trunk/src/org/openjump/core/ui/plugin/style/LoadStylePlugIn.java       
                        (rev 0)
+++ core/trunk/src/org/openjump/core/ui/plugin/style/LoadStylePlugIn.java       
2018-11-30 15:20:31 UTC (rev 6003)
@@ -0,0 +1,138 @@
+/*
+ * The Unified Mapping Platform (JUMP) is an extensible, interactive GUI for
+ * visualizing and manipulating spatial features with geometry and attributes.
+ *
+ * Copyright (C) 2003 Vivid Solutions
+ *
+ * This program is free software; you can redistribute it and/or modify it 
under
+ * the terms of the GNU General Public License as published by the Free 
Software
+ * Foundation; either version 2 of the License, or (at your option) any later
+ * version.
+ *
+ * This program is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 
FITNESS
+ * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
+ * details.
+ *
+ * You should have received a copy of the GNU General Public License along with
+ * this program; if not, write to the Free Software Foundation, Inc., 59 Temple
+ * Place - Suite 330, Boston, MA 02111-1307, USA.
+ *
+ * For more information, contact:
+ *
+ * Vivid Solutions Suite #1A 2328 Government Street Victoria BC V8T 5G5 Canada
+ *
+ * (250)385-6040 www.vividsolutions.com
+ */
+
+package org.openjump.core.ui.plugin.style;
+
+import java.io.File;
+
+import javax.swing.ImageIcon;
+import javax.swing.JFileChooser;
+
+import org.openjump.core.apitools.IOTools;
+import org.openjump.core.ui.io.file.FileNameExtensionFilter;
+import org.openjump.core.ui.plugin.file.open.JFCWithEnterAction;
+
+import com.vividsolutions.jump.I18N;
+import com.vividsolutions.jump.task.TaskMonitor;
+import com.vividsolutions.jump.workbench.WorkbenchContext;
+import 
com.vividsolutions.jump.workbench.datasource.SaveFileDataSourceQueryChooser;
+import com.vividsolutions.jump.workbench.model.Layer;
+import com.vividsolutions.jump.workbench.plugin.EnableCheckFactory;
+import com.vividsolutions.jump.workbench.plugin.MultiEnableCheck;
+import com.vividsolutions.jump.workbench.plugin.PlugInContext;
+import com.vividsolutions.jump.workbench.plugin.ThreadedBasePlugIn;
+import com.vividsolutions.jump.workbench.ui.images.IconLoader;
+import com.vividsolutions.jump.workbench.ui.plugin.PersistentBlackboardPlugIn;
+
+public class LoadStylePlugIn extends ThreadedBasePlugIn {
+
+    public final static ImageIcon ICON = IconLoader.icon("style_in.png");
+    private final String name = I18N
+            
.get("org.openjump.core.ui.plugin.style.StylePlugIns.import-style");
+
+    @Override
+    public String getName() {
+        return name;
+    }
+
+    @Override
+    public void initialize(PlugInContext context) throws Exception {
+        super.initialize(context);
+
+    }
+
+    public static MultiEnableCheck createEnableCheck1(
+            WorkbenchContext workbenchContext) {
+        final EnableCheckFactory checkFactory = new EnableCheckFactory(
+                workbenchContext);
+        return new MultiEnableCheck()
+                .add(checkFactory.createTaskWindowMustBeActiveCheck())
+                .add(checkFactory.createAtLeastNLayersMustExistCheck(1))
+                .add(checkFactory.createAtLeastNLayersMustBeSelectedCheck(1));
+    }
+
+    public ImageIcon getIcon() {
+
+        return ICON;
+    }
+
+    File file;
+    private static final String FILE_CHOOSER_DIRECTORY_KEY = 
SaveFileDataSourceQueryChooser.class
+            .getName() + " - FILE CHOOSER DIRECTORY";
+
+    @Override
+    public boolean execute(PlugInContext context) throws Exception {
+        final Layer layer = context.getSelectedLayer(0);
+        final JFCWithEnterAction fc = new JFCWithEnterAction();
+        fc.setCurrentDirectory(new File((String) PersistentBlackboardPlugIn
+                .get(context.getWorkbenchContext()).get(
+                        FILE_CHOOSER_DIRECTORY_KEY)));
+        fc.setDialogTitle(name);
+        fc.setDialogType(JFileChooser.OPEN_DIALOG);
+        fc.setFileSelectionMode(JFileChooser.FILES_ONLY);
+        fc.setMultiSelectionEnabled(false);
+        final FileNameExtensionFilter filter = new FileNameExtensionFilter(
+                "JUMP layer symbology", "style.xml");
+        final FileNameExtensionFilter filter2 = new FileNameExtensionFilter(
+                "Spatial layer descriptor", "sld");
+        fc.setFileFilter(filter2);
+        fc.setFileFilter(filter);
+        fc.addChoosableFileFilter(filter);
+        if (JFileChooser.APPROVE_OPTION != fc.showOpenDialog(context
+                .getWorkbenchFrame())) {
+            return false;
+        }
+        if (fc.getFileFilter().equals(filter)) {
+
+            file = fc.getSelectedFile();
+            // IOTools.loadMetadata_Jump(file, layer, true, false, true);
+
+            IOTools.loadSimbology_Jump(file, layer);
+
+        } else if (fc.getFileFilter().equals(filter2)) {
+            final File file = fc.getSelectedFile();
+
+            IOTools.loadSimbology_SLD(file, context);
+
+        }
+
+        return true;
+
+    }
+
+    @Override
+    public void run(TaskMonitor monitor, PlugInContext context)
+            throws Exception {
+        monitor.allowCancellationRequests();
+        monitor.report(getName()
+                + ": "
+                + 
I18N.get("com.vividsolutions.jump.workbench.plugin.PlugInManager.loading")
+                + ": " + file.getAbsolutePath());
+
+    }
+
+}
\ No newline at end of file


Property changes on: 
core/trunk/src/org/openjump/core/ui/plugin/style/LoadStylePlugIn.java
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: core/trunk/src/org/openjump/core/ui/plugin/style/SaveStylePlugIn.java
===================================================================
--- core/trunk/src/org/openjump/core/ui/plugin/style/SaveStylePlugIn.java       
                        (rev 0)
+++ core/trunk/src/org/openjump/core/ui/plugin/style/SaveStylePlugIn.java       
2018-11-30 15:20:31 UTC (rev 6003)
@@ -0,0 +1,156 @@
+/*
+ * The Unified Mapping Platform (JUMP) is an extensible, interactive GUI for
+ * visualizing and manipulating spatial features with geometry and attributes.
+ * 
+ * Copyright (C) 2003 Vivid Solutions
+ * 
+ * This program is free software; you can redistribute it and/or modify it 
under
+ * the terms of the GNU General Public License as published by the Free 
Software
+ * Foundation; either version 2 of the License, or (at your option) any later
+ * version.
+ * 
+ * This program is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 
FITNESS
+ * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
+ * details.
+ * 
+ * You should have received a copy of the GNU General Public License along with
+ * this program; if not, write to the Free Software Foundation, Inc., 59 Temple
+ * Place - Suite 330, Boston, MA 02111-1307, USA.
+ * 
+ * For more information, contact:
+ * 
+ * Vivid Solutions Suite #1A 2328 Government Street Victoria BC V8T 5G5 Canada
+ * 
+ * (250)385-6040 www.vividsolutions.com
+ */
+package org.openjump.core.ui.plugin.style;
+
+import java.io.File;
+
+import javax.swing.ImageIcon;
+import javax.swing.JFileChooser;
+import javax.swing.JOptionPane;
+
+import org.openjump.core.apitools.IOTools;
+import org.openjump.core.ui.io.file.FileNameExtensionFilter;
+import org.openjump.core.ui.plugin.file.open.JFCWithEnterAction;
+
+import com.vividsolutions.jump.I18N;
+import com.vividsolutions.jump.task.TaskMonitor;
+import com.vividsolutions.jump.util.FileUtil;
+import com.vividsolutions.jump.workbench.JUMPWorkbench;
+import com.vividsolutions.jump.workbench.WorkbenchContext;
+import 
com.vividsolutions.jump.workbench.datasource.SaveFileDataSourceQueryChooser;
+import com.vividsolutions.jump.workbench.model.Layer;
+import com.vividsolutions.jump.workbench.plugin.EnableCheckFactory;
+import com.vividsolutions.jump.workbench.plugin.MultiEnableCheck;
+import com.vividsolutions.jump.workbench.plugin.PlugInContext;
+import com.vividsolutions.jump.workbench.plugin.ThreadedBasePlugIn;
+import com.vividsolutions.jump.workbench.ui.GUIUtil;
+import com.vividsolutions.jump.workbench.ui.images.IconLoader;
+import com.vividsolutions.jump.workbench.ui.plugin.PersistentBlackboardPlugIn;
+
+public class SaveStylePlugIn extends ThreadedBasePlugIn {
+
+    public final static ImageIcon ICON = IconLoader.icon("style_out.png");
+    private final String name = I18N
+            
.get("org.openjump.core.ui.plugin.style.StylePlugIns.export-style");
+
+    public ImageIcon getIcon() {
+
+        return ICON;
+    }
+
+    @Override
+    public void initialize(PlugInContext context) throws Exception {
+        super.initialize(context);
+
+    }
+
+    @Override
+    public String getName() {
+        return name;
+    }
+
+    File file;
+    private static final String FILE_CHOOSER_DIRECTORY_KEY = 
SaveFileDataSourceQueryChooser.class
+            .getName() + " - FILE CHOOSER DIRECTORY";
+
+    @Override
+    public boolean execute(PlugInContext context) throws Exception {
+        reportNothingToUndoYet(context);
+
+        final Layer layer = context.getSelectedLayer(0);
+        final JFCWithEnterAction fc = new 
GUIUtil.FileChooserWithOverwritePrompting();
+        fc.setCurrentDirectory(
+
+        new File((String) PersistentBlackboardPlugIn.get(
+                
context.getWorkbenchContext()).get(FILE_CHOOSER_DIRECTORY_KEY)));
+
+        fc.setSelectedFile(new File(fc.getCurrentDirectory(), layer.getName()
+                .replaceAll("[/:\\\\><\\|]", "_")));
+
+        fc.setDialogTitle(name);
+        fc.setDialogType(JFileChooser.SAVE_DIALOG);
+
+        final FileNameExtensionFilter filter = new FileNameExtensionFilter(
+                "JUMP layer symbology", "style.xml");
+        final FileNameExtensionFilter filter2 = new FileNameExtensionFilter(
+                "Spatial layer descriptor", "sld");
+
+        fc.setFileFilter(filter2);
+        fc.setFileFilter(filter);
+        fc.addChoosableFileFilter(filter);
+
+        if (JFileChooser.APPROVE_OPTION != fc.showSaveDialog(context
+                .getWorkbenchFrame())) {
+            return false;
+        }
+        String filePath = "";
+        if (fc.getFileFilter().equals(filter)) {
+            file = fc.getSelectedFile();
+            file = FileUtil.addExtensionIfNone(file, "style.xml");
+
+            IOTools.saveSimbology_Jump(file, layer);
+            filePath = file.getAbsolutePath();
+
+        } else if (fc.getFileFilter().equals(filter2)) {
+            File file = fc.getSelectedFile();
+            file = FileUtil.addExtensionIfNone(file, "sld");
+            IOTools.saveSimbology_SLD2(file, layer);
+            filePath = file.getAbsolutePath();
+        }
+
+        JOptionPane
+                .showMessageDialog(
+                        JUMPWorkbench.getInstance().getFrame(),
+                        
I18N.get("org.openjump.core.ui.plugin.raster.RasterImageLayerPropertiesPlugIn.file.saved")
+                                + ": " + filePath, getName(),
+                        JOptionPane.PLAIN_MESSAGE);
+
+        return true;
+    }
+
+    public static MultiEnableCheck createEnableCheck1(
+            WorkbenchContext workbenchContext) {
+        final EnableCheckFactory checkFactory = new EnableCheckFactory(
+                workbenchContext);
+        return new MultiEnableCheck()
+                .add(checkFactory.createTaskWindowMustBeActiveCheck())
+                .add(checkFactory.createAtLeastNLayersMustExistCheck(1))
+                .add(checkFactory.createAtLeastNLayersMustBeSelectedCheck(1));
+    }
+
+    @Override
+    public void run(TaskMonitor monitor, PlugInContext context)
+            throws Exception {
+
+        monitor.allowCancellationRequests();
+        monitor.report(getName() + ": "
+                + I18N.get("ui.plugin.SaveDatasetAsPlugIn.saving") + ": "
+                + file.getAbsolutePath());
+
+    }
+
+}
\ No newline at end of file


Property changes on: 
core/trunk/src/org/openjump/core/ui/plugin/style/SaveStylePlugIn.java
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property


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

Reply via email to