From 33dfa9cc31557c14d826d55be38b49ba2d872b4c Mon Sep 17 00:00:00 2001
From: aalmiray
Date: Thu, 9 Aug 2018 12:25:47 +0200
Subject: [PATCH] Replace usages of PropertyEditor with Converter. Relates to
#295
---
.../resources-injected-resources.adoc | 6 +-
...doc => resources-property-converters.adoc} | 137 +++++----
.../resources-resource-resolver.adoc | 13 +-
.../docs/asciidoc/resources/resources.adoc | 2 +-
samples/console-swing-groovy/build.gradle.txt | 5 -
.../src/pom/master-pom.xml | 5 -
.../griffon/metadata/PropertyEditorFor.java | 34 ---
.../editor/PropertyEditorCollector.java | 131 --------
.../editor/PropertyEditorProcessor.java | 182 -----------
.../core/processor/editor/package-info.java | 25 --
.../javax.annotation.processing.Processor | 1 -
.../editor/PropertyEditorCollectorTest.java | 166 ----------
.../main/java/griffon/core/Configuration.java | 219 +------------
.../src/main/java/griffon/core/Context.java | 6 +-
.../griffon/core/MutableConfiguration.java | 16 +-
.../core/configuration/Configured.java | 46 ---
.../core/editors/AbstractPropertyEditor.java | 132 --------
.../editors/BigDecimalPropertyEditor.java | 68 -----
.../editors/BigIntegerPropertyEditor.java | 68 -----
.../core/editors/BooleanPropertyEditor.java | 55 ----
.../core/editors/BytePropertyEditor.java | 59 ----
.../core/editors/CalendarPropertyEditor.java | 83 -----
.../core/editors/DatePropertyEditor.java | 76 -----
.../core/editors/DoublePropertyEditor.java | 59 ----
.../core/editors/EnumPropertyEditor.java | 64 ----
.../ExtendedCalendarPropertyEditor.java | 64 ----
.../core/editors/ExtendedPropertyEditor.java | 34 ---
.../core/editors/FilePropertyEditor.java | 49 ---
.../core/editors/FloatPropertyEditor.java | 59 ----
.../core/editors/IntegerPropertyEditor.java | 59 ----
.../core/editors/LocalDatePropertyEditor.java | 150 ---------
.../editors/LocalDateTimePropertyEditor.java | 162 ----------
.../core/editors/LocalTimePropertyEditor.java | 143 ---------
.../core/editors/LocalePropertyEditor.java | 47 ---
.../core/editors/LongPropertyEditor.java | 59 ----
.../core/editors/PropertyEditorChain.java | 289 ------------------
.../core/editors/PropertyEditorResolver.java | 247 ---------------
.../core/editors/ShortPropertyEditor.java | 59 ----
.../core/editors/URIPropertyEditor.java | 62 ----
.../core/editors/URLPropertyEditor.java | 65 ----
.../editors/ValueConversionException.java | 61 ----
.../core/formatters/AbstractFormatter.java | 49 ---
.../core/formatters/BigDecimalFormatter.java | 75 -----
.../core/formatters/BigIntegerFormatter.java | 76 -----
.../core/formatters/BooleanFormatter.java | 171 -----------
.../core/formatters/ByteFormatter.java | 69 -----
.../core/formatters/CalendarFormatter.java | 69 -----
.../core/formatters/DateFormatter.java | 67 ----
.../core/formatters/DoubleFormatter.java | 68 -----
.../core/formatters/FloatFormatter.java | 68 -----
.../griffon/core/formatters/Formatter.java | 53 ----
.../core/formatters/IntegerFormatter.java | 69 -----
.../core/formatters/LocalDateFormatter.java | 70 -----
.../formatters/LocalDateTimeFormatter.java | 70 -----
.../core/formatters/LocalTimeFormatter.java | 70 -----
.../core/formatters/LocaleFormatter.java | 52 ----
.../core/formatters/LongFormatter.java | 69 -----
.../core/formatters/ShortFormatter.java | 69 -----
.../core/resources/ResourceResolver.java | 16 +-
.../main/java/griffon/inject/MVCMember.java | 7 +-
.../src/main/java/griffon/util/TypeUtils.java | 11 +-
.../griffon/runtime/core/AbstractContext.java | 15 +-
.../core/DefaultApplicationConfigurer.java | 41 ---
.../griffon/runtime/core/DefaultContext.java | 9 +-
.../runtime/core/DefaultContextFactory.java | 7 +-
.../core/DefaultObservableContext.java | 9 +-
.../core/DefaultObservableContextFactory.java | 7 +-
.../configuration/AbstractConfiguration.java | 55 ++--
.../AbstractConfigurationManager.java | 58 ++--
.../AbstractMapConfiguration.java | 6 +-
.../configuration/ConfigurationDecorator.java | 33 +-
.../ConfigurationDescriptor.java | 12 +-
.../DelegatingMutableConfiguration.java | 13 +-
.../FieldConfigurationDescriptor.java | 10 +-
.../configuration/FieldInjectionPoint.java | 8 +-
.../core/configuration/InjectionPoint.java | 12 +-
.../MethodConfigurationDescriptor.java | 10 +-
.../configuration/MethodInjectionPoint.java | 8 +-
.../ResourceBundleConfiguration.java | 6 +-
.../ResourceBundleConfigurationProvider.java | 6 +-
.../core/mvc/AbstractMVCGroupManager.java | 10 +-
.../core/mvc/DefaultMVCGroupManager.java | 85 +++---
.../editors/java.beans.PropertyEditor | 19 --
.../groovy/griffon/core/ContextSpec.groovy | 24 +-
.../griffon/core/ObservableContextSpec.groovy | 18 +-
.../BigDecimalPropertyEditorSpec.groovy | 74 -----
.../BigIntegerPropertyEditorSpec.groovy | 74 -----
.../editors/BooleanPropertyEditorSpec.groovy | 77 -----
.../editors/BytePropertyEditorSpec.groovy | 72 -----
.../editors/CalendarPropertyEditorSpec.groovy | 80 -----
.../editors/DatePropertyEditorSpec.groovy | 80 -----
.../editors/DoublePropertyEditorSpec.groovy | 72 -----
.../editors/EnumPropertyEditorSpec.groovy | 77 -----
.../ExtendedCalendarPropertyEditorSpec.groovy | 50 ---
.../ExtendedDatePropertyEditorSpec.groovy | 50 ---
.../editors/FilePropertyEditorSpec.groovy | 72 -----
.../editors/FloatPropertyEditorSpec.groovy | 72 -----
.../editors/IntegerPropertyEditorSpec.groovy | 72 -----
.../LocalDatePropertyEditorSpec.groovy | 90 ------
.../LocalDateTimePropertyEditorSpec.groovy | 96 ------
.../LocalTimePropertyEditorSpec.groovy | 88 ------
.../editors/LocalePropertyEditorSpec.groovy | 66 ----
.../editors/LongPropertyEditorSpec.groovy | 72 -----
.../editors/PropertyEditorResolverSpec.groovy | 156 ----------
.../editors/PropertyEditorSpecSupport.groovy | 69 -----
.../editors/ShortPropertyEditorSpec.groovy | 72 -----
.../editors/StringPropertyEditorSpec.groovy | 50 ---
.../core/editors/URIPropertyEditorSpec.groovy | 75 -----
.../core/editors/URLPropertyEditorSpec.groovy | 75 -----
.../formatters/BigDecimalFormatterSpec.groovy | 93 ------
.../formatters/BigIntegerFormatterSpec.groovy | 93 ------
.../formatters/BooleanFormatterSpec.groovy | 132 --------
.../core/formatters/ByteFormatterSpec.groovy | 93 ------
.../formatters/CalendarFormatterSpec.groovy | 95 ------
.../core/formatters/DateFormatterSpec.groovy | 91 ------
.../formatters/DoubleFormatterSpec.groovy | 93 ------
.../core/formatters/FloatFormatterSpec.groovy | 93 ------
.../formatters/FormatterSpecSupport.groovy | 68 -----
.../formatters/IntegerFormatterSpec.groovy | 93 ------
.../formatters/LocaleFormatterSpec.groovy | 42 ---
.../core/formatters/LongFormatterSpec.groovy | 93 ------
.../core/formatters/ShortFormatterSpec.groovy | 93 ------
.../groovy/integration/ChildController.java | 4 +-
.../integration/ConfigurableBean.groovy | 5 +-
...or.groovy => CustomStringConverter.groovy} | 18 +-
...PropertyEditor.java => ListConverter.java} | 28 +-
.../core/MutableConfigurationSpec.groovy | 57 +---
.../ConfigurationDecoratorSpec.groovy | 7 +-
.../configuration/ConfigurationSpec.groovy | 38 +--
.../DefaultConfigurationSpec.groovy | 5 +-
.../CustomResourceResolverTests.groovy | 14 +-
.../storage/DefaultObjectFactorySpec.groovy | 4 +-
.../test/java/griffon/util/TypeUtilsTest.java | 5 +-
.../PropertyEditorASTTransformation.java | 156 ----------
...roovyScriptResourceBundleLoaderSpec.groovy | 2 -
.../griffon/util/groovy/application.groovy | 17 ++
.../griffon/util/groovy/application.xml | 19 ++
.../util/groovy/application_jdk8.groovy | 17 ++
.../griffon/util/groovy/bad_application.xml | 19 ++
.../ColorConverter.java} | 81 +++--
.../Dimension2DConverter.java} | 75 ++---
.../GraphicConverter.java} | 48 ++-
.../ImageConverter.java} | 59 ++--
.../InsetsConverter.java} | 68 ++---
.../LinearGradientConverter.java} | 53 ++--
.../PaintConverter.java} | 47 ++-
.../Point2DConverter.java} | 72 ++---
.../RadialGradientConverter.java} | 53 ++--
.../Rectangle2DConverter.java} | 61 ++--
.../javafx/converters}/package-info.java | 6 +-
.../spi/ColorConverterProvider.java} | 25 +-
.../spi/Dimension2DConverterProvider.java | 42 +++
.../spi/GraphicConverterProvider.java | 42 +++
.../spi/ImageConverterProvider.java | 42 +++
.../spi/InsetsConverterProvider.java | 42 +++
.../spi/LinearGradientConverterProvider.java | 42 +++
.../spi/PaintConverterProvider.java | 42 +++
.../spi/Point2DConverterProvider.java | 42 +++
.../spi/RadialGradientConverterProvider.java | 42 +++
.../spi/Rectangle2DConverterProvider.java | 42 +++
.../javafx/converters/spi}/package-info.java | 6 +-
.../javafx/formatters/ColorFormatter.java | 15 +-
.../griffon/javafx/support/JavaFXUtils.java | 10 +-
.../JavaFXGriffonControllerAction.java | 14 +-
.../ColorConverterSpec.groovy} | 32 +-
.../Dimension2DConverterSpec.groovy} | 31 +-
.../ImageConverterSpec.groovy} | 25 +-
.../InsetsConverterSpec.groovy} | 31 +-
.../LinearGradientConverterSpec.groovy} | 21 +-
.../PaintConverterSpec.groovy} | 26 +-
.../Point2DConverterSpec.groovy} | 31 +-
.../RadialGradientConverterSpec.groovy} | 22 +-
.../Rectangle2DConverterSpec.groovy} | 31 +-
.../spi/ConverterProviderSpec.groovy | 71 +++++
.../formatters/ColorFormatterSpec.groovy | 2 +-
.../BoundsConverter.java} | 67 ++--
.../ColorConverter.java} | 82 +++--
.../DimensionsConverter.java} | 79 +++--
.../InsetsConverter.java} | 73 ++---
.../PointConverter.java} | 77 ++---
.../pivot/converters}/package-info.java | 6 +-
.../spi/BoundsConverterProvider.java | 42 +++
.../spi/ColorConverterProvider.java} | 25 +-
.../spi/DimensionsConverterProvider.java | 42 +++
.../spi/InsetsConverterProvider.java | 42 +++
.../spi/PointConverterProvider.java | 42 +++
.../pivot/converters/spi}/package-info.java | 7 +-
.../pivot/formatters/ColorFormatter.java | 19 +-
.../BoundsConverterSpec.groovy} | 31 +-
.../ColorConverterSpec.groovy} | 32 +-
.../DimensionsConverterSpec.groovy} | 30 +-
.../InsetsConverterSpec.groovy} | 30 +-
.../PointConverterSpec.groovy} | 30 +-
.../spi/ConverterProviderSpec.groovy | 56 ++++
.../formatters/ColorFormatterSpec.groovy | 2 +-
.../BufferedImageConverter.java} | 67 ++--
.../ColorConverter.java} | 88 +++---
.../DimensionConverter.java} | 79 +++--
.../FontConverter.java} | 74 +++--
.../GradientPaintConverter.java} | 128 ++++----
.../IconConverter.java} | 88 +++---
.../ImageConverter.java} | 74 +++--
.../InsetsConverter.java} | 73 ++---
.../LinearGradientPaintConverter.java} | 105 +++----
.../Point2DConverter.java} | 77 ++---
.../PointConverter.java} | 77 ++---
.../PolygonConverter.java} | 68 ++---
.../RadialGradientPaintConverter.java} | 107 +++----
.../Rectangle2DConverter.java} | 68 ++---
.../RectangleConverter.java} | 67 ++--
.../swing/converters/package-info.java | 24 ++
.../spi/BufferedImageConverterProvider.java} | 33 +-
.../spi/ColorConverterProvider.java | 42 +++
.../spi/DimensionConverterProvider.java | 42 +++
.../spi/FontConverterProvider.java} | 27 +-
.../spi/GradientPaintConverterProvider.java | 42 +++
.../spi/IconConverterProvider.java} | 33 +-
.../spi/ImageConverterProvider.java | 42 +++
.../spi/InsetsConverterProvider.java | 42 +++
.../LineraGradientPaintConverterProvider.java | 42 +++
.../spi/Point2DConverterProvider.java | 42 +++
.../spi/PointConverterProvider.java | 42 +++
.../spi/PolygonConverterProvider.java | 42 +++
.../RadialGradientPaintConverterProvider.java | 42 +++
.../spi/Rectangle2DConverterProvider.java | 42 +++
.../spi/RectangleConverterProvider.java | 42 +++
.../swing/converters/spi/package-info.java | 24 ++
.../swing/formatters/ColorFormatter.java | 23 +-
.../SwingGriffonControllerAction.java | 13 +-
.../BufferedImageConverterSpec.groovy} | 22 +-
.../ColorConverterSpec.groovy} | 34 +--
.../DimensionConverterSpec.groovy} | 30 +-
.../FontConverterSpec.groovy} | 30 +-
.../GradientPaintConverterSpec.groovy} | 31 +-
.../IconConverterSpec.groovy} | 22 +-
.../ImageConverterSpec.groovy} | 21 +-
.../InsetsConverterSpec.groovy} | 30 +-
.../LinearGradientPaintConverterSpec.groovy} | 30 +-
.../Point2DConverterSpec.groovy} | 30 +-
.../PointConverterSpec.groovy} | 30 +-
.../PolygonConverterSpec.groovy} | 30 +-
.../RadialGradientPaintConverterSpec.groovy} | 30 +-
.../Rectangle2DConverterSpec.groovy} | 30 +-
.../RectangleConverterSpec.groovy} | 30 +-
.../spi/ConverterProviderSpec.groovy | 86 ++++++
.../formatters/ColorFormatterSpec.groovy | 2 +-
.../griffon-javafx-groovy/build.gradle | 5 -
.../griffon-javafx-java/build.gradle | 5 -
.../griffon-lanterna-groovy/build.gradle | 5 -
.../griffon-lanterna-java/build.gradle | 5 -
.../griffon-lanterna3-groovy/build.gradle | 5 -
.../griffon-lanterna3-java/build.gradle | 5 -
.../griffon-pivot-groovy/build.gradle | 5 -
.../templates/griffon-pivot-java/build.gradle | 5 -
.../griffon-swing-groovy/build.gradle | 5 -
.../templates/griffon-swing-java/build.gradle | 5 -
tutorials/javafx-app/build.gradle | 5 -
257 files changed, 3245 insertions(+), 9891 deletions(-)
rename docs/griffon-guide/src/docs/asciidoc/resources/{resources-property-editors.adoc => resources-property-converters.adoc} (51%)
delete mode 100644 subprojects/griffon-core-compile/src/main/java/griffon/metadata/PropertyEditorFor.java
delete mode 100644 subprojects/griffon-core-compile/src/main/java/org/codehaus/griffon/compile/core/processor/editor/PropertyEditorCollector.java
delete mode 100644 subprojects/griffon-core-compile/src/main/java/org/codehaus/griffon/compile/core/processor/editor/PropertyEditorProcessor.java
delete mode 100644 subprojects/griffon-core-compile/src/main/java/org/codehaus/griffon/compile/core/processor/editor/package-info.java
delete mode 100644 subprojects/griffon-core-compile/src/test/java/org/codehaus/griffon/compile/core/processor/editor/PropertyEditorCollectorTest.java
delete mode 100644 subprojects/griffon-core/src/main/java/griffon/core/configuration/Configured.java
delete mode 100644 subprojects/griffon-core/src/main/java/griffon/core/editors/AbstractPropertyEditor.java
delete mode 100644 subprojects/griffon-core/src/main/java/griffon/core/editors/BigDecimalPropertyEditor.java
delete mode 100644 subprojects/griffon-core/src/main/java/griffon/core/editors/BigIntegerPropertyEditor.java
delete mode 100644 subprojects/griffon-core/src/main/java/griffon/core/editors/BooleanPropertyEditor.java
delete mode 100644 subprojects/griffon-core/src/main/java/griffon/core/editors/BytePropertyEditor.java
delete mode 100644 subprojects/griffon-core/src/main/java/griffon/core/editors/CalendarPropertyEditor.java
delete mode 100644 subprojects/griffon-core/src/main/java/griffon/core/editors/DatePropertyEditor.java
delete mode 100644 subprojects/griffon-core/src/main/java/griffon/core/editors/DoublePropertyEditor.java
delete mode 100644 subprojects/griffon-core/src/main/java/griffon/core/editors/EnumPropertyEditor.java
delete mode 100644 subprojects/griffon-core/src/main/java/griffon/core/editors/ExtendedCalendarPropertyEditor.java
delete mode 100644 subprojects/griffon-core/src/main/java/griffon/core/editors/ExtendedPropertyEditor.java
delete mode 100644 subprojects/griffon-core/src/main/java/griffon/core/editors/FilePropertyEditor.java
delete mode 100644 subprojects/griffon-core/src/main/java/griffon/core/editors/FloatPropertyEditor.java
delete mode 100644 subprojects/griffon-core/src/main/java/griffon/core/editors/IntegerPropertyEditor.java
delete mode 100644 subprojects/griffon-core/src/main/java/griffon/core/editors/LocalDatePropertyEditor.java
delete mode 100644 subprojects/griffon-core/src/main/java/griffon/core/editors/LocalDateTimePropertyEditor.java
delete mode 100644 subprojects/griffon-core/src/main/java/griffon/core/editors/LocalTimePropertyEditor.java
delete mode 100644 subprojects/griffon-core/src/main/java/griffon/core/editors/LocalePropertyEditor.java
delete mode 100644 subprojects/griffon-core/src/main/java/griffon/core/editors/LongPropertyEditor.java
delete mode 100644 subprojects/griffon-core/src/main/java/griffon/core/editors/PropertyEditorChain.java
delete mode 100644 subprojects/griffon-core/src/main/java/griffon/core/editors/PropertyEditorResolver.java
delete mode 100644 subprojects/griffon-core/src/main/java/griffon/core/editors/ShortPropertyEditor.java
delete mode 100644 subprojects/griffon-core/src/main/java/griffon/core/editors/URIPropertyEditor.java
delete mode 100644 subprojects/griffon-core/src/main/java/griffon/core/editors/URLPropertyEditor.java
delete mode 100644 subprojects/griffon-core/src/main/java/griffon/core/editors/ValueConversionException.java
delete mode 100644 subprojects/griffon-core/src/main/java/griffon/core/formatters/AbstractFormatter.java
delete mode 100644 subprojects/griffon-core/src/main/java/griffon/core/formatters/BigDecimalFormatter.java
delete mode 100644 subprojects/griffon-core/src/main/java/griffon/core/formatters/BigIntegerFormatter.java
delete mode 100644 subprojects/griffon-core/src/main/java/griffon/core/formatters/BooleanFormatter.java
delete mode 100644 subprojects/griffon-core/src/main/java/griffon/core/formatters/ByteFormatter.java
delete mode 100644 subprojects/griffon-core/src/main/java/griffon/core/formatters/CalendarFormatter.java
delete mode 100644 subprojects/griffon-core/src/main/java/griffon/core/formatters/DateFormatter.java
delete mode 100644 subprojects/griffon-core/src/main/java/griffon/core/formatters/DoubleFormatter.java
delete mode 100644 subprojects/griffon-core/src/main/java/griffon/core/formatters/FloatFormatter.java
delete mode 100644 subprojects/griffon-core/src/main/java/griffon/core/formatters/Formatter.java
delete mode 100644 subprojects/griffon-core/src/main/java/griffon/core/formatters/IntegerFormatter.java
delete mode 100644 subprojects/griffon-core/src/main/java/griffon/core/formatters/LocalDateFormatter.java
delete mode 100644 subprojects/griffon-core/src/main/java/griffon/core/formatters/LocalDateTimeFormatter.java
delete mode 100644 subprojects/griffon-core/src/main/java/griffon/core/formatters/LocalTimeFormatter.java
delete mode 100644 subprojects/griffon-core/src/main/java/griffon/core/formatters/LocaleFormatter.java
delete mode 100644 subprojects/griffon-core/src/main/java/griffon/core/formatters/LongFormatter.java
delete mode 100644 subprojects/griffon-core/src/main/java/griffon/core/formatters/ShortFormatter.java
delete mode 100644 subprojects/griffon-core/src/main/resources/META-INF/editors/java.beans.PropertyEditor
delete mode 100644 subprojects/griffon-core/src/test/groovy/griffon/core/editors/BigDecimalPropertyEditorSpec.groovy
delete mode 100644 subprojects/griffon-core/src/test/groovy/griffon/core/editors/BigIntegerPropertyEditorSpec.groovy
delete mode 100644 subprojects/griffon-core/src/test/groovy/griffon/core/editors/BooleanPropertyEditorSpec.groovy
delete mode 100644 subprojects/griffon-core/src/test/groovy/griffon/core/editors/BytePropertyEditorSpec.groovy
delete mode 100644 subprojects/griffon-core/src/test/groovy/griffon/core/editors/CalendarPropertyEditorSpec.groovy
delete mode 100644 subprojects/griffon-core/src/test/groovy/griffon/core/editors/DatePropertyEditorSpec.groovy
delete mode 100644 subprojects/griffon-core/src/test/groovy/griffon/core/editors/DoublePropertyEditorSpec.groovy
delete mode 100644 subprojects/griffon-core/src/test/groovy/griffon/core/editors/EnumPropertyEditorSpec.groovy
delete mode 100644 subprojects/griffon-core/src/test/groovy/griffon/core/editors/ExtendedCalendarPropertyEditorSpec.groovy
delete mode 100644 subprojects/griffon-core/src/test/groovy/griffon/core/editors/ExtendedDatePropertyEditorSpec.groovy
delete mode 100644 subprojects/griffon-core/src/test/groovy/griffon/core/editors/FilePropertyEditorSpec.groovy
delete mode 100644 subprojects/griffon-core/src/test/groovy/griffon/core/editors/FloatPropertyEditorSpec.groovy
delete mode 100644 subprojects/griffon-core/src/test/groovy/griffon/core/editors/IntegerPropertyEditorSpec.groovy
delete mode 100644 subprojects/griffon-core/src/test/groovy/griffon/core/editors/LocalDatePropertyEditorSpec.groovy
delete mode 100644 subprojects/griffon-core/src/test/groovy/griffon/core/editors/LocalDateTimePropertyEditorSpec.groovy
delete mode 100644 subprojects/griffon-core/src/test/groovy/griffon/core/editors/LocalTimePropertyEditorSpec.groovy
delete mode 100644 subprojects/griffon-core/src/test/groovy/griffon/core/editors/LocalePropertyEditorSpec.groovy
delete mode 100644 subprojects/griffon-core/src/test/groovy/griffon/core/editors/LongPropertyEditorSpec.groovy
delete mode 100644 subprojects/griffon-core/src/test/groovy/griffon/core/editors/PropertyEditorResolverSpec.groovy
delete mode 100644 subprojects/griffon-core/src/test/groovy/griffon/core/editors/PropertyEditorSpecSupport.groovy
delete mode 100644 subprojects/griffon-core/src/test/groovy/griffon/core/editors/ShortPropertyEditorSpec.groovy
delete mode 100644 subprojects/griffon-core/src/test/groovy/griffon/core/editors/StringPropertyEditorSpec.groovy
delete mode 100644 subprojects/griffon-core/src/test/groovy/griffon/core/editors/URIPropertyEditorSpec.groovy
delete mode 100644 subprojects/griffon-core/src/test/groovy/griffon/core/editors/URLPropertyEditorSpec.groovy
delete mode 100644 subprojects/griffon-core/src/test/groovy/griffon/core/formatters/BigDecimalFormatterSpec.groovy
delete mode 100644 subprojects/griffon-core/src/test/groovy/griffon/core/formatters/BigIntegerFormatterSpec.groovy
delete mode 100644 subprojects/griffon-core/src/test/groovy/griffon/core/formatters/BooleanFormatterSpec.groovy
delete mode 100644 subprojects/griffon-core/src/test/groovy/griffon/core/formatters/ByteFormatterSpec.groovy
delete mode 100644 subprojects/griffon-core/src/test/groovy/griffon/core/formatters/CalendarFormatterSpec.groovy
delete mode 100644 subprojects/griffon-core/src/test/groovy/griffon/core/formatters/DateFormatterSpec.groovy
delete mode 100644 subprojects/griffon-core/src/test/groovy/griffon/core/formatters/DoubleFormatterSpec.groovy
delete mode 100644 subprojects/griffon-core/src/test/groovy/griffon/core/formatters/FloatFormatterSpec.groovy
delete mode 100644 subprojects/griffon-core/src/test/groovy/griffon/core/formatters/FormatterSpecSupport.groovy
delete mode 100644 subprojects/griffon-core/src/test/groovy/griffon/core/formatters/IntegerFormatterSpec.groovy
delete mode 100644 subprojects/griffon-core/src/test/groovy/griffon/core/formatters/LocaleFormatterSpec.groovy
delete mode 100644 subprojects/griffon-core/src/test/groovy/griffon/core/formatters/LongFormatterSpec.groovy
delete mode 100644 subprojects/griffon-core/src/test/groovy/griffon/core/formatters/ShortFormatterSpec.groovy
rename subprojects/griffon-core/src/test/groovy/integration/{CustomStringPropertyEditor.groovy => CustomStringConverter.groovy} (66%)
rename subprojects/griffon-core/src/test/groovy/integration/{ListPropertyEditor.java => ListConverter.java} (61%)
delete mode 100644 subprojects/griffon-groovy-compile/src/main/java/org/codehaus/griffon/compile/core/ast/editor/PropertyEditorASTTransformation.java
rename subprojects/griffon-javafx/src/main/java/griffon/javafx/{editors/ColorPropertyEditor.java => converters/ColorConverter.java} (64%)
rename subprojects/griffon-javafx/src/main/java/griffon/javafx/{editors/Dimension2DPropertyEditor.java => converters/Dimension2DConverter.java} (64%)
rename subprojects/griffon-javafx/src/main/java/griffon/javafx/{editors/GraphicPropertyEditor.java => converters/GraphicConverter.java} (64%)
rename subprojects/griffon-javafx/src/main/java/griffon/javafx/{editors/ImagePropertyEditor.java => converters/ImageConverter.java} (66%)
rename subprojects/griffon-javafx/src/main/java/griffon/javafx/{editors/InsetsPropertyEditor.java => converters/InsetsConverter.java} (69%)
rename subprojects/griffon-javafx/src/main/java/griffon/javafx/{editors/LinearGradientPropertyEditor.java => converters/LinearGradientConverter.java} (76%)
rename subprojects/griffon-javafx/src/main/java/griffon/javafx/{editors/PaintPropertyEditor.java => converters/PaintConverter.java} (50%)
rename subprojects/griffon-javafx/src/main/java/griffon/javafx/{editors/Point2DPropertyEditor.java => converters/Point2DConverter.java} (66%)
rename subprojects/griffon-javafx/src/main/java/griffon/javafx/{editors/RadialGradientPropertyEditor.java => converters/RadialGradientConverter.java} (76%)
rename subprojects/griffon-javafx/src/main/java/griffon/javafx/{editors/Rectangle2DPropertyEditor.java => converters/Rectangle2DConverter.java} (69%)
rename subprojects/{griffon-swing/src/main/java/griffon/swing/editors => griffon-javafx/src/main/java/griffon/javafx/converters}/package-info.java (86%)
rename subprojects/{griffon-core-compile/src/main/java/org/codehaus/griffon/compile/core/processor/editor/PropertyEditorPersistence.java => griffon-javafx/src/main/java/griffon/javafx/converters/spi/ColorConverterProvider.java} (54%)
create mode 100644 subprojects/griffon-javafx/src/main/java/griffon/javafx/converters/spi/Dimension2DConverterProvider.java
create mode 100644 subprojects/griffon-javafx/src/main/java/griffon/javafx/converters/spi/GraphicConverterProvider.java
create mode 100644 subprojects/griffon-javafx/src/main/java/griffon/javafx/converters/spi/ImageConverterProvider.java
create mode 100644 subprojects/griffon-javafx/src/main/java/griffon/javafx/converters/spi/InsetsConverterProvider.java
create mode 100644 subprojects/griffon-javafx/src/main/java/griffon/javafx/converters/spi/LinearGradientConverterProvider.java
create mode 100644 subprojects/griffon-javafx/src/main/java/griffon/javafx/converters/spi/PaintConverterProvider.java
create mode 100644 subprojects/griffon-javafx/src/main/java/griffon/javafx/converters/spi/Point2DConverterProvider.java
create mode 100644 subprojects/griffon-javafx/src/main/java/griffon/javafx/converters/spi/RadialGradientConverterProvider.java
create mode 100644 subprojects/griffon-javafx/src/main/java/griffon/javafx/converters/spi/Rectangle2DConverterProvider.java
rename subprojects/{griffon-pivot/src/main/java/griffon/pivot/editors => griffon-javafx/src/main/java/griffon/javafx/converters/spi}/package-info.java (86%)
rename subprojects/griffon-javafx/src/test/groovy/griffon/javafx/{editors/ColorPropertyEditorSpec.groovy => converters/ColorConverterSpec.groovy} (86%)
rename subprojects/griffon-javafx/src/test/groovy/griffon/javafx/{editors/Dimension2DPropertyEditorSpec.groovy => converters/Dimension2DConverterSpec.groovy} (81%)
rename subprojects/griffon-javafx/src/test/groovy/griffon/javafx/{editors/ImagePropertyEditorSpec.groovy => converters/ImageConverterSpec.groovy} (80%)
rename subprojects/griffon-javafx/src/test/groovy/griffon/javafx/{editors/InsetsPropertyEditorSpec.groovy => converters/InsetsConverterSpec.groovy} (83%)
rename subprojects/griffon-javafx/src/test/groovy/griffon/javafx/{editors/LinearGradientPropertyEditorSpec.groovy => converters/LinearGradientConverterSpec.groovy} (86%)
rename subprojects/griffon-javafx/src/test/groovy/griffon/javafx/{editors/PaintPropertyEditorSpec.groovy => converters/PaintConverterSpec.groovy} (90%)
rename subprojects/griffon-javafx/src/test/groovy/griffon/javafx/{editors/Point2DPropertyEditorSpec.groovy => converters/Point2DConverterSpec.groovy} (80%)
rename subprojects/griffon-javafx/src/test/groovy/griffon/javafx/{editors/RadialGradientPropertyEditorSpec.groovy => converters/RadialGradientConverterSpec.groovy} (86%)
rename subprojects/griffon-javafx/src/test/groovy/griffon/javafx/{editors/Rectangle2DPropertyEditorSpec.groovy => converters/Rectangle2DConverterSpec.groovy} (82%)
create mode 100644 subprojects/griffon-javafx/src/test/groovy/griffon/javafx/converters/spi/ConverterProviderSpec.groovy
rename subprojects/griffon-pivot/src/main/java/griffon/pivot/{editors/BoundsPropertyEditor.java => converters/BoundsConverter.java} (68%)
rename subprojects/griffon-pivot/src/main/java/griffon/pivot/{editors/ColorPropertyEditor.java => converters/ColorConverter.java} (64%)
rename subprojects/griffon-pivot/src/main/java/griffon/pivot/{editors/DimensionsPropertyEditor.java => converters/DimensionsConverter.java} (63%)
rename subprojects/griffon-pivot/src/main/java/griffon/pivot/{editors/InsetsPropertyEditor.java => converters/InsetsConverter.java} (68%)
rename subprojects/griffon-pivot/src/main/java/griffon/pivot/{editors/PointPropertyEditor.java => converters/PointConverter.java} (65%)
rename subprojects/{griffon-javafx/src/main/java/griffon/javafx/editors => griffon-pivot/src/main/java/griffon/pivot/converters}/package-info.java (86%)
create mode 100644 subprojects/griffon-pivot/src/main/java/griffon/pivot/converters/spi/BoundsConverterProvider.java
rename subprojects/{griffon-groovy-compile/src/main/java/org/codehaus/griffon/compile/core/ast/editor/PropertyEditorPersistence.java => griffon-pivot/src/main/java/griffon/pivot/converters/spi/ColorConverterProvider.java} (55%)
create mode 100644 subprojects/griffon-pivot/src/main/java/griffon/pivot/converters/spi/DimensionsConverterProvider.java
create mode 100644 subprojects/griffon-pivot/src/main/java/griffon/pivot/converters/spi/InsetsConverterProvider.java
create mode 100644 subprojects/griffon-pivot/src/main/java/griffon/pivot/converters/spi/PointConverterProvider.java
rename subprojects/{griffon-groovy-compile/src/main/java/org/codehaus/griffon/compile/core/ast/editor => griffon-pivot/src/main/java/griffon/pivot/converters/spi}/package-info.java (80%)
rename subprojects/griffon-pivot/src/test/groovy/griffon/pivot/{editors/BoundsPropertyEditorSpec.groovy => converters/BoundsConverterSpec.groovy} (82%)
rename subprojects/griffon-pivot/src/test/groovy/griffon/pivot/{editors/ColorPropertyEditorSpec.groovy => converters/ColorConverterSpec.groovy} (86%)
rename subprojects/griffon-pivot/src/test/groovy/griffon/pivot/{editors/DimensionsPropertyEditorSpec.groovy => converters/DimensionsConverterSpec.groovy} (81%)
rename subprojects/griffon-pivot/src/test/groovy/griffon/pivot/{editors/InsetsPropertyEditorSpec.groovy => converters/InsetsConverterSpec.groovy} (83%)
rename subprojects/griffon-pivot/src/test/groovy/griffon/pivot/{editors/PointPropertyEditorSpec.groovy => converters/PointConverterSpec.groovy} (80%)
create mode 100644 subprojects/griffon-pivot/src/test/groovy/griffon/pivot/converters/spi/ConverterProviderSpec.groovy
rename subprojects/griffon-swing/src/main/java/griffon/swing/{editors/BufferedImagePropertyEditor.java => converters/BufferedImageConverter.java} (55%)
rename subprojects/griffon-swing/src/main/java/griffon/swing/{editors/ColorPropertyEditor.java => converters/ColorConverter.java} (63%)
rename subprojects/griffon-swing/src/main/java/griffon/swing/{editors/DimensionPropertyEditor.java => converters/DimensionConverter.java} (63%)
rename subprojects/griffon-swing/src/main/java/griffon/swing/{editors/FontPropertyEditor.java => converters/FontConverter.java} (72%)
rename subprojects/griffon-swing/src/main/java/griffon/swing/{editors/GradientPaintPropertyEditor.java => converters/GradientPaintConverter.java} (69%)
rename subprojects/griffon-swing/src/main/java/griffon/swing/{editors/IconPropertyEditor.java => converters/IconConverter.java} (59%)
rename subprojects/griffon-swing/src/main/java/griffon/swing/{editors/ImagePropertyEditor.java => converters/ImageConverter.java} (52%)
rename subprojects/griffon-swing/src/main/java/griffon/swing/{editors/InsetsPropertyEditor.java => converters/InsetsConverter.java} (68%)
rename subprojects/griffon-swing/src/main/java/griffon/swing/{editors/LinearGradientPaintPropertyEditor.java => converters/LinearGradientPaintConverter.java} (79%)
rename subprojects/griffon-swing/src/main/java/griffon/swing/{editors/Point2DPropertyEditor.java => converters/Point2DConverter.java} (64%)
rename subprojects/griffon-swing/src/main/java/griffon/swing/{editors/PointPropertyEditor.java => converters/PointConverter.java} (65%)
rename subprojects/griffon-swing/src/main/java/griffon/swing/{editors/PolygonPropertyEditor.java => converters/PolygonConverter.java} (70%)
rename subprojects/griffon-swing/src/main/java/griffon/swing/{editors/RadialGradientPaintPropertyEditor.java => converters/RadialGradientPaintConverter.java} (79%)
rename subprojects/griffon-swing/src/main/java/griffon/swing/{editors/Rectangle2DPropertyEditor.java => converters/Rectangle2DConverter.java} (67%)
rename subprojects/griffon-swing/src/main/java/griffon/swing/{editors/RectanglePropertyEditor.java => converters/RectangleConverter.java} (67%)
create mode 100644 subprojects/griffon-swing/src/main/java/griffon/swing/converters/package-info.java
rename subprojects/{griffon-core/src/main/java/griffon/core/editors/ExtendedDatePropertyEditor.java => griffon-swing/src/main/java/griffon/swing/converters/spi/BufferedImageConverterProvider.java} (52%)
create mode 100644 subprojects/griffon-swing/src/main/java/griffon/swing/converters/spi/ColorConverterProvider.java
create mode 100644 subprojects/griffon-swing/src/main/java/griffon/swing/converters/spi/DimensionConverterProvider.java
rename subprojects/{griffon-core/src/main/java/griffon/core/editors/StringPropertyEditor.java => griffon-swing/src/main/java/griffon/swing/converters/spi/FontConverterProvider.java} (55%)
create mode 100644 subprojects/griffon-swing/src/main/java/griffon/swing/converters/spi/GradientPaintConverterProvider.java
rename subprojects/{griffon-core/src/main/java/griffon/core/formatters/ParseException.java => griffon-swing/src/main/java/griffon/swing/converters/spi/IconConverterProvider.java} (54%)
create mode 100644 subprojects/griffon-swing/src/main/java/griffon/swing/converters/spi/ImageConverterProvider.java
create mode 100644 subprojects/griffon-swing/src/main/java/griffon/swing/converters/spi/InsetsConverterProvider.java
create mode 100644 subprojects/griffon-swing/src/main/java/griffon/swing/converters/spi/LineraGradientPaintConverterProvider.java
create mode 100644 subprojects/griffon-swing/src/main/java/griffon/swing/converters/spi/Point2DConverterProvider.java
create mode 100644 subprojects/griffon-swing/src/main/java/griffon/swing/converters/spi/PointConverterProvider.java
create mode 100644 subprojects/griffon-swing/src/main/java/griffon/swing/converters/spi/PolygonConverterProvider.java
create mode 100644 subprojects/griffon-swing/src/main/java/griffon/swing/converters/spi/RadialGradientPaintConverterProvider.java
create mode 100644 subprojects/griffon-swing/src/main/java/griffon/swing/converters/spi/Rectangle2DConverterProvider.java
create mode 100644 subprojects/griffon-swing/src/main/java/griffon/swing/converters/spi/RectangleConverterProvider.java
create mode 100644 subprojects/griffon-swing/src/main/java/griffon/swing/converters/spi/package-info.java
rename subprojects/griffon-swing/src/test/groovy/griffon/swing/{editors/BufferedImagePropertyEditorSpec.groovy => converters/BufferedImageConverterSpec.groovy} (77%)
rename subprojects/griffon-swing/src/test/groovy/griffon/swing/{editors/ColorPropertyEditorSpec.groovy => converters/ColorConverterSpec.groovy} (85%)
rename subprojects/griffon-swing/src/test/groovy/griffon/swing/{editors/DimensionPropertyEditorSpec.groovy => converters/DimensionConverterSpec.groovy} (82%)
rename subprojects/griffon-swing/src/test/groovy/griffon/swing/{editors/FontPropertyEditorSpec.groovy => converters/FontConverterSpec.groovy} (88%)
rename subprojects/griffon-swing/src/test/groovy/griffon/swing/{editors/GradientPaintPropertyEditorSpec.groovy => converters/GradientPaintConverterSpec.groovy} (82%)
rename subprojects/griffon-swing/src/test/groovy/griffon/swing/{editors/IconPropertyEditorSpec.groovy => converters/IconConverterSpec.groovy} (78%)
rename subprojects/griffon-swing/src/test/groovy/griffon/swing/{editors/ImagePropertyEditorSpec.groovy => converters/ImageConverterSpec.groovy} (77%)
rename subprojects/griffon-swing/src/test/groovy/griffon/swing/{editors/InsetsPropertyEditorSpec.groovy => converters/InsetsConverterSpec.groovy} (84%)
rename subprojects/griffon-swing/src/test/groovy/griffon/swing/{editors/LinearGradientPaintPropertyEditorSpec.groovy => converters/LinearGradientPaintConverterSpec.groovy} (87%)
rename subprojects/griffon-swing/src/test/groovy/griffon/swing/{editors/Point2DPropertyEditorSpec.groovy => converters/Point2DConverterSpec.groovy} (82%)
rename subprojects/griffon-swing/src/test/groovy/griffon/swing/{editors/PointPropertyEditorSpec.groovy => converters/PointConverterSpec.groovy} (81%)
rename subprojects/griffon-swing/src/test/groovy/griffon/swing/{editors/PolygonPropertyEditorSpec.groovy => converters/PolygonConverterSpec.groovy} (80%)
rename subprojects/griffon-swing/src/test/groovy/griffon/swing/{editors/RadialGradientPaintPropertyEditorSpec.groovy => converters/RadialGradientPaintConverterSpec.groovy} (87%)
rename subprojects/griffon-swing/src/test/groovy/griffon/swing/{editors/Rectangle2DPropertyEditorSpec.groovy => converters/Rectangle2DConverterSpec.groovy} (84%)
rename subprojects/griffon-swing/src/test/groovy/griffon/swing/{editors/RectanglePropertyEditorSpec.groovy => converters/RectangleConverterSpec.groovy} (83%)
create mode 100644 subprojects/griffon-swing/src/test/groovy/griffon/swing/converters/spi/ConverterProviderSpec.groovy
diff --git a/docs/griffon-guide/src/docs/asciidoc/resources/resources-injected-resources.adoc b/docs/griffon-guide/src/docs/asciidoc/resources/resources-injected-resources.adoc
index 2a672123174..ae397eb4ffa 100644
--- a/docs/griffon-guide/src/docs/asciidoc/resources/resources-injected-resources.adoc
+++ b/docs/griffon-guide/src/docs/asciidoc/resources/resources-injected-resources.adoc
@@ -5,7 +5,7 @@
Resources may be automatically injected into any instance created via the application's
`Injector`. Injection points must be annotated with `{link_injected_resource}`
which can be set on properties (Groovy), fields (Java and Groovy) and setter methods (Java and Groovy).
-@InjectedResource is a perfect companion to <<_models,models>>, as the following example shows:
+`@InjectedResource` is a perfect companion to <<_models,models>>, as the following example shows:
.griffon-app/resources/resources.properties
[source,java,linenums,options="nowrap"]
@@ -39,8 +39,8 @@ to use. These are the rules applied by the default by `{link_resources_injector}
class name of the field's owner.
You may also specify a default value if the resource definition is not found; however,
-be aware that this value must be set as a String, thus guaranteeing a type conversion.
-An optional `format` value may be specified as a hint to the PropertyEditor used during
+be aware that this value must be set as a `String`, thus guaranteeing a type conversion.
+An optional `format` value may be specified as a hint to the `Converter` used during
value conversion, for example:
.griffon-app/models/sample/SampleModel.groovy
diff --git a/docs/griffon-guide/src/docs/asciidoc/resources/resources-property-editors.adoc b/docs/griffon-guide/src/docs/asciidoc/resources/resources-property-converters.adoc
similarity index 51%
rename from docs/griffon-guide/src/docs/asciidoc/resources/resources-property-editors.adoc
rename to docs/griffon-guide/src/docs/asciidoc/resources/resources-property-converters.adoc
index 99964c0d8bb..2c5252ae474 100644
--- a/docs/griffon-guide/src/docs/asciidoc/resources/resources-property-editors.adoc
+++ b/docs/griffon-guide/src/docs/asciidoc/resources/resources-property-converters.adoc
@@ -1,26 +1,25 @@
-[[_resources_property_editors]]
-= Property Editors
+[[_resources_property_converters]]
+= Converters
-Resource injection makes use of the http://docs.oracle.com/javase/6/docs/api/java/beans/PropertyEditor.html[PropertyEditor]
-mechanism provided by the `java.beans` package. The default `{link_resources_injector}` queries
-`http://docs.oracle.com/javase/6/docs/api/java/beans/PropertyEditorManager.html[PropertyEditorManager]`
+Resource injection makes use of the `javax.application.converter.Converter mechanism provided by JSR-377.
+The default `{link_resources_injector}` queries the application's `javax.application.converter.ConverterRegistry`
whenever a resource value must be transformed to a target type.
-PropertyEditorManager provides methods for registering custom PropertyEditors; it also
-follows a class naming convention to load PropertyEditors should a custom one not be
+ConverterRegistry provides methods for registering custom Converters; it also
+follows a class naming convention to load Converters should a custom one may not be
programmatically registered. Griffon applications will automatically load and register
-PropertyEditors from the following classpath resource: `/META-INF/services/java.beans.PropertyEditor`.
+Converters from the following classpath resource: `/META-INF/services/javax.application.converter.spi.ConverterProvider`.
Each line follows the format
[source]
----
-target.type = full.qualified.classname
+fully.qualified.classname
----
-The following table enumerates the default PropertyEditors loaded by Griffon at startup.
+The following table enumerates the default Converters loaded by Griffon at startup.
-.Core PropertyEditor mappings
+.Core Converter mappings
[cols="3*", options="header"]
|===
@@ -29,79 +28,79 @@ The following table enumerates the default PropertyEditors loaded by Griffon at
| Format
| java.lang.String
-| griffon.core.editors.StringPropertyEditor
-|
+| org.kordamp.jsr377.converter.spi.StringConverter
+|
| java.io.File
-| griffon.core.editors.FilePropertyEditor
+| org.kordamp.jsr377.converter.spi.FileConverter
|
| java.net.URL
-| griffon.core.editors.URLPropertyEditor
+| org.kordamp.jsr377.converter.spi.URLConverter
|
| java.net.URI
-| griffon.core.editors.URIPropertyEditor
+| org.kordamp.jsr377.converter.spi.URIConverter
|
| java.math.BigDecimal
-| griffon.core.editors.BigDecimalPropertyEditor
+| org.kordamp.jsr377.converter.spi.BigDecimalConverter
| 'currency', 'percent'
| java.math.BigInteger
-| griffon.core.editors.BigIntegerPropertyEditor
+| org.kordamp.jsr377.converter.spi.BigIntegerConverter
| 'currency', 'percent'
| java.lang.Boolean
-| griffon.core.editors.BooleanPropertyEditor
+| org.kordamp.jsr377.converter.spi.BooleanConverter
| 'boolean', 'query', 'switch'
| java.lang.Byte
-| griffon.core.editors.BytePropertyEditor
+| org.kordamp.jsr377.converter.spi.ByteConverter
| 'currency', 'percent'
| java.lang.Short
-| griffon.core.editors.ShortPropertyEditor
+| org.kordamp.jsr377.converter.spi.ShortConverter
| 'currency', 'percent'
| java.lang.Integer
-| griffon.core.editors.IntegerPropertyEditor
+| org.kordamp.jsr377.converter.spi.IntegerConverter
| 'currency', 'percent'
| java.lang.Long
-| griffon.core.editors.LongPropertyEditor
+| org.kordamp.jsr377.converter.spi.LongConverter
| 'currency', 'percent'
| java.lang.Float
-| griffon.core.editors.FloatPropertyEditor
+| org.kordamp.jsr377.converter.spi.FloatConverter
| 'currency', 'percent'
| java.lang.Double
-| griffon.core.editors.DoublePropertyEditor
+| org.kordamp.jsr377.converter.spi.DoubleConverter
| 'currency', 'percent'
| java.util.Calendar
-| griffon.core.editors.CalendarPropertyEditor
+| org.kordamp.jsr377.converter.spi.CalendarConverter
|
| java.util.Date
-| griffon.core.editors.DatePropertyEditor
+| org.kordamp.jsr377.converter.spi.DateConverter
|
| java.util.Locale
-| griffon.core.editors.LocalePropertyEditor
+| org.kordamp.jsr377.converter.spi.LocaleConverter
| [\_[_]]
-| java.time.LocalDate
-| griffon.core.editors.LocalDatePropertyEditor
+| java.time.LocalDate
+| org.kordamp.jsr377.converter.spi.LocalDateConverter
|
-| java.time.LocalDateTime
-| griffon.core.editors.LocalDateTimePropertyEditor
+| java.time.LocalDateTime
+| org.kordamp.jsr377.converter.spi.LocalDateTimeConverter
|
-| java.time.LocalTime
-| griffon.core.editors.LocalTimePropertyEditor
+| java.time.LocalTime
+| org.kordamp.jsr377.converter.spi.LocalTimeConverter
|
|===
@@ -114,9 +113,9 @@ Where the following apply:
* 'switch' accepts `on` and `off` as values.
Core UI Toolkit dependencies, such as `griffon-swing`, `griffon-javafx`, and `griffon-pivot` deliver
-additional PropertyEditors. The following tables summarize these additions:
+additional Converters. The following tables summarize these additions:
-.Swing PropertyEditor mappings
+.Swing Converter mappings
[cols="3*", options="header"]
|===
@@ -125,63 +124,63 @@ additional PropertyEditors. The following tables summarize these additions:
| Format
| java.awt.Color
-| griffon.swing.editors.ColorPropertyEditor
+| griffon.swing.converters.ColorConverter
| #RGB ; #RGBA ; #RRGGBB; #RRGGBBAA ; Color constant
| java.awt.Dimension
-| griffon.swing.editors.DimensionPropertyEditor
+| griffon.swing.converters.DimensionConverter
| width, height
| java.awt.Font
-| griffon.swing.editors.FontPropertyEditor
+| griffon.swing.converters.FontConverter
| family-style-size
| java.awt.GradientPaint
-| griffon.swing.editors.GradientPaintPropertyEditor
+| griffon.swing.converters.GradientPaintConverter
| x1, y1, #RGB, x2, y2, #RGB, CYCLIC
| java.awt.Image
-| griffon.swing.editors.ImagePropertyEditor
+| griffon.swing.converters.ImageConverter
| path/to/image_file
| java.awt.Insets
-| griffon.swing.editors.InsetsPropertyEditor
+| griffon.swing.converters.InsetsConverter
| top, left, bottom, right
| java.awt.LinearGradientPaint
-| griffon.swing.editors.LinearGradientPaintPropertyEditor
+| griffon.swing.converters.LinearGradientPaintConverter
| xy, y1, x2, x2, [0.0, 1.0], [#RGB, #RGB], REPEAT
| java.awt.Point
-| griffon.swing.editors.PointPropertyEditor
+| griffon.swing.converters.PointConverter
| x, y
| java.awt.Polygon
-| griffon.swing.editors.PolygonPropertyEditor
+| griffon.swing.converters.PolygonConverter
| x1, y1, x2, y2, ..., xn, yn
| java.awt.RadialGradientPaint
-| griffon.swing.editors.RadialGradientPaintPropertyEditor
+| griffon.swing.converters.RadialGradientPaintConverter
| xy, y1, r, fx, fy, [0.0, 1.0], [#RGB, #RGB], REPEAT
| java.awt.Rectangle
-| griffon.swing.editors.RectanglePropertyEditor
+| griffon.swing.converters.RectangleConverter
| x, y, width, height
| java.awt.geom.Point2D
-| griffon.swing.editors.Point2DPropertyEditor
+| griffon.swing.converters.Point2DConverter
| x, y
| java.awt.geom.Rectangle2D
-| griffon.swing.editors.Rectangle2DPropertyEditor
+| griffon.swing.converters.Rectangle2DConverter
| x, y, width, height
| java.awt.image.BufferedImage
-| griffon.swing.editors.BufferedImagePropertyEditor
+| griffon.swing.converters.BufferedImageConverter
| path/to/image_file
| javax.swing.Icon
-| griffon.swing.editors.IconPropertyEditor
+| griffon.swing.converters.IconConverter
| path/to/image_file
|===
@@ -193,16 +192,16 @@ Where the following apply:
* REPEAT must be one of `MultipleGradientPaint.CycleMethod`.
* GradientPaint supports another format: x1, y1 | x2, y2, | #RGB, #RGB | CYCLIC
* Color supports all color constants defined by `griffon.swing.support.Colors`.
- * All color formats are supported by gradient editors.
+ * All color formats are supported by gradient converters.
-The following styles are supported by `FontPropertyEditor`:
+The following styles are supported by `FontConverter`:
* BOLD
* ITALIC
* BOLDITALIC
* PLAIN
-.JavaFX PropertyEditor mappings
+.JavaFX Converter mappings
[cols="3*", options="header"]
|===
@@ -211,39 +210,39 @@ The following styles are supported by `FontPropertyEditor`:
| Format
| javafx.geometry.Dimension2D
-| griffon.javafx.editors.Dimension2DPropertyEditor
+| griffon.javafx.converters.Dimension2DConverter
| width, height
| javafx.geometry.Insets
-| griffon.javafx.editors.InsetsPropertyEditor
+| griffon.javafx.converters.InsetsConverter
| top, left, bottom, right
| javafx.geometry.Point2D
-| griffon.javafx.editors.Point2DPropertyEditor
+| griffon.javafx.converters.Point2DConverter
| x, y
| javafx.geometry.Rectangle2D
-| griffon.javafx.editors.Rectangle2DPropertyEditor
+| griffon.javafx.converters.Rectangle2DConverter
| x, y , width, height
| javafx.scene.image.Image
-| griffon.javafx.editors.ImagePropertyEditor
+| griffon.javafx.converters.ImageConverter
| path/to/image_file
| javafx.scene.paint.Color
-| griffon.javafx.editors.ColorPropertyEditor
+| griffon.javafx.converters.ColorConverter
| #RGB ; #RGBA ; #RRGGBB; #RRGGBBAA ; Color constant
| javafx.scene.paint.LinearGradient
-| griffon.javafx.editors.LinearGradientPropertyEditor
+| griffon.javafx.converters.LinearGradientConverter
| LinearGradient.parse()
| javafx.scene.paint.RadialGradient
-| griffon.javafx.editors.RadialGradientPropertyEditor
+| griffon.javafx.converters.RadialGradientConverter
| RadialGradient.parse()
| javafx.scene.paint.Paint|
-| griffon.javafx.editors.PaintPropertyEditor
+| griffon.javafx.converters.PaintConverter
| all Color, LinearGradient and RadialGradient formats
|===
@@ -252,7 +251,7 @@ Where the following applies:
* `R`, `G`, `B` and `A` represent an hexadecimal number.
-.Pivot PropertyEditor mappings
+.Pivot Converter mappings
[cols="3*", options="header"]
|===
@@ -261,23 +260,23 @@ Where the following applies:
| Format
| java.awt.Color
-| griffon.pivot.editors.ColorPropertyEditor
+| griffon.pivot.converters.ColorConverter
| #RGB ; #RGBA ; #RRGGBB; #RRGGBBAA ; Color constant
| org.apache.pivot.wtk.Bounds
-| griffon.pivot.editors.BoundsPropertyEditor
+| griffon.pivot.converters.BoundsConverter
| x, y , width, height
| org.apache.pivot.wtk.Dimensions
-| griffon.pivot.editors.DimensionsPropertyEditor
+| griffon.pivot.converters.DimensionsConverter
| width, height
| org.apache.pivot.wtk.Insets
-| griffon.pivot.editors.InsetsPropertyEditor
+| griffon.pivot.converters.InsetsConverter
| top, left, right, bottom
| org.apache.pivot.wtk.Point
-| griffon.pivot.editors.PointPropertyEditor
+| griffon.pivot.converters.PointConverter
| x, y
|===
diff --git a/docs/griffon-guide/src/docs/asciidoc/resources/resources-resource-resolver.adoc b/docs/griffon-guide/src/docs/asciidoc/resources/resources-resource-resolver.adoc
index c05034137f2..4d078579c80 100644
--- a/docs/griffon-guide/src/docs/asciidoc/resources/resources-resource-resolver.adoc
+++ b/docs/griffon-guide/src/docs/asciidoc/resources/resources-resource-resolver.adoc
@@ -30,7 +30,7 @@ these methods never throw `NoSuchResourceException` nor return `null` unless the
- Object resolveResource(String key, Map args, Object defaultValue)
- Object resolveResource(String key, Map args, Locale locale, Object defaultValue)
-There is also another set of methods which convert the resource value using ``PropertyEditor``s:
+There is also another set of methods which convert the resource value using ``Converter``s:
- T resolveResourceConverted(String key, Class type)
- T resolveResourceConverted(String key, Locale locale, Class type)
@@ -154,7 +154,7 @@ computed.instance = { x, y, w, h ->
== Type Conversion
Note that the return value of `resolveResource` is marked as `Object`, but you'll get
-a `String` from the first two formats. You'll have to rely on <<_resources_property_editors,property editors>>
+a `String` from the first two formats. You'll have to rely on <<_resources_property_converters,property converters>>
in order to transform the value into the correct type. <<_resources_injected_resources,Injected resources>>
are automatically transformed to the expected type.
@@ -163,14 +163,13 @@ Here's how it can be done:
[source,groovy,options="nowrap"]
----
import javax.swing.Icon
-import java.beans.PropertyEditor
-import griffon.core.editors.PropertyEditorResolver
+import javax.application.converter.Converter
+import javax.application.converter.ConverterRegistry
...
Object iconValue = getApplication().getResourceResolver()
.resolveResource('menu.icon', ['large'])
-PropertyEditor propertyEditor = PropertyEditorResolver.findEditor(Icon)
-propertyEditor.setAsText(String.valueOf(iconValue))
-Icon icon = propertyEditor.getValue()
+Converter converter = ConverterRegistry.findConverter(Icon)
+Icon icon = converter.fromObject(String.valueOf(iconValue))
----
As an alternative you may call `resolveResourceConverted` instead.
diff --git a/docs/griffon-guide/src/docs/asciidoc/resources/resources.adoc b/docs/griffon-guide/src/docs/asciidoc/resources/resources.adoc
index eceeaa5c785..8638aae4625 100644
--- a/docs/griffon-guide/src/docs/asciidoc/resources/resources.adoc
+++ b/docs/griffon-guide/src/docs/asciidoc/resources/resources.adoc
@@ -11,5 +11,5 @@ include::resources-resource-resolver.adoc[]
include::resources-resource-resolver-configuration.adoc[]
include::resources-resource-resolver-transformation.adoc[]
include::resources-injected-resources.adoc[]
-include::resources-property-editors.adoc[]
+include::resources-property-converters.adoc[]
:leveloffset: 1
diff --git a/samples/console-swing-groovy/build.gradle.txt b/samples/console-swing-groovy/build.gradle.txt
index 10cc6a0d695..2b465777b1c 100644
--- a/samples/console-swing-groovy/build.gradle.txt
+++ b/samples/console-swing-groovy/build.gradle.txt
@@ -91,11 +91,6 @@ shadowJar {
transform(ServiceFileTransformer) {
path = 'META-INF/types'
}
- transform(PropertiesFileTransformer) {
- paths = [
- 'META-INF/editors/java.beans.PropertyEditor'
- ]
- }
}
startScripts {
diff --git a/subprojects/application-master-pom/src/pom/master-pom.xml b/subprojects/application-master-pom/src/pom/master-pom.xml
index edd5ed60d7e..9d5c3181791 100644
--- a/subprojects/application-master-pom/src/pom/master-pom.xml
+++ b/subprojects/application-master-pom/src/pom/master-pom.xml
@@ -1002,11 +1002,6 @@
META-INF/types
-
-
- META-INF/editors/java.beans.PropertyEditor
-
-
diff --git a/subprojects/griffon-core-compile/src/main/java/griffon/metadata/PropertyEditorFor.java b/subprojects/griffon-core-compile/src/main/java/griffon/metadata/PropertyEditorFor.java
deleted file mode 100644
index 8545cfaa291..00000000000
--- a/subprojects/griffon-core-compile/src/main/java/griffon/metadata/PropertyEditorFor.java
+++ /dev/null
@@ -1,34 +0,0 @@
-/*
- * SPDX-License-Identifier: Apache-2.0
- *
- * Copyright 2008-2018 the original author or authors.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package griffon.metadata;
-
-import java.lang.annotation.Documented;
-import java.lang.annotation.ElementType;
-import java.lang.annotation.Retention;
-import java.lang.annotation.RetentionPolicy;
-import java.lang.annotation.Target;
-
-/**
- * @author Andres Almiray
- */
-@Documented
-@Target(ElementType.TYPE)
-@Retention(RetentionPolicy.SOURCE)
-public @interface PropertyEditorFor {
- Class>[] value();
-}
diff --git a/subprojects/griffon-core-compile/src/main/java/org/codehaus/griffon/compile/core/processor/editor/PropertyEditorCollector.java b/subprojects/griffon-core-compile/src/main/java/org/codehaus/griffon/compile/core/processor/editor/PropertyEditorCollector.java
deleted file mode 100644
index 0356807eda8..00000000000
--- a/subprojects/griffon-core-compile/src/main/java/org/codehaus/griffon/compile/core/processor/editor/PropertyEditorCollector.java
+++ /dev/null
@@ -1,131 +0,0 @@
-/*
- * SPDX-License-Identifier: Apache-2.0
- *
- * Copyright 2008-2018 the original author or authors.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.codehaus.griffon.compile.core.processor.editor;
-
-import org.kordamp.jipsy.processor.Initializer;
-import org.kordamp.jipsy.processor.LogLocation;
-import org.kordamp.jipsy.processor.Logger;
-
-import java.beans.PropertyEditor;
-import java.util.Collections;
-import java.util.LinkedHashSet;
-import java.util.Map;
-import java.util.Set;
-import java.util.TreeMap;
-
-/**
- * @author Andres Almiray
- */
-public final class PropertyEditorCollector {
- private final Map editors = new TreeMap<>();
- private final Map cached = new TreeMap<>();
-
- private final Initializer initializer;
- private final Logger logger;
-
- public PropertyEditorCollector(Initializer initializer, Logger logger) {
- this.initializer = initializer;
- this.logger = logger;
- }
-
- public String getPropertyEditor(String type, String editorType) {
- if (type == null) {
- throw new NullPointerException("type");
- }
- if (!editors.containsKey(type)) {
- editors.put(type, editorType);
- }
- return editors.get(type);
- }
-
- public boolean isModified() {
- if (cached.size() != editors.size()) {
- return true;
- }
-
- for (Map.Entry e : cached.entrySet()) {
- if (!editors.containsKey(e.getKey())) {
- return true;
- }
- if (!e.getValue().equals(editors.get(e.getKey()))) {
- return true;
- }
- }
-
- return false;
- }
-
- public void load() {
- CharSequence initialData = initializer.initialData(PropertyEditor.class.getName());
- if (initialData != null) {
- fromList(initialData.toString());
- }
- cached.putAll(editors);
- }
-
- public void removePropertyEditor(String editor) {
- if (editor == null) {
- throw new NullPointerException("type");
- }
-
- logger.note(LogLocation.LOG_FILE, "Removing " + editor);
- Set keys = new LinkedHashSet<>();
- for (String key : editors.keySet()) {
- if (editor.equals(editors.get(key))) {
- keys.add(key);
- }
- }
- for (String key : keys) {
- editors.remove(key);
- }
- }
-
- @Override
- public String toString() {
- return editors.toString();
- }
-
- public String toList() {
- StringBuilder sb = new StringBuilder();
- for (Map.Entry e : editors.entrySet()) {
- sb.append(e.getKey())
- .append("=")
- .append(e.getValue())
- .append("\n");
- }
- return sb.toString();
- }
-
- public Map editors() {
- return Collections.unmodifiableMap(editors);
- }
-
- public void fromList(String input) {
- if (input == null) {
- throw new NullPointerException("input");
- }
- String[] lines = input.split("\\n");
- for (String line : lines) {
- if (line.startsWith("#")) { continue; }
- if (line.trim().length() > 0) {
- String[] entry = line.trim().split("=");
- editors.put(entry[0], entry[1]);
- }
- }
- }
-}
diff --git a/subprojects/griffon-core-compile/src/main/java/org/codehaus/griffon/compile/core/processor/editor/PropertyEditorProcessor.java b/subprojects/griffon-core-compile/src/main/java/org/codehaus/griffon/compile/core/processor/editor/PropertyEditorProcessor.java
deleted file mode 100644
index 166e6361762..00000000000
--- a/subprojects/griffon-core-compile/src/main/java/org/codehaus/griffon/compile/core/processor/editor/PropertyEditorProcessor.java
+++ /dev/null
@@ -1,182 +0,0 @@
-/*
- * SPDX-License-Identifier: Apache-2.0
- *
- * Copyright 2008-2018 the original author or authors.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.codehaus.griffon.compile.core.processor.editor;
-
-import griffon.metadata.PropertyEditorFor;
-import org.kordamp.jipsy.processor.AbstractSpiProcessor;
-import org.kordamp.jipsy.processor.CheckResult;
-import org.kordamp.jipsy.processor.LogLocation;
-import org.kordamp.jipsy.processor.Options;
-import org.kordamp.jipsy.processor.Persistence;
-
-import javax.annotation.processing.RoundEnvironment;
-import javax.annotation.processing.SupportedAnnotationTypes;
-import javax.annotation.processing.SupportedOptions;
-import javax.lang.model.SourceVersion;
-import javax.lang.model.element.AnnotationMirror;
-import javax.lang.model.element.AnnotationValue;
-import javax.lang.model.element.Element;
-import javax.lang.model.element.ElementKind;
-import javax.lang.model.element.Modifier;
-import javax.lang.model.element.TypeElement;
-import javax.tools.Diagnostic;
-import java.beans.PropertyEditor;
-import java.io.IOException;
-import java.lang.annotation.Annotation;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.regex.Matcher;
-
-/**
- * @author Andres Almiray
- */
-@SupportedAnnotationTypes("*")
-@SupportedOptions({Options.SPI_DIR_OPTION, Options.SPI_LOG_OPTION, Options.SPI_VERBOSE_OPTION, Options.SPI_DISABLED_OPTION})
-public class PropertyEditorProcessor extends AbstractSpiProcessor {
- public static final String NAME = PropertyEditorProcessor.class.getName()
- + " (" + PropertyEditorProcessor.class.getPackage().getImplementationVersion() + ")";
-
- private static final int MAX_SUPPORTED_VERSION = 8;
-
- private Persistence persistence;
- private PropertyEditorCollector data;
- private TypeElement propertyEditorType;
-
- @Override
- public SourceVersion getSupportedSourceVersion() {
- SourceVersion[] svs = SourceVersion.values();
- for (int i = svs.length - 1; i >= 0; i--) {
- String name = svs[i].name();
- Matcher m = RELEASE_PATTERN.matcher(name);
- if (m.matches()) {
- int release = Integer.parseInt(m.group(1));
- if (release <= MAX_SUPPORTED_VERSION) return svs[i];
- }
- }
-
- return SourceVersion.RELEASE_6;
- }
-
- @Override
- protected Class extends Annotation> getAnnotationClass() {
- return PropertyEditorFor.class;
- }
-
- @Override
- protected void initialize() {
- super.initialize();
-
- persistence = new PropertyEditorPersistence(NAME, options.dir(), processingEnv.getFiler(), logger);
- propertyEditorType = processingEnv.getElementUtils().getTypeElement(PropertyEditor.class.getName());
- data = new PropertyEditorCollector(persistence.getInitializer(), logger);
- data.load();
- }
-
- @Override
- protected void handleElement(Element e) {
- if (!(e instanceof TypeElement)) {
- return;
- }
-
- TypeElement currentClass = (TypeElement) e;
-
- CheckResult checkResult = checkCurrentClass(currentClass);
- if (checkResult.isError()) {
- reportError(currentClass, checkResult);
- return;
- }
-
- for (TypeElement type : findTypes(currentClass)) {
- CheckResult implementationResult = isImplementation(currentClass, propertyEditorType);
- if (implementationResult.isError()) {
- reportError(currentClass, implementationResult);
- } else {
- register(createProperQualifiedName(type), currentClass);
- }
- }
- }
-
- @Override
- protected void removeStaleData(RoundEnvironment roundEnv) {
- for (Element e : roundEnv.getRootElements()) {
- if (e instanceof TypeElement) {
- TypeElement currentClass = (TypeElement) e;
- data.removePropertyEditor(createProperQualifiedName(currentClass));
- }
- }
- }
-
- @Override
- protected void writeData() {
- if (data.isModified()) {
- String content = data.toList();
- if (content.length() > 0) {
- logger.note(LogLocation.LOG_FILE, "Writing output");
- try {
- persistence.write(PropertyEditor.class.getName(), content);
- } catch (IOException ioe) {
- processingEnv.getMessager().printMessage(Diagnostic.Kind.ERROR, ioe.getMessage());
- }
- persistence.writeLog();
- } else {
- logger.note(LogLocation.LOG_FILE, "Writing output");
- try {
- persistence.delete();
- } catch (IOException e) {
- logger.warning(LogLocation.LOG_FILE, "An error occurred while deleting data file");
- }
- }
- }
- }
-
- private CheckResult checkCurrentClass(TypeElement currentClass) {
- if (currentClass.getKind() != ElementKind.CLASS) {
- return CheckResult.valueOf("is not a class");
- }
-
- if (!currentClass.getModifiers().contains(Modifier.PUBLIC)) {
- return CheckResult.valueOf("is not a public class");
- }
-
- if (isAbstractClass(currentClass)) {
- return CheckResult.valueOf("is an abstract class");
- }
-
- if (!hasPublicNoArgsConstructor(currentClass)) {
- return CheckResult.valueOf("has no public no-args constructor");
- }
-
- return CheckResult.OK;
- }
-
- private List findTypes(TypeElement classElement) {
- List types = new ArrayList<>();
-
- for (AnnotationMirror annotation : findAnnotationMirrors(classElement, getAnnotationClass().getName())) {
- for (AnnotationValue value : findCollectionValueMember(annotation, "value")) {
- types.add(toElement(value));
- }
- }
-
- return types;
- }
-
- private void register(String type, TypeElement editorClass) {
- data.getPropertyEditor(type, createProperQualifiedName(editorClass));
- }
-}
diff --git a/subprojects/griffon-core-compile/src/main/java/org/codehaus/griffon/compile/core/processor/editor/package-info.java b/subprojects/griffon-core-compile/src/main/java/org/codehaus/griffon/compile/core/processor/editor/package-info.java
deleted file mode 100644
index c1ba8d85bd4..00000000000
--- a/subprojects/griffon-core-compile/src/main/java/org/codehaus/griffon/compile/core/processor/editor/package-info.java
+++ /dev/null
@@ -1,25 +0,0 @@
-/*
- * SPDX-License-Identifier: Apache-2.0
- *
- * Copyright 2008-2018 the original author or authors.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-/**
- * Annotation processor for {@code @PropertyEditorFor}
- *
- * @since 2.0.0
- * @see griffon.metadata.PropertyEditorFor
- */
-
-package org.codehaus.griffon.compile.core.processor.editor;
diff --git a/subprojects/griffon-core-compile/src/main/resources/META-INF/services/javax.annotation.processing.Processor b/subprojects/griffon-core-compile/src/main/resources/META-INF/services/javax.annotation.processing.Processor
index 448eebcaa41..38e4c65a409 100644
--- a/subprojects/griffon-core-compile/src/main/resources/META-INF/services/javax.annotation.processing.Processor
+++ b/subprojects/griffon-core-compile/src/main/resources/META-INF/services/javax.annotation.processing.Processor
@@ -1,3 +1,2 @@
org.codehaus.griffon.compile.core.processor.annotation.AnnotationHandlerProcessor
org.codehaus.griffon.compile.core.processor.artifact.ArtifactProviderProcessor
-org.codehaus.griffon.compile.core.processor.editor.PropertyEditorProcessor
diff --git a/subprojects/griffon-core-compile/src/test/java/org/codehaus/griffon/compile/core/processor/editor/PropertyEditorCollectorTest.java b/subprojects/griffon-core-compile/src/test/java/org/codehaus/griffon/compile/core/processor/editor/PropertyEditorCollectorTest.java
deleted file mode 100644
index 7e43945ee1d..00000000000
--- a/subprojects/griffon-core-compile/src/test/java/org/codehaus/griffon/compile/core/processor/editor/PropertyEditorCollectorTest.java
+++ /dev/null
@@ -1,166 +0,0 @@
-/*
- * SPDX-License-Identifier: Apache-2.0
- *
- * Copyright 2008-2018 the original author or authors.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.codehaus.griffon.compile.core.processor.editor;
-
-import org.junit.Before;
-import org.junit.Test;
-import org.kordamp.jipsy.processor.testutils.NoOutputTestBase;
-import org.kordamp.jipsy.processor.testutils.TestInitializer;
-import org.kordamp.jipsy.processor.testutils.TestLogger;
-
-import java.util.HashMap;
-import java.util.Map;
-
-import static junit.framework.TestCase.assertTrue;
-import static org.junit.Assert.assertEquals;
-
-public class PropertyEditorCollectorTest extends NoOutputTestBase {
- private TestLogger logger;
- private PropertyEditorCollector collector;
-
- @Before
- public void loadFrameWork() {
- HashMap map = new HashMap();
- map.put("editor1", "type1=provider1\n");
- map.put("editor2", "type1=provider1\ntype2=provider2\n");
- map.put("editor3", "type1=provider1\ntype3=provider3\n");
- TestInitializer initializer = new TestInitializer(map);
- logger = new TestLogger();
- collector = new PropertyEditorCollector(initializer, logger);
- }
-
- @Test(expected = NullPointerException.class)
- public void testGetPropertyEditorNull() {
- collector.getPropertyEditor(null, null);
- }
-
- @Test
- public void testGetPropertyEditorExisting() {
- assertEquals(0, collector.editors().size());
- collector.getPropertyEditor("editor", "type");
- assertEquals(1, collector.editors().size());
- logger.reset();
- String editor = collector.getPropertyEditor("editor", "type");
- assertTrue(logger.records().isEmpty());
- assertEquals("type", editor);
- assertEquals(1, collector.editors().size());
- }
-
- @Test
- public void testGetPropertyEditorNew() {
- assertEquals(0, collector.editors().size());
- logger.reset();
- assertEquals("type", collector.getPropertyEditor("editor", "type"));
- assertEquals(1, collector.editors().size());
- }
-
- @Test
- public void testPropertyEditorsEmpty() {
- Map editors = collector.editors();
- assertEquals(0, editors.size());
- }
-
- @Test
- public void testPropertyEditorsOne() {
- collector.getPropertyEditor("editor", "type");
- Map editors = collector.editors();
- assertEquals(1, editors.size());
- assertTrue(editors.containsKey("editor"));
- }
-
- @Test
- public void testPropertyEditorsMore() {
- collector.getPropertyEditor("editor1", "type1");
- collector.getPropertyEditor("editor2", "type2");
- Map editors = collector.editors();
- assertEquals(2, editors.size());
- assertTrue(editors.containsKey("editor1"));
- assertTrue(editors.containsKey("editor2"));
- }
-
- @Test(expected = NullPointerException.class)
- public void testRemovePropertyEditorNull() {
- collector.removePropertyEditor(null);
- }
-
- @Test
- public void testRemovePropertyEditorWhenEmpty() {
- collector.removePropertyEditor("provider1");
- assertEquals(1, logger.records().size());
- assertEquals("Removing provider1\n", logger.getFileContent());
- }
-
- @Test
- public void testRemovePropertyEditorWhenInNotOnePropertyEditor() {
- collector.getPropertyEditor("editor1", "type1");
- logger.reset();
- collector.removePropertyEditor("provider2");
- assertEquals(1, logger.records().size());
- }
-
- @Test
- public void testRemovePropertyEditorWhenInOnePropertyEditor() {
- collector.getPropertyEditor("editor1", "type1");
- logger.reset();
- collector.removePropertyEditor("provider1");
- assertEquals(1, logger.records().size());
- }
-
- @Test
- public void testRemovePropertyEditorWhenInTwoPropertyEditors() {
- collector.getPropertyEditor("editor1", "type1");
- collector.getPropertyEditor("editor2", "type2");
- logger.reset();
- collector.removePropertyEditor("provider1");
- assertEquals(1, logger.records().size());
- }
-
- @Test
- public void testRemovePropertyEditorWhenInSomePropertyEditors() {
- collector.getPropertyEditor("editor1", "type1");
- collector.getPropertyEditor("editor2", "type2");
- collector.getPropertyEditor("editor3", "type3");
- logger.reset();
- collector.removePropertyEditor("provider2");
- assertEquals(1, logger.records().size());
- }
-
- @Test
- public void testToStringEmpty() {
- collector.toString();
- }
-
- @Test
- public void testToStringNonExistingPropertyEditor() {
- collector.getPropertyEditor("nonExistingPropertyEditor", null);
- collector.toString();
- }
-
- @Test
- public void testToStringExistingPropertyEditor() {
- collector.getPropertyEditor("editor1", null);
- collector.toString();
- }
-
- @Test
- public void testToStringMoreExistingPropertyEditors() {
- collector.getPropertyEditor("editor1", null);
- collector.getPropertyEditor("editor2", null);
- collector.toString();
- }
-}
\ No newline at end of file
diff --git a/subprojects/griffon-core/src/main/java/griffon/core/Configuration.java b/subprojects/griffon-core/src/main/java/griffon/core/Configuration.java
index e97d6966bff..709b89d6c0d 100644
--- a/subprojects/griffon-core/src/main/java/griffon/core/Configuration.java
+++ b/subprojects/griffon-core/src/main/java/griffon/core/Configuration.java
@@ -19,6 +19,7 @@
import javax.annotation.Nonnull;
import javax.annotation.Nullable;
+import javax.application.converter.ConverterRegistry;
import java.util.Map;
import java.util.Properties;
import java.util.ResourceBundle;
@@ -27,14 +28,9 @@
* @author Andres Almiray
* @since 2.0.0
*/
-public interface Configuration {
- /**
- * Searches for the key in this configuration.
- *
- * @param key the key to search
- * @return true if the context (or its parent) contains the given key, false otherwise
- */
- boolean containsKey(@Nonnull String key);
+public interface Configuration extends javax.application.configuration.Configuration {
+ @Nonnull
+ ConverterRegistry getConverterRegistry();
@Nonnull
Map asFlatMap();
@@ -45,35 +41,16 @@ public interface Configuration {
@Nonnull
Properties asProperties();
- /**
- * Returns the value associated with the given key.
- *
- * @param key the key to search
- * @return the value associated with the key or null< if not found.
- */
- @Nullable
- Object get(@Nonnull String key);
-
- /**
- * Returns the value associated with the given key.
- *
- * @param key the key to search
- * @param defaultValue the value to be returned if the key was not found
- * @param the type of the value
- * @return returns the value associated with the key, defaultValue if the key was not found
- */
- @Nullable
- T get(@Nonnull String key, @Nullable T defaultValue);
-
/**
* Returns the value associated with the given key.
* Convenience method to use in Groovy aware environments.
*
* @param key the key to search
+ *
* @return the value associated with the key or null< if not found.
*/
@Nullable
- Object getAt(@Nonnull String key);
+ T getAt(@Nonnull String key);
/**
* Returns the value associated with the given key.
@@ -81,191 +58,9 @@ public interface Configuration {
* @param key the key to search
* @param defaultValue the value to be returned if the key was not found
* @param the type of the value
+ *
* @return returns the value associated with the key, defaultValue if the key was not found
*/
@Nullable
T getAt(@Nonnull String key, @Nullable T defaultValue);
-
- /**
- * Finds a value associated with the given key. The value is
- * converted to a boolean if found.
- *
- * @param key the key to search
- */
- boolean getAsBoolean(@Nonnull String key);
-
- /**
- * Finds a value associated with the given key. The value is
- * converted to a boolean if found. If not found then the
- * supplied defaultValue will be returned.
- *
- * @param key the key to search
- * @param defaultValue the value to be returned if the key is not found
- */
- boolean getAsBoolean(@Nonnull String key, boolean defaultValue);
-
- /**
- * Finds a value associated with the given key. The value is
- * converted to an int if found.
- *
- * @param key the key to search
- */
- int getAsInt(@Nonnull String key);
-
- /**
- * Finds a value associated with the given key. The value is
- * converted to an int if found. If not found then the
- * supplied defaultValue will be returned.
- *
- * @param key the key to search
- * @param defaultValue the value to be returned if the key is not found
- */
- int getAsInt(@Nonnull String key, int defaultValue);
-
- /**
- * Finds a value associated with the given key. The value is
- * converted to a long if found.
- *
- * @param key the key to search
- */
- long getAsLong(@Nonnull String key);
-
- /**
- * Finds a value associated with the given key. The value is
- * converted to a long if found. If not found then the
- * supplied defaultValue will be returned.
- *
- * @param key the key to search
- * @param defaultValue the value to be returned if the key is not found
- */
- long getAsLong(@Nonnull String key, long defaultValue);
-
- /**
- * Finds a value associated with the given key. The value is
- * converted to a float if found.
- *
- * @param key the key to search
- */
- float getAsFloat(@Nonnull String key);
-
- /**
- * Finds a value associated with the given key. The value is
- * converted to a float if found. If not found then the
- * supplied defaultValue will be returned.
- *
- * @param key the key to search
- * @param defaultValue the value to be returned if the key is not found
- */
- float getAsFloat(@Nonnull String key, float defaultValue);
-
- /**
- * Finds a value associated with the given key. The value is
- * converted to a double if found.
- *
- * @param key the key to search
- */
- double getAsDouble(@Nonnull String key);
-
- /**
- * Finds a value associated with the given key. The value is
- * converted to a double if found. If not found then the
- * supplied defaultValue will be returned.
- *
- * @param key the key to search
- * @param defaultValue the value to be returned if the key is not found
- */
- double getAsDouble(@Nonnull String key, double defaultValue);
-
- /**
- * Finds a value associated with the given key. The value is
- * converted to a String if found.
- *
- * @param key the key to search
- */
- @Nullable
- String getAsString(@Nonnull String key);
-
- /**
- * Finds a value associated with the given key. The value is
- * converted to a String if found. If not found then the
- * supplied defaultValue will be returned.
- *
- * @param key the key to search
- * @param defaultValue the value to be returned if the key is not found
- */
- @Nullable
- String getAsString(@Nonnull String key, @Nullable String defaultValue);
-
- /**
- * /**
- * Finds a value associated with the given key. The value is
- * blindly cast to type T if found.
- *
- * @param key the key to search
- * @since 2.5.0
- */
- @Nullable
- T getAs(@Nonnull String key);
-
- /**
- * Finds a value associated with the given key. The value is
- * blindly cast to type T if found. If not found then the
- * supplied defaultValue will be returned.
- *
- * @param key the key to search
- * @param defaultValue the value to be returned if the key is not found
- * @since 2.5.0
- */
- @Nullable
- T getAs(@Nonnull String key, @Nullable T defaultValue);
-
- /**
- * Finds a value associated with the given key. The value is
- * converted to type T if found using a {@code PropertyEditor}.
- *
- * @param key the key to search
- * @param type the type to be returned
- * @since 2.5.0
- */
- @Nullable
- T getConverted(@Nonnull String key, @Nonnull Class type);
-
- /**
- * Finds a value associated with the given key. The value is
- * converted to type T if found using a {@code PropertyEditor}.
- *
- * @param key the key to search
- * @param type the type to be returned
- * @param format format used to convert the value
- * @since 2.11.0
- */
- @Nullable
- T getConverted(@Nonnull String key, @Nonnull Class type, @Nonnull String format);
-
- /**
- * Finds a value associated with the given key. The value is
- * converted to type T if found using a {@code PropertyEditor}.
- * If not found then the supplied defaultValue will be returned.
- *
- * @param key the key to search
- * @param type the type to be returned
- * @param defaultValue the value to be returned if the key is not found
- * @since 2.5.0
- */
- @Nullable
- T getConverted(@Nonnull String key, @Nonnull Class type, @Nullable T defaultValue);
-
- /**
- * Finds a value associated with the given key. The value is
- * converted to type T if found using a {@code PropertyEditor}.
- * If not found then the supplied defaultValue will be returned.
- *
- * @param key the key to search
- * @param type the type to be returned
- * @param format format used to convert the value
- * @param defaultValue the value to be returned if the key is not found
- * @since 2.11.0
- */
- @Nullable
- T getConverted(@Nonnull String key, @Nonnull Class type, @Nonnull String format, @Nullable T defaultValue);
}
diff --git a/subprojects/griffon-core/src/main/java/griffon/core/Context.java b/subprojects/griffon-core/src/main/java/griffon/core/Context.java
index 2cf26779f3d..b6c8f802a68 100644
--- a/subprojects/griffon-core/src/main/java/griffon/core/Context.java
+++ b/subprojects/griffon-core/src/main/java/griffon/core/Context.java
@@ -65,7 +65,7 @@ public interface Context {
/**
* Removes a key from this context. Does not affect the context's hierarchy. The value is
- * converted to type T if found using a {@code PropertyEditor}.
+ * converted to type T if found using a {@code Converter}.
*
* @param key the key to be removed
* @param type the type to be returned
@@ -311,7 +311,7 @@ public interface Context {
/**
* /**
* Finds a value associated with the given key. The value is
- * converted to type T if found using a {@code PropertyEditor}.
+ * converted to type T if found using a {@code Converter}.
*
* @param key the key to search
* @param type the type to be returned
@@ -322,7 +322,7 @@ public interface Context {
/**
* Finds a value associated with the given key. The value is
- * converted to type T if found using a {@code PropertyEditor}.
+ * converted to type T if found using a {@code Converter}.
* If not found then the supplied defaultValue will be returned.
*
* @param key the key to search
diff --git a/subprojects/griffon-core/src/main/java/griffon/core/MutableConfiguration.java b/subprojects/griffon-core/src/main/java/griffon/core/MutableConfiguration.java
index 5ca04b99dbf..961ebca24a2 100644
--- a/subprojects/griffon-core/src/main/java/griffon/core/MutableConfiguration.java
+++ b/subprojects/griffon-core/src/main/java/griffon/core/MutableConfiguration.java
@@ -37,29 +37,21 @@ public interface MutableConfiguration extends Configuration {
* Removes a key from this configuration.
*
* @param key the key to be removed
- * @return the value associated with the key or null if there wasn't any value.
- */
- @Nullable
- Object remove(@Nonnull String key);
-
- /**
- * Removes a key from this configuration.
- * Blindly casts the returned value.
*
- * @param key the key to be removed
* @return the value associated with the key or null if there wasn't any value.
- * @since 2.5.0
*/
@Nullable
- T removeAs(@Nonnull String key);
+ T remove(@Nonnull String key);
/**
* Removes a key from this configuration. The value is
- * converted to type T if found using a {@code PropertyEditor}.
+ * converted to type T if found using a {@code Converter}.
*
* @param key the key to be removed
* @param type the type to be returned
+ *
* @return the value associated with the key or null if there wasn't any value.
+ *
* @since 2.5.0
*/
@Nullable
diff --git a/subprojects/griffon-core/src/main/java/griffon/core/configuration/Configured.java b/subprojects/griffon-core/src/main/java/griffon/core/configuration/Configured.java
deleted file mode 100644
index e89755b1f6f..00000000000
--- a/subprojects/griffon-core/src/main/java/griffon/core/configuration/Configured.java
+++ /dev/null
@@ -1,46 +0,0 @@
-/*
- * SPDX-License-Identifier: Apache-2.0
- *
- * Copyright 2008-2018 the original author or authors.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package griffon.core.configuration;
-
-import griffon.core.editors.PropertyEditorResolver;
-
-import java.beans.PropertyEditor;
-import java.lang.annotation.ElementType;
-import java.lang.annotation.Retention;
-import java.lang.annotation.RetentionPolicy;
-import java.lang.annotation.Target;
-
-/**
- * @author Andres Almiray
- * @since 2.11.0
- */
-@Retention(RetentionPolicy.RUNTIME)
-@Target({ElementType.FIELD, ElementType.METHOD})
-public @interface Configured {
- String NO_VALUE = "!!<<== NO_VALUE ==>>!!";
-
- String configuration() default "";
-
- String value();
-
- String defaultValue() default NO_VALUE;
-
- String format() default "";
-
- Class extends PropertyEditor> editor() default PropertyEditorResolver.NoopPropertyEditor.class;
-}
\ No newline at end of file
diff --git a/subprojects/griffon-core/src/main/java/griffon/core/editors/AbstractPropertyEditor.java b/subprojects/griffon-core/src/main/java/griffon/core/editors/AbstractPropertyEditor.java
deleted file mode 100644
index 6e405f25372..00000000000
--- a/subprojects/griffon-core/src/main/java/griffon/core/editors/AbstractPropertyEditor.java
+++ /dev/null
@@ -1,132 +0,0 @@
-/*
- * SPDX-License-Identifier: Apache-2.0
- *
- * Copyright 2008-2018 the original author or authors.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package griffon.core.editors;
-
-import griffon.core.formatters.Formatter;
-import griffon.core.formatters.ParseException;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import javax.annotation.Nullable;
-import java.beans.PropertyEditorSupport;
-
-import static griffon.core.GriffonExceptionHandler.sanitize;
-import static griffon.util.GriffonNameUtils.isBlank;
-
-/**
- * @author Andres Almiray
- * @since 2.0.0
- */
-public abstract class AbstractPropertyEditor extends PropertyEditorSupport implements ExtendedPropertyEditor {
- private static final Logger LOG = LoggerFactory.getLogger(AbstractPropertyEditor.class);
-
- private String format;
-
- @Nullable
- @Override
- public String getFormat() {
- return format;
- }
-
- @Override
- public void setFormat(@Nullable String format) {
- this.format = format;
- }
-
- @Override
- public String getAsText() {
- return isBlank(getFormat()) ? getAsTextInternal() : getFormattedValue();
- }
-
- @Override
- public void setAsText(String str) throws IllegalArgumentException {
- if (isBlank(getFormat())) {
- setAsTextInternal(str);
- } else {
- setFormattedValue(str);
- }
- }
-
- @Override
- public void setValue(Object value) {
- if (value instanceof CharSequence) {
- setFormattedValue(String.valueOf(value));
- } else {
- setValueInternal(value);
- }
- }
-
- protected void setValueInternal(Object value) {
- super.setValue(value);
- }
-
- protected Object getValueInternal() {
- return super.getValue();
- }
-
- protected void setAsTextInternal(String str) throws IllegalArgumentException {
- setValueInternal(str);
- }
-
- protected String getAsTextInternal() {
- return super.getAsText();
- }
-
- @Override
- @SuppressWarnings({"unchecked", "rawtypes"})
- public String getFormattedValue() {
- Object value = getValueInternal();
- Formatter formatter = resolveFormatter();
- if (formatter != null) {
- return formatter.format(value);
- }
- return value != null ? value.toString() : null;
- }
-
- @Override
- @SuppressWarnings("ThrowableResultOfMethodCallIgnored")
- public void setFormattedValue(String value) {
- Formatter> formatter = resolveFormatter();
- if (formatter != null) {
- try {
- setValueInternal(formatter.parse(value));
- } catch (ParseException e) {
- e = (ParseException) sanitize(e);
- if (LOG.isTraceEnabled()) {
- LOG.trace("Cannot parse value " + value, e);
- }
-
- throw new ValueConversionException(value, e);
- }
- } else {
- setValueInternal(value);
- }
- }
-
- protected Formatter> resolveFormatter() {
- return null;
- }
-
- protected ValueConversionException illegalValue(Object value, Class> klass) {
- throw new ValueConversionException(value, klass);
- }
-
- protected ValueConversionException illegalValue(Object value, Class> klass, Exception e) {
- throw new ValueConversionException(value, klass, e);
- }
-}
diff --git a/subprojects/griffon-core/src/main/java/griffon/core/editors/BigDecimalPropertyEditor.java b/subprojects/griffon-core/src/main/java/griffon/core/editors/BigDecimalPropertyEditor.java
deleted file mode 100644
index 08144ac7d51..00000000000
--- a/subprojects/griffon-core/src/main/java/griffon/core/editors/BigDecimalPropertyEditor.java
+++ /dev/null
@@ -1,68 +0,0 @@
-/*
- * SPDX-License-Identifier: Apache-2.0
- *
- * Copyright 2008-2018 the original author or authors.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package griffon.core.editors;
-
-import griffon.core.formatters.BigDecimalFormatter;
-import griffon.core.formatters.Formatter;
-
-import java.math.BigDecimal;
-import java.math.BigInteger;
-
-import static griffon.util.GriffonNameUtils.isBlank;
-
-/**
- * @author Andres Almiray
- * @since 2.0.0
- */
-public class BigDecimalPropertyEditor extends AbstractPropertyEditor {
- @Override
- protected void setValueInternal(Object value) {
- if (null == value) {
- super.setValueInternal(null);
- } else if (value instanceof CharSequence) {
- handleAsString(String.valueOf(value));
- } else if (value instanceof Number) {
- handleAsNumber((Number) value);
- } else {
- throw illegalValue(value, BigDecimal.class);
- }
- }
-
- protected void handleAsString(String str) {
- try {
- super.setValueInternal(isBlank(str) ? null : new BigDecimal(str));
- } catch (NumberFormatException e) {
- throw illegalValue(str, BigDecimal.class, e);
- }
- }
-
- protected void handleAsNumber(Number number) {
- if (number instanceof BigInteger) {
- super.setValueInternal(new BigDecimal((BigInteger) number));
- } else if (number instanceof BigDecimal) {
- super.setValueInternal(number);
- } else {
- super.setValueInternal(number.longValue());
- }
- }
-
- @Override
- protected Formatter resolveFormatter() {
- return isBlank(getFormat()) ? null : new BigDecimalFormatter(getFormat());
- }
-}
diff --git a/subprojects/griffon-core/src/main/java/griffon/core/editors/BigIntegerPropertyEditor.java b/subprojects/griffon-core/src/main/java/griffon/core/editors/BigIntegerPropertyEditor.java
deleted file mode 100644
index ec0b5cf8879..00000000000
--- a/subprojects/griffon-core/src/main/java/griffon/core/editors/BigIntegerPropertyEditor.java
+++ /dev/null
@@ -1,68 +0,0 @@
-/*
- * SPDX-License-Identifier: Apache-2.0
- *
- * Copyright 2008-2018 the original author or authors.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package griffon.core.editors;
-
-import griffon.core.formatters.BigIntegerFormatter;
-import griffon.core.formatters.Formatter;
-
-import java.math.BigDecimal;
-import java.math.BigInteger;
-
-import static griffon.util.GriffonNameUtils.isBlank;
-
-/**
- * @author Andres Almiray
- * @since 2.0.0
- */
-public class BigIntegerPropertyEditor extends AbstractPropertyEditor {
- @Override
- protected void setValueInternal(Object value) {
- if (null == value) {
- super.setValueInternal(null);
- } else if (value instanceof CharSequence) {
- handleAsString(String.valueOf(value));
- } else if (value instanceof Number) {
- handleAsNumber((Number) value);
- } else {
- throw illegalValue(value, BigInteger.class);
- }
- }
-
- protected void handleAsString(String str) {
- try {
- super.setValueInternal(isBlank(str) ? null : new BigInteger(str));
- } catch (NumberFormatException e) {
- throw illegalValue(str, BigInteger.class, e);
- }
- }
-
- protected void handleAsNumber(Number number) {
- if (number instanceof BigDecimal) {
- super.setValueInternal(((BigDecimal) number).toBigInteger());
- } else if (number instanceof BigInteger) {
- super.setValueInternal(number);
- } else {
- super.setValueInternal(number.longValue());
- }
- }
-
- @Override
- protected Formatter resolveFormatter() {
- return isBlank(getFormat()) ? null : new BigIntegerFormatter(getFormat());
- }
-}
diff --git a/subprojects/griffon-core/src/main/java/griffon/core/editors/BooleanPropertyEditor.java b/subprojects/griffon-core/src/main/java/griffon/core/editors/BooleanPropertyEditor.java
deleted file mode 100644
index 7ff1afc43f2..00000000000
--- a/subprojects/griffon-core/src/main/java/griffon/core/editors/BooleanPropertyEditor.java
+++ /dev/null
@@ -1,55 +0,0 @@
-/*
- * SPDX-License-Identifier: Apache-2.0
- *
- * Copyright 2008-2018 the original author or authors.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package griffon.core.editors;
-
-import griffon.core.formatters.BooleanFormatter;
-import griffon.core.formatters.Formatter;
-
-import static griffon.util.GriffonNameUtils.isBlank;
-
-/**
- * @author Andres Almiray
- * @since 2.0.0
- */
-public class BooleanPropertyEditor extends AbstractPropertyEditor {
- @Override
- protected void setValueInternal(Object value) {
- if (null == value) {
- super.setValueInternal(null);
- } else if (value instanceof CharSequence) {
- handleAsString(String.valueOf(value));
- } else if (value instanceof Boolean) {
- handleAsBoolean((Boolean) value);
- } else {
- throw illegalValue(value, Boolean.class);
- }
- }
-
- protected void handleAsString(String str) {
- super.setValueInternal(isBlank(str) ? null : Boolean.parseBoolean(str));
- }
-
- protected void handleAsBoolean(Boolean bool) {
- super.setValueInternal(bool);
- }
-
- @Override
- protected Formatter resolveFormatter() {
- return isBlank(getFormat()) ? null : BooleanFormatter.getInstance(getFormat());
- }
-}
diff --git a/subprojects/griffon-core/src/main/java/griffon/core/editors/BytePropertyEditor.java b/subprojects/griffon-core/src/main/java/griffon/core/editors/BytePropertyEditor.java
deleted file mode 100644
index 76c63e5008c..00000000000
--- a/subprojects/griffon-core/src/main/java/griffon/core/editors/BytePropertyEditor.java
+++ /dev/null
@@ -1,59 +0,0 @@
-/*
- * SPDX-License-Identifier: Apache-2.0
- *
- * Copyright 2008-2018 the original author or authors.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package griffon.core.editors;
-
-import griffon.core.formatters.ByteFormatter;
-import griffon.core.formatters.Formatter;
-
-import static griffon.util.GriffonNameUtils.isBlank;
-
-/**
- * @author Andres Almiray
- * @since 2.0.0
- */
-public class BytePropertyEditor extends AbstractPropertyEditor {
- @Override
- protected void setValueInternal(Object value) {
- if (null == value) {
- super.setValueInternal(null);
- } else if (value instanceof CharSequence) {
- handleAsString(String.valueOf(value));
- } else if (value instanceof Number) {
- handleAsNumber((Number) value);
- } else {
- throw illegalValue(value, Byte.class);
- }
- }
-
- protected void handleAsString(String str) {
- try {
- super.setValueInternal(isBlank(str) ? null : Byte.parseByte(str));
- } catch (NumberFormatException e) {
- throw illegalValue(str, Byte.class, e);
- }
- }
-
- protected void handleAsNumber(Number number) {
- super.setValueInternal(number.byteValue());
- }
-
- @Override
- protected Formatter resolveFormatter() {
- return isBlank(getFormat()) ? null : new ByteFormatter(getFormat());
- }
-}
diff --git a/subprojects/griffon-core/src/main/java/griffon/core/editors/CalendarPropertyEditor.java b/subprojects/griffon-core/src/main/java/griffon/core/editors/CalendarPropertyEditor.java
deleted file mode 100644
index 31e8391b404..00000000000
--- a/subprojects/griffon-core/src/main/java/griffon/core/editors/CalendarPropertyEditor.java
+++ /dev/null
@@ -1,83 +0,0 @@
-/*
- * SPDX-License-Identifier: Apache-2.0
- *
- * Copyright 2008-2018 the original author or authors.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package griffon.core.editors;
-
-import griffon.core.formatters.CalendarFormatter;
-import griffon.core.formatters.Formatter;
-
-import java.text.ParseException;
-import java.text.SimpleDateFormat;
-import java.util.Calendar;
-import java.util.Date;
-
-import static griffon.util.GriffonNameUtils.isBlank;
-
-/**
- * @author Andres Almiray
- * @since 2.0.0
- */
-public class CalendarPropertyEditor extends AbstractPropertyEditor {
- @Override
- protected void setValueInternal(Object value) {
- if (null == value) {
- super.setValueInternal(null);
- } else if (value instanceof CharSequence) {
- handleAsString(String.valueOf(value));
- } else if (value instanceof Calendar) {
- super.setValueInternal(value);
- } else if (value instanceof Date) {
- Calendar c = Calendar.getInstance();
- c.setTime((Date) value);
- super.setValueInternal(c);
- } else if (value instanceof Number) {
- Calendar c = Calendar.getInstance();
- c.setTime(new Date(((Number) value).longValue()));
- super.setValueInternal(c);
- } else {
- throw illegalValue(value, Calendar.class);
- }
- }
-
- protected void handleAsString(String str) {
- if (isBlank(str)) {
- super.setValueInternal(null);
- return;
- }
-
- Calendar c = Calendar.getInstance();
- try {
- c.setTime(new Date(Long.parseLong(str)));
- super.setValueInternal(c);
- return;
- } catch (NumberFormatException nfe) {
- // ignore, let's try parsing the date in a locale specific format
- }
-
- try {
- c.setTime(new SimpleDateFormat().parse(str));
- super.setValueInternal(c);
- } catch (ParseException e) {
- throw illegalValue(str, Calendar.class, e);
- }
- }
-
- @Override
- protected Formatter resolveFormatter() {
- return isBlank(getFormat()) ? null : new CalendarFormatter(getFormat());
- }
-}
diff --git a/subprojects/griffon-core/src/main/java/griffon/core/editors/DatePropertyEditor.java b/subprojects/griffon-core/src/main/java/griffon/core/editors/DatePropertyEditor.java
deleted file mode 100644
index d317559f003..00000000000
--- a/subprojects/griffon-core/src/main/java/griffon/core/editors/DatePropertyEditor.java
+++ /dev/null
@@ -1,76 +0,0 @@
-/*
- * SPDX-License-Identifier: Apache-2.0
- *
- * Copyright 2008-2018 the original author or authors.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package griffon.core.editors;
-
-import griffon.core.formatters.DateFormatter;
-import griffon.core.formatters.Formatter;
-
-import java.text.ParseException;
-import java.text.SimpleDateFormat;
-import java.util.Calendar;
-import java.util.Date;
-
-import static griffon.util.GriffonNameUtils.isBlank;
-
-/**
- * @author Andres Almiray
- * @since 2.0.0
- */
-public class DatePropertyEditor extends AbstractPropertyEditor {
- @Override
- protected void setValueInternal(Object value) {
- if (null == value) {
- super.setValueInternal(null);
- } else if (value instanceof CharSequence) {
- handleAsString(String.valueOf(value));
- } else if (value instanceof Date) {
- super.setValueInternal(value);
- } else if (value instanceof Calendar) {
- super.setValueInternal(((Calendar) value).getTime());
- } else if (value instanceof Number) {
- super.setValueInternal(new Date(((Number) value).longValue()));
- } else {
- throw illegalValue(value, Date.class);
- }
- }
-
- protected void handleAsString(String str) {
- if (isBlank(str)) {
- super.setValueInternal(null);
- return;
- }
-
- try {
- super.setValueInternal(new Date(Long.parseLong(str)));
- return;
- } catch (NumberFormatException nfe) {
- // ignore, let's try parsing the date in a locale specific format
- }
-
- try {
- super.setValueInternal(new SimpleDateFormat().parse(str));
- } catch (ParseException e) {
- throw illegalValue(str, Date.class, e);
- }
- }
-
- @Override
- protected Formatter resolveFormatter() {
- return isBlank(getFormat()) ? null : new DateFormatter(getFormat());
- }
-}
diff --git a/subprojects/griffon-core/src/main/java/griffon/core/editors/DoublePropertyEditor.java b/subprojects/griffon-core/src/main/java/griffon/core/editors/DoublePropertyEditor.java
deleted file mode 100644
index ec8429e6c41..00000000000
--- a/subprojects/griffon-core/src/main/java/griffon/core/editors/DoublePropertyEditor.java
+++ /dev/null
@@ -1,59 +0,0 @@
-/*
- * SPDX-License-Identifier: Apache-2.0
- *
- * Copyright 2008-2018 the original author or authors.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package griffon.core.editors;
-
-import griffon.core.formatters.DoubleFormatter;
-import griffon.core.formatters.Formatter;
-
-import static griffon.util.GriffonNameUtils.isBlank;
-
-/**
- * @author Andres Almiray
- * @since 2.0.0
- */
-public class DoublePropertyEditor extends AbstractPropertyEditor {
- @Override
- protected void setValueInternal(Object value) {
- if (null == value) {
- super.setValueInternal(null);
- } else if (value instanceof CharSequence) {
- handleAsString(String.valueOf(value));
- } else if (value instanceof Number) {
- handleAsNumber((Number) value);
- } else {
- throw illegalValue(value, Double.class);
- }
- }
-
- protected void handleAsString(String str) {
- try {
- super.setValueInternal(isBlank(str) ? null : Double.parseDouble(str));
- } catch (NumberFormatException e) {
- throw illegalValue(str, Double.class, e);
- }
- }
-
- protected void handleAsNumber(Number number) {
- super.setValueInternal(number.doubleValue());
- }
-
- @Override
- protected Formatter resolveFormatter() {
- return isBlank(getFormat()) ? null : new DoubleFormatter(getFormat());
- }
-}
diff --git a/subprojects/griffon-core/src/main/java/griffon/core/editors/EnumPropertyEditor.java b/subprojects/griffon-core/src/main/java/griffon/core/editors/EnumPropertyEditor.java
deleted file mode 100644
index 1dfc85f340f..00000000000
--- a/subprojects/griffon-core/src/main/java/griffon/core/editors/EnumPropertyEditor.java
+++ /dev/null
@@ -1,64 +0,0 @@
-/*
- * SPDX-License-Identifier: Apache-2.0
- *
- * Copyright 2008-2018 the original author or authors.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package griffon.core.editors;
-
-import static griffon.util.GriffonNameUtils.isBlank;
-
-/**
- * @author Andres Almiray
- * @since 2.0.0
- */
-@SuppressWarnings("rawtypes")
-public class EnumPropertyEditor extends AbstractPropertyEditor {
- private Class extends Enum> enumType;
-
- public Class extends Enum> getEnumType() {
- return enumType;
- }
-
- public void setEnumType(Class extends Enum> enumType) {
- this.enumType = enumType;
- }
-
- @Override
- protected void setValueInternal(Object value) {
- if (null == value) {
- super.setValueInternal(null);
- } else if (value instanceof CharSequence) {
- handleAsString(String.valueOf(value));
- } else if (value instanceof Enum) {
- handleAsString(value.toString());
- } else {
- throw illegalValue(value, enumType);
- }
- }
-
- @SuppressWarnings("unchecked")
- protected void handleAsString(String str) {
- if (isBlank(str)) {
- super.setValueInternal(null);
- return;
- }
-
- try {
- super.setValueInternal(Enum.valueOf(enumType, str));
- } catch (Exception e) {
- throw illegalValue(str, enumType, e);
- }
- }
-}
diff --git a/subprojects/griffon-core/src/main/java/griffon/core/editors/ExtendedCalendarPropertyEditor.java b/subprojects/griffon-core/src/main/java/griffon/core/editors/ExtendedCalendarPropertyEditor.java
deleted file mode 100644
index aa98e6aa725..00000000000
--- a/subprojects/griffon-core/src/main/java/griffon/core/editors/ExtendedCalendarPropertyEditor.java
+++ /dev/null
@@ -1,64 +0,0 @@
-/*
- * SPDX-License-Identifier: Apache-2.0
- *
- * Copyright 2008-2018 the original author or authors.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package griffon.core.editors;
-
-import java.time.LocalDate;
-import java.time.LocalDateTime;
-import java.time.LocalTime;
-import java.util.Calendar;
-import java.util.Date;
-
-/**
- * @author Andres Almiray
- * @since 2.4.0
- */
-public class ExtendedCalendarPropertyEditor extends CalendarPropertyEditor {
- @Override
- protected void setValueInternal(Object value) {
- if (value instanceof LocalDate) {
- handleAsLocalDate((LocalDate) value);
- } else if (value instanceof LocalDateTime) {
- handleAsLocalDateTime(((LocalDateTime) value));
- } else {
- super.setValueInternal(value);
- }
- }
-
- protected void handleAsLocalDate(LocalDate value) {
- Calendar c = Calendar.getInstance();
- c.setTime(new Date(value.toEpochDay()));
- super.setValueInternal(c);
- }
-
- protected void handleAsLocalDateTime(LocalDateTime value) {
- LocalDate localDate = value.toLocalDate();
- LocalTime localTime = value.toLocalTime();
-
- Calendar c = Calendar.getInstance();
- c.set(
- localDate.getYear(),
- localDate.getMonthValue() - 1,
- localDate.getDayOfMonth(),
- localTime.getHour(),
- localTime.getMinute(),
- localTime.getSecond()
- );
-
- super.setValueInternal(c);
- }
-}
\ No newline at end of file
diff --git a/subprojects/griffon-core/src/main/java/griffon/core/editors/ExtendedPropertyEditor.java b/subprojects/griffon-core/src/main/java/griffon/core/editors/ExtendedPropertyEditor.java
deleted file mode 100644
index 07c096d8df7..00000000000
--- a/subprojects/griffon-core/src/main/java/griffon/core/editors/ExtendedPropertyEditor.java
+++ /dev/null
@@ -1,34 +0,0 @@
-/*
- * SPDX-License-Identifier: Apache-2.0
- *
- * Copyright 2008-2018 the original author or authors.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package griffon.core.editors;
-
-import java.beans.PropertyEditor;
-
-/**
- * @author Andres Almiray
- * @since 2.0.0
- */
-public interface ExtendedPropertyEditor extends PropertyEditor {
- void setFormat(String format);
-
- String getFormat();
-
- String getFormattedValue();
-
- void setFormattedValue(String value);
-}
diff --git a/subprojects/griffon-core/src/main/java/griffon/core/editors/FilePropertyEditor.java b/subprojects/griffon-core/src/main/java/griffon/core/editors/FilePropertyEditor.java
deleted file mode 100644
index 26935f9d003..00000000000
--- a/subprojects/griffon-core/src/main/java/griffon/core/editors/FilePropertyEditor.java
+++ /dev/null
@@ -1,49 +0,0 @@
-/*
- * SPDX-License-Identifier: Apache-2.0
- *
- * Copyright 2008-2018 the original author or authors.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package griffon.core.editors;
-
-import java.io.File;
-
-import static griffon.util.GriffonNameUtils.isBlank;
-
-/**
- * @author Andres Almiray
- * @since 2.0.0
- */
-public class FilePropertyEditor extends AbstractPropertyEditor {
- @Override
- protected void setValueInternal(Object value) {
- if (null == value) {
- super.setValueInternal(null);
- } else if (value instanceof CharSequence) {
- handleAsString(String.valueOf(value));
- } else if (value instanceof File) {
- super.setValueInternal(value);
- } else {
- throw illegalValue(value, File.class);
- }
- }
-
- protected void handleAsString(String str) {
- if (isBlank(str)) {
- super.setValueInternal(null);
- return;
- }
- super.setValueInternal(new File(str));
- }
-}
diff --git a/subprojects/griffon-core/src/main/java/griffon/core/editors/FloatPropertyEditor.java b/subprojects/griffon-core/src/main/java/griffon/core/editors/FloatPropertyEditor.java
deleted file mode 100644
index 6551667a14f..00000000000
--- a/subprojects/griffon-core/src/main/java/griffon/core/editors/FloatPropertyEditor.java
+++ /dev/null
@@ -1,59 +0,0 @@
-/*
- * SPDX-License-Identifier: Apache-2.0
- *
- * Copyright 2008-2018 the original author or authors.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package griffon.core.editors;
-
-import griffon.core.formatters.FloatFormatter;
-import griffon.core.formatters.Formatter;
-
-import static griffon.util.GriffonNameUtils.isBlank;
-
-/**
- * @author Andres Almiray
- * @since 2.0.0
- */
-public class FloatPropertyEditor extends AbstractPropertyEditor {
- @Override
- protected void setValueInternal(Object value) {
- if (null == value) {
- super.setValueInternal(null);
- } else if (value instanceof CharSequence) {
- handleAsString(String.valueOf(value));
- } else if (value instanceof Number) {
- handleAsNumber((Number) value);
- } else {
- throw illegalValue(value, Float.class);
- }
- }
-
- protected void handleAsString(String str) {
- try {
- super.setValueInternal(isBlank(str) ? null : Float.parseFloat(str));
- } catch (NumberFormatException e) {
- throw illegalValue(str, Float.class, e);
- }
- }
-
- protected void handleAsNumber(Number number) {
- super.setValueInternal(number.floatValue());
- }
-
- @Override
- protected Formatter resolveFormatter() {
- return isBlank(getFormat()) ? null : new FloatFormatter(getFormat());
- }
-}
diff --git a/subprojects/griffon-core/src/main/java/griffon/core/editors/IntegerPropertyEditor.java b/subprojects/griffon-core/src/main/java/griffon/core/editors/IntegerPropertyEditor.java
deleted file mode 100644
index 27c1b639186..00000000000
--- a/subprojects/griffon-core/src/main/java/griffon/core/editors/IntegerPropertyEditor.java
+++ /dev/null
@@ -1,59 +0,0 @@
-/*
- * SPDX-License-Identifier: Apache-2.0
- *
- * Copyright 2008-2018 the original author or authors.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package griffon.core.editors;
-
-import griffon.core.formatters.Formatter;
-import griffon.core.formatters.IntegerFormatter;
-
-import static griffon.util.GriffonNameUtils.isBlank;
-
-/**
- * @author Andres Almiray
- * @since 2.0.0
- */
-public class IntegerPropertyEditor extends AbstractPropertyEditor {
- @Override
- protected void setValueInternal(Object value) {
- if (null == value) {
- super.setValueInternal(null);
- } else if (value instanceof CharSequence) {
- handleAsString(String.valueOf(value));
- } else if (value instanceof Number) {
- handleAsNumber((Number) value);
- } else {
- throw illegalValue(value, Integer.class);
- }
- }
-
- protected void handleAsString(String str) {
- try {
- super.setValueInternal(isBlank(str) ? null : Integer.parseInt(str));
- } catch (NumberFormatException e) {
- throw illegalValue(str, Integer.class, e);
- }
- }
-
- protected void handleAsNumber(Number number) {
- super.setValueInternal(number.intValue());
- }
-
- @Override
- protected Formatter resolveFormatter() {
- return isBlank(getFormat()) ? null : new IntegerFormatter(getFormat());
- }
-}
diff --git a/subprojects/griffon-core/src/main/java/griffon/core/editors/LocalDatePropertyEditor.java b/subprojects/griffon-core/src/main/java/griffon/core/editors/LocalDatePropertyEditor.java
deleted file mode 100644
index 31e1c3802d9..00000000000
--- a/subprojects/griffon-core/src/main/java/griffon/core/editors/LocalDatePropertyEditor.java
+++ /dev/null
@@ -1,150 +0,0 @@
-/*
- * SPDX-License-Identifier: Apache-2.0
- *
- * Copyright 2008-2018 the original author or authors.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package griffon.core.editors;
-
-import griffon.core.formatters.Formatter;
-import griffon.core.formatters.LocalDateFormatter;
-
-import java.time.LocalDate;
-import java.time.LocalDateTime;
-import java.time.format.DateTimeParseException;
-import java.util.ArrayList;
-import java.util.Calendar;
-import java.util.Date;
-import java.util.List;
-import java.util.Map;
-
-import static griffon.util.GriffonNameUtils.isBlank;
-import static java.time.LocalDate.ofEpochDay;
-
-/**
- * @author Andres Almiray
- * @since 2.4.0
- */
-public class LocalDatePropertyEditor extends AbstractPropertyEditor {
- @Override
- protected void setValueInternal(Object value) {
- if (null == value) {
- super.setValueInternal(null);
- } else if (value instanceof CharSequence) {
- handleAsString(String.valueOf(value));
- } else if (value instanceof LocalDate) {
- super.setValueInternal(value);
- } else if (value instanceof LocalDateTime) {
- super.setValueInternal(((LocalDateTime) value).toLocalDate());
- } else if (value instanceof Date) {
- super.setValueInternal(ofEpochDay(((Date) value).getTime()));
- } else if (value instanceof Calendar) {
- super.setValueInternal(ofEpochDay(((Calendar) value).getTime().getTime()));
- } else if (value instanceof Number) {
- super.setValueInternal(ofEpochDay(((Number) value).longValue()));
- } else if (value instanceof List) {
- handleAsList((List) value);
- } else if (value instanceof Map) {
- handleAsMap((Map) value);
- } else {
- throw illegalValue(value, LocalDate.class);
- }
- }
-
- protected void handleAsString(String str) {
- if (isBlank(str)) {
- super.setValueInternal(null);
- return;
- }
-
- try {
- super.setValueInternal(LocalDate.parse(str));
- } catch (DateTimeParseException dtpe) {
- throw illegalValue(str, LocalDate.class, dtpe);
- }
- }
-
- @Override
- protected Formatter resolveFormatter() {
- return isBlank(getFormat()) ? null : new LocalDateFormatter(getFormat());
- }
-
- protected void handleAsList(List> list) {
- if (list.isEmpty()) {
- super.setValueInternal(null);
- return;
- }
-
- List
*
* @author Andres Almiray
- * @see griffon.core.formatters.Formatter
+ * @see org.kordamp.jsr377.formatter.Formatter
* @since 2.0.0
*/
public class ColorFormatter extends AbstractFormatter {
@@ -113,7 +112,9 @@ public class ColorFormatter extends AbstractFormatter {
* Returns a {@code ColorFormatter} given a color pattern.
*
* @param pattern the input pattern. Must be one of the 4 supported color patterns.
+ *
* @return a {@code ColorPattern} instance
+ *
* @throws IllegalArgumentException if the supplied {@code pattern} is not supported
*/
@Nonnull
@@ -172,12 +173,14 @@ public String getPattern() {
*
*
* The input string may also be any of the Color constants identified by
- * {@code griffon.swing.support.Colors}.
+ * {@code griffon.pivot.support.Colors}.
*
* @param str the string representation of a {@code java.awt.Color}
+ *
* @return a {@code java.awt.Color} instance matching the supplied RGBA color components
+ *
* @throws ParseException if the string cannot be parsed by the chosen pattern
- * @see griffon.swing.support.Colors
+ * @see griffon.pivot.support.Colors
*/
@Nonnull
@SuppressWarnings("ConstantConditions")
@@ -407,4 +410,12 @@ public Color parse(@Nonnull String str) throws ParseException {
private static String padLeft(String self, String padding) {
return 2 <= self.length() ? self : padding + self;
}
+
+ private static int parseHexInt(@Nonnull String val, @Nonnull Class> klass) throws ParseException {
+ try {
+ return Integer.parseInt(String.valueOf(requireNonNull(val)).trim(), 16) & 0xFF;
+ } catch (NumberFormatException e) {
+ throw parseError(val, klass, e);
+ }
+ }
}
diff --git a/subprojects/griffon-swing/src/main/java/org/codehaus/griffon/runtime/swing/controller/SwingGriffonControllerAction.java b/subprojects/griffon-swing/src/main/java/org/codehaus/griffon/runtime/swing/controller/SwingGriffonControllerAction.java
index 172ca8e56ce..9454dd81b84 100644
--- a/subprojects/griffon-swing/src/main/java/org/codehaus/griffon/runtime/swing/controller/SwingGriffonControllerAction.java
+++ b/subprojects/griffon-swing/src/main/java/org/codehaus/griffon/runtime/swing/controller/SwingGriffonControllerAction.java
@@ -20,7 +20,6 @@
import griffon.core.artifact.GriffonController;
import griffon.core.controller.ActionManager;
import griffon.core.controller.ActionMetadata;
-import griffon.core.editors.PropertyEditorResolver;
import griffon.core.properties.PropertyChangeEvent;
import griffon.core.threading.UIThreadManager;
import griffon.swing.support.SwingAction;
@@ -28,11 +27,12 @@
import javax.annotation.Nonnull;
import javax.annotation.Nullable;
+import javax.application.converter.Converter;
+import javax.application.converter.ConverterRegistry;
import javax.swing.Action;
import javax.swing.Icon;
import javax.swing.KeyStroke;
import java.awt.event.ActionEvent;
-import java.beans.PropertyEditor;
import static griffon.util.GriffonNameUtils.isNotBlank;
import static java.util.Objects.requireNonNull;
@@ -106,9 +106,12 @@ protected void handlePropertyChange(@Nonnull PropertyChangeEvent> evt) {
protected void handleIcon(@Nullable Object value, @Nonnull String key) {
if (value != null) {
- PropertyEditor editor = PropertyEditorResolver.findEditor(Icon.class);
- editor.setValue(value);
- toolkitAction.putValue(key, editor.getValue());
+ Converter converter = getController().getApplication()
+ .getInjector().getInstance(ConverterRegistry.class)
+ .findConverter(Icon.class);
+ if (converter != null) {
+ toolkitAction.putValue(key, converter.fromObject(value));
+ }
}
}
diff --git a/subprojects/griffon-swing/src/test/groovy/griffon/swing/editors/BufferedImagePropertyEditorSpec.groovy b/subprojects/griffon-swing/src/test/groovy/griffon/swing/converters/BufferedImageConverterSpec.groovy
similarity index 77%
rename from subprojects/griffon-swing/src/test/groovy/griffon/swing/editors/BufferedImagePropertyEditorSpec.groovy
rename to subprojects/griffon-swing/src/test/groovy/griffon/swing/converters/BufferedImageConverterSpec.groovy
index cd3d8adb02a..21e328172e2 100644
--- a/subprojects/griffon-swing/src/test/groovy/griffon/swing/editors/BufferedImagePropertyEditorSpec.groovy
+++ b/subprojects/griffon-swing/src/test/groovy/griffon/swing/converters/BufferedImageConverterSpec.groovy
@@ -15,26 +15,24 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package griffon.swing.editors
+package griffon.swing.converters
import spock.lang.Specification
import spock.lang.Unroll
-import java.beans.PropertyEditor
+import javax.application.converter.ConversionException
@Unroll
-class BufferedImagePropertyEditorSpec extends Specification {
-
+class BufferedImageConverterSpec extends Specification {
void "BufferedImage format '#format' should be equal to #image"() {
setup:
- PropertyEditor editor = new BufferedImagePropertyEditor()
+ def converter = new BufferedImageConverter()
when:
-
- editor.value = format
+ def converted = converter.fromObject(format)
then:
- image == editor.value
+ image == converted
where:
image | format
@@ -45,15 +43,13 @@ class BufferedImagePropertyEditorSpec extends Specification {
void "Invalid image format '#format'"() {
setup:
-
- PropertyEditor editor = new BufferedImagePropertyEditor()
+ def converter = new BufferedImageConverter()
when:
- editor.value = format
+ converter.fromObject(format)
then:
-
- thrown(IllegalArgumentException)
+ thrown(ConversionException)
where:
format << [
diff --git a/subprojects/griffon-swing/src/test/groovy/griffon/swing/editors/ColorPropertyEditorSpec.groovy b/subprojects/griffon-swing/src/test/groovy/griffon/swing/converters/ColorConverterSpec.groovy
similarity index 85%
rename from subprojects/griffon-swing/src/test/groovy/griffon/swing/editors/ColorPropertyEditorSpec.groovy
rename to subprojects/griffon-swing/src/test/groovy/griffon/swing/converters/ColorConverterSpec.groovy
index 7ca146da36a..7a93f23bdc4 100644
--- a/subprojects/griffon-swing/src/test/groovy/griffon/swing/editors/ColorPropertyEditorSpec.groovy
+++ b/subprojects/griffon-swing/src/test/groovy/griffon/swing/converters/ColorConverterSpec.groovy
@@ -15,28 +15,26 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package griffon.swing.editors
+package griffon.swing.converters
import griffon.swing.support.Colors
import spock.lang.Specification
import spock.lang.Unroll
+import javax.application.converter.ConversionException
import java.awt.Color
-import java.beans.PropertyEditor
@Unroll
-class ColorPropertyEditorSpec extends Specification {
+class ColorConverterSpec extends Specification {
void "Color format '#format' should be equal to #color"() {
setup:
-
- PropertyEditor editor = new ColorPropertyEditor()
+ ColorConverter converter = new ColorConverter()
when:
- editor.value = format
+ Color parsedColor = converter.fromObject(format)
then:
-
- color == editor.value
+ color == parsedColor
where:
color | format
@@ -76,15 +74,13 @@ class ColorPropertyEditorSpec extends Specification {
void "Invalid color format '#format'"() {
setup:
-
- PropertyEditor editor = new ColorPropertyEditor()
+ ColorConverter converter = new ColorConverter()
when:
- editor.value = format
+ converter.fromObject(format)
then:
-
- thrown(IllegalArgumentException)
+ thrown(ConversionException)
where:
format << [
@@ -94,7 +90,7 @@ class ColorPropertyEditorSpec extends Specification {
[1, 2, 3, 4, 5],
[new Object()],
[new Object(), new Object(), new Object()],
- [r: new Object()],
+ [red: new Object()],
'F00',
'#F0',
'#FF0000FF00',
@@ -105,17 +101,13 @@ class ColorPropertyEditorSpec extends Specification {
void "Formatted color '#expected' with format #format"() {
given:
-
- PropertyEditor editor = new ColorPropertyEditor()
+ ColorConverter converter = new ColorConverter()
when:
-
- editor.format = format
- editor.value = value
- String actual = editor.asText
+ converter.format = format
+ String actual = converter.toString(converter.fromObject(value))
then:
-
expected == actual
where:
diff --git a/subprojects/griffon-swing/src/test/groovy/griffon/swing/editors/DimensionPropertyEditorSpec.groovy b/subprojects/griffon-swing/src/test/groovy/griffon/swing/converters/DimensionConverterSpec.groovy
similarity index 82%
rename from subprojects/griffon-swing/src/test/groovy/griffon/swing/editors/DimensionPropertyEditorSpec.groovy
rename to subprojects/griffon-swing/src/test/groovy/griffon/swing/converters/DimensionConverterSpec.groovy
index 97a783b4d2f..a49df9a38ef 100644
--- a/subprojects/griffon-swing/src/test/groovy/griffon/swing/editors/DimensionPropertyEditorSpec.groovy
+++ b/subprojects/griffon-swing/src/test/groovy/griffon/swing/converters/DimensionConverterSpec.groovy
@@ -15,31 +15,29 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package griffon.swing.editors
+package griffon.swing.converters
import spock.lang.Shared
import spock.lang.Specification
import spock.lang.Unroll
+import javax.application.converter.ConversionException
import java.awt.Dimension
-import java.beans.PropertyEditor
@Unroll
-class DimensionPropertyEditorSpec extends Specification {
+class DimensionConverterSpec extends Specification {
@Shared
private Dimension dimension = new Dimension(10, 20)
void "Dimension format '#format' should be equal to #dimension"() {
setup:
-
- PropertyEditor editor = new DimensionPropertyEditor()
+ def converter = new DimensionConverter()
when:
- editor.value = format
+ def converted = converter.fromObject(format)
then:
-
- value == editor.value
+ value == converted
where:
value | format
@@ -68,15 +66,13 @@ class DimensionPropertyEditorSpec extends Specification {
void "Invalid dimension format '#format'"() {
setup:
-
- PropertyEditor editor = new DimensionPropertyEditor()
+ def converter = new DimensionConverter()
when:
- editor.value = format
+ converter.fromObject(format)
then:
-
- thrown(IllegalArgumentException)
+ thrown(ConversionException)
where:
format << [
@@ -93,16 +89,12 @@ class DimensionPropertyEditorSpec extends Specification {
void "Formatted dimension '#expected'"() {
given:
-
- PropertyEditor editor = new DimensionPropertyEditor()
+ def converter = new DimensionConverter()
when:
-
- editor.value = value
- String actual = editor.asText
+ String actual = converter.toString(converter.fromObject(value))
then:
-
expected == actual
where:
diff --git a/subprojects/griffon-swing/src/test/groovy/griffon/swing/editors/FontPropertyEditorSpec.groovy b/subprojects/griffon-swing/src/test/groovy/griffon/swing/converters/FontConverterSpec.groovy
similarity index 88%
rename from subprojects/griffon-swing/src/test/groovy/griffon/swing/editors/FontPropertyEditorSpec.groovy
rename to subprojects/griffon-swing/src/test/groovy/griffon/swing/converters/FontConverterSpec.groovy
index 21c028aba75..38d22f82270 100644
--- a/subprojects/griffon-swing/src/test/groovy/griffon/swing/editors/FontPropertyEditorSpec.groovy
+++ b/subprojects/griffon-swing/src/test/groovy/griffon/swing/converters/FontConverterSpec.groovy
@@ -15,30 +15,28 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package griffon.swing.editors
+package griffon.swing.converters
import griffon.swing.TestUtils
import spock.lang.IgnoreIf
import spock.lang.Specification
import spock.lang.Unroll
+import javax.application.converter.ConversionException
import java.awt.Font
-import java.beans.PropertyEditor
@Unroll
@IgnoreIf({ TestUtils.headless })
-class FontPropertyEditorSpec extends Specification {
+class FontConverterSpec extends Specification {
void "Font format '#format' should be equal to #font"() {
setup:
-
- PropertyEditor editor = new FontPropertyEditor()
+ def converter = new FontConverter()
when:
- editor.value = format
+ def converted = converter.fromObject(format)
then:
-
- font == editor.value
+ font == converted
where:
font | format
@@ -64,15 +62,13 @@ class FontPropertyEditorSpec extends Specification {
void "Invalid font format '#format'"() {
setup:
-
- PropertyEditor editor = new FontPropertyEditor()
+ def converter = new FontConverter()
when:
- editor.value = format
+ converter.fromObject(format)
then:
-
- thrown(IllegalArgumentException)
+ thrown(ConversionException)
where:
format << [
@@ -91,16 +87,12 @@ class FontPropertyEditorSpec extends Specification {
void "Formatted font '#expected'"() {
given:
-
- PropertyEditor editor = new FontPropertyEditor()
+ def converter = new FontConverter()
when:
-
- editor.value = value
- String actual = editor.asText
+ String actual = converter.toString(converter.fromObject(value))
then:
-
expected == actual
where:
diff --git a/subprojects/griffon-swing/src/test/groovy/griffon/swing/editors/GradientPaintPropertyEditorSpec.groovy b/subprojects/griffon-swing/src/test/groovy/griffon/swing/converters/GradientPaintConverterSpec.groovy
similarity index 82%
rename from subprojects/griffon-swing/src/test/groovy/griffon/swing/editors/GradientPaintPropertyEditorSpec.groovy
rename to subprojects/griffon-swing/src/test/groovy/griffon/swing/converters/GradientPaintConverterSpec.groovy
index 3db00a5df86..9830b723a19 100644
--- a/subprojects/griffon-swing/src/test/groovy/griffon/swing/editors/GradientPaintPropertyEditorSpec.groovy
+++ b/subprojects/griffon-swing/src/test/groovy/griffon/swing/converters/GradientPaintConverterSpec.groovy
@@ -15,34 +15,32 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package griffon.swing.editors
+package griffon.swing.converters
import spock.lang.Shared
import spock.lang.Specification
import spock.lang.Unroll
+import javax.application.converter.ConversionException
import java.awt.GradientPaint
-import java.beans.PropertyEditor
import static java.awt.Color.BLACK
import static java.awt.Color.WHITE
@Unroll
-class GradientPaintPropertyEditorSpec extends Specification {
+class GradientPaintConverterSpec extends Specification {
@Shared
private GradientPaint gradientPaint = new GradientPaint(0f, 0f, BLACK, 1f, 1f, WHITE)
void "GradientPaint format '#format' is supported"() {
setup:
-
- PropertyEditor editor = new GradientPaintPropertyEditor()
+ def converter = new GradientPaintConverter()
when:
- editor.value = format
+ def converted = converter.fromObject(format)
then:
-
- paintsAreEqual value, editor.value
+ paintsAreEqual value, converted
where:
value | format
@@ -74,16 +72,13 @@ class GradientPaintPropertyEditorSpec extends Specification {
void "Invalid gradientPaint format '#format'"() {
setup:
-
- PropertyEditor editor = new GradientPaintPropertyEditor()
+ def converter = new GradientPaintConverter()
when:
- editor.value = format
- println editor.value
+ converter.fromObject(format)
then:
-
- thrown(IllegalArgumentException)
+ thrown(ConversionException)
where:
format << [
@@ -101,16 +96,12 @@ class GradientPaintPropertyEditorSpec extends Specification {
void "Formatted gradient paint '#expected'"() {
given:
-
- PropertyEditor editor = new GradientPaintPropertyEditor()
+ def converter = new GradientPaintConverter()
when:
-
- editor.value = value
- String actual = editor.asText
+ String actual = converter.toString(converter.fromObject(value))
then:
-
expected == actual
where:
diff --git a/subprojects/griffon-swing/src/test/groovy/griffon/swing/editors/IconPropertyEditorSpec.groovy b/subprojects/griffon-swing/src/test/groovy/griffon/swing/converters/IconConverterSpec.groovy
similarity index 78%
rename from subprojects/griffon-swing/src/test/groovy/griffon/swing/editors/IconPropertyEditorSpec.groovy
rename to subprojects/griffon-swing/src/test/groovy/griffon/swing/converters/IconConverterSpec.groovy
index a6d7a2024f2..78567f2c4d3 100644
--- a/subprojects/griffon-swing/src/test/groovy/griffon/swing/editors/IconPropertyEditorSpec.groovy
+++ b/subprojects/griffon-swing/src/test/groovy/griffon/swing/converters/IconConverterSpec.groovy
@@ -15,26 +15,24 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package griffon.swing.editors
+package griffon.swing.converters
import spock.lang.Specification
import spock.lang.Unroll
-import java.beans.PropertyEditor
+import javax.application.converter.ConversionException
@Unroll
-class IconPropertyEditorSpec extends Specification {
-
+class IconConverterSpec extends Specification {
void "Icon format '#format' should be equal to #icon"() {
setup:
- PropertyEditor editor = new IconPropertyEditor()
+ def converter = new IconConverter()
when:
-
- editor.value = format
+ def converted = converter.fromObject(format)
then:
- icon == editor.value
+ icon == converted
where:
icon | format
@@ -45,15 +43,13 @@ class IconPropertyEditorSpec extends Specification {
void "Invalid icon format '#format'"() {
setup:
-
- PropertyEditor editor = new IconPropertyEditor()
+ def converter = new IconConverter()
when:
- editor.value = format
+ converter.fromObject(format)
then:
-
- thrown(IllegalArgumentException)
+ thrown(ConversionException)
where:
format << [
diff --git a/subprojects/griffon-swing/src/test/groovy/griffon/swing/editors/ImagePropertyEditorSpec.groovy b/subprojects/griffon-swing/src/test/groovy/griffon/swing/converters/ImageConverterSpec.groovy
similarity index 77%
rename from subprojects/griffon-swing/src/test/groovy/griffon/swing/editors/ImagePropertyEditorSpec.groovy
rename to subprojects/griffon-swing/src/test/groovy/griffon/swing/converters/ImageConverterSpec.groovy
index 238c59d43dd..fd8ca9dded0 100644
--- a/subprojects/griffon-swing/src/test/groovy/griffon/swing/editors/ImagePropertyEditorSpec.groovy
+++ b/subprojects/griffon-swing/src/test/groovy/griffon/swing/converters/ImageConverterSpec.groovy
@@ -15,26 +15,24 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package griffon.swing.editors
+package griffon.swing.converters
import spock.lang.Specification
import spock.lang.Unroll
-import java.beans.PropertyEditor
+import javax.application.converter.ConversionException
@Unroll
-class ImagePropertyEditorSpec extends Specification {
-
+class ImageConverterSpec extends Specification {
void "Image format '#format' should be equal to #image"() {
setup:
- PropertyEditor editor = new ImagePropertyEditor()
+ def converter = new ImageConverter()
when:
-
- editor.value = format
+ def converted = converter.fromObject(format)
then:
- image == editor.value
+ image == converted
where:
image | format
@@ -45,15 +43,14 @@ class ImagePropertyEditorSpec extends Specification {
void "Invalid image format '#format'"() {
setup:
-
- PropertyEditor editor = new ImagePropertyEditor()
+ def converter = new ImageConverter()
when:
- editor.value = format
+ converter.fromObject(format)
then:
- thrown(IllegalArgumentException)
+ thrown(ConversionException)
where:
format << [
diff --git a/subprojects/griffon-swing/src/test/groovy/griffon/swing/editors/InsetsPropertyEditorSpec.groovy b/subprojects/griffon-swing/src/test/groovy/griffon/swing/converters/InsetsConverterSpec.groovy
similarity index 84%
rename from subprojects/griffon-swing/src/test/groovy/griffon/swing/editors/InsetsPropertyEditorSpec.groovy
rename to subprojects/griffon-swing/src/test/groovy/griffon/swing/converters/InsetsConverterSpec.groovy
index edacfee28c9..89ad920cdea 100644
--- a/subprojects/griffon-swing/src/test/groovy/griffon/swing/editors/InsetsPropertyEditorSpec.groovy
+++ b/subprojects/griffon-swing/src/test/groovy/griffon/swing/converters/InsetsConverterSpec.groovy
@@ -15,31 +15,29 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package griffon.swing.editors
+package griffon.swing.converters
import spock.lang.Shared
import spock.lang.Specification
import spock.lang.Unroll
+import javax.application.converter.ConversionException
import java.awt.Insets
-import java.beans.PropertyEditor
@Unroll
-class InsetsPropertyEditorSpec extends Specification {
+class InsetsConverterSpec extends Specification {
@Shared
private Insets insets = new Insets(1, 2, 3, 4)
void "Insets format '#format' should be equal to #insets"() {
setup:
-
- PropertyEditor editor = new InsetsPropertyEditor()
+ def converter = new InsetsConverter()
when:
- editor.value = format
+ def converted = converter.fromObject(format)
then:
-
- value == editor.value
+ value == converted
where:
value | format
@@ -70,15 +68,13 @@ class InsetsPropertyEditorSpec extends Specification {
void "Invalid insets format '#format'"() {
setup:
-
- PropertyEditor editor = new InsetsPropertyEditor()
+ def converter = new InsetsConverter()
when:
- editor.value = format
+ converter.fromObject(format)
then:
-
- thrown(IllegalArgumentException)
+ thrown(ConversionException)
where:
format << [
@@ -96,16 +92,12 @@ class InsetsPropertyEditorSpec extends Specification {
void "Formatted insets '#expected'"() {
given:
-
- PropertyEditor editor = new InsetsPropertyEditor()
+ def converter = new InsetsConverter()
when:
-
- editor.value = value
- String actual = editor.asText
+ String actual = converter.toString(converter.fromObject(value))
then:
-
expected == actual
where:
diff --git a/subprojects/griffon-swing/src/test/groovy/griffon/swing/editors/LinearGradientPaintPropertyEditorSpec.groovy b/subprojects/griffon-swing/src/test/groovy/griffon/swing/converters/LinearGradientPaintConverterSpec.groovy
similarity index 87%
rename from subprojects/griffon-swing/src/test/groovy/griffon/swing/editors/LinearGradientPaintPropertyEditorSpec.groovy
rename to subprojects/griffon-swing/src/test/groovy/griffon/swing/converters/LinearGradientPaintConverterSpec.groovy
index 2bf68cfd586..5352273ffbd 100644
--- a/subprojects/griffon-swing/src/test/groovy/griffon/swing/editors/LinearGradientPaintPropertyEditorSpec.groovy
+++ b/subprojects/griffon-swing/src/test/groovy/griffon/swing/converters/LinearGradientPaintConverterSpec.groovy
@@ -15,15 +15,15 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package griffon.swing.editors
+package griffon.swing.converters
import spock.lang.Shared
import spock.lang.Specification
import spock.lang.Unroll
+import javax.application.converter.ConversionException
import java.awt.Color
import java.awt.LinearGradientPaint
-import java.beans.PropertyEditor
import static java.awt.Color.BLACK
import static java.awt.Color.RED
@@ -32,7 +32,7 @@ import static java.awt.MultipleGradientPaint.CycleMethod.NO_CYCLE
import static java.awt.MultipleGradientPaint.CycleMethod.REPEAT
@Unroll
-class LinearGradientPaintPropertyEditorSpec extends Specification {
+class LinearGradientPaintConverterSpec extends Specification {
@Shared
private LinearGradientPaint sharedPaint = new LinearGradientPaint(1, 2, 3, 4, [0, 1] as float[], [BLACK, WHITE] as Color[], NO_CYCLE)
@@ -41,15 +41,13 @@ class LinearGradientPaintPropertyEditorSpec extends Specification {
void "LinearGradientPaint format '#format' is supported"() {
setup:
-
- PropertyEditor editor = new LinearGradientPaintPropertyEditor()
+ def converter = new LinearGradientPaintConverter()
when:
- editor.value = format
+ def converted = converter.fromObject(format)
then:
-
- paintsAreEqual value, editor.value
+ paintsAreEqual value, converted
where:
value | format
@@ -83,15 +81,13 @@ class LinearGradientPaintPropertyEditorSpec extends Specification {
void "Invalid gradientPaint format '#format'"() {
setup:
-
- PropertyEditor editor = new LinearGradientPaintPropertyEditor()
+ def converter = new LinearGradientPaintConverter()
when:
- editor.value = format
+ converter.fromObject(format)
then:
-
- thrown(IllegalArgumentException)
+ thrown(ConversionException)
where:
format << [
@@ -114,16 +110,12 @@ class LinearGradientPaintPropertyEditorSpec extends Specification {
void "Formatted linear gradient '#expected'"() {
given:
-
- PropertyEditor editor = new LinearGradientPaintPropertyEditor()
+ def converter = new LinearGradientPaintConverter()
when:
-
- editor.value = value
- String actual = editor.asText
+ String actual = converter.toString(converter.fromObject(value))
then:
-
expected == actual
where:
diff --git a/subprojects/griffon-swing/src/test/groovy/griffon/swing/editors/Point2DPropertyEditorSpec.groovy b/subprojects/griffon-swing/src/test/groovy/griffon/swing/converters/Point2DConverterSpec.groovy
similarity index 82%
rename from subprojects/griffon-swing/src/test/groovy/griffon/swing/editors/Point2DPropertyEditorSpec.groovy
rename to subprojects/griffon-swing/src/test/groovy/griffon/swing/converters/Point2DConverterSpec.groovy
index c7311c336ca..2465dc15aeb 100644
--- a/subprojects/griffon-swing/src/test/groovy/griffon/swing/editors/Point2DPropertyEditorSpec.groovy
+++ b/subprojects/griffon-swing/src/test/groovy/griffon/swing/converters/Point2DConverterSpec.groovy
@@ -15,31 +15,29 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package griffon.swing.editors
+package griffon.swing.converters
import spock.lang.Shared
import spock.lang.Specification
import spock.lang.Unroll
+import javax.application.converter.ConversionException
import java.awt.geom.Point2D
-import java.beans.PropertyEditor
@Unroll
-class Point2DPropertyEditorSpec extends Specification {
+class Point2DConverterSpec extends Specification {
@Shared
private Point2D point = new Point2D.Double(10, 20)
void "Point2D format '#format' should be equal to #point"() {
setup:
-
- PropertyEditor editor = new Point2DPropertyEditor()
+ def converter = new Point2DConverter()
when:
- editor.value = format
+ def converted = converter.fromObject(format)
then:
-
- value == editor.value
+ value == converted
where:
value | format
@@ -66,15 +64,13 @@ class Point2DPropertyEditorSpec extends Specification {
void "Invalid point format '#format'"() {
setup:
-
- PropertyEditor editor = new Point2DPropertyEditor()
+ def converter = new Point2DConverter()
when:
- editor.value = format
+ converter.fromObject(format)
then:
-
- thrown(IllegalArgumentException)
+ thrown(ConversionException)
where:
format << [
@@ -92,16 +88,12 @@ class Point2DPropertyEditorSpec extends Specification {
void "Formatted point '#expected'"() {
given:
-
- PropertyEditor editor = new Point2DPropertyEditor()
+ def converter = new Point2DConverter()
when:
-
- editor.value = value
- String actual = editor.asText
+ String actual = converter.toString(converter.fromObject(value))
then:
-
expected == actual
where:
diff --git a/subprojects/griffon-swing/src/test/groovy/griffon/swing/editors/PointPropertyEditorSpec.groovy b/subprojects/griffon-swing/src/test/groovy/griffon/swing/converters/PointConverterSpec.groovy
similarity index 81%
rename from subprojects/griffon-swing/src/test/groovy/griffon/swing/editors/PointPropertyEditorSpec.groovy
rename to subprojects/griffon-swing/src/test/groovy/griffon/swing/converters/PointConverterSpec.groovy
index 66d97f648d8..de2cfcd56f8 100644
--- a/subprojects/griffon-swing/src/test/groovy/griffon/swing/editors/PointPropertyEditorSpec.groovy
+++ b/subprojects/griffon-swing/src/test/groovy/griffon/swing/converters/PointConverterSpec.groovy
@@ -15,31 +15,29 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package griffon.swing.editors
+package griffon.swing.converters
import spock.lang.Shared
import spock.lang.Specification
import spock.lang.Unroll
+import javax.application.converter.ConversionException
import java.awt.Point
-import java.beans.PropertyEditor
@Unroll
-class PointPropertyEditorSpec extends Specification {
+class PointConverterSpec extends Specification {
@Shared
private Point point = new Point(10, 20)
void "Point format '#format' should be equal to #point"() {
setup:
-
- PropertyEditor editor = new PointPropertyEditor()
+ def converter = new PointConverter()
when:
- editor.value = format
+ def converted = converter.fromObject(format)
then:
-
- value == editor.value
+ value == converted
where:
value | format
@@ -66,15 +64,13 @@ class PointPropertyEditorSpec extends Specification {
void "Invalid point format '#format'"() {
setup:
-
- PropertyEditor editor = new PointPropertyEditor()
+ def converter = new PointConverter()
when:
- editor.value = format
+ converter.fromObject(format)
then:
-
- thrown(IllegalArgumentException)
+ thrown(ConversionException)
where:
format << [
@@ -91,16 +87,12 @@ class PointPropertyEditorSpec extends Specification {
void "Formatted point '#expected'"() {
given:
-
- PropertyEditor editor = new PointPropertyEditor()
+ def converter = new PointConverter()
when:
-
- editor.value = value
- String actual = editor.asText
+ String actual = converter.toString(converter.fromObject(value))
then:
-
expected == actual
where:
diff --git a/subprojects/griffon-swing/src/test/groovy/griffon/swing/editors/PolygonPropertyEditorSpec.groovy b/subprojects/griffon-swing/src/test/groovy/griffon/swing/converters/PolygonConverterSpec.groovy
similarity index 80%
rename from subprojects/griffon-swing/src/test/groovy/griffon/swing/editors/PolygonPropertyEditorSpec.groovy
rename to subprojects/griffon-swing/src/test/groovy/griffon/swing/converters/PolygonConverterSpec.groovy
index b38cbfde5cf..97932de28f4 100644
--- a/subprojects/griffon-swing/src/test/groovy/griffon/swing/editors/PolygonPropertyEditorSpec.groovy
+++ b/subprojects/griffon-swing/src/test/groovy/griffon/swing/converters/PolygonConverterSpec.groovy
@@ -15,31 +15,29 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package griffon.swing.editors
+package griffon.swing.converters
import spock.lang.Shared
import spock.lang.Specification
import spock.lang.Unroll
+import javax.application.converter.ConversionException
import java.awt.Polygon
-import java.beans.PropertyEditor
@Unroll
-class PolygonPropertyEditorSpec extends Specification {
+class PolygonConverterSpec extends Specification {
@Shared
private Polygon polygon = new Polygon([0, 2] as int[], [1, 3] as int[], 2)
void "Polygon format '#format' should be supported"() {
setup:
-
- PropertyEditor editor = new PolygonPropertyEditor()
+ def converter = new PolygonConverter()
when:
- editor.value = format
+ def converted = converter.fromObject(format)
then:
-
- polygonsAreEqual value, editor.value
+ polygonsAreEqual value, converted
where:
value | format
@@ -68,15 +66,13 @@ class PolygonPropertyEditorSpec extends Specification {
void "Invalid polygon format '#format'"() {
setup:
-
- PropertyEditor editor = new PolygonPropertyEditor()
+ def converter = new PolygonConverter()
when:
- editor.value = format
+ converter.fromObject(format)
then:
-
- thrown(IllegalArgumentException)
+ thrown(ConversionException)
where:
format << [
@@ -92,16 +88,12 @@ class PolygonPropertyEditorSpec extends Specification {
void "Formatted polygon '#expected'"() {
given:
-
- PropertyEditor editor = new PolygonPropertyEditor()
+ def converter = new PolygonConverter()
when:
-
- editor.value = value
- String actual = editor.asText
+ String actual = converter.toString(converter.fromObject(value))
then:
-
expected == actual
where:
diff --git a/subprojects/griffon-swing/src/test/groovy/griffon/swing/editors/RadialGradientPaintPropertyEditorSpec.groovy b/subprojects/griffon-swing/src/test/groovy/griffon/swing/converters/RadialGradientPaintConverterSpec.groovy
similarity index 87%
rename from subprojects/griffon-swing/src/test/groovy/griffon/swing/editors/RadialGradientPaintPropertyEditorSpec.groovy
rename to subprojects/griffon-swing/src/test/groovy/griffon/swing/converters/RadialGradientPaintConverterSpec.groovy
index 32629ab8ca7..4bec37589e1 100644
--- a/subprojects/griffon-swing/src/test/groovy/griffon/swing/editors/RadialGradientPaintPropertyEditorSpec.groovy
+++ b/subprojects/griffon-swing/src/test/groovy/griffon/swing/converters/RadialGradientPaintConverterSpec.groovy
@@ -15,16 +15,16 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package griffon.swing.editors
+package griffon.swing.converters
import spock.lang.Shared
import spock.lang.Specification
import spock.lang.Unroll
+import javax.application.converter.ConversionException
import java.awt.Color
import java.awt.RadialGradientPaint
import java.awt.geom.Point2D
-import java.beans.PropertyEditor
import static java.awt.Color.BLACK
import static java.awt.Color.RED
@@ -33,7 +33,7 @@ import static java.awt.MultipleGradientPaint.CycleMethod.NO_CYCLE
import static java.awt.MultipleGradientPaint.CycleMethod.REPEAT
@Unroll
-class RadialGradientPaintPropertyEditorSpec extends Specification {
+class RadialGradientPaintConverterSpec extends Specification {
@Shared
private RadialGradientPaint sharedPaint = new RadialGradientPaint(new Point2D.Float(2f, 2f), 5f, new Point2D.Float(4f, 4f), [0, 1] as float[], [BLACK, WHITE] as Color[], NO_CYCLE)
@@ -42,15 +42,13 @@ class RadialGradientPaintPropertyEditorSpec extends Specification {
void "RadialGradientPaint format '#format' is supported"() {
setup:
-
- PropertyEditor editor = new RadialGradientPaintPropertyEditor()
+ def converter = new RadialGradientPaintConverter()
when:
- editor.value = format
+ def converted = converter.fromObject(format)
then:
-
- paintsAreEqual value, editor.value
+ paintsAreEqual value, converted
where:
value | format
@@ -85,15 +83,13 @@ class RadialGradientPaintPropertyEditorSpec extends Specification {
void "Invalid gradientPaint format '#format'"() {
setup:
-
- PropertyEditor editor = new RadialGradientPaintPropertyEditor()
+ def converter = new RadialGradientPaintConverter()
when:
- editor.value = format
+ converter.fromObject(format)
then:
-
- thrown(IllegalArgumentException)
+ thrown(ConversionException)
where:
format << [
@@ -116,16 +112,12 @@ class RadialGradientPaintPropertyEditorSpec extends Specification {
void "Formatted radial gradient '#expected'"() {
given:
-
- PropertyEditor editor = new RadialGradientPaintPropertyEditor()
+ def converter = new RadialGradientPaintConverter()
when:
-
- editor.value = value
- String actual = editor.asText
+ String actual = converter.toString(converter.fromObject(value))
then:
-
expected == actual
where:
diff --git a/subprojects/griffon-swing/src/test/groovy/griffon/swing/editors/Rectangle2DPropertyEditorSpec.groovy b/subprojects/griffon-swing/src/test/groovy/griffon/swing/converters/Rectangle2DConverterSpec.groovy
similarity index 84%
rename from subprojects/griffon-swing/src/test/groovy/griffon/swing/editors/Rectangle2DPropertyEditorSpec.groovy
rename to subprojects/griffon-swing/src/test/groovy/griffon/swing/converters/Rectangle2DConverterSpec.groovy
index 45508d1891a..7696bda51a1 100644
--- a/subprojects/griffon-swing/src/test/groovy/griffon/swing/editors/Rectangle2DPropertyEditorSpec.groovy
+++ b/subprojects/griffon-swing/src/test/groovy/griffon/swing/converters/Rectangle2DConverterSpec.groovy
@@ -15,31 +15,29 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package griffon.swing.editors
+package griffon.swing.converters
import spock.lang.Shared
import spock.lang.Specification
import spock.lang.Unroll
+import javax.application.converter.ConversionException
import java.awt.geom.Rectangle2D
-import java.beans.PropertyEditor
@Unroll
-class Rectangle2DPropertyEditorSpec extends Specification {
+class Rectangle2DConverterSpec extends Specification {
@Shared
private Rectangle2D rectangle = new Rectangle2D.Double(10, 20, 30, 40)
void "Rectangle2D format '#format' should be equal to #rectangle"() {
setup:
-
- PropertyEditor editor = new Rectangle2DPropertyEditor()
+ def converter = new Rectangle2DConverter()
when:
- editor.value = format
+ def converted = converter.fromObject(format)
then:
-
- value == editor.value
+ value == converted
where:
value | format
@@ -64,15 +62,13 @@ class Rectangle2DPropertyEditorSpec extends Specification {
void "Invalid rectangle format '#format'"() {
setup:
-
- PropertyEditor editor = new Rectangle2DPropertyEditor()
+ def converter = new Rectangle2DConverter()
when:
- editor.value = format
+ converter.fromObject(format)
then:
-
- thrown(IllegalArgumentException)
+ thrown(ConversionException)
where:
format << [
@@ -92,16 +88,12 @@ class Rectangle2DPropertyEditorSpec extends Specification {
void "Formatted rectangle '#expected'"() {
given:
-
- PropertyEditor editor = new Rectangle2DPropertyEditor()
+ def converter = new Rectangle2DConverter()
when:
-
- editor.value = value
- String actual = editor.asText
+ String actual = converter.toString(converter.fromObject(value))
then:
-
expected == actual
where:
diff --git a/subprojects/griffon-swing/src/test/groovy/griffon/swing/editors/RectanglePropertyEditorSpec.groovy b/subprojects/griffon-swing/src/test/groovy/griffon/swing/converters/RectangleConverterSpec.groovy
similarity index 83%
rename from subprojects/griffon-swing/src/test/groovy/griffon/swing/editors/RectanglePropertyEditorSpec.groovy
rename to subprojects/griffon-swing/src/test/groovy/griffon/swing/converters/RectangleConverterSpec.groovy
index 927bf19ec00..7a4b4ca1ea9 100644
--- a/subprojects/griffon-swing/src/test/groovy/griffon/swing/editors/RectanglePropertyEditorSpec.groovy
+++ b/subprojects/griffon-swing/src/test/groovy/griffon/swing/converters/RectangleConverterSpec.groovy
@@ -15,31 +15,29 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package griffon.swing.editors
+package griffon.swing.converters
import spock.lang.Shared
import spock.lang.Specification
import spock.lang.Unroll
+import javax.application.converter.ConversionException
import java.awt.Rectangle
-import java.beans.PropertyEditor
@Unroll
-class RectanglePropertyEditorSpec extends Specification {
+class RectangleConverterSpec extends Specification {
@Shared
private Rectangle rectangle = new Rectangle(10, 20, 30, 40)
void "Rectangle format '#format' should be equal to #rectangle"() {
setup:
-
- PropertyEditor editor = new RectanglePropertyEditor()
+ def converter = new RectangleConverter()
when:
- editor.value = format
+ def converted = converter.fromObject(format)
then:
-
- value == editor.value
+ value == converted
where:
value | format
@@ -64,15 +62,13 @@ class RectanglePropertyEditorSpec extends Specification {
void "Invalid rectangle format '#format'"() {
setup:
-
- PropertyEditor editor = new RectanglePropertyEditor()
+ def converter = new RectangleConverter()
when:
- editor.value = format
+ converter.fromObject(format)
then:
-
- thrown(IllegalArgumentException)
+ thrown(ConversionException)
where:
format << [
@@ -92,16 +88,12 @@ class RectanglePropertyEditorSpec extends Specification {
void "Formatted rectangle '#expected'"() {
given:
-
- PropertyEditor editor = new RectanglePropertyEditor()
+ def converter = new RectangleConverter()
when:
-
- editor.value = value
- String actual = editor.asText
+ String actual = converter.toString(converter.fromObject(value))
then:
-
expected == actual
where:
diff --git a/subprojects/griffon-swing/src/test/groovy/griffon/swing/converters/spi/ConverterProviderSpec.groovy b/subprojects/griffon-swing/src/test/groovy/griffon/swing/converters/spi/ConverterProviderSpec.groovy
new file mode 100644
index 00000000000..24b0951d37b
--- /dev/null
+++ b/subprojects/griffon-swing/src/test/groovy/griffon/swing/converters/spi/ConverterProviderSpec.groovy
@@ -0,0 +1,86 @@
+/*
+ * SPDX-License-Identifier: Apache-2.0
+ *
+ * Copyright 2008-2018 the original author or authors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package griffon.swing.converters.spi
+
+import griffon.swing.converters.BufferedImageConverter
+import griffon.swing.converters.ColorConverter
+import griffon.swing.converters.DimensionConverter
+import griffon.swing.converters.FontConverter
+import griffon.swing.converters.GradientPaintConverter
+import griffon.swing.converters.IconConverter
+import griffon.swing.converters.ImageConverter
+import griffon.swing.converters.InsetsConverter
+import griffon.swing.converters.LinearGradientPaintConverter
+import griffon.swing.converters.Point2DConverter
+import griffon.swing.converters.PointConverter
+import griffon.swing.converters.PolygonConverter
+import griffon.swing.converters.RadialGradientPaintConverter
+import griffon.swing.converters.Rectangle2DConverter
+import griffon.swing.converters.RectangleConverter
+import spock.lang.Specification
+import spock.lang.Unroll
+
+import javax.application.converter.Converter
+import javax.application.converter.spi.ConverterProvider
+import javax.swing.Icon
+import java.awt.Color
+import java.awt.Dimension
+import java.awt.Font
+import java.awt.GradientPaint
+import java.awt.Image
+import java.awt.Insets
+import java.awt.LinearGradientPaint
+import java.awt.Point
+import java.awt.Polygon
+import java.awt.RadialGradientPaint
+import java.awt.Rectangle
+import java.awt.geom.Point2D
+import java.awt.geom.Rectangle2D
+import java.awt.image.BufferedImage
+
+@Unroll
+class ConverterProviderSpec extends Specification {
+ public void "Provider for #targetType is related to #converterType"(Class targetType, Class extends Converter> converterType) {
+ given:
+ ServiceLoader providers = ServiceLoader.load(ConverterProvider)
+
+ when:
+ ConverterProvider converterProvider = providers.iterator().find { it.targetType == targetType }
+
+ then:
+ converterProvider.converterType == converterType
+
+ where:
+ targetType | converterType
+ BufferedImage | BufferedImageConverter
+ Color | ColorConverter
+ Dimension | DimensionConverter
+ Font | FontConverter
+ GradientPaint | GradientPaintConverter
+ Icon | IconConverter
+ Image | ImageConverter
+ Insets | InsetsConverter
+ LinearGradientPaint | LinearGradientPaintConverter
+ Point2D | Point2DConverter
+ Point | PointConverter
+ Polygon | PolygonConverter
+ RadialGradientPaint | RadialGradientPaintConverter
+ Rectangle2D | Rectangle2DConverter
+ Rectangle | RectangleConverter
+ }
+}
diff --git a/subprojects/griffon-swing/src/test/groovy/griffon/swing/formatters/ColorFormatterSpec.groovy b/subprojects/griffon-swing/src/test/groovy/griffon/swing/formatters/ColorFormatterSpec.groovy
index 3934aaeff92..1906fffac14 100644
--- a/subprojects/griffon-swing/src/test/groovy/griffon/swing/formatters/ColorFormatterSpec.groovy
+++ b/subprojects/griffon-swing/src/test/groovy/griffon/swing/formatters/ColorFormatterSpec.groovy
@@ -17,7 +17,7 @@
*/
package griffon.swing.formatters
-import griffon.core.formatters.ParseException
+import org.kordamp.jsr377.formatter.ParseException
import spock.lang.Specification
import spock.lang.Unroll
diff --git a/templates/griffon-javafx-groovy-templates/templates/griffon-javafx-groovy/build.gradle b/templates/griffon-javafx-groovy-templates/templates/griffon-javafx-groovy/build.gradle
index 76cea442a1f..01613182a3b 100644
--- a/templates/griffon-javafx-groovy-templates/templates/griffon-javafx-groovy/build.gradle
+++ b/templates/griffon-javafx-groovy-templates/templates/griffon-javafx-groovy/build.gradle
@@ -108,11 +108,6 @@ shadowJar {
transform(ServiceFileTransformer) {
path = 'META-INF/types'
}
- transform(PropertiesFileTransformer) {
- paths = [
- 'META-INF/editors/java.beans.PropertyEditor'
- ]
- }
}
startScripts {
diff --git a/templates/griffon-javafx-java-templates/templates/griffon-javafx-java/build.gradle b/templates/griffon-javafx-java-templates/templates/griffon-javafx-java/build.gradle
index aa1ca482552..1153a584d16 100644
--- a/templates/griffon-javafx-java-templates/templates/griffon-javafx-java/build.gradle
+++ b/templates/griffon-javafx-java-templates/templates/griffon-javafx-java/build.gradle
@@ -108,11 +108,6 @@ shadowJar {
transform(ServiceFileTransformer) {
path = 'META-INF/types'
}
- transform(PropertiesFileTransformer) {
- paths = [
- 'META-INF/editors/java.beans.PropertyEditor'
- ]
- }
}
startScripts {
diff --git a/templates/griffon-lanterna-groovy-templates/templates/griffon-lanterna-groovy/build.gradle b/templates/griffon-lanterna-groovy-templates/templates/griffon-lanterna-groovy/build.gradle
index 5fd6e6d5d31..5fef32b1e7c 100644
--- a/templates/griffon-lanterna-groovy-templates/templates/griffon-lanterna-groovy/build.gradle
+++ b/templates/griffon-lanterna-groovy-templates/templates/griffon-lanterna-groovy/build.gradle
@@ -93,11 +93,6 @@ shadowJar {
transform(ServiceFileTransformer) {
path = 'META-INF/types'
}
- transform(PropertiesFileTransformer) {
- paths = [
- 'META-INF/editors/java.beans.PropertyEditor'
- ]
- }
}
startScripts {
diff --git a/templates/griffon-lanterna-java-templates/templates/griffon-lanterna-java/build.gradle b/templates/griffon-lanterna-java-templates/templates/griffon-lanterna-java/build.gradle
index b4b561f4ec5..99a1a309972 100644
--- a/templates/griffon-lanterna-java-templates/templates/griffon-lanterna-java/build.gradle
+++ b/templates/griffon-lanterna-java-templates/templates/griffon-lanterna-java/build.gradle
@@ -93,11 +93,6 @@ shadowJar {
transform(ServiceFileTransformer) {
path = 'META-INF/types'
}
- transform(PropertiesFileTransformer) {
- paths = [
- 'META-INF/editors/java.beans.PropertyEditor'
- ]
- }
}
startScripts {
diff --git a/templates/griffon-lanterna3-groovy-templates/templates/griffon-lanterna3-groovy/build.gradle b/templates/griffon-lanterna3-groovy-templates/templates/griffon-lanterna3-groovy/build.gradle
index d63468fa264..a6409f818cd 100644
--- a/templates/griffon-lanterna3-groovy-templates/templates/griffon-lanterna3-groovy/build.gradle
+++ b/templates/griffon-lanterna3-groovy-templates/templates/griffon-lanterna3-groovy/build.gradle
@@ -93,11 +93,6 @@ shadowJar {
transform(ServiceFileTransformer) {
path = 'META-INF/types'
}
- transform(PropertiesFileTransformer) {
- paths = [
- 'META-INF/editors/java.beans.PropertyEditor'
- ]
- }
}
startScripts {
diff --git a/templates/griffon-lanterna3-java-templates/templates/griffon-lanterna3-java/build.gradle b/templates/griffon-lanterna3-java-templates/templates/griffon-lanterna3-java/build.gradle
index 17922883cb6..f120d151261 100644
--- a/templates/griffon-lanterna3-java-templates/templates/griffon-lanterna3-java/build.gradle
+++ b/templates/griffon-lanterna3-java-templates/templates/griffon-lanterna3-java/build.gradle
@@ -93,11 +93,6 @@ shadowJar {
transform(ServiceFileTransformer) {
path = 'META-INF/types'
}
- transform(PropertiesFileTransformer) {
- paths = [
- 'META-INF/editors/java.beans.PropertyEditor'
- ]
- }
}
startScripts {
diff --git a/templates/griffon-pivot-groovy-templates/templates/griffon-pivot-groovy/build.gradle b/templates/griffon-pivot-groovy-templates/templates/griffon-pivot-groovy/build.gradle
index 2877ab48bd6..22182d29fca 100644
--- a/templates/griffon-pivot-groovy-templates/templates/griffon-pivot-groovy/build.gradle
+++ b/templates/griffon-pivot-groovy-templates/templates/griffon-pivot-groovy/build.gradle
@@ -94,11 +94,6 @@ shadowJar {
transform(ServiceFileTransformer) {
path = 'META-INF/types'
}
- transform(PropertiesFileTransformer) {
- paths = [
- 'META-INF/editors/java.beans.PropertyEditor'
- ]
- }
}
startScripts {
diff --git a/templates/griffon-pivot-java-templates/templates/griffon-pivot-java/build.gradle b/templates/griffon-pivot-java-templates/templates/griffon-pivot-java/build.gradle
index ebdc0534021..b556884c476 100644
--- a/templates/griffon-pivot-java-templates/templates/griffon-pivot-java/build.gradle
+++ b/templates/griffon-pivot-java-templates/templates/griffon-pivot-java/build.gradle
@@ -94,11 +94,6 @@ shadowJar {
transform(ServiceFileTransformer) {
path = 'META-INF/types'
}
- transform(PropertiesFileTransformer) {
- paths = [
- 'META-INF/editors/java.beans.PropertyEditor'
- ]
- }
}
startScripts {
diff --git a/templates/griffon-swing-groovy-templates/templates/griffon-swing-groovy/build.gradle b/templates/griffon-swing-groovy-templates/templates/griffon-swing-groovy/build.gradle
index ffb6bf9932c..cffd6783f4e 100644
--- a/templates/griffon-swing-groovy-templates/templates/griffon-swing-groovy/build.gradle
+++ b/templates/griffon-swing-groovy-templates/templates/griffon-swing-groovy/build.gradle
@@ -94,11 +94,6 @@ shadowJar {
transform(ServiceFileTransformer) {
path = 'META-INF/types'
}
- transform(PropertiesFileTransformer) {
- paths = [
- 'META-INF/editors/java.beans.PropertyEditor'
- ]
- }
}
startScripts {
diff --git a/templates/griffon-swing-java-templates/templates/griffon-swing-java/build.gradle b/templates/griffon-swing-java-templates/templates/griffon-swing-java/build.gradle
index f0765fc0870..87403dd82fd 100644
--- a/templates/griffon-swing-java-templates/templates/griffon-swing-java/build.gradle
+++ b/templates/griffon-swing-java-templates/templates/griffon-swing-java/build.gradle
@@ -94,11 +94,6 @@ shadowJar {
transform(ServiceFileTransformer) {
path = 'META-INF/types'
}
- transform(PropertiesFileTransformer) {
- paths = [
- 'META-INF/editors/java.beans.PropertyEditor'
- ]
- }
}
startScripts {
diff --git a/tutorials/javafx-app/build.gradle b/tutorials/javafx-app/build.gradle
index b6e92e08751..6caf78f5f32 100644
--- a/tutorials/javafx-app/build.gradle
+++ b/tutorials/javafx-app/build.gradle
@@ -121,9 +121,4 @@ shadowJar {
transform(ServiceFileTransformer) {
path = 'META-INF/types'
}
- transform(PropertiesFileTransformer) {
- paths = [
- 'META-INF/editors/java.beans.PropertyEditor'
- ]
- }
}
\ No newline at end of file