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. */