branch develop updated (6be7c23 -> 5a17dd9)
This is an automated email from the git hooks/post-receive script. New change to branch develop in repository jaxx. See http://git.nuiton.org/jaxx.git from 6be7c23 fixes #3669: Migrates package to *org.nuiton.jaxx* Merge branch 'feature/3669' into develop new afba725 refs #3468 Remove JXLayer API and replace it by JLayer new 15af4d0 refs #3468 Review jaxx-validator API new 5797dd8 refs #3468 Impact JLayer API changes new c3ae06a refs #3468 Update doc new 5a17dd9 fixes #3468: Use JLayer instead of JXLayer (but requires to up jdk level to 1.7) Merge branch 'feature/3468' into develop The 5 revisions listed above as "new" are entirely new to this repository and will be described in separate emails. The revisions listed as "adds" were already present in the repository and have only been added to this reference. Detailed log of new commits: commit 5a17dd9ae99c4969925ed661468baab194706207 Merge: 6be7c23 c3ae06a Author: Tony CHEMIT <chemit@codelutin.com> Date: Mon Apr 13 09:05:52 2015 +0200 fixes #3468: Use JLayer instead of JXLayer (but requires to up jdk level to 1.7) Merge branch 'feature/3468' into develop commit c3ae06a63f2b8b629f6d243640c6de75271ca727 Author: Tony CHEMIT <chemit@codelutin.com> Date: Mon Apr 13 09:05:49 2015 +0200 refs #3468 Update doc commit 5797dd87b0f9322093a44475b1019399545eebe7 Author: Tony CHEMIT <chemit@codelutin.com> Date: Mon Apr 13 09:03:44 2015 +0200 refs #3468 Impact JLayer API changes commit 15af4d0faa1811724720e22dc271205bfd0f23b6 Author: Tony CHEMIT <chemit@codelutin.com> Date: Mon Apr 13 09:02:04 2015 +0200 refs #3468 Review jaxx-validator API commit afba725caab50fc7924da222df0f052b5f527fc4 Author: Tony CHEMIT <chemit@codelutin.com> Date: Mon Apr 13 09:01:37 2015 +0200 refs #3468 Remove JXLayer API and replace it by JLayer Summary of changes: .../swing/action/ApplicationActionUIHandler.java | 4 +- .../jaxx/application/swing/tab/CustomTab.java | 2 +- jaxx-compiler/pom.xml | 5 -- .../decorators/BoxedCompiledObjectDecorator.java | 6 +- .../compiler/finalizers/ValidatorFinalizer.java | 6 +- .../jaxx/compiler/spi/DefaultInitializer.java | 10 +-- .../compiler/tags/DefaultComponentHandler.java | 2 +- .../{JXLayerHandler.java => JLayerHandler.java} | 18 ++--- jaxx-demo/pom.xml | 5 -- .../java/org/nuiton/jaxx/demo/DemoUIHandler.java | 2 +- .../demo/component/jaxx/BoxedDecoratorDemo.css | 36 +++++---- .../demo/component/jaxx/BoxedDecoratorDemo.jaxx | 78 +++---------------- .../component/jaxx/BoxedDecoratorDemoHandler.java | 84 +++++++++++++++++++++ .../jaxx/demo/feature/nav/NavDemoHandler.java | 2 +- .../java/org/nuiton/jaxx/plugin/Bug1404Test.java | 8 +- .../java/org/nuiton/jaxx/plugin/DecoratorTest.java | 2 +- jaxx-runtime-api/pom.xml | 5 -- .../api/internal/awt/visitor/BuildTreeVisitor.java | 6 +- .../org/nuiton/jaxx/runtime/api/swing}/Icons.java | 2 +- .../org/nuiton/jaxx/runtime/api/swing/JLayers.java | 48 ++++++------ .../java/org/nuiton/jaxx/runtime/SwingUtil.java | 2 +- jaxx-swing-extra/pom.xml | 6 -- .../java/org/nuiton/jaxx/swing/extra/Swings.java | 35 ++++----- .../jaxx/swing/extra/layer/BlockingLayerUI.java | 87 ++++++++++++++++------ .../jaxx/swing/extra/layer/BlockingLayerUI2.java | 68 +++++++++++++---- .../list/renderer/LocaleListCellRenderer.java | 2 +- 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 +- .../jaxx/widgets/config/ConfigCategoryUI.jaxx | 2 +- .../widgets/config/model/MyDelegateConfigTest.java | 2 +- .../config/model/MyInheritedConfigTest.java | 2 +- .../jaxx/runtime/swing/AboutPanelHandler.java | 2 +- .../org/nuiton/jaxx/runtime/swing/HidorButton.jaxx | 2 +- .../jaxx/runtime/swing/JSearchTextField.java | 2 +- .../table/filter/FilterTableHeaderRenderer.java | 2 +- .../swing/table/filter/TableFilterColumnPopup.java | 2 +- src/site/rst/migrate_v3.rst | 14 ++-- 45 files changed, 399 insertions(+), 283 deletions(-) rename jaxx-compiler/src/main/java/org/nuiton/jaxx/compiler/tags/swing/{JXLayerHandler.java => JLayerHandler.java} (88%) create mode 100644 jaxx-demo/src/main/java/org/nuiton/jaxx/demo/component/jaxx/BoxedDecoratorDemoHandler.java rename {jaxx-swing-extra/src/main/java/org/nuiton/jaxx/swing/extra => jaxx-runtime-api/src/main/java/org/nuiton/jaxx/runtime/api/swing}/Icons.java (98%) rename jaxx-swing-extra/src/main/java/org/nuiton/jaxx/swing/extra/JXLayers.java => jaxx-runtime-api/src/main/java/org/nuiton/jaxx/runtime/api/swing/JLayers.java (51%) -- To stop receiving notification emails like this one, please contact nuiton.org SCM administrator <admin+scm@nuiton.org>.
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 afba725caab50fc7924da222df0f052b5f527fc4 Author: Tony CHEMIT <chemit@codelutin.com> Date: Mon Apr 13 09:01:37 2015 +0200 refs #3468 Remove JXLayer API and replace it by JLayer --- jaxx-compiler/pom.xml | 5 -- .../decorators/BoxedCompiledObjectDecorator.java | 6 +- .../compiler/finalizers/ValidatorFinalizer.java | 6 +- .../jaxx/compiler/spi/DefaultInitializer.java | 10 +-- .../compiler/tags/DefaultComponentHandler.java | 2 +- .../{JXLayerHandler.java => JLayerHandler.java} | 18 ++--- jaxx-runtime-api/pom.xml | 5 -- .../api/internal/awt/visitor/BuildTreeVisitor.java | 6 +- .../org/nuiton/jaxx/runtime/api/swing}/Icons.java | 2 +- .../org/nuiton/jaxx/runtime/api/swing/JLayers.java | 48 ++++++------ .../java/org/nuiton/jaxx/runtime/SwingUtil.java | 2 +- jaxx-swing-extra/pom.xml | 6 -- .../java/org/nuiton/jaxx/swing/extra/Swings.java | 35 ++++----- .../jaxx/swing/extra/layer/BlockingLayerUI.java | 87 ++++++++++++++++------ .../jaxx/swing/extra/layer/BlockingLayerUI2.java | 68 +++++++++++++---- .../list/renderer/LocaleListCellRenderer.java | 2 +- 16 files changed, 185 insertions(+), 123 deletions(-) diff --git a/jaxx-compiler/pom.xml b/jaxx-compiler/pom.xml index 7caab59..13fabbc 100644 --- a/jaxx-compiler/pom.xml +++ b/jaxx-compiler/pom.xml @@ -82,11 +82,6 @@ </dependency> <dependency> - <groupId>org.swinglabs</groupId> - <artifactId>jxlayer</artifactId> - </dependency> - - <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-lang3</artifactId> </dependency> diff --git a/jaxx-compiler/src/main/java/org/nuiton/jaxx/compiler/decorators/BoxedCompiledObjectDecorator.java b/jaxx-compiler/src/main/java/org/nuiton/jaxx/compiler/decorators/BoxedCompiledObjectDecorator.java index a1a82f0..475665e 100644 --- a/jaxx-compiler/src/main/java/org/nuiton/jaxx/compiler/decorators/BoxedCompiledObjectDecorator.java +++ b/jaxx-compiler/src/main/java/org/nuiton/jaxx/compiler/decorators/BoxedCompiledObjectDecorator.java @@ -26,7 +26,7 @@ import org.nuiton.jaxx.compiler.CompiledObject; import org.nuiton.jaxx.compiler.CompiledObject.ChildRef; import org.nuiton.jaxx.compiler.JAXXCompiler; import org.nuiton.jaxx.compiler.java.JavaFile; -import org.nuiton.jaxx.swing.extra.JXLayers; +import org.nuiton.jaxx.runtime.api.swing.JLayers; /** * A decorator to surround a compiled object (should be a component at least) @@ -58,10 +58,10 @@ public class BoxedCompiledObjectDecorator extends DefaultCompiledObjectDecorator for (ChildRef child : parent.getChilds()) { if (child.getChild() == object) { String javaCode = child.getChildJavaCode(); - String type = compiler.getImportedType(JXLayers.class); + String type = compiler.getImportedType(JLayers.class); child.setChildJavaCode( type + - ".boxComponentWithJxLayer(" + javaCode + ")"); + ".boxComponentWithJLayer(" + javaCode + ")"); break; } } diff --git a/jaxx-compiler/src/main/java/org/nuiton/jaxx/compiler/finalizers/ValidatorFinalizer.java b/jaxx-compiler/src/main/java/org/nuiton/jaxx/compiler/finalizers/ValidatorFinalizer.java index 22f48d1..c9e9580 100644 --- a/jaxx-compiler/src/main/java/org/nuiton/jaxx/compiler/finalizers/ValidatorFinalizer.java +++ b/jaxx-compiler/src/main/java/org/nuiton/jaxx/compiler/finalizers/ValidatorFinalizer.java @@ -42,7 +42,7 @@ import org.nuiton.jaxx.compiler.java.JavaFile; import org.nuiton.jaxx.compiler.tags.validator.BeanValidatorHandler; import org.nuiton.jaxx.compiler.tags.validator.BeanValidatorHandler.CompiledBeanValidator; import org.nuiton.jaxx.compiler.types.TypeManager; -import org.nuiton.jaxx.swing.extra.JXLayers; +import org.nuiton.jaxx.runtime.api.swing.JLayers; import java.lang.reflect.Modifier; import java.util.ArrayList; @@ -103,11 +103,11 @@ public class ValidatorFinalizer extends AbstractFinalizer { if (found) { // compiler.setNeedSwingUtil(true); String type = - compiler.getImportedType(JXLayers.class); + compiler.getImportedType(JLayers.class); // box the child component in a JxLayer child.setChildJavaCode( type + - ".boxComponentWithJxLayer(" + javaCode + ")"); + ".boxComponentWithJLayer(" + javaCode + ")"); } } } diff --git a/jaxx-compiler/src/main/java/org/nuiton/jaxx/compiler/spi/DefaultInitializer.java b/jaxx-compiler/src/main/java/org/nuiton/jaxx/compiler/spi/DefaultInitializer.java index 3ac2b0b..e6c45a5 100644 --- a/jaxx-compiler/src/main/java/org/nuiton/jaxx/compiler/spi/DefaultInitializer.java +++ b/jaxx-compiler/src/main/java/org/nuiton/jaxx/compiler/spi/DefaultInitializer.java @@ -22,8 +22,6 @@ package org.nuiton.jaxx.compiler.spi; -import org.nuiton.jaxx.validator.swing.SwingValidator; -import org.jdesktop.jxlayer.JXLayer; import org.nuiton.jaxx.compiler.JAXXCompiler; import org.nuiton.jaxx.compiler.beans.BeanInfoUtil; import org.nuiton.jaxx.compiler.reflect.ClassDescriptor; @@ -60,7 +58,7 @@ import org.nuiton.jaxx.compiler.tags.swing.JTextComponentHandler; import org.nuiton.jaxx.compiler.tags.swing.JToolBarHandler; import org.nuiton.jaxx.compiler.tags.swing.JTreeHandler; import org.nuiton.jaxx.compiler.tags.swing.JWindowHandler; -import org.nuiton.jaxx.compiler.tags.swing.JXLayerHandler; +import org.nuiton.jaxx.compiler.tags.swing.JLayerHandler; import org.nuiton.jaxx.compiler.tags.swing.RowHandler; import org.nuiton.jaxx.compiler.tags.swing.TabHandler; import org.nuiton.jaxx.compiler.tags.swing.TableHandler; @@ -74,6 +72,7 @@ import org.nuiton.jaxx.runtime.api.swing.JAXXList; import org.nuiton.jaxx.runtime.api.swing.JAXXTab; import org.nuiton.jaxx.runtime.api.swing.JAXXTree; import org.nuiton.jaxx.runtime.api.swing.Table; +import org.nuiton.jaxx.validator.swing.SwingValidator; import javax.swing.JCheckBox; import javax.swing.JCheckBoxMenuItem; @@ -83,6 +82,7 @@ import javax.swing.JEditorPane; import javax.swing.JFormattedTextField; import javax.swing.JFrame; import javax.swing.JInternalFrame; +import javax.swing.JLayer; import javax.swing.JList; import javax.swing.JMenu; import javax.swing.JPasswordField; @@ -184,8 +184,8 @@ public class DefaultInitializer implements Initializer { registerBean(JFrame.class, JWindowHandler.class); registerBean(JWindow.class, JWindowHandler.class); - // JXLayer - registerBean(JXLayer.class, JXLayerHandler.class); + // JLayer + registerBean(JLayer.class, JLayerHandler.class); registerBean(Application.class, ApplicationHandler.class); diff --git a/jaxx-compiler/src/main/java/org/nuiton/jaxx/compiler/tags/DefaultComponentHandler.java b/jaxx-compiler/src/main/java/org/nuiton/jaxx/compiler/tags/DefaultComponentHandler.java index 1ba9d8e..daa8fda 100644 --- a/jaxx-compiler/src/main/java/org/nuiton/jaxx/compiler/tags/DefaultComponentHandler.java +++ b/jaxx-compiler/src/main/java/org/nuiton/jaxx/compiler/tags/DefaultComponentHandler.java @@ -33,7 +33,7 @@ import org.nuiton.jaxx.compiler.reflect.ClassDescriptor; import org.nuiton.jaxx.compiler.reflect.ClassDescriptorHelper; import org.nuiton.jaxx.compiler.types.TypeManager; import org.nuiton.jaxx.runtime.api.JAXXRuntime; -import org.nuiton.jaxx.swing.extra.Icons; +import org.nuiton.jaxx.runtime.api.swing.Icons; import org.w3c.dom.Attr; import org.w3c.dom.Element; import org.w3c.dom.NamedNodeMap; diff --git a/jaxx-compiler/src/main/java/org/nuiton/jaxx/compiler/tags/swing/JXLayerHandler.java b/jaxx-compiler/src/main/java/org/nuiton/jaxx/compiler/tags/swing/JLayerHandler.java similarity index 88% rename from jaxx-compiler/src/main/java/org/nuiton/jaxx/compiler/tags/swing/JXLayerHandler.java rename to jaxx-compiler/src/main/java/org/nuiton/jaxx/compiler/tags/swing/JLayerHandler.java index a6253fd..0f1628b 100644 --- a/jaxx-compiler/src/main/java/org/nuiton/jaxx/compiler/tags/swing/JXLayerHandler.java +++ b/jaxx-compiler/src/main/java/org/nuiton/jaxx/compiler/tags/swing/JLayerHandler.java @@ -22,7 +22,6 @@ package org.nuiton.jaxx.compiler.tags.swing; import org.apache.commons.collections4.CollectionUtils; -import org.jdesktop.jxlayer.JXLayer; import org.nuiton.jaxx.compiler.CompiledObject; import org.nuiton.jaxx.compiler.CompilerException; import org.nuiton.jaxx.compiler.JAXXCompiler; @@ -30,17 +29,18 @@ import org.nuiton.jaxx.compiler.reflect.ClassDescriptor; import org.nuiton.jaxx.compiler.reflect.ClassDescriptorHelper; import org.nuiton.jaxx.compiler.tags.DefaultComponentHandler; +import javax.swing.JLayer; import java.awt.Component; /** * To deal with JXLayer, since from version 3.0.4, we can not use any longer - * the {@link JXLayer#add(Component)} ! but must now use the - * method {@link JXLayer#setView(Component)}. + * the {@link JLayer#add(Component)} ! but must now use the + * method {@link JLayer#setView(Component)}. * * @author Tony Chemit - chemit@codelutin.com * @since 2.4 */ -public class JXLayerHandler extends DefaultComponentHandler { +public class JLayerHandler extends DefaultComponentHandler { public static final String ATTRIBUTE_ORIENTATION = "orientation"; @@ -52,9 +52,9 @@ public class JXLayerHandler extends DefaultComponentHandler { public static final String ORIENTATION_VALUE_HORIZONTAL_SPLIT = "horizontal_split"; - public JXLayerHandler(ClassDescriptor beanClass) { + public JLayerHandler(ClassDescriptor beanClass) { super(beanClass); - ClassDescriptorHelper.checkSupportClass(getClass(), beanClass, JXLayer.class); + ClassDescriptorHelper.checkSupportClass(getClass(), beanClass, JLayer.class); } @Override @@ -67,16 +67,16 @@ public class JXLayerHandler extends DefaultComponentHandler { JAXXCompiler compiler) throws CompilerException { if (constraints != null) { - compiler.reportError("JXLayer does not accept constraints"); + compiler.reportError("JLayer does not accept constraints"); return; } if (CollectionUtils.isNotEmpty(getChilds())) { // already one child, authrozied only one child... - compiler.reportError("JXLayer is limited to one children"); + compiler.reportError("JLayer is limited to one children"); return; } - super.addChild(child, constraints, compiler); + super.addChild(child, null, compiler); } diff --git a/jaxx-runtime-api/pom.xml b/jaxx-runtime-api/pom.xml index b12e144..cd83477 100644 --- a/jaxx-runtime-api/pom.xml +++ b/jaxx-runtime-api/pom.xml @@ -64,11 +64,6 @@ </dependency> <dependency> - <groupId>org.swinglabs</groupId> - <artifactId>jxlayer</artifactId> - </dependency> - - <dependency> <groupId>log4j</groupId> <artifactId>log4j</artifactId> <scope>test</scope> diff --git a/jaxx-runtime-api/src/main/java/org/nuiton/jaxx/runtime/api/internal/awt/visitor/BuildTreeVisitor.java b/jaxx-runtime-api/src/main/java/org/nuiton/jaxx/runtime/api/internal/awt/visitor/BuildTreeVisitor.java index 1000829..fffd7c5 100644 --- a/jaxx-runtime-api/src/main/java/org/nuiton/jaxx/runtime/api/internal/awt/visitor/BuildTreeVisitor.java +++ b/jaxx-runtime-api/src/main/java/org/nuiton/jaxx/runtime/api/internal/awt/visitor/BuildTreeVisitor.java @@ -22,8 +22,8 @@ package org.nuiton.jaxx.runtime.api.internal.awt.visitor; * #L% */ -import org.jdesktop.jxlayer.JXLayer; +import javax.swing.JLayer; import javax.swing.JRootPane; import java.awt.Component; import java.awt.Container; @@ -52,8 +52,8 @@ public class BuildTreeVisitor implements ComponentTreeNodeVisitor { Container container = (Container) component; //TODO-TC-2013-03-17 Should use some rules to add this. for (Component child : container.getComponents()) { - if (child instanceof JXLayer<?>) { - child = ((JXLayer<?>) child).getView(); + if (child instanceof JLayer<?>) { + child = ((JLayer<?>) child).getView(); } else if (child instanceof JRootPane) { child = ((JRootPane) child).getLayeredPane(); } diff --git a/jaxx-swing-extra/src/main/java/org/nuiton/jaxx/swing/extra/Icons.java b/jaxx-runtime-api/src/main/java/org/nuiton/jaxx/runtime/api/swing/Icons.java similarity index 98% rename from jaxx-swing-extra/src/main/java/org/nuiton/jaxx/swing/extra/Icons.java rename to jaxx-runtime-api/src/main/java/org/nuiton/jaxx/runtime/api/swing/Icons.java index ea73e93..49f399a 100644 --- a/jaxx-swing-extra/src/main/java/org/nuiton/jaxx/swing/extra/Icons.java +++ b/jaxx-runtime-api/src/main/java/org/nuiton/jaxx/runtime/api/swing/Icons.java @@ -1,4 +1,4 @@ -package org.nuiton.jaxx.swing.extra; +package org.nuiton.jaxx.runtime.api.swing; import javax.swing.Icon; import javax.swing.ImageIcon; diff --git a/jaxx-swing-extra/src/main/java/org/nuiton/jaxx/swing/extra/JXLayers.java b/jaxx-runtime-api/src/main/java/org/nuiton/jaxx/runtime/api/swing/JLayers.java similarity index 51% rename from jaxx-swing-extra/src/main/java/org/nuiton/jaxx/swing/extra/JXLayers.java rename to jaxx-runtime-api/src/main/java/org/nuiton/jaxx/runtime/api/swing/JLayers.java index 0dbac1b..e8288d0 100644 --- a/jaxx-swing-extra/src/main/java/org/nuiton/jaxx/swing/extra/JXLayers.java +++ b/jaxx-runtime-api/src/main/java/org/nuiton/jaxx/runtime/api/swing/JLayers.java @@ -1,47 +1,46 @@ -package org.nuiton.jaxx.swing.extra; +package org.nuiton.jaxx.runtime.api.swing; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; -import org.jdesktop.jxlayer.JXLayer; -import org.jdesktop.jxlayer.plaf.LayerUI; import org.nuiton.jaxx.runtime.api.JAXXObject; import javax.swing.JComponent; +import javax.swing.JLayer; +import javax.swing.plaf.LayerUI; +import java.awt.Component; import java.awt.Container; import java.util.ArrayList; import java.util.List; import java.util.Map; /** - * //TODO Use Jdk7 JLayer API * Created on 4/5/15. * * @author Tony Chemit - chemit@codelutin.com * @since 3.0 */ -public class JXLayers { +public class JLayers { /** Logger. */ - private static final Log log = LogFactory.getLog(JXLayers.class); + private static final Log log = LogFactory.getLog(JLayers.class); /** - * Box a component in a {@link JXLayer}. + * Box a component in a {@link JLayer}. * * @param component the component to box - * @return the {@link JXLayer} boxing the component + * @return the {@link JLayer} boxing the component */ - public static <V extends JComponent> JXLayer<V> boxComponentWithJxLayer(V component) { - JXLayer<V> layer = getLayer(component); - if (layer != null) { - return layer; + public static <V extends Component> JLayer<V> boxComponentWithJLayer(V component) { + JLayer<V> layer = getLayer(component); + if (layer == null) { + layer = new JLayer<>(); + layer.setView(component); } - layer = new JXLayer<V>(); - layer.setView(component); return layer; } - public static List<JComponent> getLayeredComponents(JAXXObject object) { - List<JComponent> result = new ArrayList<JComponent>(); + public static List<Component> getLayeredComponents(JAXXObject object) { + List<Component> result = new ArrayList<>(); for (Map.Entry<String, Object> child : object.get$objectMap().entrySet()) { if (child.getValue() == null) { log.warn("find a null object in $objectMap " + child.getKey()); @@ -57,20 +56,23 @@ public class JXLayers { return result; } - public static <V extends JComponent> JXLayer<V> getLayer(V comp) { + public static <V extends Component> JLayer<V> getLayer(V comp) { if (!isLayered(comp)) { return null; } - return (JXLayer<V>) comp.getParent(); + return (JLayer<V>) comp.getParent(); } - public static void setLayerUI(JComponent comp, LayerUI<JComponent> ui) { - JXLayer<JComponent> layer = getLayer(comp); - layer.setUI(ui); + public static <V extends Component> void setLayerUI(Component comp, LayerUI<V> ui) { + JLayer<V> layer = (JLayer<V>) getLayer(comp); + if (layer != null) { + layer.setUI(ui); + } } - public static boolean isLayered(JComponent comp) { + public static boolean isLayered(Component comp) { Container parent = comp.getParent(); - return parent != null && parent instanceof JXLayer<?>; + return parent != null && parent instanceof JLayer<?>; } + } diff --git a/jaxx-runtime/src/main/java/org/nuiton/jaxx/runtime/SwingUtil.java b/jaxx-runtime/src/main/java/org/nuiton/jaxx/runtime/SwingUtil.java index bbd664b..2954686 100644 --- a/jaxx-runtime/src/main/java/org/nuiton/jaxx/runtime/SwingUtil.java +++ b/jaxx-runtime/src/main/java/org/nuiton/jaxx/runtime/SwingUtil.java @@ -26,7 +26,7 @@ import org.nuiton.jaxx.runtime.swing.editor.BooleanCellEditor; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.jdesktop.swingx.JXTreeTable; -import org.nuiton.jaxx.swing.extra.Icons; +import org.nuiton.jaxx.runtime.api.swing.Icons; import org.nuiton.jaxx.swing.extra.table.renderer.BooleanCellRenderer; import org.nuiton.jaxx.swing.extra.table.renderer.EmptyNumberTableCellRenderer; import org.nuiton.jaxx.swing.extra.table.renderer.EnumTableCellRenderer; diff --git a/jaxx-swing-extra/pom.xml b/jaxx-swing-extra/pom.xml index 0a1d821..a6294e4 100644 --- a/jaxx-swing-extra/pom.xml +++ b/jaxx-swing-extra/pom.xml @@ -97,12 +97,6 @@ <artifactId>swingx-core</artifactId> </dependency> - <!-- TODO Remove this and use jdk7 API --> - <dependency> - <groupId>org.swinglabs</groupId> - <artifactId>jxlayer</artifactId> - </dependency> - <dependency> <groupId>log4j</groupId> <artifactId>log4j</artifactId> diff --git a/jaxx-swing-extra/src/main/java/org/nuiton/jaxx/swing/extra/Swings.java b/jaxx-swing-extra/src/main/java/org/nuiton/jaxx/swing/extra/Swings.java index 6ea0c0b..3bdff52 100644 --- a/jaxx-swing-extra/src/main/java/org/nuiton/jaxx/swing/extra/Swings.java +++ b/jaxx-swing-extra/src/main/java/org/nuiton/jaxx/swing/extra/Swings.java @@ -2,9 +2,9 @@ package org.nuiton.jaxx.swing.extra; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; -import org.jdesktop.jxlayer.JXLayer; import javax.swing.JComponent; +import javax.swing.JLayer; import javax.swing.JLayeredPane; import javax.swing.JRootPane; import java.awt.Component; @@ -150,14 +150,12 @@ public class Swings { // Two passes: see comment in sun.awt.SunGraphicsCallback for (int i = 0; i < ncomponents; i++) { Component comp = component[i]; - Rectangle rect = null; + Rectangle rect; if (comp != null && !comp.isLightweight()) { - if (rect == null || rect.width == 0 || rect.height == 0) { - rect = comp.getBounds(); - } - if (comp instanceof JXLayer<?>) { - JXLayer<?> layer = (JXLayer<?>) comp; + rect = comp.getBounds(); + if (comp instanceof JLayer<?>) { + JLayer<?> layer = (JLayer<?>) comp; comp = layer.getView(); } if (comp instanceof Container) { @@ -179,14 +177,12 @@ public class Swings { for (int i = 0; i < ncomponents; i++) { Component comp = component[i]; - Rectangle rect = null; + Rectangle rect; if (comp != null && comp.isLightweight()) { - if (rect == null || rect.width == 0 || rect.height == 0) { - rect = comp.getBounds(); - } - if (comp instanceof JXLayer<?>) { - JXLayer<?> layer = (JXLayer<?>) comp; + rect = comp.getBounds(); + if (comp instanceof JLayer<?>) { + JLayer<?> layer = (JLayer<?>) comp; comp = layer.getView(); } if (comp instanceof Container) { @@ -218,13 +214,14 @@ public class Swings { * @param component le component à centrer */ public static void center(Component parent, Component component) { - if (parent == null) { - return; + if (parent != null) { + + Rectangle r = parent.getBounds(); + int x = r.x + (r.width - component.getSize().width) / 2; + int y = r.y + (r.height - component.getSize().height) / 2; + component.setLocation(x, y); + } - Rectangle r = parent.getBounds(); - int x = r.x + (r.width - component.getSize().width) / 2; - int y = r.y + (r.height - component.getSize().height) / 2; - component.setLocation(x, y); } public static Dimension newMinDimension() { diff --git a/jaxx-swing-extra/src/main/java/org/nuiton/jaxx/swing/extra/layer/BlockingLayerUI.java b/jaxx-swing-extra/src/main/java/org/nuiton/jaxx/swing/extra/layer/BlockingLayerUI.java index 2fe60cc..8061ca5 100644 --- a/jaxx-swing-extra/src/main/java/org/nuiton/jaxx/swing/extra/layer/BlockingLayerUI.java +++ b/jaxx-swing-extra/src/main/java/org/nuiton/jaxx/swing/extra/layer/BlockingLayerUI.java @@ -21,15 +21,17 @@ */ package org.nuiton.jaxx.swing.extra.layer; -import org.jdesktop.jxlayer.JXLayer; -import org.jdesktop.jxlayer.plaf.AbstractLayerUI; import javax.swing.Action; import javax.swing.ImageIcon; import javax.swing.JComponent; +import javax.swing.JLayer; +import javax.swing.plaf.LayerUI; +import java.awt.AWTEvent; import java.awt.AlphaComposite; import java.awt.Color; import java.awt.Component; +import java.awt.Graphics; import java.awt.Graphics2D; import java.awt.Point; import java.awt.RenderingHints; @@ -38,6 +40,7 @@ import java.awt.event.KeyEvent; import java.awt.event.MouseEvent; import java.awt.event.MouseWheelEvent; import java.awt.image.BufferedImage; +import java.beans.PropertyChangeEvent; import java.util.Arrays; import java.util.List; @@ -50,13 +53,13 @@ import java.util.List; * To hook an click on the layer's icon, you can : * <p/> * <ul><li>pass an Action via method {@link #setAcceptAction(Action)}</li> - * <li>override the method {@link #acceptEvent(MouseEvent, JXLayer)}</li> + * <li>override the method {@link #acceptEvent(MouseEvent, JLayer)}</li> * </ul> * * @author Tony Chemit - chemit@codelutin.com * @since 1.2 */ -public class BlockingLayerUI extends AbstractLayerUI<JComponent> { +public class BlockingLayerUI extends LayerUI<JComponent> { public static final String CAN_CLICK_PROPERTY = "canClick"; @@ -65,7 +68,8 @@ public class BlockingLayerUI extends AbstractLayerUI<JComponent> { public static final String BLOCK_ICON_PROPERTY = "blockIcon"; public static final String BLOCK_PROPERTY = "block"; -// private static final long serialVersionUID = 1L; + + private static final long serialVersionUID = 1L; /** Action to be treated when click on icon */ protected Action acceptAction; @@ -137,9 +141,17 @@ public class BlockingLayerUI extends AbstractLayerUI<JComponent> { } } + public void setDirty(boolean dirty) { + firePropertyChange("dirty", null, dirty); + } + @Override - public void setDirty(boolean isDirty) { - super.setDirty(isDirty); + public void applyPropertyChange(PropertyChangeEvent evt, JLayer<? extends JComponent> l) { + super.applyPropertyChange(evt, l); + if (!"dirty".equals(evt.getPropertyName()) + || evt.getNewValue() == Boolean.TRUE) { + l.repaint(); + } } public void setBlockIcon(BufferedImage blockIcon) { @@ -184,7 +196,7 @@ public class BlockingLayerUI extends AbstractLayerUI<JComponent> { } @Override - protected void processKeyEvent(KeyEvent e, JXLayer<? extends JComponent> l) { + protected void processKeyEvent(KeyEvent e, JLayer<? extends JComponent> l) { if (useIcon) { e.consume(); return; @@ -206,7 +218,7 @@ public class BlockingLayerUI extends AbstractLayerUI<JComponent> { } @Override - protected void processMouseMotionEvent(MouseEvent e, JXLayer<? extends JComponent> l) { + protected void processMouseMotionEvent(MouseEvent e, JLayer<? extends JComponent> l) { if (useIcon) { updateCanClickState(l, e); e.consume(); @@ -228,7 +240,7 @@ public class BlockingLayerUI extends AbstractLayerUI<JComponent> { } @Override - protected void processMouseEvent(MouseEvent e, JXLayer<? extends JComponent> l) { + protected void processMouseEvent(MouseEvent e, JLayer<? extends JComponent> l) { if (useIcon) { switch (e.getID()) { case MouseEvent.MOUSE_ENTERED: @@ -277,7 +289,7 @@ public class BlockingLayerUI extends AbstractLayerUI<JComponent> { } @Override - protected void processMouseWheelEvent(MouseWheelEvent e, JXLayer<? extends JComponent> l) { + protected void processMouseWheelEvent(MouseWheelEvent e, JLayer<? extends JComponent> l) { if (useIcon) { @@ -306,8 +318,10 @@ public class BlockingLayerUI extends AbstractLayerUI<JComponent> { } @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; + Graphics2D g2 = (Graphics2D) g; if (block && blockingColor != null) { // to be in sync with the view if the layer has a border /*Insets layerInsets = l.getInsets(); @@ -330,7 +344,33 @@ public class BlockingLayerUI extends AbstractLayerUI<JComponent> { } } - protected void acceptEvent(MouseEvent e, JXLayer<? extends JComponent> l) { + private static final long ACCEPTED_EVENTS = + AWTEvent.COMPONENT_EVENT_MASK | + AWTEvent.CONTAINER_EVENT_MASK | + AWTEvent.FOCUS_EVENT_MASK | + AWTEvent.KEY_EVENT_MASK | + AWTEvent.MOUSE_WHEEL_EVENT_MASK | + AWTEvent.MOUSE_MOTION_EVENT_MASK | + AWTEvent.MOUSE_EVENT_MASK | + AWTEvent.INPUT_METHOD_EVENT_MASK | + AWTEvent.HIERARCHY_EVENT_MASK | + AWTEvent.HIERARCHY_BOUNDS_EVENT_MASK; + + @Override + public void installUI(JComponent c) { + super.installUI(c); + JLayer l = (JLayer) c; + l.setLayerEventMask(ACCEPTED_EVENTS); + } + + @Override + public void uninstallUI(JComponent c) { + super.uninstallUI(c); + JLayer l = (JLayer) c; + l.setLayerEventMask(0); + } + + protected void acceptEvent(MouseEvent e, JLayer<? extends JComponent> l) { if (acceptAction != null) { acceptAction.putValue("layer", l); Component source = l.getView(); @@ -352,21 +392,22 @@ public class BlockingLayerUI extends AbstractLayerUI<JComponent> { return icon; } - protected void updateCanClickState(JXLayer<? extends JComponent> l, MouseEvent e) { + protected void updateCanClickState(JLayer<? extends JComponent> l, MouseEvent e) { // udpate toolTipText Point layerLocation = l.getView().getLocation(); Point mousePoint = e.getPoint(); BufferedImage currentIcon = getCurrentIcon(); if (currentIcon == null) { setCanClick(false); - return; + } else { + int minX = (int) layerLocation.getX() + l.getWidth() - currentIcon.getWidth(); + int maxX = (int) layerLocation.getX() + l.getWidth(); + int minY = 0; + int maxY = currentIcon.getHeight(); + boolean accept = minX <= mousePoint.getX() && mousePoint.getX() <= maxX; + accept &= minY <= mousePoint.getLocation().getY() && mousePoint.getLocation().getY() <= maxY; + setCanClick(accept); } - int minX = (int) layerLocation.getX() + l.getWidth() - currentIcon.getWidth(); - int maxX = (int) layerLocation.getX() + l.getWidth(); - int minY = 0; - int maxY = currentIcon.getHeight(); - boolean accept = minX <= mousePoint.getX() && mousePoint.getX() <= maxX; - accept &= minY <= mousePoint.getLocation().getY() && mousePoint.getLocation().getY() <= maxY; - setCanClick(accept); } + } diff --git a/jaxx-swing-extra/src/main/java/org/nuiton/jaxx/swing/extra/layer/BlockingLayerUI2.java b/jaxx-swing-extra/src/main/java/org/nuiton/jaxx/swing/extra/layer/BlockingLayerUI2.java index cc78323..55020f3 100644 --- a/jaxx-swing-extra/src/main/java/org/nuiton/jaxx/swing/extra/layer/BlockingLayerUI2.java +++ b/jaxx-swing-extra/src/main/java/org/nuiton/jaxx/swing/extra/layer/BlockingLayerUI2.java @@ -21,15 +21,16 @@ */ package org.nuiton.jaxx.swing.extra.layer; -import org.jdesktop.jxlayer.JXLayer; -import org.jdesktop.jxlayer.plaf.AbstractLayerUI; - import javax.swing.Action; import javax.swing.ImageIcon; import javax.swing.JComponent; +import javax.swing.JLayer; +import javax.swing.plaf.LayerUI; +import java.awt.AWTEvent; import java.awt.AlphaComposite; import java.awt.Color; import java.awt.Component; +import java.awt.Graphics; import java.awt.Graphics2D; import java.awt.Point; import java.awt.RenderingHints; @@ -38,6 +39,7 @@ import java.awt.event.KeyEvent; import java.awt.event.MouseEvent; import java.awt.event.MouseWheelEvent; import java.awt.image.BufferedImage; +import java.beans.PropertyChangeEvent; /** * A JXLayer ui implementation that permits to block a component but still @@ -51,13 +53,13 @@ import java.awt.image.BufferedImage; * To hook an click on the layer's icon, you can : * <p/> * <ul><li>pass an Action via method {@link #setAcceptAction(Action)}</li> - * <li>override the method {@link #acceptEvent(MouseEvent, JXLayer)}</li> + * <li>override the method {@link #acceptEvent(MouseEvent, JLayer)}</li> * </ul> * * @author Tony Chemit - chemit@codelutin.com * @since 1.3 */ -public class BlockingLayerUI2 extends AbstractLayerUI<JComponent> { +public class BlockingLayerUI2 extends LayerUI<JComponent> { public static final String CAN_CLICK_PROPERTY = "canClick"; @@ -105,9 +107,17 @@ public class BlockingLayerUI2 extends AbstractLayerUI<JComponent> { } } + public void setDirty(boolean dirty) { + firePropertyChange("dirty", null, dirty); + } + @Override - public void setDirty(boolean isDirty) { - super.setDirty(isDirty); + public void applyPropertyChange(PropertyChangeEvent evt, JLayer<? extends JComponent> l) { + super.applyPropertyChange(evt, l); + if (!"dirty".equals(evt.getPropertyName()) + || evt.getNewValue() == Boolean.TRUE) { + l.repaint(); + } } public void setBlockingColor(Color blockingColor) { @@ -142,22 +152,22 @@ public class BlockingLayerUI2 extends AbstractLayerUI<JComponent> { } @Override - protected void processKeyEvent(KeyEvent e, JXLayer<? extends JComponent> l) { + protected void processKeyEvent(KeyEvent e, JLayer<? extends JComponent> l) { e.consume(); } @Override - protected void processMouseMotionEvent(MouseEvent e, JXLayer<? extends JComponent> l) { + protected void processMouseMotionEvent(MouseEvent e, JLayer<? extends JComponent> l) { e.consume(); } @Override - protected void processMouseWheelEvent(MouseWheelEvent e, JXLayer<? extends JComponent> l) { + protected void processMouseWheelEvent(MouseWheelEvent e, JLayer<? extends JComponent> l) { e.consume(); } @Override - protected void processMouseEvent(MouseEvent e, JXLayer<? extends JComponent> l) { + protected void processMouseEvent(MouseEvent e, JLayer<? extends JComponent> l) { switch (e.getID()) { case MouseEvent.MOUSE_ENTERED: setCanClick(true); @@ -174,9 +184,37 @@ public class BlockingLayerUI2 extends AbstractLayerUI<JComponent> { e.consume(); } + private static final long ACCEPTED_EVENTS = + AWTEvent.COMPONENT_EVENT_MASK | + AWTEvent.CONTAINER_EVENT_MASK | + AWTEvent.FOCUS_EVENT_MASK | + AWTEvent.KEY_EVENT_MASK | + AWTEvent.MOUSE_WHEEL_EVENT_MASK | + AWTEvent.MOUSE_MOTION_EVENT_MASK | + AWTEvent.MOUSE_EVENT_MASK | + AWTEvent.INPUT_METHOD_EVENT_MASK | + AWTEvent.HIERARCHY_EVENT_MASK | + AWTEvent.HIERARCHY_BOUNDS_EVENT_MASK; + + @Override + public void installUI(JComponent c) { + super.installUI(c); + JLayer l = (JLayer) c; + l.setLayerEventMask(ACCEPTED_EVENTS); + } + + @Override + public void uninstallUI(JComponent c) { + super.uninstallUI(c); + JLayer l = (JLayer) c; + l.setLayerEventMask(0); + } + @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; + Graphics2D g2 = (Graphics2D) g; if (blockingColor != null) { // to be in sync with the view if the layer has a border /*Insets layerInsets = l.getInsets(); @@ -199,7 +237,7 @@ public class BlockingLayerUI2 extends AbstractLayerUI<JComponent> { } } - protected void acceptEvent(MouseEvent e, JXLayer<? extends JComponent> l) { + protected void acceptEvent(MouseEvent e, JLayer<? extends JComponent> l) { if (acceptAction != null) { acceptAction.putValue("layer", l); Component source = l.getView(); @@ -221,7 +259,7 @@ public class BlockingLayerUI2 extends AbstractLayerUI<JComponent> { return icon; } - protected void updateCanClickState(JXLayer<JComponent> l, MouseEvent e) { + protected void updateCanClickState(JLayer<JComponent> l, MouseEvent e) { // udpate toolTipText Point layerLocation = l.getView().getLocation(); Point mousePoint = e.getPoint(); diff --git a/jaxx-swing-extra/src/main/java/org/nuiton/jaxx/swing/extra/list/renderer/LocaleListCellRenderer.java b/jaxx-swing-extra/src/main/java/org/nuiton/jaxx/swing/extra/list/renderer/LocaleListCellRenderer.java index a644341..a34d326 100644 --- a/jaxx-swing-extra/src/main/java/org/nuiton/jaxx/swing/extra/list/renderer/LocaleListCellRenderer.java +++ b/jaxx-swing-extra/src/main/java/org/nuiton/jaxx/swing/extra/list/renderer/LocaleListCellRenderer.java @@ -23,7 +23,7 @@ package org.nuiton.jaxx.swing.extra.list.renderer; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; -import org.nuiton.jaxx.swing.extra.Icons; +import org.nuiton.jaxx.runtime.api.swing.Icons; import javax.swing.DefaultListCellRenderer; import javax.swing.Icon; -- To stop receiving notification emails like this one, please contact nuiton.org SCM administrator <admin+scm@nuiton.org>.
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>.
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 5797dd87b0f9322093a44475b1019399545eebe7 Author: Tony CHEMIT <chemit@codelutin.com> Date: Mon Apr 13 09:03:44 2015 +0200 refs #3468 Impact JLayer API changes --- .../swing/action/ApplicationActionUIHandler.java | 4 +- .../jaxx/application/swing/tab/CustomTab.java | 2 +- jaxx-demo/pom.xml | 5 -- .../java/org/nuiton/jaxx/demo/DemoUIHandler.java | 2 +- .../demo/component/jaxx/BoxedDecoratorDemo.css | 36 +++++----- .../demo/component/jaxx/BoxedDecoratorDemo.jaxx | 78 ++++---------------- .../component/jaxx/BoxedDecoratorDemoHandler.java | 84 ++++++++++++++++++++++ .../jaxx/demo/feature/nav/NavDemoHandler.java | 2 +- .../java/org/nuiton/jaxx/plugin/Bug1404Test.java | 8 +-- .../java/org/nuiton/jaxx/plugin/DecoratorTest.java | 2 +- .../jaxx/widgets/config/ConfigCategoryUI.jaxx | 2 +- .../widgets/config/model/MyDelegateConfigTest.java | 2 +- .../config/model/MyInheritedConfigTest.java | 2 +- .../jaxx/runtime/swing/AboutPanelHandler.java | 2 +- .../org/nuiton/jaxx/runtime/swing/HidorButton.jaxx | 2 +- .../jaxx/runtime/swing/JSearchTextField.java | 2 +- .../table/filter/FilterTableHeaderRenderer.java | 2 +- .../swing/table/filter/TableFilterColumnPopup.java | 2 +- 18 files changed, 134 insertions(+), 105 deletions(-) diff --git a/jaxx-application-swing/src/main/java/org/nuiton/jaxx/application/swing/action/ApplicationActionUIHandler.java b/jaxx-application-swing/src/main/java/org/nuiton/jaxx/application/swing/action/ApplicationActionUIHandler.java index 636473a..12c94a2 100644 --- a/jaxx-application-swing/src/main/java/org/nuiton/jaxx/application/swing/action/ApplicationActionUIHandler.java +++ b/jaxx-application-swing/src/main/java/org/nuiton/jaxx/application/swing/action/ApplicationActionUIHandler.java @@ -28,7 +28,7 @@ import org.apache.commons.logging.LogFactory; import org.nuiton.decorator.Decorator; import org.nuiton.jaxx.application.swing.AbstractApplicationUIHandler; import org.nuiton.jaxx.application.type.ApplicationProgressionModel; -import org.nuiton.jaxx.swing.extra.JXLayers; +import org.nuiton.jaxx.runtime.api.swing.JLayers; import javax.swing.JComponent; import java.awt.Component; @@ -182,7 +182,7 @@ public class ApplicationActionUIHandler extends AbstractApplicationUIHandler<App initUI(this.ui); // installation layer de blocage en mode busy - JXLayers.setLayerUI(this.ui.getRootPanel(), this.ui.getBusyBlockLayerUI()); + JLayers.setLayerUI(this.ui.getRootPanel(), this.ui.getBusyBlockLayerUI()); this.ui.setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR)); } diff --git a/jaxx-application-swing/src/main/java/org/nuiton/jaxx/application/swing/tab/CustomTab.java b/jaxx-application-swing/src/main/java/org/nuiton/jaxx/application/swing/tab/CustomTab.java index 29fab3a..ef3c85c 100644 --- a/jaxx-application-swing/src/main/java/org/nuiton/jaxx/application/swing/tab/CustomTab.java +++ b/jaxx-application-swing/src/main/java/org/nuiton/jaxx/application/swing/tab/CustomTab.java @@ -24,7 +24,7 @@ package org.nuiton.jaxx.application.swing.tab; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; -import org.nuiton.jaxx.swing.extra.Icons; +import org.nuiton.jaxx.runtime.api.swing.Icons; import org.nuiton.util.beans.BeanUtil; import javax.swing.AbstractButton; diff --git a/jaxx-demo/pom.xml b/jaxx-demo/pom.xml index 7b1f80c..8227962 100644 --- a/jaxx-demo/pom.xml +++ b/jaxx-demo/pom.xml @@ -181,11 +181,6 @@ </dependency> <dependency> - <groupId>org.swinglabs</groupId> - <artifactId>jxlayer</artifactId> - </dependency> - - <dependency> <groupId>com.google.guava</groupId> <artifactId>guava</artifactId> </dependency> diff --git a/jaxx-demo/src/main/java/org/nuiton/jaxx/demo/DemoUIHandler.java b/jaxx-demo/src/main/java/org/nuiton/jaxx/demo/DemoUIHandler.java index 6e0b292..84ba28e 100644 --- a/jaxx-demo/src/main/java/org/nuiton/jaxx/demo/DemoUIHandler.java +++ b/jaxx-demo/src/main/java/org/nuiton/jaxx/demo/DemoUIHandler.java @@ -38,7 +38,7 @@ import org.nuiton.jaxx.runtime.api.spi.UIHandler; import org.nuiton.jaxx.runtime.swing.AboutPanel; import org.nuiton.jaxx.runtime.swing.ErrorDialogUI; import org.nuiton.jaxx.runtime.swing.log.JAXXLog4jUI; -import org.nuiton.jaxx.swing.extra.Icons; +import org.nuiton.jaxx.runtime.api.swing.Icons; import org.nuiton.jaxx.swing.extra.JTrees; import org.nuiton.jaxx.swing.extra.list.renderer.DecoratorProviderListCellRenderer; diff --git a/jaxx-demo/src/main/java/org/nuiton/jaxx/demo/component/jaxx/BoxedDecoratorDemo.css b/jaxx-demo/src/main/java/org/nuiton/jaxx/demo/component/jaxx/BoxedDecoratorDemo.css index 0737794..e1c5f04 100644 --- a/jaxx-demo/src/main/java/org/nuiton/jaxx/demo/component/jaxx/BoxedDecoratorDemo.css +++ b/jaxx-demo/src/main/java/org/nuiton/jaxx/demo/component/jaxx/BoxedDecoratorDemo.css @@ -20,41 +20,45 @@ * #L% */ #layerUI { - blockIcon:{Icons.createImageIcon("action-block.png")}; - acceptIcon:{Icons.createImageIcon("action-accept.png")}; - useIcon:true; - blockingColor:{new Color(50,50,50)}; + blockIcon: {Icons.createImageIcon("action-block.png")}; + acceptIcon: {Icons.createImageIcon("action-accept.png")}; + useIcon: true; + blockingColor: {Color.RED}; } #layerUI2 { - blockIcon:{Icons.createImageIcon("action-block.png")}; - acceptIcon:{Icons.createImageIcon("action-accept.png")}; + blockIcon: {Icons.createImageIcon("action-block.png")}; + acceptIcon: {Icons.createImageIcon("action-accept.png")}; +} + +#toggle { + text: {toggle.isSelected() ? "Active layer" : "No layer"}; } #buttonPane { - layout:{new GridLayout(0,2)}; + layout: {new GridLayout(0,2)}; } #buttonA { - text:"button A"; - _clickedText:{"button A was clicked"}; + text: "button A"; + _clickedText: {"button A was clicked"}; } #buttonB { - text:"button B"; - _clickedText:{"button B was clicked"}; + text: "button B"; + _clickedText: {"button B was clicked"}; } #buttonC { - text:"button C (full block)"; - _clickedText:{"button C was clicked"}; + text: "button C (full block)"; + _clickedText: {"button C was clicked"}; } #buttonD { - text:"button D (full block 2)"; - _clickedText:{"button D was clicked"}; + text: "button D (full block 2)"; + _clickedText: {"button D was clicked"}; } #messages { - model:{new DefaultListModel()}; + model: {new DefaultListModel()}; } diff --git a/jaxx-demo/src/main/java/org/nuiton/jaxx/demo/component/jaxx/BoxedDecoratorDemo.jaxx b/jaxx-demo/src/main/java/org/nuiton/jaxx/demo/component/jaxx/BoxedDecoratorDemo.jaxx index a2f678a..00a0e3b 100644 --- a/jaxx-demo/src/main/java/org/nuiton/jaxx/demo/component/jaxx/BoxedDecoratorDemo.jaxx +++ b/jaxx-demo/src/main/java/org/nuiton/jaxx/demo/component/jaxx/BoxedDecoratorDemo.jaxx @@ -24,93 +24,39 @@ <org.nuiton.jaxx.demo.DemoPanel layout='{new BorderLayout()}'> <import> - org.nuiton.jaxx.runtime.SwingUtil org.nuiton.jaxx.swing.extra.layer.BlockingLayerUI org.nuiton.jaxx.swing.extra.layer.BlockingLayerUI2 - org.nuiton.jaxx.swing.extra.Icons - org.nuiton.jaxx.swing.extra.JXLayers + org.nuiton.jaxx.runtime.api.swing.Icons + org.nuiton.jaxx.runtime.api.swing.JLayers + + javax.swing.DefaultListModel java.awt.Color java.awt.event.ActionEvent - javax.swing.AbstractAction - javax.swing.DefaultListModel - javax.swing.JComponent </import> - <BlockingLayerUI id='layerUI' - acceptAction='{new AbstractAction() { - private static final long serialVersionUID = 1L; - @Override - public void actionPerformed(ActionEvent e) { - accept(e, "from icon of layer"); - } - }}'/> - <BlockingLayerUI2 id='layerUI2' - acceptAction='{new AbstractAction() { - private static final long serialVersionUID = 1L; - @Override - public void actionPerformed(ActionEvent e) { - accept(e, "from icon of layer"); - } - }}'/> - <script><![CDATA[ - -void $afterCompleteSetup() { - for (JComponent boxed : JXLayers.getLayeredComponents(this)) { - if (boxed == buttonD) { - JXLayers.setLayerUI(boxed, layerUI2); - continue; - } - - BlockingLayerUI ui = layerUI.clone(); - if (boxed == buttonC) { - ui.setBlock(true); - } - JXLayers.setLayerUI(boxed, ui); - } -} - -public void setLayer(boolean active) { - for (JComponent boxed : JXLayers.getLayeredComponents(this)) { - if (boxed == buttonD) { - continue; - } - BlockingLayerUI ui = (BlockingLayerUI) JXLayers.getLayer(boxed).getUI(); - if (boxed == buttonC) { - ui.setBlock(active); - } - ui.setUseIcon(active); - } -} + <BlockingLayerUI id='layerUI'/> + <BlockingLayerUI2 id='layerUI2'/> -protected void accept(ActionEvent e, String suffix) { - JButton source = (JButton) e.getSource(); - String clickedMessage = (String) source.getClientProperty("clickedText"); - String msg = "'" + source.getText() + "' clicked - " + suffix + " : " + clickedMessage; - ((DefaultListModel)messages.getModel()).addElement(msg); -}]]> - </script> <Table fill='both' weightx='1' constraints='BorderLayout.CENTER'> <row> <cell> - <JCheckBox id='toggle' selected='true' - text='{toggle.isSelected() ? "Active layer" : "No layer"}' - onActionPerformed='setLayer(toggle.isSelected());'/> + <JCheckBox id='toggle' + onActionPerformed='handler.setLayer(toggle.isSelected())'/> </cell> </row> <row> <cell weighty='0.5'> <JPanel id='buttonPane'> <JButton id='buttonA' decorator='boxed' - _clickedText='"button A was clicked"' - onActionPerformed='accept(event, "from button (no layer)")'/> + onActionPerformed='handler.accept(event, "from button (no layer)")'/> <JButton id='buttonB' decorator='boxed' - onActionPerformed='accept(event, "from button (no layer)")'/> + onActionPerformed='handler.accept(event, "from button (no layer)")'/> <JButton id='buttonC' decorator='boxed' - onActionPerformed='accept(event, "from button (no layer)");'/> + onActionPerformed='handler.accept(event, "from button (no layer)")'/> <JButton id='buttonD' decorator='boxed' - onActionPerformed='accept(event, "from button (no layer)");'/> + onActionPerformed='handler.accept(event, "from button (no layer)")'/> </JPanel> </cell> </row> diff --git a/jaxx-demo/src/main/java/org/nuiton/jaxx/demo/component/jaxx/BoxedDecoratorDemoHandler.java b/jaxx-demo/src/main/java/org/nuiton/jaxx/demo/component/jaxx/BoxedDecoratorDemoHandler.java new file mode 100644 index 0000000..acc769b --- /dev/null +++ b/jaxx-demo/src/main/java/org/nuiton/jaxx/demo/component/jaxx/BoxedDecoratorDemoHandler.java @@ -0,0 +1,84 @@ +package org.nuiton.jaxx.demo.component.jaxx; + +import org.nuiton.jaxx.runtime.api.spi.UIHandler; +import org.nuiton.jaxx.runtime.api.swing.JLayers; +import org.nuiton.jaxx.swing.extra.layer.BlockingLayerUI; + +import javax.swing.AbstractAction; +import javax.swing.DefaultListModel; +import javax.swing.JButton; +import javax.swing.JLayer; +import java.awt.Component; +import java.awt.event.ActionEvent; + +/** + * Created on 4/13/15. + * + * @author Tony Chemit - chemit@codelutin.com + * @since 3.0 + */ +public class BoxedDecoratorDemoHandler implements UIHandler<BoxedDecoratorDemo> { + + private BoxedDecoratorDemo ui; + + @Override + public void beforeInit(BoxedDecoratorDemo ui) { + } + + @Override + public void afterInit(BoxedDecoratorDemo ui) { + this.ui = ui; + + ui.layerUI.setAcceptAction(new LayerAcceptAction()); + ui.layerUI2.setAcceptAction(new LayerAcceptAction()); + + for (Component boxed : JLayers.getLayeredComponents(ui)) { + if (boxed == ui.buttonD) { + JLayers.setLayerUI(boxed, ui.layerUI2); + continue; + } + + BlockingLayerUI layerUI = ui.layerUI.clone(); + if (boxed == ui.buttonC) { + layerUI.setBlock(true); + } + JLayers.setLayerUI(boxed, layerUI); + } + + + + ui.toggle.setSelected(true); + + } + + + public void setLayer(boolean active) { + for (Component boxed : JLayers.getLayeredComponents(ui)) { + if (boxed == ui.buttonD) { + continue; + } + JLayer<?> layer = JLayers.getLayer(boxed); + BlockingLayerUI layerUI = (BlockingLayerUI) layer.getUI(); + if (boxed == ui.buttonC) { + layerUI.setBlock(active); + } + layerUI.setUseIcon(active); + } + } + + protected void accept(ActionEvent e, String suffix) { + JButton source = (JButton) e.getSource(); + String clickedMessage = (String) source.getClientProperty("clickedText"); + String msg = "'" + source.getText() + "' clicked - " + suffix + " : " + clickedMessage; + ((DefaultListModel) ui.messages.getModel()).addElement(msg); + } + + private class LayerAcceptAction extends AbstractAction { + + @Override + public void actionPerformed(ActionEvent e) { + accept(e, "from icon of layer"); + } + } + +} diff --git a/jaxx-demo/src/main/java/org/nuiton/jaxx/demo/feature/nav/NavDemoHandler.java b/jaxx-demo/src/main/java/org/nuiton/jaxx/demo/feature/nav/NavDemoHandler.java index 3fc58b2..ff7dc6a 100644 --- a/jaxx-demo/src/main/java/org/nuiton/jaxx/demo/feature/nav/NavDemoHandler.java +++ b/jaxx-demo/src/main/java/org/nuiton/jaxx/demo/feature/nav/NavDemoHandler.java @@ -43,7 +43,7 @@ import org.nuiton.jaxx.runtime.api.context.JAXXContext; import org.nuiton.jaxx.runtime.api.spi.UIHandler; import org.nuiton.jaxx.runtime.swing.ErrorDialogUI; import org.nuiton.jaxx.runtime.swing.nav.NavNode; -import org.nuiton.jaxx.swing.extra.Icons; +import org.nuiton.jaxx.runtime.api.swing.Icons; import org.nuiton.jaxx.swing.extra.JTrees; import org.nuiton.jaxx.swing.extra.layout.CardLayout2; diff --git a/jaxx-maven-plugin/src/test/java/org/nuiton/jaxx/plugin/Bug1404Test.java b/jaxx-maven-plugin/src/test/java/org/nuiton/jaxx/plugin/Bug1404Test.java index fdb0c96..7c0ba76 100644 --- a/jaxx-maven-plugin/src/test/java/org/nuiton/jaxx/plugin/Bug1404Test.java +++ b/jaxx-maven-plugin/src/test/java/org/nuiton/jaxx/plugin/Bug1404Test.java @@ -40,9 +40,9 @@ public class Bug1404Test extends JaxxBaseTest { String[] files = mojo.files; - checkPattern(mojo, "import org.nuiton.jaxx.swing.extra.JXLayers;", true, files[0]); - checkPattern(mojo, "import org.nuiton.jaxx.swing.extra.JXLayers;", false, files[1], files[2]); - checkPattern(mojo, "import org.nuiton.jaxx.swing.extra.Icons;", true, files[2]); - checkPattern(mojo, "import org.nuiton.jaxx.swing.extra.Icons;", false, files[0], files[1]); + checkPattern(mojo, "import org.nuiton.jaxx.runtime.api.swing.JLayers;", true, files[0]); + checkPattern(mojo, "import org.nuiton.jaxx.runtime.api.swing.JLayers;", false, files[1], files[2]); + checkPattern(mojo, "import org.nuiton.jaxx.runtime.api.swing.Icons;", true, files[2]); + checkPattern(mojo, "import org.nuiton.jaxx.runtime.api.swing.Icons;", false, files[0], files[1]); } } diff --git a/jaxx-maven-plugin/src/test/java/org/nuiton/jaxx/plugin/DecoratorTest.java b/jaxx-maven-plugin/src/test/java/org/nuiton/jaxx/plugin/DecoratorTest.java index 92cb4ad..a7bb1c7 100644 --- a/jaxx-maven-plugin/src/test/java/org/nuiton/jaxx/plugin/DecoratorTest.java +++ b/jaxx-maven-plugin/src/test/java/org/nuiton/jaxx/plugin/DecoratorTest.java @@ -31,7 +31,7 @@ public class DecoratorTest extends JaxxBaseTest { GenerateMojo mojo = getMojo(); mojo.execute(); assertNumberJaxxFiles(1); - checkPattern(mojo, "add(JXLayers.boxComponentWithJxLayer(boxedButton))", true); + checkPattern(mojo, "add(JLayers.boxComponentWithJLayer(boxedButton))", true); } } diff --git a/jaxx-widgets-config/src/main/java/org/nuiton/jaxx/widgets/config/ConfigCategoryUI.jaxx b/jaxx-widgets-config/src/main/java/org/nuiton/jaxx/widgets/config/ConfigCategoryUI.jaxx index f887d14..2ae6c66 100644 --- a/jaxx-widgets-config/src/main/java/org/nuiton/jaxx/widgets/config/ConfigCategoryUI.jaxx +++ b/jaxx-widgets-config/src/main/java/org/nuiton/jaxx/widgets/config/ConfigCategoryUI.jaxx @@ -30,7 +30,7 @@ org.nuiton.jaxx.widgets.config.model.ConfigUIModel org.jdesktop.swingx.JXTable - org.nuiton.jaxx.swing.extra.Icons + org.nuiton.jaxx.runtime.api.swing.Icons </import> <ConfigCategoryUIHandler id='handler' constructorParams='this'/> diff --git a/jaxx-widgets-config/src/test/java/org/nuiton/jaxx/widgets/config/model/MyDelegateConfigTest.java b/jaxx-widgets-config/src/test/java/org/nuiton/jaxx/widgets/config/model/MyDelegateConfigTest.java index 7d54407..c938196 100644 --- a/jaxx-widgets-config/src/test/java/org/nuiton/jaxx/widgets/config/model/MyDelegateConfigTest.java +++ b/jaxx-widgets-config/src/test/java/org/nuiton/jaxx/widgets/config/model/MyDelegateConfigTest.java @@ -26,7 +26,7 @@ import org.junit.Assert; import org.junit.Before; import org.junit.Test; import org.nuiton.config.ApplicationConfig; -import org.nuiton.jaxx.swing.extra.Icons; +import org.nuiton.jaxx.runtime.api.swing.Icons; import javax.swing.DefaultCellEditor; import javax.swing.ImageIcon; diff --git a/jaxx-widgets-config/src/test/java/org/nuiton/jaxx/widgets/config/model/MyInheritedConfigTest.java b/jaxx-widgets-config/src/test/java/org/nuiton/jaxx/widgets/config/model/MyInheritedConfigTest.java index a7c753c..b7dd4cd 100644 --- a/jaxx-widgets-config/src/test/java/org/nuiton/jaxx/widgets/config/model/MyInheritedConfigTest.java +++ b/jaxx-widgets-config/src/test/java/org/nuiton/jaxx/widgets/config/model/MyInheritedConfigTest.java @@ -26,7 +26,7 @@ import org.junit.Assert; import org.junit.Before; import org.junit.Test; import org.nuiton.config.ApplicationConfig; -import org.nuiton.jaxx.swing.extra.Icons; +import org.nuiton.jaxx.runtime.api.swing.Icons; import javax.swing.DefaultCellEditor; import javax.swing.ImageIcon; diff --git a/jaxx-widgets/src/main/java/org/nuiton/jaxx/runtime/swing/AboutPanelHandler.java b/jaxx-widgets/src/main/java/org/nuiton/jaxx/runtime/swing/AboutPanelHandler.java index 672a892..f032c6c 100644 --- a/jaxx-widgets/src/main/java/org/nuiton/jaxx/runtime/swing/AboutPanelHandler.java +++ b/jaxx-widgets/src/main/java/org/nuiton/jaxx/runtime/swing/AboutPanelHandler.java @@ -24,7 +24,7 @@ package org.nuiton.jaxx.runtime.swing; import org.apache.commons.io.IOUtils; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; -import org.nuiton.jaxx.swing.extra.Icons; +import org.nuiton.jaxx.runtime.api.swing.Icons; import org.nuiton.jaxx.swing.extra.PropertyChangeListeners; import org.nuiton.jaxx.swing.extra.Swings; import org.nuiton.util.Resource; diff --git a/jaxx-widgets/src/main/java/org/nuiton/jaxx/runtime/swing/HidorButton.jaxx b/jaxx-widgets/src/main/java/org/nuiton/jaxx/runtime/swing/HidorButton.jaxx index 0411789..c3b088d 100644 --- a/jaxx-widgets/src/main/java/org/nuiton/jaxx/runtime/swing/HidorButton.jaxx +++ b/jaxx-widgets/src/main/java/org/nuiton/jaxx/runtime/swing/HidorButton.jaxx @@ -31,7 +31,7 @@ javax.swing.Icon javax.swing.JComponent - org.nuiton.jaxx.swing.extra.Icons + org.nuiton.jaxx.runtime.api.swing.Icons static org.nuiton.i18n.I18n.t </import> diff --git a/jaxx-widgets/src/main/java/org/nuiton/jaxx/runtime/swing/JSearchTextField.java b/jaxx-widgets/src/main/java/org/nuiton/jaxx/runtime/swing/JSearchTextField.java index 173e20a..d6199d5 100644 --- a/jaxx-widgets/src/main/java/org/nuiton/jaxx/runtime/swing/JSearchTextField.java +++ b/jaxx-widgets/src/main/java/org/nuiton/jaxx/runtime/swing/JSearchTextField.java @@ -31,7 +31,7 @@ */ package org.nuiton.jaxx.runtime.swing; -import org.nuiton.jaxx.swing.extra.Icons; +import org.nuiton.jaxx.runtime.api.swing.Icons; import javax.swing.ImageIcon; import javax.swing.JTextField; diff --git a/jaxx-widgets/src/main/java/org/nuiton/jaxx/runtime/swing/table/filter/FilterTableHeaderRenderer.java b/jaxx-widgets/src/main/java/org/nuiton/jaxx/runtime/swing/table/filter/FilterTableHeaderRenderer.java index 8a1301b..4601d03 100644 --- a/jaxx-widgets/src/main/java/org/nuiton/jaxx/runtime/swing/table/filter/FilterTableHeaderRenderer.java +++ b/jaxx-widgets/src/main/java/org/nuiton/jaxx/runtime/swing/table/filter/FilterTableHeaderRenderer.java @@ -33,7 +33,7 @@ package org.nuiton.jaxx.runtime.swing.table.filter; import org.nuiton.jaxx.runtime.swing.CompoundIcon; -import org.nuiton.jaxx.swing.extra.Icons; +import org.nuiton.jaxx.runtime.api.swing.Icons; import javax.swing.Icon; import javax.swing.ImageIcon; diff --git a/jaxx-widgets/src/main/java/org/nuiton/jaxx/runtime/swing/table/filter/TableFilterColumnPopup.java b/jaxx-widgets/src/main/java/org/nuiton/jaxx/runtime/swing/table/filter/TableFilterColumnPopup.java index 099a097..7e3fd1e 100644 --- a/jaxx-widgets/src/main/java/org/nuiton/jaxx/runtime/swing/table/filter/TableFilterColumnPopup.java +++ b/jaxx-widgets/src/main/java/org/nuiton/jaxx/runtime/swing/table/filter/TableFilterColumnPopup.java @@ -41,7 +41,7 @@ import org.nuiton.jaxx.runtime.swing.list.filter.DefaultFilterableCheckListModel import org.nuiton.jaxx.runtime.swing.list.filter.FilterableActionCheckListModel; import org.nuiton.jaxx.runtime.swing.list.filter.FilterableCheckList; import org.nuiton.jaxx.runtime.swing.list.filter.FilterableCheckListModel; -import org.nuiton.jaxx.swing.extra.Icons; +import org.nuiton.jaxx.runtime.api.swing.Icons; import javax.swing.AbstractAction; import javax.swing.Action; -- To stop receiving notification emails like this one, please contact nuiton.org SCM administrator <admin+scm@nuiton.org>.
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 c3ae06a63f2b8b629f6d243640c6de75271ca727 Author: Tony CHEMIT <chemit@codelutin.com> Date: Mon Apr 13 09:05:49 2015 +0200 refs #3468 Update doc --- src/site/rst/migrate_v3.rst | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/src/site/rst/migrate_v3.rst b/src/site/rst/migrate_v3.rst index 9cb3ea7..5fcd3be 100644 --- a/src/site/rst/migrate_v3.rst +++ b/src/site/rst/migrate_v3.rst @@ -14,10 +14,10 @@ Ce document énumère les choses à migrer pour passer sur la version 3.0 de JAX Réorganisation des modules ~~~~~~~~~~~~~~~~~~~~~~~~~~ -Disparition du module jaxx-runtime remplacé par +Disparition du module **jaxx-runtime** remplacé par -* jaxx-runtime-api (pour tout ce qui est strictement nécessaire pour compiler du code généré par jaxx) -* jaxx-swing-extra (du + pour swing) +* **jaxx-runtime-api** (pour tout ce qui est strictement nécessaire pour compiler du code généré par jaxx) +* **jaxx-swing-extra** (du + pour swing) Renommage de **jaxx-config** en **jaxx-widgets-config** @@ -80,17 +80,17 @@ org.nuiton.jaxx.swing.extra.layer.BlockingLayerUI Déplacement de méthodes ~~~~~~~~~~~~~~~~~~~~~~~ -SwingUtil disparait au profit de +SwingUtil et JAXXUtil disparait au profit de -* org.nuiton.jaxx.runtime.JAXXRuntime +* org.nuiton.jaxx.runtime.api.JAXXRuntime * org.nuiton.jaxx.runtime.api.internal.binding.JAXXBindings +* org.nuiton.jaxx.runtime.api.swing.Icons +* org.nuiton.jaxx.runtime.api.swing.JLayers -* org.nuiton.jaxx.swing.extra.Icons * org.nuiton.jaxx.swing.extra.JTables * org.nuiton.jaxx.swing.extra.JTrees * org.nuiton.jaxx.swing.extra.JComboBoxes * org.nuiton.jaxx.swing.extra.JLists -* org.nuiton.jaxx.swing.extra.JXLayers * org.nuiton.jaxx.swing.extra.Swings -- To stop receiving notification emails like this one, please contact nuiton.org SCM administrator <admin+scm@nuiton.org>.
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 5a17dd9ae99c4969925ed661468baab194706207 Merge: 6be7c23 c3ae06a Author: Tony CHEMIT <chemit@codelutin.com> Date: Mon Apr 13 09:05:52 2015 +0200 fixes #3468: Use JLayer instead of JXLayer (but requires to up jdk level to 1.7) Merge branch 'feature/3468' into develop .../swing/action/ApplicationActionUIHandler.java | 4 +- .../jaxx/application/swing/tab/CustomTab.java | 2 +- jaxx-compiler/pom.xml | 5 -- .../decorators/BoxedCompiledObjectDecorator.java | 6 +- .../compiler/finalizers/ValidatorFinalizer.java | 6 +- .../jaxx/compiler/spi/DefaultInitializer.java | 10 +-- .../compiler/tags/DefaultComponentHandler.java | 2 +- .../{JXLayerHandler.java => JLayerHandler.java} | 18 ++--- jaxx-demo/pom.xml | 5 -- .../java/org/nuiton/jaxx/demo/DemoUIHandler.java | 2 +- .../demo/component/jaxx/BoxedDecoratorDemo.css | 36 +++++---- .../demo/component/jaxx/BoxedDecoratorDemo.jaxx | 78 +++---------------- .../component/jaxx/BoxedDecoratorDemoHandler.java | 84 +++++++++++++++++++++ .../jaxx/demo/feature/nav/NavDemoHandler.java | 2 +- .../java/org/nuiton/jaxx/plugin/Bug1404Test.java | 8 +- .../java/org/nuiton/jaxx/plugin/DecoratorTest.java | 2 +- jaxx-runtime-api/pom.xml | 5 -- .../api/internal/awt/visitor/BuildTreeVisitor.java | 6 +- .../org/nuiton/jaxx/runtime/api/swing}/Icons.java | 2 +- .../org/nuiton/jaxx/runtime/api/swing/JLayers.java | 48 ++++++------ .../java/org/nuiton/jaxx/runtime/SwingUtil.java | 2 +- jaxx-swing-extra/pom.xml | 6 -- .../java/org/nuiton/jaxx/swing/extra/Swings.java | 35 ++++----- .../jaxx/swing/extra/layer/BlockingLayerUI.java | 87 ++++++++++++++++------ .../jaxx/swing/extra/layer/BlockingLayerUI2.java | 68 +++++++++++++---- .../list/renderer/LocaleListCellRenderer.java | 2 +- 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 +- .../jaxx/widgets/config/ConfigCategoryUI.jaxx | 2 +- .../widgets/config/model/MyDelegateConfigTest.java | 2 +- .../config/model/MyInheritedConfigTest.java | 2 +- .../jaxx/runtime/swing/AboutPanelHandler.java | 2 +- .../org/nuiton/jaxx/runtime/swing/HidorButton.jaxx | 2 +- .../jaxx/runtime/swing/JSearchTextField.java | 2 +- .../table/filter/FilterTableHeaderRenderer.java | 2 +- .../swing/table/filter/TableFilterColumnPopup.java | 2 +- src/site/rst/migrate_v3.rst | 14 ++-- 45 files changed, 399 insertions(+), 283 deletions(-) -- To stop receiving notification emails like this one, please contact nuiton.org SCM administrator <admin+scm@nuiton.org>.
participants (1)
-
nuiton.org scm