Browse Source

:bookmark: Version 11.13.6

This minor version includes a bunch of kindly submitted PRs and some minor refactor.
Also, Gradle has been updated to version 7.6

Signed-off-by: Alessadro Parisi <alessandro.parisi406@gmail.com>
Alessadro Parisi 2 years ago
parent
commit
27446093db

+ 14 - 0
CHANGELOG.md

@@ -16,6 +16,20 @@ to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
 
 [//]: ##[Unreleased]
 
+## [11.13.6] - 02-01-2023
+
+This minor version includes a bunch of kindly submitted PRs and some minor refactor.
+Also, Gradle has been updated to version 7.6
+PRs such as:
+
+- Fix for memory leak caused by When construct, #210
+- Fix for combobox list view not using combo's cell factory
+- Fix for FilterPaneSkin's combo boxes not having correct styles
+- Add BigDecimal filter
+- Add czech and spanish languages
+
+Many thanks to @stefanofornari for its donation and contributions to the project!
+
 ## [11.13.5] - 11-04-2022
 
 ## Changed

+ 4 - 2
README.md

@@ -224,7 +224,7 @@ repositories {
 }
 
 dependencies {
-  implementation 'io.github.palexdev:materialfx:11.13.5'
+  implementation 'io.github.palexdev:materialfx:11.13.6'
 }
 ```
 
@@ -235,7 +235,7 @@ dependencies {
 <dependency>
   <groupId>io.github.palexdev</groupId>
   <artifactId>materialfx</artifactId>
-  <version>11.13.5</version>
+  <version>11.13.6</version>
 </dependency>
 ```
 
@@ -310,7 +310,9 @@ you can easily donate/sponsor.
 - Aloento
 - Mauro de Wit
 - Mohammad Chaudhry (thank you very much for the huge donation, YOU are the legend)
+- Jtpatato21
 - Sourabh Bhat
+- stefanofornari (thank you very much for the big donation!)
 - Ultraviolet-Ninja
 - Yahia Rehab
 - Yiding He

+ 1 - 1
build.gradle

@@ -4,7 +4,7 @@ plugins {
 }
 
 group 'io.github.palexdev'
-version '11.13.5'
+version '11.13.6'
 
 repositories {
     mavenCentral()

+ 1 - 1
gradle/wrapper/gradle-wrapper.properties

@@ -1,5 +1,5 @@
 distributionBase=GRADLE_USER_HOME
 distributionPath=wrapper/dists
-distributionUrl=https\://services.gradle.org/distributions/gradle-7.3.3-bin.zip
+distributionUrl=https\://services.gradle.org/distributions/gradle-7.6-all.zip
 zipStoreBase=GRADLE_USER_HOME
 zipStorePath=wrapper/dists

+ 1 - 1
materialfx/gradle.properties

@@ -1,6 +1,6 @@
 GROUP=io.github.palexdev
 POM_ARTIFACT_ID=materialfx
-VERSION_NAME=11.13.5
+VERSION_NAME=11.13.6
 
 POM_NAME=materialfx
 POM_DESCRIPTION=Material Desgin components for JavaFX

+ 0 - 6
materialfx/src/main/java/io/github/palexdev/materialfx/controls/MFXProgressSpinner.java

@@ -166,9 +166,6 @@ public class MFXProgressSpinner extends ProgressIndicator {
 			Color.web("#0F9D58")
 	);
 
-	/**
-	 * Specifies the radius of the spinner.
-	 */
 	private final StyleableDoubleProperty radius = new StyleableDoubleProperty(
 			StyleableProperties.RADIUS,
 			this,
@@ -176,9 +173,6 @@ public class MFXProgressSpinner extends ProgressIndicator {
 			Region.USE_COMPUTED_SIZE
 	);
 
-	/**
-	 * Specifies the starting angle of the animation.
-	 */
 	private final StyleableDoubleProperty startingAngle = new StyleableDoubleProperty(
 			StyleableProperties.STARTING_ANGLE,
 			this,

+ 2 - 2
materialfx/src/main/java/io/github/palexdev/materialfx/controls/models/spinner/SpinnerModel.java

@@ -25,9 +25,9 @@ import javafx.util.StringConverter;
 /**
  * Defines the public API for all models to be used with {@link MFXSpinner}.
  * <p>
- * {@code SpinnerModel} is basically an helper class to allow the spinner to work on any object
+ * {@code SpinnerModel} is basically a helper class to allow the spinner to work on any object
  * type as long as a model exists for it. The model is responsible for changing the spinner's value by
- * going forward or backwards ({@link #next() or {@link #previous()}}.
+ * going forward or backwards ({@link #next()} or {@link #previous()}).
  * <p>
  * Along this core functionality the model also specifies a {@link StringConverter} which will be
  * used to convert the T value to a String, which will be the spinner's text.

+ 1 - 0
materialfx/src/main/java/io/github/palexdev/materialfx/i18n/Language.java

@@ -35,6 +35,7 @@ public enum Language {
 	ITALIANO(Locale.ITALIAN),
 	RUSSIAN(Locale.forLanguageTag("ru")),
 	SIMPLIFIED_CHINESE(Locale.SIMPLIFIED_CHINESE),
+	SPANISH(Locale.forLanguageTag("es")),
 	TRADITIONAL_CHINESE(Locale.TRADITIONAL_CHINESE);
 
 	private final Locale locale;

+ 1 - 2
materialfx/src/main/java/io/github/palexdev/materialfx/utils/others/observables/OnChanged.java

@@ -21,7 +21,6 @@ package io.github.palexdev.materialfx.utils.others.observables;
 import javafx.beans.value.ChangeListener;
 import javafx.beans.value.ObservableValue;
 
-import java.lang.ref.WeakReference;
 import java.util.function.BiConsumer;
 
 /**
@@ -101,7 +100,7 @@ public class OnChanged<T> extends When<T> {
 		}
 
 		observableValue.addListener(listener);
-        whens.put(observableValue, new WeakReference<>(this));
+		addConstruct(observableValue, this);
 		return this;
 	}
 

+ 1 - 2
materialfx/src/main/java/io/github/palexdev/materialfx/utils/others/observables/OnInvalidated.java

@@ -21,7 +21,6 @@ package io.github.palexdev.materialfx.utils.others.observables;
 import javafx.beans.InvalidationListener;
 import javafx.beans.value.ObservableValue;
 
-import java.lang.ref.WeakReference;
 import java.util.function.Consumer;
 
 /**
@@ -101,7 +100,7 @@ public class OnInvalidated<T> extends When<T> {
 		}
 
 		observableValue.addListener(listener);
-		whens.put(observableValue, new WeakReference<>(this));
+		addConstruct(observableValue, this);
 		return this;
 	}
 

+ 6 - 2
materialfx/src/main/java/io/github/palexdev/materialfx/utils/others/observables/When.java

@@ -82,6 +82,10 @@ public abstract class When<T> {
 		return this;
 	}
 
+	protected void addConstruct(ObservableValue<?> observable, When<?> when) {
+		whens.put(observable, new WeakReference<>(when));
+	}
+
 	//================================================================================
 	// Static Methods
 	//================================================================================
@@ -105,8 +109,8 @@ public abstract class When<T> {
 	 * {@link #dispose()} is invoked.
 	 */
     public static void disposeFor(ObservableValue<?> observableValue) {
-        WeakReference<When<?>> removedRef = whens.remove(observableValue);
-        var remove = removedRef != null ? removedRef.get() : null;
+	    WeakReference<When<?>> removedRef = whens.remove(observableValue);
+	    When<?> remove = removedRef != null ? removedRef.get() : null;
         if (remove != null) remove.dispose();
     }
 }

+ 106 - 0
materialfx/src/main/resources/io/github/palexdev/materialfx/i18n/mfxlang_es.properties

@@ -0,0 +1,106 @@
+#
+# Copyright (C) 2022 Parisi Alessandro
+# This file is part of MaterialFX (https://github.com/palexdev/MaterialFX).
+#
+# MaterialFX is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# MaterialFX is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public License
+# along with MaterialFX.  If not, see <http://www.gnu.org/licenses/>.
+#
+
+##################################################
+# Controls
+##################################################
+
+# Combo Box
+comboBox.contextMenu.selectFirst=Primero seleccione
+comboBox.contextMenu.selectNext=Seleccionar siguiente
+comboBox.contextMenu.selectPrevious=Seleccionar anterior
+comboBox.contextMenu.selectLast=Seleccionar último
+comboBox.contextMenu.clearSelection=Limpiar selección
+
+# Filter Combo Box
+filterCombo.search=Buscar...
+
+# Filter Pane
+filterPane.headerText=Filtros
+filterPane.activeFilters=Filtros activos
+filterPane.searchField=Escriba su valor de filtro...
+filterPane.addFilter=Agregar Filtro
+
+# Notification Center
+notificationCenter.contextMenu.selectAll=Seleccionar todo
+notificationCenter.contextMenu.selectRead=Seleccionar leído
+notificationCenter.contextMenu.selectUnread=Seleccionar no leído
+notificationCenter.contextMenu.clearSelection=Limpiar selección
+notificationCenter.contextMenu.sortState=Ordenar por estado
+notificationCenter.contextMenu.sortTime=Ordenar por tiempo
+notificationCenter.contextMenu.reverseSort=Invertir orden
+notificationCenter.contextMenu.filterRead=Filtrar por leído
+notificationCenter.contextMenu.filterUnread=Filtra por no leído
+notificationCenter.contextMenu.clearFilter=Limpiar filtro
+notificationCenter.contextMenu.clearSort=Limpiar orden
+notificationCenter.contextMenu.selectionSeparator=Selección
+notificationCenter.contextMenu.sortingSeparator=Ordenar
+notificationCenter.contextMenu.filterSeparator=Filtrar
+notificationCenter.dnd=No molestar
+notificationCenter.header=Notificaciones
+
+# Stepper
+stepper.next=Siguiente
+stepper.previous=Anterior
+
+# Stepper Toggle
+stepperToggle.invalidFields=Hay campos inválidos...
+
+# Text Fields
+textField.contextMenu.copy=Copiar
+textField.contextMenu.cut=Cortar
+textField.contextMenu.paste=Pegar
+textField.contextMenu.delete=Borrar
+textField.contextMenu.selectAll=Seleccionar todo
+textField.contextMenu.redo=Rehacer
+textField.contextMenu.undo=Deshacer
+
+##################################################
+# Enums
+##################################################
+chainMode.alternativeAnd=y
+chainMode.or=o
+
+##################################################
+# Filters
+##################################################
+filter.is=es
+filter.isNot=no es
+filter.greater=mayor que
+filter.greaterEqual=mayor o igual que
+filter.lesser=menor que
+filter.lesserEqual=menor o igual que
+filter.contains=contiene
+filter.containsIgnCase=contiene (ignorar mayúsculas)
+filter.containsAny=contiene cualquier
+filter.containsAll=contiene todo
+filter.endsWith=termina con
+filter.endsWithIgnCase=termina con (ignorar mayúsculas)
+filter.equals=es igual a
+filter.equalsIgnCase=es igual a (ignorar mayúsculas)
+filter.notEqual=no es igual a
+filter.startsWith=comienza con
+filter.startsWithIgnCase=comienza con (ignorar mayúsculas)
+
+##################################################
+# Utils
+##################################################
+stringUtil.now=Justo ahora
+stringUtil.minutes={0} minutos atrás
+stringUtils.hours={0} horas atrás
+stringUtils.days={0} días atrás