This is an automated email from the ASF dual-hosted git repository.

desruisseaux pushed a commit to branch geoapi-4.0
in repository https://gitbox.apache.org/repos/asf/sis.git

commit b8192c55818be4eaa50b7ecf4c0c8a1088980008
Author: Martin Desruisseaux <martin.desruisse...@geomatys.com>
AuthorDate: Fri Apr 22 10:36:45 2022 +0200

    Be more specific about the data store to show in the JavaFX application.
---
 application/sis-javafx/pom.xml                           |  5 +++++
 .../src/main/java/org/apache/sis/gui/DataViewer.java     | 16 ++++++++++++++--
 .../apache/sis/storage/landsat/LandsatStoreProvider.java |  1 -
 .../apache/sis/internal/storage/wkt/StoreProvider.java   |  2 +-
 .../apache/sis/internal/storage/xml/StoreProvider.java   |  4 ++--
 .../apache/sis/internal/storage/gpx/StoreProvider.java   |  9 +++++++--
 6 files changed, 29 insertions(+), 8 deletions(-)

diff --git a/application/sis-javafx/pom.xml b/application/sis-javafx/pom.xml
index c928a37b84..793db0e776 100644
--- a/application/sis-javafx/pom.xml
+++ b/application/sis-javafx/pom.xml
@@ -132,6 +132,11 @@
       <artifactId>sis-portrayal</artifactId>
       <version>${project.version}</version>
     </dependency>
+    <dependency>
+      <groupId>org.apache.sis.storage</groupId>
+      <artifactId>sis-xmlstore</artifactId>
+      <version>${project.version}</version>
+    </dependency>
     <dependency>
       <groupId>org.apache.sis.storage</groupId>
       <artifactId>sis-netcdf</artifactId>
diff --git 
a/application/sis-javafx/src/main/java/org/apache/sis/gui/DataViewer.java 
b/application/sis-javafx/src/main/java/org/apache/sis/gui/DataViewer.java
index bc70d320c9..4185e88ba2 100644
--- a/application/sis-javafx/src/main/java/org/apache/sis/gui/DataViewer.java
+++ b/application/sis-javafx/src/main/java/org/apache/sis/gui/DataViewer.java
@@ -233,6 +233,18 @@ public class DataViewer extends Application {
         for (DataStoreProvider provider : DataStores.providers()) {
             final StoreMetadata md = 
provider.getClass().getAnnotation(StoreMetadata.class);
             if (md != null) {
+                boolean read  = true;
+                boolean write = true;
+                switch (md.formatName()) {
+                    /*
+                     * GPX and XML have the same file suffix. Keep XML are 
reading time because
+                     * we can auto-detect the format. Keep GPX at writing time 
because we need
+                     * to be specific about the format to write.
+                     */
+                    case 
org.apache.sis.internal.storage.wkt.StoreProvider.NAME: continue;
+                    case 
org.apache.sis.internal.storage.xml.StoreProvider.NAME: write = false; break;
+                    case 
org.apache.sis.internal.storage.gpx.StoreProvider.NAME: read  = false; break;
+                }
                 String label = null;
                 for (final String suffix : md.fileSuffixes()) {
                     final String fs = "*.".concat(suffix);
@@ -248,11 +260,11 @@ public class DataViewer extends Application {
                      * do both. The "All formats" choice is relevant only for 
read operations.
                      */
                     final Capability[] capabilities = md.capabilities();
-                    if (ArraysExt.contains(capabilities, Capability.READ)) {
+                    if (read && ArraysExt.contains(capabilities, 
Capability.READ)) {
                         allSuffixes.addAll(suffixes);
                         open.add(f);
                     }
-                    if (ArraysExt.contains(capabilities, Capability.WRITE)) {
+                    if (write && ArraysExt.contains(capabilities, 
Capability.WRITE)) {
                         save.add(f);
                     }
                     suffixes.clear();
diff --git 
a/storage/sis-earth-observation/src/main/java/org/apache/sis/storage/landsat/LandsatStoreProvider.java
 
b/storage/sis-earth-observation/src/main/java/org/apache/sis/storage/landsat/LandsatStoreProvider.java
index 7be9c50b39..0e04617154 100644
--- 
a/storage/sis-earth-observation/src/main/java/org/apache/sis/storage/landsat/LandsatStoreProvider.java
+++ 
b/storage/sis-earth-observation/src/main/java/org/apache/sis/storage/landsat/LandsatStoreProvider.java
@@ -45,7 +45,6 @@ import org.apache.sis.internal.storage.wkt.FirstKeywordPeek;
  * @module
  */
 @StoreMetadata(formatName   = LandsatStoreProvider.NAME,
-               fileSuffixes = "txt",
                capabilities = Capability.READ)
 public class LandsatStoreProvider extends DataStoreProvider {
     /**
diff --git 
a/storage/sis-storage/src/main/java/org/apache/sis/internal/storage/wkt/StoreProvider.java
 
b/storage/sis-storage/src/main/java/org/apache/sis/internal/storage/wkt/StoreProvider.java
index c95ab0f519..72d458483e 100644
--- 
a/storage/sis-storage/src/main/java/org/apache/sis/internal/storage/wkt/StoreProvider.java
+++ 
b/storage/sis-storage/src/main/java/org/apache/sis/internal/storage/wkt/StoreProvider.java
@@ -45,7 +45,7 @@ public final class StoreProvider extends 
URIDataStore.Provider {
     /**
      * The format name.
      */
-    static final String NAME = "WKT";
+    public static final String NAME = "WKT";
 
     /**
      * The object to use for verifying if the first keyword is a WKT one.
diff --git 
a/storage/sis-storage/src/main/java/org/apache/sis/internal/storage/xml/StoreProvider.java
 
b/storage/sis-storage/src/main/java/org/apache/sis/internal/storage/xml/StoreProvider.java
index 714c25df1c..1f1c96d6d3 100644
--- 
a/storage/sis-storage/src/main/java/org/apache/sis/internal/storage/xml/StoreProvider.java
+++ 
b/storage/sis-storage/src/main/java/org/apache/sis/internal/storage/xml/StoreProvider.java
@@ -29,7 +29,7 @@ import org.apache.sis.internal.storage.Capability;
  * The provider of {@link Store} instances.
  *
  * @author  Martin Desruisseaux (Geomatys)
- * @version 1.0
+ * @version 1.2
  * @since   0.4
  * @module
  */
@@ -40,7 +40,7 @@ public final class StoreProvider extends AbstractProvider {
     /**
      * The format name.
      */
-    static final String NAME = "XML";
+    public static final String NAME = "XML";
 
     /**
      * Creates a new provider.
diff --git 
a/storage/sis-xmlstore/src/main/java/org/apache/sis/internal/storage/gpx/StoreProvider.java
 
b/storage/sis-xmlstore/src/main/java/org/apache/sis/internal/storage/gpx/StoreProvider.java
index 98b0cab28f..74e0a1faa3 100644
--- 
a/storage/sis-xmlstore/src/main/java/org/apache/sis/internal/storage/gpx/StoreProvider.java
+++ 
b/storage/sis-xmlstore/src/main/java/org/apache/sis/internal/storage/gpx/StoreProvider.java
@@ -35,15 +35,20 @@ import org.apache.sis.util.Version;
  *
  * @author  Johann Sorel (Geomatys)
  * @author  Martin Desruisseaux (Geomatys)
- * @version 1.1
+ * @version 1.2
  * @since   0.8
  * @module
  */
-@StoreMetadata(formatName    = "GPX",
+@StoreMetadata(formatName    = StoreProvider.NAME,
                fileSuffixes  = "xml",
                capabilities  = {Capability.READ, Capability.WRITE},
                resourceTypes = {FeatureSet.class})
 public final class StoreProvider extends StaxDataStoreProvider {
+    /**
+     * The format name.
+     */
+    public static final String NAME = "GPX";
+
     /**
      * The "1.0" version.
      */

Reply via email to