JGoodies Components Release Notes CHANGES IN 1.33.1 -------------------------------------------------------- o Marked JGComponentFactory#configureMenuLink and #configureMenuLinks as deprecated. If available, turn your menu links into items of a com.jgoodies.fluent.navigation.NavigationView. CHANGES IN 1.33.0 -------------------------------------------------------- o Recompiled against Common 1.30. o Removed the Windows Vista/7 icons. CHANGES IN 1.32.0 -------------------------------------------------------- o Recompiled against Common 1.29. CHANGES IN 1.31.0 -------------------------------------------------------- o Added JGComponentFactor#createScrollPane(Component) and #configure(JScrollPane). o Added ComponentUtils#registerEnterAction(Action, JComponent...) that can register an action with multiple components, e.g. some search text fields and a table or list. CHANGES IN 1.30.1 -------------------------------------------------------- o TextComponentUtils#commitImmediately does no longer try to make JFormattedTextField#isEdited() accessible. Hence, apps using this feature do not need to "add-opens" the javax.swing package from the java.desktop module to all unnamed. CHANGES IN 1.30.0 -------------------------------------------------------- o FIX: In JGMenuItem, JGCheckBoxMenuItem, and JGRadioButtonMenuItem setIconVisible(true) clears icons, if #setIconVisible(false) has not been called before. o Recompiled against JGoodies Common 1.25. o Added package infos. o Fixed JavaDocs. o Improved JGTable docs. CHANGES IN 1.29.0 -------------------------------------------------------- o Recompiled against JGoodies Common 1.23. CHANGES IN 1.28.4 -------------------------------------------------------- o Simplified the JGTextComponent prompt support implementations. CHANGES IN 1.28.3 -------------------------------------------------------- o Changed the JGTable(Vector, Vector) constructor syntax to JGTable(Vector, Vector). CHANGES IN 1.28.2 -------------------------------------------------------- o JGComponentFactory#createReadOnlyTable clears the table's ENTER key binding, which is select-next-cell-row by default. If focused, such a read-only table won't process ENTER. Instead other components may process the key, for example the then active default button. The Shift+ENTER binding is also cleared. CHANGES IN 1.28.1 -------------------------------------------------------- o FIX: JGComponentFactory#createStaticHTMLText() and #createStaticHTMLText(HyperlinkListener) throw IAException. o CHANGE: JGComponentFactory#createStaticHTMLText(URL) and #createStaticHTMLText(URL, HyperlinkListener) now silently ignore null URLs. CHANGES IN 1.28.0 -------------------------------------------------------- o Recompiled against updated JGoodies Layout lib; uses PrototypeSize#computeWidth. CHANGES IN 1.27.1 -------------------------------------------------------- o FIX: Potential memory leak in StaticTextArea that shares a caret for suppressing unnecessary scrolling. CHANGES IN 1.27.0 -------------------------------------------------------- o Removed an internal class. CHANGES IN 1.26.0 -------------------------------------------------------- o Removed two deprecated methods from JGComponentFactory that have been replaced by other methods in 1.24: #createStaticText(URL) -> #createStaticHTMLText(URL) #createStaticText(URL, HyperlinkListener) -> #createStaticHTMLText(URL, HyperlinkListener). CHANGES IN 1.25.0 -------------------------------------------------------- o FIX: JGTable's row height ignores a row margin > 1. o JGStripedTable's row height honors the table font. o JGStripedTable can configure the default renderer border. o Improved the high dpi behavior of JGStripedTable by scaling its default renderer border. o Marked JGStripedTable methods intended to be final as final. o Added JavaDoc examples for JGDefaultListCellRenderer and JGDefaultTableCellRenderer that demonstrate how to use these classes without subclassing. o Migrated tests to JUnit 5. CHANGES IN 1.24.0 -------------------------------------------------------- o Added JGComponentFactory methods for static HTML text: #createStaticHTMLText() #createStaticHTMLText(HyperlinkListener) #createStaticHTMLText(URL) #createStaticHTMLText(URL, HyperlinkListener) o Marked JGComponentFactory methods as deprecated: #createStaticText(URL) #createStaticText(URL, HyperlinkListener) that have been replaced by the new methods mentioned above. o Static text avoids unnecessary scrolling. CHANGES IN 1.23.1 -------------------------------------------------------- o JGComponentFactory shares the default table cell renderers for Boolean, LocalDate, and LocalDateTime for all created tables. o JGComponentFactory#configure*Field no longer set opaque to true on Mac OS X. The fields are set to transparent in #updateUI. CHANGES IN 1.23.0 -------------------------------------------------------- o Added JGBooleanTableCellRenderer#INSTANCE. o Added JGDisplayableListCellRenderer#INSTANCE. o Added JGDisplayableTableCellRenderer#INSTANCE. o The static text component now disables mouse events. CHANGES IN 1.22.0 -------------------------------------------------------- o Added missing feature methods to JGFormattedTextField and JGPasswordField, so they provide the same features as JGTextField. o Introduced the internal interface JGTextComponent that describes the feature set provided by all JG* text components. o Introduced the internal interface JGTextComponent2 that describes the feature set provided by JGTextField, JGFormattedTextField, and JGPasswordField. CHANGES IN 1.21.1 -------------------------------------------------------- o Improved performance of JGTable's old BooleanRenderer. CHANGES IN 1.21.0 -------------------------------------------------------- o JGComponentFactory#createTable sets default renderers for LocalDate and LocalDateTime using: #createDefaultLocalDateRenderer and #createDefaultLocalDateTimeRenderer. CHANGES IN 1.20.1 -------------------------------------------------------- o TextComponentUtils initializes the reflective access to JFormattedTextField#isEdited lazily; reduces eager messages regarding an illegal reflective access in Java 9/10. CHANGES IN 1.20.0 -------------------------------------------------------- o Removed the deprecated HyperlinkAdapter that has been replaced by Listeners#hyperlinkActivated(Consumer). CHANGES IN 1.19.1 -------------------------------------------------------- o Text field prompt horizontal alignment follows field alignment. o Improved split button popup area width on high DPI. CHANGES IN 1.19.0 -------------------------------------------------------- o Refactored for updated Common-lib. CHANGES IN 1.18.0 -------------------------------------------------------- o Extended JGDefaultListCellRenderer and JGDefaultTableCellRenderer to accept a function that maps values to a text presentation. o Added JGComponentFactory methods: #createComboBox(Function items) #createList (Function items) CHANGES IN 1.17.0 -------------------------------------------------------- o JGDefaultListCellRenderer and JGDefaultTableCellRenderer can be used as concrete classes by providing a lambda that describes how to set a value. o Marked HyperlinkAdapter as deprecated that has been replaced by Listeners#hyperlinkActivated. CHANGES IN 1.16.1 -------------------------------------------------------- o Fixed a regression with missing command link icons. o Fixed a regression with broken Aero icon path. o Reorganized scaled resources. CHANGES IN 1.16.0 -------------------------------------------------------- o Added JGFormattedTextField#PROPERTY_EDIT_VALID. o Improved JGTable and JGStripedTable default row height on high dpi. o Improved TableBuilder's layout on high dpi. o Windows 10 icons are scaled for 100% and 200%. CHANGES IN 1.15.0 -------------------------------------------------------- o Added JGTextArea#isSelectOnFocusGainEnabled #setSelectOnFocusGainEnabled(boolean). o JGComponentFactory#configure(JGTextArea) disables the selectOnFocusGain property by default. o Removed the multi-click-threshold for buttons as configured by JGComponentFactory#configure(AbstractButton) that has been introduced in version 1.10. CHANGES IN 1.14.2 -------------------------------------------------------- o Fixed a bug in JG*MenuItem not updating the icon visibility after action property changes. CHANGES IN 1.14.1 -------------------------------------------------------- o Fixed JGCardPanel constraints check to allow null constraints. o Added a test for card panel constraints. CHANGES IN 1.14.0 -------------------------------------------------------- o Fixed JGCardPanel layout computation when insets are set. o Fixed broken PopupIcon on non-Windows platforms. o Renamed JGHyperLink to JGHyperlink. o Improved Metro text field button colors. o Improved Mac CommandLink icons. o Improved implementation. o JG*Field icon and link actions can be specified with a Consumer. o Added JGComponentFactory factory methods: #createComboBox(List) #createList(E...) #createList(List) #createList(ListCellRenderer, E...) #createList(ListCellRenderer, List) CHANGES IN 1.13.0 (Java 8) ----------------------------------------------- o Moved to Java 8. o Replaced some annotated event handling methods by method references. CHANGES IN 1.12.1 -------------------------------------------------------- o Improved the color configuration for Ocean and Nimbus. o Fixed static text background on Nimbus. CHANGES IN 1.12.0 -------------------------------------------------------- o JGStripedTable#setCustomTableCellBackground(JComponent, boolean) has been added to mark table cell renderer components as provider of a custom background color. o Improved JGStriptedTable's default cell border. o Improved TableUtils prototype size to pixel conversion. CHANGES IN 1.11.0 ------------------------------------------------------- o Renamed com.jgoodies.jsdl.component-* -> com.jgoodies.components.* o Added JGCardPanel. o Added JGComponentFactory#createReadOnlyTable(). o Added JGComponentFactory#createTable(). o Removed the deprecated methods: JGComponentFactory#createActionLink* JGComponentFactory#createMenuLink* o Added a generic type to JGTable and JGStripedTable. Useful to document the row element type. CHANGES IN 1.10.1 ------------------------------------------------------- o Fixed broken text field icon fallback in environments other than Windows Vista - Windows 10. o Fixed broken hyperlink mnemonic check. o Added more hyperlink unit tests. CHANGES IN 1.10.0 ------------------------------------------------------- o Improved the Metro popup icons for split button, menu button, and text field's optional popup button. o Better style choice on non-Windows platforms. o Removed unused (internal) small TextFieldIcons. o New Metro CommandLink icon. o Replaced JGoodies Forms by JGoodies Layout. o Added JGComponentFactory#configure(AbstractButton) useful for a configuration shared by general buttons. The default implementation sets the button's multi-click-threshold. o Added argument checks for task links, help links, navigation links. o Fixed unit tests. o Added docs. CHANGES IN 1.9.0 --------------------------------------------------------- o Renamed from "JSDL-Component" to "JGoodies Components". o Overhauled the link classes and API: - Replaced JGActionLink, JGHelpLink, JGMenuLink by JGHyperLink. - Added JGComponentFactory methods to create navigation links, task links, and help links. - Marked outdated JGComponentFactory link methods as deprecated. - Added style checks. - Navigation links change the foreground color if visited. o Improved command link visuals for Windows 8/8.1/10. o Fixed chevrons for split button and menu button. o Added JGComponentFactory#createTabbedPane that configures the created tabbed pane to not grab focus on mouse press. o TreeUtils operate on tree nodes that do not implement TreeNode. CHANGES IN 1.8.1 --------------------------------------------------------- o Marked JGComponentFactory#createAntiAliasedLabel as deprecated. o Improved Windows 7 button images. o Added images for Windows 8/8.1 and Windows 10. o Fixed bug with illegal component state exception when showing the menu on a JGMenuButton. o Fixed JGTextArea's initial prompt style value. o The Bold prompt style is now prohibited. o JGActionLinks now accept an ending ellipsis. CHANGES IN 1.8.0 --------------------------------------------------------- o Moved to Java 7. o Added generics to JComboBox, ComboBoxModel, JList, and ListModel. o JGComponentFactory#createComboBox now accepts a list of items, e.g. nameCombo = factory.createComboBox("Hans", "Peter", "Werner"); o Added convenience accessors for the JGoodies Looks Options class' select-on-focus-gain enabled state to JGTextField, JGSearchField, and JGFormattedTextField. o Added convenience methods #setJGFocusTraversable to all JG* text components. CHANGES IN 1.7.0 --------------------------------------------------------- o Removed the deprecated internationalization API from the JGComponentFactory. JSDL Component 1.6.3 ---------------------------------------------------- o Changed method signatures to accept optional String format args: JGDefaultListCellRenderer#setText JGDefaultListCellRenderer#setToolTipText JGDefaultTableCellRenderer#setText JGDefaultTableCellRenderer#setToolTipText o Added JGComponentFactory#configureTextArea(JGTextArea). o JG*TextFields honor a client property for the prompt's horizontal alignment. See PromptSupport#PROPERTY_PROMPT_HORIZONTAL_ALIGNMENT. JSDL Component 1.6.2 ---------------------------------------------------- o Marked JGComponentFactory internationalization API as deprecated. The methods JGComponentFactory#createI15d* will be removed from the next major library version. o Removed an obsolete JGTable constant. o Fixed an NPE in TextFieldSupport if the system has no mouse. JSDL Component 1.6.1 ---------------------------------------------------- o Added a NullIcon constructor. JSDL Component 1.6.0 ---------------------------------------------------- o Fixed transparent background for Java 7 on OS X with static text and read-only text areas. o Fixed boolean renderer's background on OS X in striped tables. o Fixed #setBorder in JGToolBarSplitButton and JGToolBarMenuButton. o Fixed hot L&f change in split buttons. o Changed the check box list background on OS X. o Factory sets text fields to non-opaque if the L&F is Aqua. o Added JGBooleanTableCellRenderer that uses a checkmark for the non-editable case. This is the new default boolean renderer for tables created by the JGComponentFactory. o TableUtils does not set a horizontal table column alignment, if the column alignment is specified as "none". o JCComponentFactory changes: - Added JGComponentFactory methods: #createMenuButton(JMenuItem...) #createMenuButton(Action, JMenuItem...) #createMenuButton(String, JMenuItem...) #createSplitButton(JMenuItem...) #createSplitButton(Action, JMenuItem...) #createSplitButton(String, JMenuItem...) - Added factory methods that accepts format arguments for #createLabel, #createTitle, #createReadOnlyLabel, #createHeaderLabel, nd #createAntiAliasedLabel. - Renamed #getI15dString to #getResourceString. - Changed the #createStaticText(String text) signature to #createStaticText(String text, Object... args). - Changed the JGComponentFactory(ResourceMap) constructor signature to JGComponentFactory(StringResourceAccessor). o Added #setPrompt(String prompt, Object... args) to all prompt text fields. JSDL Component 1.5.2 ---------------------------------------------------- o Removed the deprecated mouse input registration methods from class ComponentUtils. These have been replaced by the JGoodies Application mouse listener annotations o Improved the JGComponentFactory's internationalization feature. o Code improvements. JSDL Component 1.5.1 ---------------------------------------------------- o Added internal ellipsis icons. o Fixed broken Forms reference in pom.xml. o Improved JavaDocs. JSDL Component 1.5.0 ---------------------------------------------------- o Added JGCheckBoxList. o Added JGDisplayableListCellRenderer, JGDisplayableTableCellRenderer. JSDL Component 1.4.2 ---------------------------------------------------- o JGMenuButton and JGSplitButton check for consumed key events. JSDL Component 1.4.1 ---------------------------------------------------- o Added missing final markers for JG*Field getters and setters. o Fixed a bug in ComponentUtils#registerMouseAction with an unknown mouse event. o Marked ComponentUtils#registerMouseAction as deprecated. This has been replaced by the mouse listener annotations, e.g. @MouseDoubleClickedListener, @MouseEnteredListener, etc. o Simplified the JGMenuButton and JGSplitButton implementation. JSDL Component 1.4.0 ---------------------------------------------------- o Consistent and style-guide compliant keyboard handling for opening the drop-down menu in JGMenuButton, JGSplitButton, and JG*Fields: is ALT+DOWN now, where it was SHIFT+DOWN or ALT+SHIFT+DOWN before. o Fixed broken default hyperlink listener in JGComponentFactory. o Simplified the HyperlinkAdapter implementation. o Improved the appearance of focused split buttons. o Improved the JG*Field setup for the icon action and link action. o Extended the JGSearchField to better interact with auto completion: #search is now public. JSDL Component 1.3.0 ---------------------------------------------------- o Added renderers: - a generified and simpler version of the DefaultListCellRenderer - a generified and simpler version of the DefaultTableCellRenderer - a table cell renderer that renders with a given Format JSDL Component 1.2.1 ---------------------------------------------------- o JGComponentFactory#createReadOnlyTextField has now the return type JGTextField where it was JTextField before. o Added a methods set JGComponentFactory#configure that allows subclasses to customize the configuration of returned JGTextFields, JGFormattedTextFields, JGSearchFields. Useful to consistently set the properties 'iconVisibleAlways', 'promptVisibleWhenFocused', etc. o Extracted protected JGComponentFactory methods #createHeaderFont and #createHeaderForeground for use in subclasses. JSDL Component 1.2.0 ---------------------------------------------------- o Removed deprecated components: ActionLink, CommandLink, HelpLink, and MenuLink. o JGCommandLink rejects whitespace descriptions with an IllegalArgumentException (but accepts null and empty descriptions). o Compiled against the JGoodies Common 1.5. o Source code cleanup. o Fixed tests. o Fixed and extended the pom.xml: - added schema - fixed scope for dependencies - added build data JSDL Component 1.1.0 ---------------------------------------------------- o Renamed components to achieve a consistent class prefix "JG": - ActionLink -> JGActionLink - CommandLink -> JGCommandLink - HelpLink -> JGHelpLink - MenuLink -> JGMenuLink The old classes are still available. They have been marked as deprecated and will be removed from the next version. o New components: - JGMenuButton - shows a popup menu - JGSplitButton - performs an action and can show a popup menu - JGToolBarMenuButton - a menu button for tool bars - JGToolBarSplitButton - a split button for tool bars o Overhauled the tool bar components. Removed the borderPaintedMode and wideMarginMode. o JGComponentFactory now implements the new Forms ComponentFactory. o Added JGComponentFactory#createMenu methods. o Added JGComponentFactory#createMenuItem methods. o Added several component creation sanity checks. o Added TableUtils#resizeColumnsToPreferredWidth. o Added #setKeyboardAction(Action) to the JG* text components. o Added Action bindings for accessible information to JGMenuItem, JGCheckBoxMenuItem, and JGRadioButtonMenuItem. JSDL Component 1.0.1 ---------------------------------------------------- o The javadocs, main and test sources are delivered as JARs. JSDL Component 1.0.0 ---------------------------------------------------- o Fixed JGComponentFactory#createReadOnlyFormattedTextField. The returned component keeps the editable state with or without binding. o Fixed JGComponentFactory's split pane and scroll pane configuration to keep the empty border after L&f changes. o Fixed JGComponentFactory ignoring the default hyper link handler in #createStaticText(String) and #createReadOnlyEditorPane(String). o Requires Java 6. o Added JGComponentFactory sanity checks: - null checks for Formats, AbstractFormatters, and AbstractFormatterFactories used in formatted text fields - checks for blank mandatory texts o Added JGComponentFactory methods and method sets: - createReadOnlyIntegerField methods - createReadOnlyLongField methods - createActionLink(Action) - createButton(Action) - createHelpLink(Action) - createMenuLink(Action) o Changed the JGComponentFactory#createPasswordField return type from JPasswordField to JGPasswordField. o Added and refined JGComponentFactory JavaDocs and JavaDoc tags. o Removed the deprecated method ComponentUtils#addDoubleClickAction. o Removed code that is obsolete in Java 6, for example the JGTable backport of the "fillsViewportHeight" feature JSDL Component 0.10.1 ---------------------------------------------------- o JGComponentFactory ensures a component setup. o JGComponentFactory#createHeaderLabel falls back to better font and foreground, if the JSDL Core has not (yet) installed a Style. The fallback lookup is based on the component setup. o ComponentSetup configures a font and foreground for header labels. o Improved docs. JSDL Component 0.10.0 ---------------------------------------------------- o Added AbstractLink, ActionLink, HelpLink, MenuLink, CommandLink. o Added a mechanism to setup component properties and UI delegates. o Added JGComponentFactory methods that create links. o Added component resources. JSDL Component 0.9.4 ----------------------------------------------------- o Fixed the background color for JGTextAreas without prompt. o Added checks for check box and radio button factory methods that ensure a text that is not null, not empty, not whitespace. o JGComponentFactory#createReadOnlyTextArea returns a text area that wraps lines and at word boundaries. o JGComponentFactory#createTextArea returns a text area that wraps lines and at word boundaries. o Added JGComponentFactory#createCheckBox(String, String) that sets the optional accessible name. o Declared methods as static where possible. JSDL Component 0.9.3 ----------------------------------------------------- o Fixed a regression with static text components in screen reader mode, that now transfer focus on Tab/Shift-Tab where they required Ctrl-Tab/Ctrl-Shift-Tab before. o Added JGComponentFactory#createComboBox. o Added JGComponentFactory#createList. o Added JGComponentFactory#createPasswordField. o Looks up text field icons lazily. JSDL Component 0.9.2 ----------------------------------------------------- o Fixed duplicate Enter and Escape event handling in JGSearchField. o Fixed JGTable column alignment with reordered columns. o JGComponentFactory is now accessed via #getCurrent(). o JGComponentFactory uses (not extends) the DefaultComponentFactory. o Added JGComponentFactory#createStaticText o Added JGComponentFactory#createAntiAliasedLabel o Added JGComponentFactory#createHeaderLabel o Added default hyperlink setup to the JGComponentFactory that was located in JSDLSetup before. o Read-only and static text created by the JGComponentFactory ignores attempts to change the editable state. JSDL Component 0.9.1 ----------------------------------------------------- o Fixed JGTextArea construction with non-empty text. o Added some factory methods to JGComponentFactory. o Fixed docs. JSDL Component 0.9.0 ----------------------------------------------------- Initial version that has been extracted from the UIF2 and Basics.