This is an automated email from the git hooks/post-receive script. New commit to branch develop in repository jaxx. See http://git.nuiton.org/jaxx.git commit f0d2776206680317d564e0f68c83cb5259f42893 Author: Tony CHEMIT <chemit@codelutin.com> Date: Sun Nov 30 14:16:50 2014 +0100 refs #3501 - use widgets-common - fix i18n - fix property default value --- jaxx-widgets-datetime/pom.xml | 7 +++ .../jaxx/widgets/datetime/DateTimeEditor.css | 2 +- .../jaxx/widgets/datetime/DateTimeEditor.jaxx | 2 +- .../widgets/datetime/DateTimeEditorHandler.java | 61 +++++---------------- .../jaxx/widgets/datetime/DateTimeEditorModel.java | 14 ++++- .../i18n/jaxx-widgets-datetime_en_GB.properties | 2 +- .../i18n/jaxx-widgets-datetime_es_ES.properties | 6 +- .../i18n/jaxx-widgets-datetime_fr_FR.properties | 2 +- .../resources/icons/action-coordinate-reset.png | Bin 396 -> 0 bytes 9 files changed, 40 insertions(+), 56 deletions(-) diff --git a/jaxx-widgets-datetime/pom.xml b/jaxx-widgets-datetime/pom.xml index ff03979..42dc418 100644 --- a/jaxx-widgets-datetime/pom.xml +++ b/jaxx-widgets-datetime/pom.xml @@ -41,6 +41,7 @@ <description>Date and time Widgets wrote with JAXX</description> <properties> + <jaxx.addProjectClassPath>true</jaxx.addProjectClassPath> <jaxx.addSourcesToClassPath>true</jaxx.addSourcesToClassPath> <jaxx.autoImportCss>true</jaxx.autoImportCss> <jaxx.addAutoHandlerUI>true</jaxx.addAutoHandlerUI> @@ -71,6 +72,12 @@ </dependency> <dependency> + <groupId>${project.groupId}</groupId> + <artifactId>jaxx-widgets-common</artifactId> + <version>${project.version}</version> + </dependency> + + <dependency> <groupId>org.swinglabs.swingx</groupId> <artifactId>swingx-common</artifactId> </dependency> diff --git a/jaxx-widgets-datetime/src/main/java/org/nuiton/jaxx/widgets/datetime/DateTimeEditor.css b/jaxx-widgets-datetime/src/main/java/org/nuiton/jaxx/widgets/datetime/DateTimeEditor.css index e5f019a..a1886ae 100644 --- a/jaxx-widgets-datetime/src/main/java/org/nuiton/jaxx/widgets/datetime/DateTimeEditor.css +++ b/jaxx-widgets-datetime/src/main/java/org/nuiton/jaxx/widgets/datetime/DateTimeEditor.css @@ -41,7 +41,7 @@ } #labelH { - text:"timeeditor.H"; + text:"datetimeeditor.H"; horizontalAlignment:center; } diff --git a/jaxx-widgets-datetime/src/main/java/org/nuiton/jaxx/widgets/datetime/DateTimeEditor.jaxx b/jaxx-widgets-datetime/src/main/java/org/nuiton/jaxx/widgets/datetime/DateTimeEditor.jaxx index 4fe2d25..5948b7c 100644 --- a/jaxx-widgets-datetime/src/main/java/org/nuiton/jaxx/widgets/datetime/DateTimeEditor.jaxx +++ b/jaxx-widgets-datetime/src/main/java/org/nuiton/jaxx/widgets/datetime/DateTimeEditor.jaxx @@ -44,7 +44,7 @@ <SpinnerDateModel id="minuteModel"/> <!-- flag to show or hide the time slider (this state can be saved by SwingSession) --> - <Boolean id='showTimeEditorSlider' javaBean='false'/> + <Boolean id='showTimeEditorSlider' javaBean='true'/> <script><![CDATA[ public void init() { handler.init(this); } diff --git a/jaxx-widgets-datetime/src/main/java/org/nuiton/jaxx/widgets/datetime/DateTimeEditorHandler.java b/jaxx-widgets-datetime/src/main/java/org/nuiton/jaxx/widgets/datetime/DateTimeEditorHandler.java index 63e4538..235ef0d 100644 --- a/jaxx-widgets-datetime/src/main/java/org/nuiton/jaxx/widgets/datetime/DateTimeEditorHandler.java +++ b/jaxx-widgets-datetime/src/main/java/org/nuiton/jaxx/widgets/datetime/DateTimeEditorHandler.java @@ -23,10 +23,11 @@ package org.nuiton.jaxx.widgets.datetime; */ import com.google.common.base.Preconditions; -import jaxx.runtime.JAXXUtil; +import com.google.common.base.Predicate; import jaxx.runtime.spi.UIHandler; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; +import org.nuiton.jaxx.widgets.MutateOnConditionalPropertyChangeListener; import org.nuiton.util.beans.BeanUtil; import javax.swing.JLabel; @@ -36,8 +37,6 @@ import javax.swing.plaf.basic.BasicSliderUI; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; import java.awt.event.MouseWheelEvent; -import java.beans.PropertyChangeEvent; -import java.beans.PropertyChangeListener; import java.lang.reflect.Method; import java.util.Calendar; import java.util.Date; @@ -182,38 +181,40 @@ public class DateTimeEditorHandler implements UIHandler<DateTimeEditor> { if (bean != null) { + Predicate<DateTimeEditorModel> predicate = model.canUpdateBeanValuePredicate(); + if (model.getPropertyDayDate() != null) { - Method dayDateMutator = BeanUtil.getMutator(bean, model.getPropertyDayDate()); - Preconditions.checkNotNull(dayDateMutator, "could not find mutator for " + model.getPropertyDayDate()); + Method mutator = BeanUtil.getMutator(bean, model.getPropertyDayDate()); + Preconditions.checkNotNull(mutator, "could not find mutator for " + model.getPropertyDayDate()); // When model day date changed, let's push it back in bean model.addPropertyChangeListener( DateTimeEditorModel.PROPERTY_DAY_DATE, - new ModelPropertyChangeListener(model, dayDateMutator)); + new MutateOnConditionalPropertyChangeListener<DateTimeEditorModel>(model, mutator, predicate)); } if (model.getPropertyTimeDate() != null) { - Method timeDateMutator = BeanUtil.getMutator(bean, model.getPropertyTimeDate()); - Preconditions.checkNotNull(timeDateMutator, "could not find mutator for " + model.getPropertyTimeDate()); + Method mutator = BeanUtil.getMutator(bean, model.getPropertyTimeDate()); + Preconditions.checkNotNull(mutator, "could not find mutator for " + model.getPropertyTimeDate()); // When model time date changed, let's push it back in bean model.addPropertyChangeListener( DateTimeEditorModel.PROPERTY_TIME_DATE, - new ModelPropertyChangeListener(model, timeDateMutator)); + new MutateOnConditionalPropertyChangeListener<DateTimeEditorModel>(model, mutator, predicate)); } if (model.getPropertyDate() != null) { - Method fullDateMutator = BeanUtil.getMutator(bean, model.getPropertyDate()); - Preconditions.checkNotNull(fullDateMutator, "could not find mutator for " + model.getPropertyDate()); + Method mutator = BeanUtil.getMutator(bean, model.getPropertyDate()); + Preconditions.checkNotNull(mutator, "could not find mutator for " + model.getPropertyDate()); // When model full date changed, let's push it back in bean model.addPropertyChangeListener( DateTimeEditorModel.PROPERTY_DATE, - new ModelPropertyChangeListener(model, fullDateMutator)); + new MutateOnConditionalPropertyChangeListener<DateTimeEditorModel>(model, mutator, predicate)); } @@ -412,40 +413,4 @@ public class DateTimeEditorHandler implements UIHandler<DateTimeEditor> { model.setTimeInMinutes(hour * 60 + minute); } - private class ModelPropertyChangeListener implements PropertyChangeListener { - - private final DateTimeEditorModel model; - - private final Method mutator; - - private ModelPropertyChangeListener(DateTimeEditorModel model, Method mutator) { - this.model = model; - this.mutator = mutator; - } - - @Override - public void propertyChange(PropertyChangeEvent evt) { - - if (!model.isValueIsAdjusting()) { - - Object newValue = evt.getNewValue(); - - try { - -// valueModelIsAdjusting = true; -// try { - mutator.invoke(model.getBean(), newValue); -// } finally { -// valueModelIsAdjusting = false; -// } - - } catch (Exception e) { - throw new RuntimeException(e); - } - - } - - } - } - } diff --git a/jaxx-widgets-datetime/src/main/java/org/nuiton/jaxx/widgets/datetime/DateTimeEditorModel.java b/jaxx-widgets-datetime/src/main/java/org/nuiton/jaxx/widgets/datetime/DateTimeEditorModel.java index 59258b5..7e914b2 100644 --- a/jaxx-widgets-datetime/src/main/java/org/nuiton/jaxx/widgets/datetime/DateTimeEditorModel.java +++ b/jaxx-widgets-datetime/src/main/java/org/nuiton/jaxx/widgets/datetime/DateTimeEditorModel.java @@ -23,7 +23,9 @@ package org.nuiton.jaxx.widgets.datetime; */ import com.google.common.base.Preconditions; +import com.google.common.base.Predicate; import org.jdesktop.beans.AbstractSerializableBean; +import org.nuiton.jaxx.widgets.ModelToBean; import org.nuiton.util.DateUtil; import java.io.Serializable; @@ -37,7 +39,7 @@ import java.util.GregorianCalendar; * @author Tony Chemit - chemit@codelutin.com * @since 2.12 */ -public class DateTimeEditorModel extends AbstractSerializableBean { +public class DateTimeEditorModel extends AbstractSerializableBean implements ModelToBean { private static final long serialVersionUID = 1L; @@ -117,6 +119,7 @@ public class DateTimeEditorModel extends AbstractSerializableBean { this.propertyDate = propertyDate; } + @Override public Serializable getBean() { return bean; } @@ -357,4 +360,13 @@ public class DateTimeEditorModel extends AbstractSerializableBean { protected void fireValueIsAdjusting(boolean oldValue) { firePropertyChange(PROPERTY_VALUE_IS_ADJUSTING, oldValue, isValueIsAdjusting()); } + + protected Predicate<DateTimeEditorModel> canUpdateBeanValuePredicate() { + return new Predicate<DateTimeEditorModel>() { + @Override + public boolean apply(DateTimeEditorModel input) { + return !isValueIsAdjusting(); + } + }; + } } diff --git a/jaxx-widgets-datetime/src/main/resources/i18n/jaxx-widgets-datetime_en_GB.properties b/jaxx-widgets-datetime/src/main/resources/i18n/jaxx-widgets-datetime_en_GB.properties index bd1a16f..35ea065 100644 --- a/jaxx-widgets-datetime/src/main/resources/i18n/jaxx-widgets-datetime_en_GB.properties +++ b/jaxx-widgets-datetime/src/main/resources/i18n/jaxx-widgets-datetime_en_GB.properties @@ -1,3 +1,3 @@ +datetimeeditor.H=H datetimeeditor.hide.slider=hide time editor slider datetimeeditor.show.slider=show time editor slider -timeeditor.H= diff --git a/jaxx-widgets-datetime/src/main/resources/i18n/jaxx-widgets-datetime_es_ES.properties b/jaxx-widgets-datetime/src/main/resources/i18n/jaxx-widgets-datetime_es_ES.properties index 8a9ee97..35ea065 100644 --- a/jaxx-widgets-datetime/src/main/resources/i18n/jaxx-widgets-datetime_es_ES.properties +++ b/jaxx-widgets-datetime/src/main/resources/i18n/jaxx-widgets-datetime_es_ES.properties @@ -1,3 +1,3 @@ -datetimeeditor.hide.slider= -datetimeeditor.show.slider= -timeeditor.H= +datetimeeditor.H=H +datetimeeditor.hide.slider=hide time editor slider +datetimeeditor.show.slider=show time editor slider diff --git a/jaxx-widgets-datetime/src/main/resources/i18n/jaxx-widgets-datetime_fr_FR.properties b/jaxx-widgets-datetime/src/main/resources/i18n/jaxx-widgets-datetime_fr_FR.properties index b973d7c..53a7e65 100644 --- a/jaxx-widgets-datetime/src/main/resources/i18n/jaxx-widgets-datetime_fr_FR.properties +++ b/jaxx-widgets-datetime/src/main/resources/i18n/jaxx-widgets-datetime_fr_FR.properties @@ -1,3 +1,3 @@ +datetimeeditor.H=H datetimeeditor.hide.slider=Cacher la réglette d'édition des heures datetimeeditor.show.slider=Voir la réglette d'édition des heures -timeeditor.H= diff --git a/jaxx-widgets-datetime/src/main/resources/icons/action-coordinate-reset.png b/jaxx-widgets-datetime/src/main/resources/icons/action-coordinate-reset.png deleted file mode 100644 index 0fb00f9..0000000 Binary files a/jaxx-widgets-datetime/src/main/resources/icons/action-coordinate-reset.png and /dev/null differ -- To stop receiving notification emails like this one, please contact nuiton.org SCM administrator <admin+scm@nuiton.org>.