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


The following commit(s) were added to refs/heads/geoapi-4.0 by this push:
     new 8d5386a  Rename CategoryCellFactory as BandRangeTable.
8d5386a is described below

commit 8d5386ada4ef4d70e609ac092abc08e13744df94
Author: Martin Desruisseaux <[email protected]>
AuthorDate: Sat Aug 8 14:15:20 2020 +0200

    Rename CategoryCellFactory as BandRangeTable.
---
 ...ategoryCellFactory.java => BandRangeTable.java} | 31 ++++++++++++----------
 .../org/apache/sis/gui/coverage/GridControls.java  |  2 +-
 2 files changed, 18 insertions(+), 15 deletions(-)

diff --git 
a/application/sis-javafx/src/main/java/org/apache/sis/gui/coverage/CategoryCellFactory.java
 
b/application/sis-javafx/src/main/java/org/apache/sis/gui/coverage/BandRangeTable.java
similarity index 82%
rename from 
application/sis-javafx/src/main/java/org/apache/sis/gui/coverage/CategoryCellFactory.java
rename to 
application/sis-javafx/src/main/java/org/apache/sis/gui/coverage/BandRangeTable.java
index c2d0c75..5e4111f 100644
--- 
a/application/sis-javafx/src/main/java/org/apache/sis/gui/coverage/CategoryCellFactory.java
+++ 
b/application/sis-javafx/src/main/java/org/apache/sis/gui/coverage/BandRangeTable.java
@@ -26,39 +26,42 @@ import javafx.beans.property.ReadOnlyObjectWrapper;
 import javafx.beans.value.ObservableValue;
 import javafx.geometry.Pos;
 import org.apache.sis.measure.NumberRange;
-import org.apache.sis.coverage.Category;
 import org.apache.sis.coverage.SampleDimension;
 import org.apache.sis.util.resources.Vocabulary;
 import org.apache.sis.internal.gui.Styles;
 
 
 /**
- * Factory methods for cell values to shown in the sample dimension or 
category table.
- *
- * <p>Current implementation handles only {@link SampleDimension} instances, 
but it
- * can be extended for handling also {@link Category} objects in a future 
version.
- * The class name is in anticipation for such extension.</p>
+ * Builder for a table of {@link SampleDimension} instances with their value 
ranges.
+ * The columns are: band name, minimum value, maximum value, unit of 
measurement.
+ * The {@link TableView} is provided indirectly by the {@link #create 
create(…)} method;
+ * the interfaces implemented by this class are implementation convenience 
that may change in any future version.
  *
  * @author  Martin Desruisseaux (Geomatys)
  * @version 1.1
  * @since   1.1
  * @module
  */
-final class CategoryCellFactory implements 
Callback<TableColumn<SampleDimension,Number>, 
TableCell<SampleDimension,Number>> {
+final class BandRangeTable implements 
Callback<TableColumn<SampleDimension,Number>, 
TableCell<SampleDimension,Number>> {
     /**
-     * Identifier of columns shown in the sample dimension or category table.
+     * Identifier of columns shown in the sample dimension table.
      */
     private static final String NAME = "name", MINIMUM = "minimum", MAXIMUM = 
"maximum", UNITS = "units";
 
     /**
+     * Approximate amount of rows to make visible.
+     */
+    private static final int NUM_VISIBLE_ROW = 5;
+
+    /**
      * The format to use for formatting minimum and maximum values.
      */
     private final CellFormat cellFormat;
 
     /**
-     * Creates a cell value factory.
+     * Creates a new instance which will format numbers using the given object.
      */
-    CategoryCellFactory(final CellFormat format) {
+    BandRangeTable(final CellFormat format) {
         cellFormat = format;
     }
 
@@ -67,9 +70,9 @@ final class CategoryCellFactory implements 
Callback<TableColumn<SampleDimension,
      *
      * @param  vocabulary  resources for the locale in use.
      */
-    TableView<SampleDimension> createSampleDimensionTable(final Vocabulary 
vocabulary) {
+    TableView<SampleDimension> create(final Vocabulary vocabulary) {
         final TableView<SampleDimension> table = new TableView<>();
-        table.setPrefHeight(5 * Styles.ROW_HEIGHT);                         // 
Show approximately 5 rows.
+        table.setPrefHeight(NUM_VISIBLE_ROW * Styles.ROW_HEIGHT);
         table.setColumnResizePolicy(TableView.CONSTRAINED_RESIZE_POLICY);
         table.getColumns().setAll(
                 createStringColumn(vocabulary, Vocabulary.Keys.Name,    NAME),
@@ -82,9 +85,9 @@ final class CategoryCellFactory implements 
Callback<TableColumn<SampleDimension,
     /**
      * Creates a new column with a title identified by the given key.
      */
-    private TableColumn<SampleDimension,String> createStringColumn(final 
Vocabulary vocabulary, final short key, final String id) {
+    private static TableColumn<SampleDimension,String> 
createStringColumn(final Vocabulary vocabulary, final short key, final String 
id) {
         final TableColumn<SampleDimension,String> column = new 
TableColumn<>(vocabulary.getString(key));
-        column.setCellValueFactory(CategoryCellFactory::getStringValue);
+        column.setCellValueFactory(BandRangeTable::getStringValue);
         column.setId(id);
         return column;
     }
diff --git 
a/application/sis-javafx/src/main/java/org/apache/sis/gui/coverage/GridControls.java
 
b/application/sis-javafx/src/main/java/org/apache/sis/gui/coverage/GridControls.java
index f3e2cfc..da11e50 100644
--- 
a/application/sis-javafx/src/main/java/org/apache/sis/gui/coverage/GridControls.java
+++ 
b/application/sis-javafx/src/main/java/org/apache/sis/gui/coverage/GridControls.java
@@ -68,7 +68,7 @@ final class GridControls extends Controls {
      */
     GridControls(final RecentReferenceSystems referenceSystems, final 
Vocabulary vocabulary) {
         view = new GridView(referenceSystems);
-        sampleDimensions = new 
CategoryCellFactory(view.cellFormat).createSampleDimensionTable(vocabulary);
+        sampleDimensions = new 
BandRangeTable(view.cellFormat).create(vocabulary);
         
sampleDimensions.getSelectionModel().selectedIndexProperty().addListener(new 
BandSelectionListener(view.bandProperty));
         view.bandProperty.addListener((p,o,n) -> onBandSpecified(n));
         /*

Reply via email to