This is an automated email from the git hooks/post-receive script. New commit to branch develop in repository jaxx. See http://git.nuiton.org/jaxx.git commit 05cc6396ef99f56e602511b1a81ab938c81f50a3 Author: Tony CHEMIT <chemit@codelutin.com> Date: Fri Nov 28 15:53:27 2014 +0100 fixes #3581: Fix absolute coordinate editor labels fixes #3582: Improve the dmd editor pattern --- .../org/nuiton/jaxx/widgets/gis/DmdCoordinate.java | 5 +-- .../AbsoluteDdCoordinateEditorHandler.java | 47 ++++++++++----------- .../AbsoluteDmdCoordinateEditorHandler.java | 49 ++++++++++------------ .../AbsoluteDmsCoordinateEditorHandler.java | 34 +++++++-------- .../signed/SignedDmdCoordinateEditorHandler.java | 2 +- .../i18n/jaxx-widgets-gis_fr_FR.properties | 4 +- .../widgets/gis/DmdCoordinateConverterTest.java | 34 +++++++-------- 7 files changed, 81 insertions(+), 94 deletions(-) diff --git a/jaxx-widgets-gis/src/main/java/org/nuiton/jaxx/widgets/gis/DmdCoordinate.java b/jaxx-widgets-gis/src/main/java/org/nuiton/jaxx/widgets/gis/DmdCoordinate.java index a2fadfc..2e893d2 100644 --- a/jaxx-widgets-gis/src/main/java/org/nuiton/jaxx/widgets/gis/DmdCoordinate.java +++ b/jaxx-widgets-gis/src/main/java/org/nuiton/jaxx/widgets/gis/DmdCoordinate.java @@ -38,10 +38,9 @@ public class DmdCoordinate extends AbstractSerializableBean { private static final long serialVersionUID = 1L; - public static final String COORDINATE_STRING_PATTERN = "%s%s°%s'%s"; + public static final String COORDINATE_STRING_PATTERN = "%s%s°%s.%s'"; - public static final Pattern COORDINATE_PATTERN = - Pattern.compile("(.*)°(.*)'(.*)"); + public static final Pattern COORDINATE_PATTERN = Pattern.compile("(.*)°(.*)\\.(.*)'"); public static final String PROPERTY_SIGN = "sign"; diff --git a/jaxx-widgets-gis/src/main/java/org/nuiton/jaxx/widgets/gis/absolute/AbsoluteDdCoordinateEditorHandler.java b/jaxx-widgets-gis/src/main/java/org/nuiton/jaxx/widgets/gis/absolute/AbsoluteDdCoordinateEditorHandler.java index 1407b1f..b4f408a 100644 --- a/jaxx-widgets-gis/src/main/java/org/nuiton/jaxx/widgets/gis/absolute/AbsoluteDdCoordinateEditorHandler.java +++ b/jaxx-widgets-gis/src/main/java/org/nuiton/jaxx/widgets/gis/absolute/AbsoluteDdCoordinateEditorHandler.java @@ -24,11 +24,11 @@ package org.nuiton.jaxx.widgets.gis.absolute; import com.google.common.base.Preconditions; import jaxx.runtime.spi.UIHandler; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; import org.nuiton.jaxx.widgets.gis.DdCoordinate; import org.nuiton.jaxx.widgets.gis.DdCoordinateConverter; import org.nuiton.jaxx.widgets.gis.MaskFormatterFromConverter; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; import org.nuiton.util.beans.BeanUtil; import javax.swing.JFormattedTextField; @@ -60,15 +60,13 @@ public class AbsoluteDdCoordinateEditorHandler implements UIHandler<AbsoluteDdCo protected boolean valueModelIsAdjusting; - protected DdCoordinateConverter unsignedConverter; - - protected DefaultFormatterFactory formatterFactory; + protected DdCoordinateConverter coordinateConverter; @Override public void beforeInit(AbsoluteDdCoordinateEditor ui) { this.ui = ui; // can't use the one from ConverterUtil since we deal with some internal states - this.unsignedConverter = new DdCoordinateConverter(); + this.coordinateConverter = new DdCoordinateConverter(); } @Override @@ -92,26 +90,26 @@ public class AbsoluteDdCoordinateEditorHandler implements UIHandler<AbsoluteDdCo decimalMutator = BeanUtil.getMutator(bean, model.getPropertyDecimal()); Preconditions.checkNotNull(decimalMutator, "could not find mutator for " + model.getPropertyDecimal()); - unsignedConverter.setForLongitude(longitudeEditor); - - { - // prepare unsigned formatter factory - String pattern = getMaskFormatterPattern(longitudeEditor); - MaskFormatterFromConverter<DdCoordinate> maskFormatter; - try { - maskFormatter = MaskFormatterFromConverter.newFormatter( - DdCoordinate.class, - pattern, unsignedConverter); - maskFormatter.setValidCharacters(" 01234567890"); - maskFormatter.setCommitsOnValidEdit(true); - formatterFactory = new DefaultFormatterFactory(maskFormatter); - } catch (ParseException e) { - // can't happen here - throw new RuntimeException(e); - } + coordinateConverter.setForLongitude(longitudeEditor); + + // prepare unsigned formatter factory + String pattern = getMaskFormatterPattern(longitudeEditor); + MaskFormatterFromConverter<DdCoordinate> maskFormatter; + try { + maskFormatter = MaskFormatterFromConverter.newFormatter( + DdCoordinate.class, + pattern, coordinateConverter); + maskFormatter.setValidCharacters(" 01234567890"); + maskFormatter.setCommitsOnValidEdit(true); + + } catch (ParseException e) { + // can't happen here + throw new RuntimeException(e); } JFormattedTextField editor = ui.getEditor(); + + DefaultFormatterFactory formatterFactory = new DefaultFormatterFactory(maskFormatter); editor.setFormatterFactory(formatterFactory); editor.setFocusLostBehavior(JFormattedTextField.COMMIT); @@ -157,9 +155,6 @@ public class AbsoluteDdCoordinateEditorHandler implements UIHandler<AbsoluteDdCo public void resetEditor() { // set null value to model setValue(null, true); - - // use back unsigned format - ui.getEditor().setFormatterFactory(formatterFactory); } protected String getMaskFormatterPattern(boolean longitudeEditor) { diff --git a/jaxx-widgets-gis/src/main/java/org/nuiton/jaxx/widgets/gis/absolute/AbsoluteDmdCoordinateEditorHandler.java b/jaxx-widgets-gis/src/main/java/org/nuiton/jaxx/widgets/gis/absolute/AbsoluteDmdCoordinateEditorHandler.java index 29ce92f..e42e078 100644 --- a/jaxx-widgets-gis/src/main/java/org/nuiton/jaxx/widgets/gis/absolute/AbsoluteDmdCoordinateEditorHandler.java +++ b/jaxx-widgets-gis/src/main/java/org/nuiton/jaxx/widgets/gis/absolute/AbsoluteDmdCoordinateEditorHandler.java @@ -24,11 +24,11 @@ package org.nuiton.jaxx.widgets.gis.absolute; import com.google.common.base.Preconditions; import jaxx.runtime.spi.UIHandler; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; import org.nuiton.jaxx.widgets.gis.DmdCoordinate; import org.nuiton.jaxx.widgets.gis.DmdCoordinateConverter; import org.nuiton.jaxx.widgets.gis.MaskFormatterFromConverter; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; import org.nuiton.util.beans.BeanUtil; import javax.swing.JFormattedTextField; @@ -64,15 +64,13 @@ public class AbsoluteDmdCoordinateEditorHandler implements UIHandler<AbsoluteDmd protected boolean valueModelIsAdjusting; - protected DmdCoordinateConverter unsignedConverter; - - protected DefaultFormatterFactory formatterFactory; + protected DmdCoordinateConverter coordinateConverter; @Override public void beforeInit(AbsoluteDmdCoordinateEditor ui) { this.ui = ui; // can't use the one from ConverterUtil since we deal with some internal states - this.unsignedConverter = new DmdCoordinateConverter(); + this.coordinateConverter = new DmdCoordinateConverter(); } @Override @@ -100,26 +98,26 @@ public class AbsoluteDmdCoordinateEditorHandler implements UIHandler<AbsoluteDmd decimalMutator = BeanUtil.getMutator(bean, model.getPropertyDecimal()); Preconditions.checkNotNull(decimalMutator, "could not find mutator for " + model.getPropertyDecimal()); - unsignedConverter.setForLongitude(longitudeEditor); - - { - // prepare unsigned formatter factory - String pattern = getMaskFormatterPattern(longitudeEditor); - MaskFormatterFromConverter<DmdCoordinate> maskFormatter; - try { - maskFormatter = MaskFormatterFromConverter.newFormatter( - DmdCoordinate.class, - pattern, unsignedConverter); - maskFormatter.setValidCharacters(" 01234567890"); - maskFormatter.setCommitsOnValidEdit(true); - formatterFactory = new DefaultFormatterFactory(maskFormatter); - } catch (ParseException e) { - // can't happen here - throw new RuntimeException(e); - } + coordinateConverter.setForLongitude(longitudeEditor); + + // prepare unsigned formatter factory + String pattern = getMaskFormatterPattern(longitudeEditor); + MaskFormatterFromConverter<DmdCoordinate> maskFormatter; + try { + maskFormatter = MaskFormatterFromConverter.newFormatter( + DmdCoordinate.class, + pattern, coordinateConverter); + maskFormatter.setValidCharacters(" 01234567890"); + maskFormatter.setCommitsOnValidEdit(true); + + } catch (ParseException e) { + // can't happen here + throw new RuntimeException(e); } JFormattedTextField editor = ui.getEditor(); + + DefaultFormatterFactory formatterFactory = new DefaultFormatterFactory(maskFormatter); editor.setFormatterFactory(formatterFactory); editor.setFocusLostBehavior(JFormattedTextField.COMMIT); @@ -168,15 +166,14 @@ public class AbsoluteDmdCoordinateEditorHandler implements UIHandler<AbsoluteDmd } public void resetEditor() { + // set null value to model setValue(null, true); - // use back unsigned format - ui.getEditor().setFormatterFactory(formatterFactory); } protected String getMaskFormatterPattern(boolean longitudeEditor) { - String pattern = "**°**''**"; + String pattern = "**°**.**''"; if (longitudeEditor) { // add one more degre pattern = "*" + pattern; diff --git a/jaxx-widgets-gis/src/main/java/org/nuiton/jaxx/widgets/gis/absolute/AbsoluteDmsCoordinateEditorHandler.java b/jaxx-widgets-gis/src/main/java/org/nuiton/jaxx/widgets/gis/absolute/AbsoluteDmsCoordinateEditorHandler.java index 132059b..69060ee 100644 --- a/jaxx-widgets-gis/src/main/java/org/nuiton/jaxx/widgets/gis/absolute/AbsoluteDmsCoordinateEditorHandler.java +++ b/jaxx-widgets-gis/src/main/java/org/nuiton/jaxx/widgets/gis/absolute/AbsoluteDmsCoordinateEditorHandler.java @@ -64,8 +64,6 @@ public class AbsoluteDmsCoordinateEditorHandler implements UIHandler<AbsoluteDms protected DmsCoordinateConverter coordinateConverter; - protected DefaultFormatterFactory formatterFactory; - @Override public void beforeInit(AbsoluteDmsCoordinateEditor ui) { this.ui = ui; @@ -100,24 +98,24 @@ public class AbsoluteDmsCoordinateEditorHandler implements UIHandler<AbsoluteDms coordinateConverter.setForLongitude(longitudeEditor); - { - // prepare unsigned formatter factory - String pattern = getMaskFormatterPattern(longitudeEditor); - MaskFormatterFromConverter<DmsCoordinate> maskFormatter; - try { - maskFormatter = MaskFormatterFromConverter.newFormatter( - DmsCoordinate.class, - pattern, coordinateConverter); - maskFormatter.setValidCharacters(" 01234567890"); - maskFormatter.setCommitsOnValidEdit(true); - formatterFactory = new DefaultFormatterFactory(maskFormatter); - } catch (ParseException e) { - // can't happen here - throw new RuntimeException(e); - } + // prepare unsigned formatter factory + String pattern = getMaskFormatterPattern(longitudeEditor); + MaskFormatterFromConverter<DmsCoordinate> maskFormatter; + try { + maskFormatter = MaskFormatterFromConverter.newFormatter( + DmsCoordinate.class, + pattern, coordinateConverter); + maskFormatter.setValidCharacters(" 01234567890"); + maskFormatter.setCommitsOnValidEdit(true); + + } catch (ParseException e) { + // can't happen here + throw new RuntimeException(e); } JFormattedTextField editor = ui.getEditor(); + + DefaultFormatterFactory formatterFactory = new DefaultFormatterFactory(maskFormatter); editor.setFormatterFactory(formatterFactory); editor.setFocusLostBehavior(JFormattedTextField.COMMIT); @@ -170,8 +168,6 @@ public class AbsoluteDmsCoordinateEditorHandler implements UIHandler<AbsoluteDms // set null value to model setValue(null, true); - // use back unsigned format - ui.getEditor().setFormatterFactory(formatterFactory); } protected String getMaskFormatterPattern(boolean longitudeEditor) { diff --git a/jaxx-widgets-gis/src/main/java/org/nuiton/jaxx/widgets/gis/signed/SignedDmdCoordinateEditorHandler.java b/jaxx-widgets-gis/src/main/java/org/nuiton/jaxx/widgets/gis/signed/SignedDmdCoordinateEditorHandler.java index b2b511d..9208f0c 100644 --- a/jaxx-widgets-gis/src/main/java/org/nuiton/jaxx/widgets/gis/signed/SignedDmdCoordinateEditorHandler.java +++ b/jaxx-widgets-gis/src/main/java/org/nuiton/jaxx/widgets/gis/signed/SignedDmdCoordinateEditorHandler.java @@ -263,7 +263,7 @@ public class SignedDmdCoordinateEditorHandler implements UIHandler<SignedDmdCoor } protected String getMaskFormatterPattern(boolean longitudeEditor, boolean useSign) { - String pattern = "**°**''**"; + String pattern = "**°**.**''"; if (longitudeEditor) { // add one more degre pattern = "*" + pattern; diff --git a/jaxx-widgets-gis/src/main/resources/i18n/jaxx-widgets-gis_fr_FR.properties b/jaxx-widgets-gis/src/main/resources/i18n/jaxx-widgets-gis_fr_FR.properties index ee122f0..edbefaf 100644 --- a/jaxx-widgets-gis/src/main/resources/i18n/jaxx-widgets-gis_fr_FR.properties +++ b/jaxx-widgets-gis/src/main/resources/i18n/jaxx-widgets-gis_fr_FR.properties @@ -9,9 +9,9 @@ jaxx.coordinate.action.reset.longitude.tip=Réinitialiser la longitude jaxx.coordinate.format.dd=DD jaxx.coordinate.format.dd.tip=Format Degré / Décimal jaxx.coordinate.format.dmd=DMD -jaxx.coordinate.format.dmd.tip=Format Degré / Minute / Seconde +jaxx.coordinate.format.dmd.tip=Format Degré / Minute décimale jaxx.coordinate.format.dms=DMS -jaxx.coordinate.format.dms.tip=Format Degré / Minute décimal +jaxx.coordinate.format.dms.tip=Format Degré / Minute / Seconde jaxx.error.no.convertor.coordinateDd=Impossible de convertir en (ou depuis) une coordonée DD depuis la valeur %s jaxx.error.no.convertor.coordinateDmd=Impossible de convertir en (ou depuis) une coordonée DMD depuis la valeur %s jaxx.error.no.convertor.coordinateDms=Impossible de convertir en (ou depuis) une coordonée DMS depuis la valeur %s diff --git a/jaxx-widgets-gis/src/test/java/org/nuiton/jaxx/widgets/gis/DmdCoordinateConverterTest.java b/jaxx-widgets-gis/src/test/java/org/nuiton/jaxx/widgets/gis/DmdCoordinateConverterTest.java index 7f95176..12881b0 100644 --- a/jaxx-widgets-gis/src/test/java/org/nuiton/jaxx/widgets/gis/DmdCoordinateConverterTest.java +++ b/jaxx-widgets-gis/src/test/java/org/nuiton/jaxx/widgets/gis/DmdCoordinateConverterTest.java @@ -39,23 +39,23 @@ public class DmdCoordinateConverterTest { ConverterUtil.initConverters(); - testConversion(false, "- ° '44", DmdCoordinate.valueOf(-0.007333f)); - testConversion(false, " ° '44", DmdCoordinate.valueOf(0.007333f)); - testConversion(false, " ° '99", DmdCoordinate.valueOf(false, null, null, 99)); - testConversion(false, " ° ' ", DmdCoordinate.empty()); - testConversion(false, " °39'99", DmdCoordinate.valueOf(false, null, 39, 99)); - testConversion(false, " °39' ", DmdCoordinate.valueOf(false, null, 39, null)); - testConversion(false, " 0°39'99", DmdCoordinate.valueOf(false, 0, 39, 99)); - testConversion(false, " 0° ' ", DmdCoordinate.valueOf(false, 0, null, null)); - - testConversion(true, "- ° '44", DmdCoordinate.valueOf(-0.007333f)); - testConversion(true, " ° '44", DmdCoordinate.valueOf(0.007333f)); - testConversion(true, " ° ' ", DmdCoordinate.empty()); - testConversion(true, " ° '99", DmdCoordinate.valueOf(false, null, null, 99)); - testConversion(true, " °39'99", DmdCoordinate.valueOf(false, null, 39, 99)); - testConversion(true, " °39' ", DmdCoordinate.valueOf(false, null, 39, null)); - testConversion(true, " 0°39'99", DmdCoordinate.valueOf(false, 0, 39, 99)); - testConversion(true, " 0° ' ", DmdCoordinate.valueOf(false, 0, null, null)); + testConversion(false, "- ° .44'", DmdCoordinate.valueOf(-0.007333f)); + testConversion(false, " ° .44'", DmdCoordinate.valueOf(0.007333f)); + testConversion(false, " ° .99'", DmdCoordinate.valueOf(false, null, null, 99)); + testConversion(false, " ° . '", DmdCoordinate.empty()); + testConversion(false, " °39.99'", DmdCoordinate.valueOf(false, null, 39, 99)); + testConversion(false, " °39. '", DmdCoordinate.valueOf(false, null, 39, null)); + testConversion(false, " 0°39.99'", DmdCoordinate.valueOf(false, 0, 39, 99)); + testConversion(false, " 0° . '", DmdCoordinate.valueOf(false, 0, null, null)); + + testConversion(true, "- ° .44'", DmdCoordinate.valueOf(-0.007333f)); + testConversion(true, " ° .44'", DmdCoordinate.valueOf(0.007333f)); + testConversion(true, " ° . '", DmdCoordinate.empty()); + testConversion(true, " ° .99'", DmdCoordinate.valueOf(false, null, null, 99)); + testConversion(true, " °39.99'", DmdCoordinate.valueOf(false, null, 39, 99)); + testConversion(true, " °39. '", DmdCoordinate.valueOf(false, null, 39, null)); + testConversion(true, " 0°39.99'", DmdCoordinate.valueOf(false, 0, 39, 99)); + testConversion(true, " 0° . '", DmdCoordinate.valueOf(false, 0, null, null)); } protected void testConversion(boolean forLongitude, String expectedString, DmdCoordinate expectedCoordinate) { -- To stop receiving notification emails like this one, please contact nuiton.org SCM administrator <admin+scm@nuiton.org>.