branch develop updated (127f507 -> 4a421ab)
This is an automated email from the git hooks/post-receive script. New change to branch develop in repository jaxx. See https://gitlab.nuiton.org/nuiton/jaxx.git from 127f507 Clean code new 4a421ab improve code using generic on java components (JComboBox, JList) The 1 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 4a421ab40e4b48a68801abe36aa2216a6b22bd74 Author: Tony CHEMIT <dev@tchemit.fr> Date: Sat Dec 31 18:00:06 2016 +0100 improve code using generic on java components (JComboBox, JList) Summary of changes: .../jaxx/runtime/swing/editor/EnumEditor.java | 24 +++++++++++++--------- .../swing/model/JaxxFilterableComboBoxModel.java | 4 ++-- .../swing/renderer/BooleanCellRenderer.java | 7 +++---- .../swing/renderer/DecoratorListCellRenderer.java | 16 +++++++-------- .../runtime/swing/renderer/EnumEditorRenderer.java | 14 +++++++------ .../FilteredDecoratorListCellRenderer.java | 14 ++++++------- .../jaxx/widgets/select/BeanComboBoxHandler.java | 2 +- .../jaxx/widgets/select/BeanDoubleListHandler.java | 6 +++--- .../select/BeanFilterableComboBoxHandler.java | 2 +- .../jaxx/widgets/select/BeanListHeaderHandler.java | 2 +- .../select/FilterableDoubleListHandler.java | 2 +- 11 files changed, 49 insertions(+), 44 deletions(-) -- 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 https://gitlab.nuiton.org/nuiton/jaxx.git commit 4a421ab40e4b48a68801abe36aa2216a6b22bd74 Author: Tony CHEMIT <dev@tchemit.fr> Date: Sat Dec 31 18:00:06 2016 +0100 improve code using generic on java components (JComboBox, JList) --- .../jaxx/runtime/swing/editor/EnumEditor.java | 24 +++++++++++++--------- .../swing/model/JaxxFilterableComboBoxModel.java | 4 ++-- .../swing/renderer/BooleanCellRenderer.java | 7 +++---- .../swing/renderer/DecoratorListCellRenderer.java | 16 +++++++-------- .../runtime/swing/renderer/EnumEditorRenderer.java | 14 +++++++------ .../FilteredDecoratorListCellRenderer.java | 14 ++++++------- .../jaxx/widgets/select/BeanComboBoxHandler.java | 2 +- .../jaxx/widgets/select/BeanDoubleListHandler.java | 6 +++--- .../select/BeanFilterableComboBoxHandler.java | 2 +- .../jaxx/widgets/select/BeanListHeaderHandler.java | 2 +- .../select/FilterableDoubleListHandler.java | 2 +- 11 files changed, 49 insertions(+), 44 deletions(-) diff --git a/jaxx-runtime/src/main/java/org/nuiton/jaxx/runtime/swing/editor/EnumEditor.java b/jaxx-runtime/src/main/java/org/nuiton/jaxx/runtime/swing/editor/EnumEditor.java index 0830297..6575c3d 100644 --- a/jaxx-runtime/src/main/java/org/nuiton/jaxx/runtime/swing/editor/EnumEditor.java +++ b/jaxx-runtime/src/main/java/org/nuiton/jaxx/runtime/swing/editor/EnumEditor.java @@ -43,8 +43,8 @@ package org.nuiton.jaxx.runtime.swing.editor; import org.nuiton.util.ReflectUtil; import javax.swing.JComboBox; +import java.lang.reflect.Array; import java.util.EnumSet; -import java.util.Iterator; /** * Une éditeur d'enum. @@ -53,7 +53,7 @@ import java.util.Iterator; * @author Tony Chemit - dev@tchemit.fr * @since 1.6.0 */ -public class EnumEditor<E extends Enum<E>> extends JComboBox { +public class EnumEditor<E extends Enum<E>> extends JComboBox<E> { private static final long serialVersionUID = 2L; @@ -123,18 +123,22 @@ public class EnumEditor<E extends Enum<E>> extends JComboBox { return type; } - protected static <E extends Enum<E>> Object[] buildModel(Class<E> type) { + protected static <E extends Enum<E>> E[] buildModel(Class<E> type) { Class<E> enumClass = ReflectUtil.getEnumClass(type); - EnumSet<E> result = EnumSet.allOf(enumClass); - return result.toArray(new Object[result.size()]); + EnumSet<E> all = EnumSet.allOf(enumClass); + E[] result = (E[]) Array.newInstance(type, all.size()); + System.arraycopy(all.toArray(), 0, result, 0, all.size()); + return result; } - protected static <E extends Enum<E>> Object[] buildModel(Class<E> type, - int maxOrdinal) { + protected static <E extends Enum<E>> E[] buildModel(Class<E> type, + int maxOrdinal) { Class<E> enumClass = ReflectUtil.getEnumClass(type); - EnumSet<E> result = EnumSet.allOf(enumClass); - result.removeIf(e -> e.ordinal() > maxOrdinal); - return result.toArray(new Object[result.size()]); + EnumSet<E> all = EnumSet.allOf(enumClass); + all.removeIf(e -> e.ordinal() > maxOrdinal); + E[] result = (E[]) Array.newInstance(type, all.size()); + System.arraycopy(all.toArray(), 0, result, 0, all.size()); + return result; } } diff --git a/jaxx-runtime/src/main/java/org/nuiton/jaxx/runtime/swing/model/JaxxFilterableComboBoxModel.java b/jaxx-runtime/src/main/java/org/nuiton/jaxx/runtime/swing/model/JaxxFilterableComboBoxModel.java index 113a731..09a79d5 100644 --- a/jaxx-runtime/src/main/java/org/nuiton/jaxx/runtime/swing/model/JaxxFilterableComboBoxModel.java +++ b/jaxx-runtime/src/main/java/org/nuiton/jaxx/runtime/swing/model/JaxxFilterableComboBoxModel.java @@ -22,7 +22,6 @@ package org.nuiton.jaxx.runtime.swing.model; * #L% */ -import java.util.function.Predicate; import com.google.common.collect.Lists; import org.apache.commons.lang3.StringUtils; import org.apache.commons.logging.Log; @@ -32,6 +31,7 @@ import org.nuiton.decorator.JXPathDecorator; import java.util.ArrayList; import java.util.Collection; import java.util.List; +import java.util.function.Predicate; import java.util.regex.Pattern; /** @@ -210,7 +210,7 @@ public class JaxxFilterableComboBoxModel<E> extends JaxxDefaultComboBoxModel<E> for (E element : delegate) { boolean addElement = true; for (Predicate<E> filter : filters) { - addElement &= filter.apply(element); + addElement &= filter.test(element); } String decoratedElement; if (decorator != null) { diff --git a/jaxx-runtime/src/main/java/org/nuiton/jaxx/runtime/swing/renderer/BooleanCellRenderer.java b/jaxx-runtime/src/main/java/org/nuiton/jaxx/runtime/swing/renderer/BooleanCellRenderer.java index ef30fb4..6720ef2 100644 --- a/jaxx-runtime/src/main/java/org/nuiton/jaxx/runtime/swing/renderer/BooleanCellRenderer.java +++ b/jaxx-runtime/src/main/java/org/nuiton/jaxx/runtime/swing/renderer/BooleanCellRenderer.java @@ -21,8 +21,6 @@ */ package org.nuiton.jaxx.runtime.swing.renderer; -import java.util.function.Predicate; - import javax.swing.Icon; import javax.swing.JCheckBox; import javax.swing.JComponent; @@ -32,6 +30,7 @@ import javax.swing.JTable; import javax.swing.table.TableCellRenderer; import java.awt.Color; import java.awt.Component; +import java.util.function.Predicate; /** * @author Tony Chemit - dev@tchemit.fr @@ -47,7 +46,7 @@ public class BooleanCellRenderer extends JPanel implements TableCellRenderer { private final Predicate predicate; - private static final Predicate<Object> DEFAULT_PREDICATE = input -> (input != null && (Boolean) input); + private static final Predicate<?> DEFAULT_PREDICATE = input -> (input != null && (Boolean) input); public BooleanCellRenderer(TableCellRenderer delegate, Predicate<?> predicate) { this(delegate, new JCheckBox(), predicate); @@ -94,7 +93,7 @@ public class BooleanCellRenderer extends JPanel implements TableCellRenderer { } } - boolean selectCheckBox = predicate.apply(value); + boolean selectCheckBox = predicate.test(value); checkBox.setSelected(selectCheckBox); setBorder(render.getBorder()); diff --git a/jaxx-runtime/src/main/java/org/nuiton/jaxx/runtime/swing/renderer/DecoratorListCellRenderer.java b/jaxx-runtime/src/main/java/org/nuiton/jaxx/runtime/swing/renderer/DecoratorListCellRenderer.java index 885206e..344c067 100644 --- a/jaxx-runtime/src/main/java/org/nuiton/jaxx/runtime/swing/renderer/DecoratorListCellRenderer.java +++ b/jaxx-runtime/src/main/java/org/nuiton/jaxx/runtime/swing/renderer/DecoratorListCellRenderer.java @@ -35,20 +35,20 @@ import java.awt.Component; * @author Tony Chemit - dev@tchemit.fr * @since 1.7.2 */ -public class DecoratorListCellRenderer implements ListCellRenderer { +public class DecoratorListCellRenderer<O> implements ListCellRenderer<O> { /** Delegate cell renderer */ - protected final ListCellRenderer delegate; + protected final ListCellRenderer<O> delegate; /** Decorator to produce text to render */ - protected final Decorator<?> decorator; + protected final Decorator<O> decorator; - public DecoratorListCellRenderer(Decorator<?> decorator) { - this(new DefaultListCellRenderer(), decorator); + public DecoratorListCellRenderer(Decorator<O> decorator) { + this((ListCellRenderer<O>) new DefaultListCellRenderer(), decorator); } - public DecoratorListCellRenderer(ListCellRenderer delegate, - Decorator<?> decorator) { + public DecoratorListCellRenderer(ListCellRenderer<O> delegate, + Decorator<O> decorator) { this.delegate = delegate; this.decorator = decorator; } @@ -61,7 +61,7 @@ public class DecoratorListCellRenderer implements ListCellRenderer { boolean cellHasFocus) { value = decorateValue(value, index); return delegate.getListCellRendererComponent(list, - value, + (O) value, index, isSelected, cellHasFocus diff --git a/jaxx-runtime/src/main/java/org/nuiton/jaxx/runtime/swing/renderer/EnumEditorRenderer.java b/jaxx-runtime/src/main/java/org/nuiton/jaxx/runtime/swing/renderer/EnumEditorRenderer.java index 2734a38..9e4373c 100644 --- a/jaxx-runtime/src/main/java/org/nuiton/jaxx/runtime/swing/renderer/EnumEditorRenderer.java +++ b/jaxx-runtime/src/main/java/org/nuiton/jaxx/runtime/swing/renderer/EnumEditorRenderer.java @@ -26,6 +26,7 @@ import com.google.common.collect.ImmutableMap; import javax.swing.DefaultListCellRenderer; import javax.swing.JList; +import javax.swing.ListCellRenderer; import java.awt.Component; /** @@ -33,21 +34,22 @@ import java.awt.Component; * * @author Tony Chemit - dev@tchemit.fr */ -public class EnumEditorRenderer<E extends Enum<E>> extends DefaultListCellRenderer { - private static final long serialVersionUID = 1L; +public class EnumEditorRenderer<E extends Enum<E>> implements ListCellRenderer<E> { private final ImmutableMap<E, String> labels; + private final DefaultListCellRenderer delegate = new DefaultListCellRenderer(); + public EnumEditorRenderer(ImmutableMap<E, String> labels) { this.labels = labels; } @Override - public Component getListCellRendererComponent(JList<?> list, Object value, int index, boolean isSelected, boolean cellHasFocus) { - + public Component getListCellRendererComponent(JList<? extends E> list, E value, int index, boolean isSelected, boolean cellHasFocus) { + String realValue = null; if (value != null) { - value = labels.get(value); + realValue = labels.get(value); } - return super.getListCellRendererComponent(list, value, index, isSelected, cellHasFocus); + return delegate.getListCellRendererComponent(list, realValue, index, isSelected, cellHasFocus); } } diff --git a/jaxx-runtime/src/main/java/org/nuiton/jaxx/runtime/swing/renderer/FilteredDecoratorListCellRenderer.java b/jaxx-runtime/src/main/java/org/nuiton/jaxx/runtime/swing/renderer/FilteredDecoratorListCellRenderer.java index cf12490..0a97c28 100644 --- a/jaxx-runtime/src/main/java/org/nuiton/jaxx/runtime/swing/renderer/FilteredDecoratorListCellRenderer.java +++ b/jaxx-runtime/src/main/java/org/nuiton/jaxx/runtime/swing/renderer/FilteredDecoratorListCellRenderer.java @@ -38,7 +38,7 @@ import java.util.regex.Pattern; * @author Kevin Morin - morin@codelutin.com * @since 2.5.11 */ -public class FilteredDecoratorListCellRenderer extends DecoratorListCellRenderer { +public class FilteredDecoratorListCellRenderer<O> extends DecoratorListCellRenderer<O> { /** text to highlight */ protected String filterText; @@ -47,17 +47,17 @@ public class FilteredDecoratorListCellRenderer extends DecoratorListCellRenderer protected boolean highlightFilterText = false; - public FilteredDecoratorListCellRenderer(Decorator<?> decorator) { + public FilteredDecoratorListCellRenderer(Decorator<O> decorator) { super(decorator); } - public FilteredDecoratorListCellRenderer(ListCellRenderer delegate, - Decorator<?> decorator) { + public FilteredDecoratorListCellRenderer(ListCellRenderer<O> delegate, + Decorator<O> decorator) { super(delegate, decorator); } - public FilteredDecoratorListCellRenderer(ListCellRenderer delegate, - Decorator<?> decorator, + public FilteredDecoratorListCellRenderer(ListCellRenderer<O> delegate, + Decorator<O> decorator, boolean highlightFilterText) { super(delegate, decorator); this.highlightFilterText = highlightFilterText; @@ -114,7 +114,7 @@ public class FilteredDecoratorListCellRenderer extends DecoratorListCellRenderer } } return delegate.getListCellRendererComponent(list, - stringValue, + (O) stringValue, index, isSelected, cellHasFocus diff --git a/jaxx-widgets-select/src/main/java/org/nuiton/jaxx/widgets/select/BeanComboBoxHandler.java b/jaxx-widgets-select/src/main/java/org/nuiton/jaxx/widgets/select/BeanComboBoxHandler.java index 9f8a3ac..f8744d3 100644 --- a/jaxx-widgets-select/src/main/java/org/nuiton/jaxx/widgets/select/BeanComboBoxHandler.java +++ b/jaxx-widgets-select/src/main/java/org/nuiton/jaxx/widgets/select/BeanComboBoxHandler.java @@ -135,7 +135,7 @@ public class BeanComboBoxHandler<O> implements PropertyChangeListener { JComboBox<O> combobox = ui.getCombobox(); // init combobox renderer base on given decorator - combobox.setRenderer(new DecoratorListCellRenderer(this.decorator)); + combobox.setRenderer(new DecoratorListCellRenderer<>(this.decorator)); combobox.addPopupMenuListener(new PopupMenuListener() { private O selectedItem; diff --git a/jaxx-widgets-select/src/main/java/org/nuiton/jaxx/widgets/select/BeanDoubleListHandler.java b/jaxx-widgets-select/src/main/java/org/nuiton/jaxx/widgets/select/BeanDoubleListHandler.java index 9dae02b..8eb1452 100644 --- a/jaxx-widgets-select/src/main/java/org/nuiton/jaxx/widgets/select/BeanDoubleListHandler.java +++ b/jaxx-widgets-select/src/main/java/org/nuiton/jaxx/widgets/select/BeanDoubleListHandler.java @@ -141,8 +141,8 @@ public class BeanDoubleListHandler<O> implements PropertyChangeListener { uiModel.addCanRemoveItemsPredicate(o -> !o.isEmpty()); - FilteredDecoratorListCellRenderer universeListCellRenderer - = new FilteredDecoratorListCellRenderer(this.decorator); + FilteredDecoratorListCellRenderer<O> universeListCellRenderer + = new FilteredDecoratorListCellRenderer<>(this.decorator); universeList.setCellRenderer(universeListCellRenderer); if (decorator2 != null) { @@ -150,7 +150,7 @@ public class BeanDoubleListHandler<O> implements PropertyChangeListener { } else { decorator2 = this.decorator; } - selectedList.setCellRenderer(new DecoratorListCellRenderer(decorator2)); + selectedList.setCellRenderer(new DecoratorListCellRenderer<>(decorator2)); // When universe list selection model changed, update the add button enabled property universeList.getSelectionModel().addListSelectionListener(e -> { diff --git a/jaxx-widgets-select/src/main/java/org/nuiton/jaxx/widgets/select/BeanFilterableComboBoxHandler.java b/jaxx-widgets-select/src/main/java/org/nuiton/jaxx/widgets/select/BeanFilterableComboBoxHandler.java index a8d1feb..fab3c5b 100644 --- a/jaxx-widgets-select/src/main/java/org/nuiton/jaxx/widgets/select/BeanFilterableComboBoxHandler.java +++ b/jaxx-widgets-select/src/main/java/org/nuiton/jaxx/widgets/select/BeanFilterableComboBoxHandler.java @@ -261,7 +261,7 @@ public class BeanFilterableComboBoxHandler<O> implements PropertyChangeListener }); // init combobox renderer base on given decorator - combobox.setRenderer(new DecoratorListCellRenderer(this.decorator)); + combobox.setRenderer(new DecoratorListCellRenderer<>(this.decorator)); ((JaxxFilterableComboBoxModel<O>) combobox.getModel()).setDecorator(this.decorator); combobox.putClientProperty("JComboBox.isTableCellEditor", Boolean.TRUE); combobox.addItemListener(e -> { diff --git a/jaxx-widgets-select/src/main/java/org/nuiton/jaxx/widgets/select/BeanListHeaderHandler.java b/jaxx-widgets-select/src/main/java/org/nuiton/jaxx/widgets/select/BeanListHeaderHandler.java index 6675733..f8f6466 100644 --- a/jaxx-widgets-select/src/main/java/org/nuiton/jaxx/widgets/select/BeanListHeaderHandler.java +++ b/jaxx-widgets-select/src/main/java/org/nuiton/jaxx/widgets/select/BeanListHeaderHandler.java @@ -110,7 +110,7 @@ public class BeanListHeaderHandler<O> implements PropertyChangeListener { this.decorator = BeanUIUtil.createDecorator(decorator); // init combobox renderer base on given decorator - ui.getList().setCellRenderer(new DecoratorListCellRenderer(this.decorator)); + ui.getList().setCellRenderer(new DecoratorListCellRenderer<>(this.decorator)); // build popup popupHandler.preparePopup(ui.getSelectedToolTipText(), diff --git a/jaxx-widgets-select/src/main/java/org/nuiton/jaxx/widgets/select/FilterableDoubleListHandler.java b/jaxx-widgets-select/src/main/java/org/nuiton/jaxx/widgets/select/FilterableDoubleListHandler.java index a787184..afb8333 100644 --- a/jaxx-widgets-select/src/main/java/org/nuiton/jaxx/widgets/select/FilterableDoubleListHandler.java +++ b/jaxx-widgets-select/src/main/java/org/nuiton/jaxx/widgets/select/FilterableDoubleListHandler.java @@ -392,7 +392,7 @@ public class FilterableDoubleListHandler<O extends Serializable> implements UIHa } else { decorator2 = this.decorator; } - selectedList.setCellRenderer(new DecoratorListCellRenderer(decorator2)); + selectedList.setCellRenderer(new DecoratorListCellRenderer<>(decorator2)); // When selected list selection model changed, update the add button enabled property -- To stop receiving notification emails like this one, please contact nuiton.org SCM administrator <admin+scm@nuiton.org>.
participants (1)
-
nuiton.org scm