JGoodies Common Release Notes CHANGES in 1.30.2 ------------------------------------------------------ o Source code changes. CHANGES in 1.30.1 ------------------------------------------------------ o Improved sources: removed redundant type information. o Updated JavaDoc tags. CHANGES in 1.30.0 ------------------------------------------------------ o Removed the deprecated SystemUtils#IS_OS_WINDOWS_XX. CHANGES in 1.29.0 ------------------------------------------------------ o FIX: SystemUtils doesn't detect Windows 11. Works with Java 8_321, 11.0.14, 17.0.2 or later. o All deprecated constants SystemUtils#IS_JAVA_XX have been removed. In Java 9 or later use Runtime#version and class Version. o Marked SystemUtils constants IS_OS_WINDOWS_XX for older Windows as deprecated; these will be removed from the next version. o Added and updated JavaDocs. CHANGES in 1.28.0 ------------------------------------------------------ o The methods FocusTraversalUtils#mark* return the marked component. CHANGES in 1.27.0 ------------------------------------------------------ o Added the internal feature RenderingUtils#stringWidth. CHANGES in 1.26.0 ------------------------------------------------------ o Added SystemUtils#IS_OS_WINDOWS_11. Windows 11 will be detected with Java version 8_321, 11.0.14, and 17.0.2 or later. o The deprecated SystemUtils#IS_JAVA_15 and #IS_JAVA_16 are private. o Improved ScreenScaling implementation. o Added two internal classes. o Adjusted JavaDocs. o Adjusted tests. CHANGES in 1.25.0 ------------------------------------------------------ o com.jgoodies.common.swing.collect.UnmodifiableListCollector is now internal code. Use Collectors#toUnmodifiableList instead (that is available since Java 10). o Replaced the VetoableEvent callback by Promises, a flexible and versatile mechanism for deferred computation. Promises can be chained by Promise#thenApply, #thenAccept, #thenRun, #thenCompose. This can significantly reduce the effort required to implement actions on the computed results. o Added tests for Promise chaining. o Added package infos. o Fixed JavaDocs. CHANGES in 1.24.0 ------------------------------------------------------ o Added MnemonicUtils#configure(JTabbedPane, int, String) that sets for a tabbed pane's tab at a given index the title, mnemonic, and mnemonic index. o VetoableEvent is now described and implemented as an extension of a Promise without result value (just state) plus event source. o Added tests for VetoableEvent. CHANGES in 1.23.0 ------------------------------------------------------ o Added class VetoableEvent to package com.jgoodies.common.event. o Some method signatures in classes Preconditions and Strings have been widened from String to CharSequence. o Removed internal classes. o Source cleanup. CHANGES in 1.22.0 ------------------------------------------------------ o Removed the @Action method lookup via method references from the IActionObject interface. CHANGES in 1.21.0 ------------------------------------------------------ o Added ScreenScaling#physicalEmptyBorder. o Removed the internal ScreenScaling feature for custom scale factor that has been used to scale all text; it has been replaced by a new JGoodies Looks' feature for choosing larger body text, see Options.setLargerBodyTextEnabled(boolean). o Fixed and overhauled the internal AncestorSupport. o Added tests for the internal AncestorSupport. o Migrated tests to JUnit 5. CHANGES in 1.20.2 ------------------------------------------------------ o FIX: UnsupportedOperationException in DateUtils with java.sql.Date o Added DateUtils tests. CHANGES in 1.20.1 ------------------------------------------------------ o Class ScreenScaling shall not be used in headless environments. However, this library version accepts access to ScreenScaling methods, especially #getScaleFactor - that answers F100. This behavior is likely to change with the next major revision. CHANGES in 1.20.0 ------------------------------------------------------ o Added: FocusTraversalUtils#setFocusTraversable(Boolean,JTextComponent...), Preconditions#checkNotNullOrEmpty(List, String), Preconditions#checkNotNullOrEmpty(List, String, Object...), SystemUtils.IS_JAVA_11, SystemUtils.IS_JAVA_11_OR_LATER, and internal code. o Fixed JavaDoc tags. CHANGES in 1.19.1 ------------------------------------------------------ o FIX: IllegalArgumentException in FocusTraversalUtils, if a group is in a focus cycle that contains a JEditorPane with invalid HTML tags. o Overhauled and improved internal code for managing focus groups. CHANGES in 1.19.0 ------------------------------------------------------ o ScreenScaling#physicalInsetsUIResource return type is now InsetsUIResources, not Insets. o Added Strings methods: #isAlpha, #isAlphaSpace, #isAlphanumeric, #isAlphanumericSpace, #isNumeric, #isNumericSpace. CHANGES in 1.18.0 ------------------------------------------------------ o Moved class Listeners from JGoodies Application to this library. It that constructs frequently used Swing listeners from lambdas or method references. o Moved class BeanUtils and the references exception types from JGoodies Binding to this library. o Added features for improved focus traversal and accessibility: JGContainerOrderFocusTraversalPolicy, JGLayoutFocusTraversalPolicy, and FocusTraversalUtils. o Moved the Swing collection classes ArrayListModel, LinkedListModel, and their interfaces from com.jgoodies.common.collect to com.jgoodies.common.swing.collect o Renamed, improved and removed internal code. o Removed the deprecated SystemUtils#IS_LOW_RESOLUTION that has been replaced by the ScreenScaling class. o Added SystemUtils.IS_JAVA_10 and IS_JAVA_10_OR_LATER. o Marked all SystemUtils version info for Java 9 and 10 as deprecated in Java 9 or later. API users shall use Runtime#version instead and the comparators for class Version that have been introduced in Java 9. o Experimental support for Java 9 on high dpi devices. o Experimental support for Java 10 on high dpi devices. CHANGES in 1.17.0 ------------------------------------------------------ o FIX: ArrayListModel and LinkedListModel throw appropriate events for the operations #removeIf, #sort, and #replaceAll that have been introduced with Java 8. o Added test cases for the list operations mentioned above. o Experimental but internal support for a custom scaling. o new Integer(int) -> Integer.valueOf(int). CHANGES in 1.16.1 ------------------------------------------------------ o JavaDoc API clarification regarding headless environments. CHANGES in 1.16.0 (Java 8) --------------------------------------------- o Moved to Java 8. o Removed SystemUtils#IS_JAVA_7. o Fixed SystemUtils#IS_JAVA_9. o Added SystemUtils#IS_JAVA_9_OR_LATER. o Marked SystemUtils#IS_LOW_RESOLUTION as deprecated that will be removed from a future API version. Use ScreenScaling instead. o Added ScreenUtils that provides an API to map effective to physical pixels and vice versa. CHANGES in 1.15.0 ------------------------------------------------------ o Added the internal BuilderSupport class that helps detect invalid duplicate calls in fluent style builders. CHANGES in 1.14.0 ------------------------------------------------------ o Added internal classes. o Renamed internal classes. CHANGES in 1.13.0 ------------------------------------------------------ o Moved the internal IActionObject interface to the Application lib. o Removed the internal IActionBean interface. CHANGES in 1.12.0 ------------------------------------------------------ o As of version 1.12, the mnemonic marker is the underscore ('_'). To revert back to the previous behavior, call MnemonicUtils.setMarker(MnemonicMarker.BOTH) // '&' and '_' If you mark mnemonics with the ampersand only, you can call: MnemonicUtils.setMarker(MnemonicMarker.AMPERSAND) // '&' only CHANGES in 1.11.1 ------------------------------------------------------ o Changed the Windows 10 kernel version from 6.4 to 10.0. CHANGES in 1.11.0 ------------------------------------------------------ o Added MnemonicUtils#containsMarker(String). o Added the IconDisplayable interface. o Fixed many JavaDoc issues. CHANGES in 1.10.0 ------------------------------------------------------ o MnemonicUtils can be configured to use the underscore ('_') as mnemonic marker, or the ampersand ('&'), or both. See MnemonicUtils#setMarker. The default is MneminicMarker.BOTH that first checks for underscore, and then for ampersands. o Extended SystemUtils - #IS_OS_WINDOWS_8_1 - #IS_OS_WINDOWS_LUNA - #IS_OS_WINDOWS_AERO - #IS_OS_WINDOWS_METRO o Fixed typos. CHANGES in 1.9.0 ------------------------------------------------------- o Moved to Java 7. o Removed com.jgoodies.common.base.Objects#equals that is replaced by Java 7's java.util.Objects#equals. o Changed SystemUtils - removed #IS_JAVA_6 that is now always false - removed #IS_JAVA_7_OR_LATER that is now always true - removed #HAS_MODERN_RASTERIZER that is now always true - added #IS_JAVA_9 - removed #IS_OS_WINDOW_98/ME/2000 - added #IS_OS_WINDOWS_10 o Added generics to ListModel references. o Added Preconditons#checkNotNullOrEmpty. CHANGES in 1.8.1 ------------------------------------------------------- o Marked classes ArrayListModel and LinkedListModel as final. o Replaced files package.html by package-info.java. CHANGES in 1.8.0 ------------------------------------------------------- o Fixed an internal message string. o Changed internal types: - Replaced StringLocalizer by StringResourceAccessor - Replaced ResourceBundleLocalizer by ResourceBundleAccessor - Added IconResourceAccessor - Added StringAndIconResourceAccessor - Added Strings#get(String str, Object... args) o Added SystemUtils#IS_OS_WINDOWS_XP_64_BIT_OR_SERVER_2003. o Added SystemUtils#isLafAqua. CHANGES in 1.7.0 ------------------------------------------------------- o Added Displayable, ListDisplayable, and TableDisplayable. o Added DisplayableFormat. o Added ObservableList2 that describes explicit change notifications as provided by the ObservableList implementations ArrayListModel and LinkedListModel. o Changed the class documentation for IActionBean and IActionObject. It now says that these classes are intended for predefined and custom binder implementations as used by the JGoodies Binding. CHANGES in 1.6.0 ------------------------------------------------------- o Added SystemUtils.IS_JAVA_8 and IS_JAVA_8_OR_LATER; o Added an internal implementation class. o Updated copyright date. CHANGES in 1.5.0 ------------------------------------------------------- o Removed class AbstractBean that has been replaced by Bean before. o Bean has been changed to prevent listeners from being serialized. The 'changeSupport' and 'vetoSupport' have been marked as transient. o Source code cleanup. o Fixed and extended the pom.xml: - added schema - fixed scope for dependencies - added Maven Central deployer - added build data CHANGES in 1.4.0 ------------------------------------------------------- o Replaced AbstractBean by Bean. The old class AbstractBean is still available, but will be removed from a future version. o Introduced the StringLocalizer interface. o Added the ActionProvider interface (in JSDL Common before). o Added SystemUtils.IS_OS_WINDOWS_7 and IS_OS_WINDOWS_8; CHANGES in 1.3.1 ------------------------------------------------------- This version is backwards compatible with the 1.3.0 release. o The javadocs, main and test sources are delivered as JARs. CHANGES in 1.3.0 ------------------------------------------------------- o Requires Java 6. o Removed SystemUtils#IS_JAVA_5 o Removed SystemUtils#IS_JAVA_6_OR_LATER o Added null checks for the delegate format in AbstractWrappedDateFormat, EmptyDateFormat, EmptyFormat, and EmptyNumberFormat. o Added Strings#isTrimmed. o Removed code that is obsolete in Java 6. CHANGES in 1.2.1 ------------------------------------------------------- o Fixed a bug in ArrayListModel and LinkedListModel with missing ListDataEvents in #removeAll and #retainAll. The old code depends on a specific implementation of #removeAll and #retainAll that may vary with the platform. CHANGES in 1.2 --------------------------------------------------------- o Fixed missing contents change in LinkedListModel's list iterator. o Removed SystemUtils#IS_JAVA_1_4 o Removed SystemUtils#IS_JAVA_5_OR_LATER o Added SystemUtils#HAS_MODERN_RASTERIZER o Added SystemUtils#IS_LAF_WINDOWS_XP_ENABLED o Added SystemUtils#IS_LOW_RESOLUTION CHANGES in 1.1.1 ------------------------------------------------------- o Added Objects#deepCopy(Object). o Source code improvements. CHANGES in 1.1 --------------------------------------------------------- o Added interfaces ObservableBean and ObservableBean2. o Removed generics from EmptyFormat. CHANGES in 1.0.1 o Empty*Format#format returns the 'toAppendTo' parameter for the empty value instead of a new StringBuffer. CHANGES in 1.0 o Added Format wrappers: - AbstractWrappedDateFormat - EmptyDateFormat - EmptyNumberFormat - EmptyFormat o Added tests for the empty formats. o Added Preconditions#checkNotNull(String, String, Object...).