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 15af4d0faa1811724720e22dc271205bfd0f23b6 Author: Tony CHEMIT <chemit@codelutin.com> Date: Mon Apr 13 09:02:04 2015 +0200 refs #3468 Review jaxx-validator API --- jaxx-validator/pom.xml | 5 ---- .../swing/SwingListValidatorMessageWidget.java | 2 +- .../jaxx/validator/swing/SwingValidator.java | 30 +++++++++++----------- .../swing/SwingValidatorMessageWidget.java | 2 +- .../jaxx/validator/swing/SwingValidatorUtil.java | 2 +- .../swing/ui/AbstractBeanValidatorUI.java | 19 ++++++++++++-- .../jaxx/validator/swing/ui/IconValidationUI.java | 20 ++++++++++----- .../jaxx/validator/swing/ui/ImageValidationUI.java | 21 ++++++++++----- .../swing/ui/TranslucentValidationUI.java | 18 +++++++------ .../unified/UnifiedValidatorMessageWidget.java | 2 +- 10 files changed, 73 insertions(+), 48 deletions(-) diff --git a/jaxx-validator/pom.xml b/jaxx-validator/pom.xml index b50e792..98b2c56 100644 --- a/jaxx-validator/pom.xml +++ b/jaxx-validator/pom.xml @@ -86,11 +86,6 @@ </dependency> <dependency> - <groupId>org.swinglabs</groupId> - <artifactId>jxlayer</artifactId> - </dependency> - - <dependency> <groupId>org.swinglabs.swingx</groupId> <artifactId>swingx-core</artifactId> </dependency> diff --git a/jaxx-validator/src/main/java/org/nuiton/jaxx/validator/swing/SwingListValidatorMessageWidget.java b/jaxx-validator/src/main/java/org/nuiton/jaxx/validator/swing/SwingListValidatorMessageWidget.java index 9cd0cd4..9691339 100644 --- a/jaxx-validator/src/main/java/org/nuiton/jaxx/validator/swing/SwingListValidatorMessageWidget.java +++ b/jaxx-validator/src/main/java/org/nuiton/jaxx/validator/swing/SwingListValidatorMessageWidget.java @@ -25,7 +25,7 @@ package org.nuiton.jaxx.validator.swing; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.jdesktop.swingx.JXTitledPanel; -import org.nuiton.jaxx.swing.extra.Icons; +import org.nuiton.jaxx.runtime.api.swing.Icons; import org.nuiton.jaxx.swing.extra.ComponentMover; import org.nuiton.jaxx.swing.extra.ComponentResizer; import org.nuiton.validator.NuitonValidatorScope; diff --git a/jaxx-validator/src/main/java/org/nuiton/jaxx/validator/swing/SwingValidator.java b/jaxx-validator/src/main/java/org/nuiton/jaxx/validator/swing/SwingValidator.java index bffdd27..8802ec9 100644 --- a/jaxx-validator/src/main/java/org/nuiton/jaxx/validator/swing/SwingValidator.java +++ b/jaxx-validator/src/main/java/org/nuiton/jaxx/validator/swing/SwingValidator.java @@ -24,11 +24,10 @@ package org.nuiton.jaxx.validator.swing; import com.google.common.base.Preconditions; import com.google.common.collect.ArrayListMultimap; import com.google.common.collect.Multimap; -import org.nuiton.jaxx.validator.swing.ui.AbstractBeanValidatorUI; -import org.nuiton.jaxx.validator.swing.ui.IconValidationUI; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; -import org.jdesktop.jxlayer.JXLayer; +import org.nuiton.jaxx.validator.swing.ui.AbstractBeanValidatorUI; +import org.nuiton.jaxx.validator.swing.ui.IconValidationUI; import org.nuiton.validator.NuitonValidator; import org.nuiton.validator.NuitonValidatorFactory; import org.nuiton.validator.NuitonValidatorProvider; @@ -36,6 +35,7 @@ import org.nuiton.validator.NuitonValidatorScope; import org.nuiton.validator.bean.simple.SimpleBeanValidator; import javax.swing.JComponent; +import javax.swing.JLayer; import java.awt.Container; import java.lang.reflect.Constructor; import java.lang.reflect.InvocationTargetException; @@ -409,9 +409,9 @@ public class SwingValidator<B> extends SimpleBeanValidator<B> { // ajout du jxlayer sous ce composant Container container = c.getParent(); - if (container instanceof JXLayer<?>) { - JXLayer jx = (JXLayer<?>) container; - Object oldUI = jx.getUI(); + if (container instanceof JLayer<?>) { + JLayer layer = (JLayer<?>) container; + Object oldUI = layer.getUI(); if (oldUI != null && oldUI instanceof AbstractBeanValidatorUI) { // supression de l'ancien layer @@ -423,7 +423,7 @@ public class SwingValidator<B> extends SimpleBeanValidator<B> { // ui.setEnabled(true); addSimpleBeanValidatorListener(ui); - jx.setUI(ui); + layer.setUI(ui); } } @@ -452,22 +452,22 @@ public class SwingValidator<B> extends SimpleBeanValidator<B> { if (old != null) { // suppression du jxlayer sous l'ancien composant Container container = old.getParent(); - if (container instanceof JXLayer<?>) { - JXLayer<?> jx = (JXLayer<?>) container; - Object ui = jx.getUI(); + if (container instanceof JLayer<?>) { + JLayer<?> layer = (JLayer<?>) container; + Object ui = layer.getUI(); if (ui != null && ui instanceof AbstractBeanValidatorUI) { removeSimpleBeanValidatorListener((AbstractBeanValidatorUI) ui); } - jx.setUI(null); + layer.setUI(null); } } if (c != null) { // ajout du jxlayer sous ce composant Container container = c.getParent(); - if (container instanceof JXLayer<?>) { - JXLayer jx = (JXLayer<?>) container; - Object oldUI = jx.getUI(); + if (container instanceof JLayer<?>) { + JLayer layer = (JLayer<?>) container; + Object oldUI = layer.getUI(); if (oldUI != null && oldUI instanceof AbstractBeanValidatorUI) { // supression de l'ancien layer @@ -479,7 +479,7 @@ public class SwingValidator<B> extends SimpleBeanValidator<B> { // ui.setEnabled(true); addSimpleBeanValidatorListener(ui); - jx.setUI(ui); + layer.setUI(ui); } } } diff --git a/jaxx-validator/src/main/java/org/nuiton/jaxx/validator/swing/SwingValidatorMessageWidget.java b/jaxx-validator/src/main/java/org/nuiton/jaxx/validator/swing/SwingValidatorMessageWidget.java index 1620f9c..7989bc2 100644 --- a/jaxx-validator/src/main/java/org/nuiton/jaxx/validator/swing/SwingValidatorMessageWidget.java +++ b/jaxx-validator/src/main/java/org/nuiton/jaxx/validator/swing/SwingValidatorMessageWidget.java @@ -26,7 +26,7 @@ package org.nuiton.jaxx.validator.swing; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.jdesktop.swingx.JXTitledPanel; -import org.nuiton.jaxx.swing.extra.Icons; +import org.nuiton.jaxx.runtime.api.swing.Icons; import org.nuiton.jaxx.swing.extra.ComponentMover; import org.nuiton.jaxx.swing.extra.ComponentResizer; import org.nuiton.validator.NuitonValidatorScope; diff --git a/jaxx-validator/src/main/java/org/nuiton/jaxx/validator/swing/SwingValidatorUtil.java b/jaxx-validator/src/main/java/org/nuiton/jaxx/validator/swing/SwingValidatorUtil.java index 4c870d2..8b51299 100644 --- a/jaxx-validator/src/main/java/org/nuiton/jaxx/validator/swing/SwingValidatorUtil.java +++ b/jaxx-validator/src/main/java/org/nuiton/jaxx/validator/swing/SwingValidatorUtil.java @@ -32,7 +32,7 @@ import org.apache.commons.logging.LogFactory; import org.jdesktop.swingx.JXTable; import org.jdesktop.swingx.decorator.ColorHighlighter; import org.nuiton.jaxx.runtime.api.JAXXObject; -import org.nuiton.jaxx.swing.extra.Icons; +import org.nuiton.jaxx.runtime.api.swing.Icons; import org.nuiton.jaxx.swing.extra.JTables; import org.nuiton.util.ReflectUtil; import org.nuiton.validator.NuitonValidatorScope; diff --git a/jaxx-validator/src/main/java/org/nuiton/jaxx/validator/swing/ui/AbstractBeanValidatorUI.java b/jaxx-validator/src/main/java/org/nuiton/jaxx/validator/swing/ui/AbstractBeanValidatorUI.java index ab363d4..6aac05b 100644 --- a/jaxx-validator/src/main/java/org/nuiton/jaxx/validator/swing/ui/AbstractBeanValidatorUI.java +++ b/jaxx-validator/src/main/java/org/nuiton/jaxx/validator/swing/ui/AbstractBeanValidatorUI.java @@ -25,13 +25,15 @@ import com.google.common.collect.Ordering; import com.google.common.collect.Sets; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; -import org.jdesktop.jxlayer.plaf.AbstractLayerUI; import org.nuiton.validator.NuitonValidatorScope; import org.nuiton.validator.bean.simple.SimpleBeanValidator; import org.nuiton.validator.bean.simple.SimpleBeanValidatorEvent; import org.nuiton.validator.bean.simple.SimpleBeanValidatorListener; import javax.swing.JComponent; +import javax.swing.JLayer; +import javax.swing.plaf.LayerUI; +import java.beans.PropertyChangeEvent; import java.util.Collection; import java.util.Set; @@ -40,7 +42,7 @@ import java.util.Set; * * @author Tony Chemit - chemit@codelutin.com */ -public abstract class AbstractBeanValidatorUI extends AbstractLayerUI<JComponent> implements SimpleBeanValidatorListener { +public abstract class AbstractBeanValidatorUI extends LayerUI<JComponent> implements SimpleBeanValidatorListener { /** Logger */ private static final Log log = LogFactory.getLog(AbstractBeanValidatorUI.class); @@ -86,6 +88,19 @@ public abstract class AbstractBeanValidatorUI extends AbstractLayerUI<JComponent } } + @Override + public void applyPropertyChange(PropertyChangeEvent evt, JLayer<? extends JComponent> l) { + super.applyPropertyChange(evt, l); + if (!"dirty".equals(evt.getPropertyName()) + || evt.getNewValue() == Boolean.TRUE) { + l.repaint(); + } + } + + protected void setDirty(boolean dirty) { + firePropertyChange("dirty", null, dirty); + } + protected NuitonValidatorScope getHighestScope(SimpleBeanValidatorEvent event) { SimpleBeanValidator<?> source = event.getSource(); Set<NuitonValidatorScope> scopes = Sets.newHashSet(); diff --git a/jaxx-validator/src/main/java/org/nuiton/jaxx/validator/swing/ui/IconValidationUI.java b/jaxx-validator/src/main/java/org/nuiton/jaxx/validator/swing/ui/IconValidationUI.java index db468c5..1761862 100644 --- a/jaxx-validator/src/main/java/org/nuiton/jaxx/validator/swing/ui/IconValidationUI.java +++ b/jaxx-validator/src/main/java/org/nuiton/jaxx/validator/swing/ui/IconValidationUI.java @@ -23,12 +23,13 @@ package org.nuiton.jaxx.validator.swing.ui; import com.google.common.collect.Sets; import org.nuiton.jaxx.validator.swing.SwingValidatorUtil; -import org.jdesktop.jxlayer.JXLayer; import org.nuiton.validator.NuitonValidatorScope; import javax.swing.BorderFactory; import javax.swing.JComponent; +import javax.swing.JLayer; import java.awt.Color; +import java.awt.Graphics; import java.awt.Graphics2D; import java.awt.RenderingHints; import java.awt.image.BufferedImage; @@ -56,7 +57,7 @@ public class IconValidationUI extends AbstractBeanValidatorUI { public IconValidationUI(Collection<String> fields) { super(fields); - icons = new EnumMap<NuitonValidatorScope, BufferedImage>(NuitonValidatorScope.class); + icons = new EnumMap<>(NuitonValidatorScope.class); for (NuitonValidatorScope scope : NuitonValidatorScope.values()) { @@ -68,23 +69,28 @@ public class IconValidationUI extends AbstractBeanValidatorUI { @Override public void installUI(JComponent c) { super.installUI(c); - c.setBorder(BorderFactory.createEmptyBorder(2, 0, 0, 3)); + JLayer l = (JLayer) c; + JComponent view = (JComponent) l.getView(); + view.setBorder(BorderFactory.createEmptyBorder(2, 0, 0, 3)); } @Override public void uninstallUI(JComponent c) { super.uninstallUI(c); - c.setBorder(null); + JLayer l = (JLayer) c; + JComponent view = (JComponent) l.getView(); + view.setBorder(null); } @Override - protected void paintLayer(Graphics2D g2, JXLayer<? extends JComponent> l) { - super.paintLayer(g2, l); + public void paint(Graphics g, JComponent c) { + super.paint(g, c); + JLayer l = (JLayer) c; // There is no need to take insets into account for this painter NuitonValidatorScope scope = getScope(); if (scope != null) { BufferedImage icon = icons.get(scope); - g2.drawImage(icon, l.getWidth() - icon.getWidth() - 1, 0, null); + g.drawImage(icon, l.getWidth() - icon.getWidth() - 1, 0, null); } } diff --git a/jaxx-validator/src/main/java/org/nuiton/jaxx/validator/swing/ui/ImageValidationUI.java b/jaxx-validator/src/main/java/org/nuiton/jaxx/validator/swing/ui/ImageValidationUI.java index 9c97491..529d243 100644 --- a/jaxx-validator/src/main/java/org/nuiton/jaxx/validator/swing/ui/ImageValidationUI.java +++ b/jaxx-validator/src/main/java/org/nuiton/jaxx/validator/swing/ui/ImageValidationUI.java @@ -23,12 +23,13 @@ package org.nuiton.jaxx.validator.swing.ui; import com.google.common.collect.Sets; import org.nuiton.jaxx.validator.swing.SwingValidatorUtil; -import org.jdesktop.jxlayer.JXLayer; import org.nuiton.validator.NuitonValidatorScope; import javax.swing.BorderFactory; import javax.swing.ImageIcon; import javax.swing.JComponent; +import javax.swing.JLayer; +import java.awt.Graphics; import java.awt.Graphics2D; import java.awt.RenderingHints; import java.awt.image.BufferedImage; @@ -54,7 +55,7 @@ public class ImageValidationUI extends AbstractBeanValidatorUI { public ImageValidationUI(Collection<String> fields) { super(fields); - icons = new EnumMap<NuitonValidatorScope, BufferedImage>(NuitonValidatorScope.class); + icons = new EnumMap<>(NuitonValidatorScope.class); for (NuitonValidatorScope scope : NuitonValidatorScope.values()) { @@ -76,22 +77,28 @@ public class ImageValidationUI extends AbstractBeanValidatorUI { @Override public void installUI(JComponent c) { super.installUI(c); - c.setBorder(BorderFactory.createEmptyBorder(2, 0, 0, 3)); + JLayer l = (JLayer) c; + JComponent view = (JComponent) l.getView(); + view.setBorder(BorderFactory.createEmptyBorder(2, 0, 0, 3)); } @Override public void uninstallUI(JComponent c) { super.uninstallUI(c); - c.setBorder(null); + JLayer l = (JLayer) c; + JComponent view = (JComponent) l.getView(); + view.setBorder(null); } @Override - protected void paintLayer(Graphics2D g2, JXLayer<? extends JComponent> l) { - super.paintLayer(g2, l); + public void paint(Graphics g, JComponent c) { + super.paint(g, c); + JLayer l = (JLayer) c; NuitonValidatorScope scope = getScope(); if (scope != null) { BufferedImage icon = icons.get(scope); - g2.drawImage(icon, l.getWidth() - icon.getWidth() - 1, 0, null); + g.drawImage(icon, l.getWidth() - icon.getWidth() - 1, 0, null); } } + } diff --git a/jaxx-validator/src/main/java/org/nuiton/jaxx/validator/swing/ui/TranslucentValidationUI.java b/jaxx-validator/src/main/java/org/nuiton/jaxx/validator/swing/ui/TranslucentValidationUI.java index 565ecfd..7b770d5 100644 --- a/jaxx-validator/src/main/java/org/nuiton/jaxx/validator/swing/ui/TranslucentValidationUI.java +++ b/jaxx-validator/src/main/java/org/nuiton/jaxx/validator/swing/ui/TranslucentValidationUI.java @@ -22,12 +22,13 @@ package org.nuiton.jaxx.validator.swing.ui; import org.nuiton.jaxx.validator.swing.SwingValidatorUtil; -import org.jdesktop.jxlayer.JXLayer; import org.nuiton.validator.NuitonValidatorScope; import javax.swing.JComponent; +import javax.swing.JLayer; import java.awt.AlphaComposite; import java.awt.Color; +import java.awt.Graphics; import java.awt.Graphics2D; import java.awt.Insets; import java.awt.Rectangle; @@ -53,15 +54,15 @@ public class TranslucentValidationUI extends AbstractBeanValidatorUI { } @Override - protected void paintLayer(Graphics2D g2, JXLayer<? extends JComponent> l) { - // paints the layer as is - super.paintLayer(g2, l); - + public void paint(Graphics g, JComponent c) { + super.paint(g, c); + JLayer l = (JLayer) c; + Graphics2D g2 = (Graphics2D) g; // to be in sync with the view if the layer has a border Insets layerInsets = l.getInsets(); g2.translate(layerInsets.left, layerInsets.top); - JComponent view = l.getView(); + JComponent view = (JComponent) l.getView(); // To prevent painting on view's border Insets insets = view.getInsets(); g2.clip(new Rectangle(insets.left, insets.top, @@ -70,9 +71,10 @@ public class TranslucentValidationUI extends AbstractBeanValidatorUI { NuitonValidatorScope scope = getScope(); - Color c = scope == null ? Color.WHITE : SwingValidatorUtil.getColor(scope); - g2.setColor(c); + Color color = scope == null ? Color.WHITE : SwingValidatorUtil.getColor(scope); + g2.setColor(color); g2.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER, .2f)); g2.fillRect(0, 0, l.getWidth(), l.getHeight()); } + } diff --git a/jaxx-validator/src/main/java/org/nuiton/jaxx/validator/swing/unified/UnifiedValidatorMessageWidget.java b/jaxx-validator/src/main/java/org/nuiton/jaxx/validator/swing/unified/UnifiedValidatorMessageWidget.java index b6ecf71..2f05fdb 100644 --- a/jaxx-validator/src/main/java/org/nuiton/jaxx/validator/swing/unified/UnifiedValidatorMessageWidget.java +++ b/jaxx-validator/src/main/java/org/nuiton/jaxx/validator/swing/unified/UnifiedValidatorMessageWidget.java @@ -29,7 +29,7 @@ import org.nuiton.jaxx.validator.swing.SwingValidatorUtil; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.jdesktop.swingx.JXTitledPanel; -import org.nuiton.jaxx.swing.extra.Icons; +import org.nuiton.jaxx.runtime.api.swing.Icons; import org.nuiton.jaxx.swing.extra.ComponentMover; import org.nuiton.jaxx.swing.extra.ComponentResizer; import org.nuiton.validator.NuitonValidatorScope; -- To stop receiving notification emails like this one, please contact nuiton.org SCM administrator <admin+scm@nuiton.org>.