Quaqua Look and Feel
- Adds support for OS X 10.9 Mavericks.
- Adds support for OS X 10.8 Mountain Lion.
- Adds support for J2SE7 from Oracle. The native Quaqua library for this JVM has the name libquaqua64.dylib.
- Removes support for J2SE5.
- Removes support for org.jdesktop.layout API.
- Removes support for PPC.
Known Issues with J2SE7 from Oracle:
- Popup menus are not translucent.
- JSheet is shown and hidden without a transition animation.
- JProgressBar is not animated.
- Fixes NullPointerException in QuaquaNativeButtonBorder.
- Fixes appearance of toolbar buttons.
- Fixes QUAQUA-151 JComponent.getBaseline() is not available on J2SE5.
- Fixes QUAQUA-137 firePopupMenuWillBecomeVisible no longer being called.
- Fixes QUAQUA-148 NullPointerException when sidebar contains a link to an unmounted network folder.
- Method sun.awt.SunToolkit.ungrab() is not available on J2SE5.
- Fixes focus ring painting on J2SE5 by enforcing the opacity setting of the L&F on JScrollPane objects.
- Fixes QUAQUA-146 wrong background color in table cell editor when cell is selected.
- Fixes QUAQUA-149 NullPointerException in QuaquaTextFieldBorder.
- In 8.0alpha9, Quaqua used the Leopard design for tabbed panes instead of the Lion design.
- Fixes excessive CPU usage when a flashing default button is shown. The CPU usage continued to be high even when the default button was not showing anymore.
- Fixes NullPointerException in QuaquaButtonUI.
- Fixes a layout issue with JButton's on a JToolBar.
OS X 10.7 Lion
- Adds a file-chooser only version of the Quaqua Look and Feel for use on Mac OS X 10.7 Lion.
- Uses native painters for most components so that they will (hopefully) stay in synch with future updates of OS X.
- Adds support for the "mini" size variant for most controls.
- Adds a preliminary Quaqua Look and Feel for Lion.
Currently, UI delegates for the following components are provided by Quaqua:
- Adds support for the JButton.segmentPosition property for the following button types: "segmented", "segmentedRoundRect", "segmentedGradient", "square", "gradient".
- The non-blinking caret which is shown in non-editable text components can now be turned off by setting the system property "Quaqua.showNonEditableCaret" to "false".
- Issue 98: Combo box popup did not work with the Leopard design.
- Issue 142: Combo box popup did not work with the cross-platform Leopard design. The fix may cause a regression of Issue 132. But since this regression will likely only happen on unsupported platforms, it is not critical.
- The ComboBox popup stays now open when a mouse wheel event occurs.
- Fixes gradients when the Quartz rendering engine is used.
- Some code (as marked) has been derived from the OpenJDK project and is thus licensed under the term of the GNU 2 license with "Classpath" exception.
- Issue 135: Fixes alignment issues with GroupLayout and borderless JButtons. Icons are now treated as part of the visual bounds of a button.
- Issue 127: Fixes a layout bug when adding JButtons to a JPanel. Borderless JButtons and JButtons with custom borders can now be made smaller than the minimal button width.
- JButton ignored the client property JComponent.sizeVariant=small, if the font was not also set to a size smaller than 12.
- Issue 131: Fixes Z-order issues for JComboBox popups when one of the ancestor windows has alwaysOnTop set to true. Popups appear now on top of the window.
- Issue 134: Fixes a NullPointer in the SidebarSelectionListener, when the user clicks on an item in the sidebar which has been removed from the file system.
- Issue 131: Hard crashes caused by unstable QuickLook plugins can now be prevented by setting the system property
- Issue 133: Adds additional text translations in French, German, Italian and Swedish.
- JTabbedPane.indexAtLocation(x,y) now properly reports the tab index when all tabs are collapsed into a single JComboBox.
- Improves visual fidelity of table headers on Snow Leopard.
- Quaqua tries now harder to fit the entire popup window of the combo box into the available screen area, instead of cropping it at the bounds of the screen.
- Issue 126: The QuaquaPopupFactory is not installed anymore if the Popup UI is excluded.
- Fixes a fatal NullPointerException which sometimes occured after setting the QuaquaLookAndFeel in the UIManager.
JLabel / JCheckBox
- Adds support for the client property "Quaqua.Label.style".
- BinaryPListParser can now parse dates.
- Quaqua can now load its JNI-libs when running on OpenJDK 7.
- Issue 122: Fixes a NullPointerException when switching from Nimbus L&F to Quaqua L&F.
- Issue 125: Mouse wheel events on popup menus do not close the popup menu anymore.
- Issue 130: Fixes a ClassCastException in QuaquaTextCursorHandler.
- The Quaqua mouse grabbers and keyboard grabbers are now uninstalled when the QuaquaLookAndFeel is uninstalled.
- Fixes potential issues with lead selection handling.
- Fixes the location of the check icons when running Quaqua with J2SE 6 on Mac OS X 10.5.
- Files with name "desktop.ini" are now treated like hidden files.
- Fixes potential issues when JTree is not displaying.
- Removes unused FileCacheSeekableStream class.
- Fixes a number of correctness issues reported by FindBugs.
- Fixes J2SE5 incompatibility caused by the LayoutStyle fix made in Quaqua 7.3.2. To work on J2SE5 the Quaqua look and feel must now be retrieved from QuaquaManager or the class name "ch.randelshofer.quaqua.QuaquaLookAndFeel15" must be used.
- Fixes focus behavior of JCheckBox editors in a JTable.
- Fixes flickering when selecting a JCheckBox in a JTable which currently is not focused.
- Fixes the size variant of JCheckBox editors in JTable.
- Selection color (InactivatiableColorUIResource) extends now UIResource.
Keyboard focus traversal
- The setting "System Preferences > Keyboard > Full Keyboard Access" was not always picked up.
- Fixes 20 correctness issues, 11 multithreaded correctness issues and 215 other potential issues reported by FindBugs.
- BasicBrowserUI attempts now to load the "Browser.sizeHandleIcon" from the UIManager before falling back to loading the icon directly.
- Fixes issue 107. On mouse clicks, radio buttons request focus before notifying listeners, so that listeners can request focus for a desired component. On keyboard actions, radio buttons request focus after notifying listeners, so that focus stays on the radio buttons regardless of focus requests performed by the listeners.
- JRootPane is now opaque and uses the same background color as a JPanel.
- Fixes issue 121: StackOverflowException when requesting LayoutStyle from QuaquaLookAndFeel.
- Fixes issue 115 with a different approach: Files that aren't matched by the file filter can be opened and saved with the approve button but not by double clicking in the file browser.
- Paints table headers of sorted columns with blue background color.
- Fixes focused state of scrollbars in popup menu.
- Fixes issue 120: "Drag and dropping issue with JFileChooser and iPhoto". The JFileChooser can now browse through folders contained in a non-traversable parent folder.
- Displays horizontal scrollbar on Leopard filechooser only if needed.
- Fixes issue 53: "JTable does render the background of editing cells properly". The background color of the cell editor is now explicitly set to the background of the table.
- Fixes issue 59: "Make non-editable text fields visually more different from editable ones". Displays a non-blinking caret when text field is non-editable.
- Sets the name of the popup window to "###focusableSwingPopup###".
- Fixes issue 107: "Clicking a JRadioButton does not forward focus".
- Adds support for client property "Quaqua.PopupMenu.windowAlpha".
- Installs now QuaquaKeyboardFocusManager when running on J2SE 5.
- Uninstalls now QuaquaPopupFactory and QuaquaKeyboardFocusManager when removed from the UIManager.
- Fixes slider values of the "Gray" chooser.
- Fixes inadverted color changes caused by "RGB" chooser.
- Fixes issue 114: "FileChooser allows creation of directories with a colon in the name".
- Fixes issue 115: "File Chooser allows files that don't match a filter to be opened with double clicking".
- The foreground color of non-acceptable files stays now gray when a file is selected.
- Changes the label of the approve button of the "Create Folder" dialog from "OK" to "Create Folder".
- Fixes the key bindings for "Select All" and "Clear Selection".
- Partially fixes issue 112: "JMenu.setBackground() has no effect". (JMenuBar.setBackground still has no effect).
- Components on a popup menu are now rendered in their active state.
- Fixes issue 107: "Clicking a JRadioButton does not forward focus".
(This fix did not work. An improved fix is in Quaqua 7.2.1).
- Fixes issue 117: "Two finger horizontal swipe treated as vertical swipe".
- Doesn't expand on double click anymore when JSplitPane is not one-touch-expandable.
- Fixes issue 53: "JTable does (not) render the background of editing cells properly".
- Fixes issue 118: "Paste into JTable not working properly".
- Fixes flashing when cells are being edited.
- Trees with "sourceList" style do not turn gray anymore when a sheet dialog is opened on the parent window.
- "CMYK" chooser doesn't pick up selected color.
- Issue 113: JFileChooser causes JVM crash if Universal Access is enabled.
- Removed debug output on System.out.
- Issue 100: Scrolling to the left should reveal two columns. Tooltip texts should be created using "convertValueToText".
- Issue 61: Lists with very long lines were wider than the screen.
- Issue 95: The default value for "fileHidingEnabled" should be read from the Finder preferences.
- The default value for the sort order (by name or folders first) should be read from the Finder preferences.
- Some hidden directories were not displayed even if "fileHidingEnable" was set to false.
- The "/opt" directory was always displayed even if "fileHidingEnable" was set to true.S
- Issue 111: Components were cut off.
- Issue 107: A radio buttons should request focus when a button in the same button group already has focus.
- Issue 73: Fixed NullPointerException in method getIconWidth.
- JSpinner rendered poorly when ButtonUI and TextFieldUI was excluded.
- Issue 52: Titles were not properly updated when they contained HTML text.
- Issue 48: Implemented mouse handler with drag and drop support.
- JTree supports now the "sidebar" style on Tiger.
- Package of SwingUtilities2 changed in J2SE6.
- BinaryPListParser could not read UId's.
- Removed SwingWorker class.
- Reverted changes on SwingWorker class, since it is not clear from the license whether we may do changes on this class.
- Button controls are focusable by default only if the option "All controls" is checked in "System Preferences > Keyboard > Keyboard Shortcuts". (In earlier versions, button controls where always focusable).
- JFileChooser: A custom file preview component can now be set using the client property "Quaqua.FileChooser.preview".
- Removed support for Java 1.4.
- The system font was not an UIResource.
- Class "Images": Replaced code which wasn't properly licensed.
- The column views did not update when a leaf node was converted into a composite node.
- The browser was not properly rendered with the Nimbus Look and Feel.
- JButton, JComboBox: Fixed NPE when getMinimumSize returns null.
- JRadioButton: Issue 106: The focus ring was painted if the radio button was disabled.
- Issue 108: Fixed a performance problem when millions of rows were selected.
- The font of the table cell editor was force replaced even if the font was not an UIResource.
- JToolBar: "bottom style" only renders in "textured" look, if the window is also textured.
- LayoutStyle: Fixed a NPE with components which return a null font.
- JPopupMenu, JComboBox:
- Popup menus use now a rounded border on Leopard and Snow-Leopard.
- The "quick look" preview caused crashes on Mac OS X 10.5. It is now only available on systems running 10.6 and higher.
- Issue 101: Fixed NullPointerException in mouseDragged handler of QuaquaListUI.
- JFileChooser: The "quick look" preview is now expandable. By default it is collapsed. The expanded state is stored in user preferences.
- Issue 25: Ability to set minimum button width.
- JRadioButtonMenuItem, JCheckBoxMenuItem:
- Issue 97: JRadioButtonMenuItem renders icon in text.
- OSXFile: Increased version number of native library from 4 to 5.
- JFileChooser: The preview column shows a preview of the file content instead of a larger version of the file icon.
- Class "Preferences" catches now a security exception which can occur when it attempts to read the user.home system property.
- JFileChooser: Files with numbers in the filename were not sorted with OSX Collation rules.
- Issue 90: "Clicking below a tree should not select the last line".
- The tree doesn't start editing anymore, when the mouse has been moved after it has been pressed.
- Quaqua did not run on J2SE 5 and J2SE 1.4 due to J2SE 6 classes being the extdirs path during compilation.
- A NullPointerException was thrown in GraphicsUtil, when attempting to retrieve the application icon.
- JPanel had the wrong background color on textured windows when running Quaqua on Mac OS X 10.5.
- Issue 92: "Tooltips broken on Java 1.4 (OS X 10.5.8)"
- Improved performance of conversion from TIFF images into Java Buffered Images.
- OSXApplication could crashed in native code, when it was invoked before the AWT Event Queue was started, or when the application icon was retrieved concurrently.
- ImageBevelBorder can render faster, if a color is provided for filling the center area.
- Improved appearance of popup menus on Snow Leopard.
- JTable: Issue 48: If the system property "Quaqua.Table.useJ2SE5MouseHandler" was set to true, rows in disabled tables could be selected.
- OSXClipboardTransferable returns now an InputStream by default - instead of a byte array.
- JToolBar with "bottom" style can now also be used on windows which are not textured.
- JToolBar with "bottom" style did not repaint when the "active" state of the window changed.
- JOptionPane on Snow Leopard opened very slowly the first time, because retrieving and scaling the application icon from OS X was done synchronously. JOptionPane opens now immediately – the icon is rendered after a short delay.
- JComboBox hit a NullPointerException, when it was the only UI-delegate, that was included using method QuaquaManager.setIncludedUIs().
- JToolBar supports now the client property "Quaqua.ToolBar.style" with the styles "plain", "title", "bottom" and "gradient".
- Rebuilt Quaqua against J2SE 5 and J2SE 4 classes of Mac OS X 10.5, so that it works on Mac OS X 10.4 through 10.5.
- quaqua-filechooser-only.jar did not work on Snow Leopard and did not autovalidate.
- JList: The mouse handler does not fallback to the implementation of the BasicLookAndFeel anymore, when Quaqua runs on J2SE 6.
- JTree: Fixed some colors used for the "sideBar" style.
- QuaquaManager couldn't read the file laf.txt if it contains '_' characters.
- Added a look and feel for Snow Leopard.
- Upgraded the FileChooserUI for Snow Leopard.
- Text components hide the cursor when a key is pressed. The cursor reappears when the mouse is moved.
- JComboBox: Popup menu did not have the correct selection color background. The popup menu did only work with the Leopard design.
- JPopupMenu, JComboBox, JOptionPane, JSheet: The Command-Period key can now be used to cancel popup menus and dialogs.
- JFileChooser: Fixed a null pointer exception in the sidebar of the file chooser for Mac OS X 10.5 Leopard.
- JComboBox: Fixed keyboard support for the drop down menu.
- JTree: The root handles are now always visible, so that these nodes can be opened.
- JPopupMenu: Added support for client property Quaqua.PopupMenu.alpha
- JFileChooser: Leopard file chooser shows now the proper icons in the sidebar for the following well known folders: Applications, Desktop, Documents, Downloads, Library, Movies, Music, Picutres, Public, and Sites.
- Classes which provide access to usefull Mac OS X native API functions are now in a package named ch.randelshofer.quaqua.osx.
- JFileChooser: The approve button was not made the default button when the file chooser was added to a root pane ancestor. The selected file was not always visible the first time the file chooser was opened.
- JSheet: Transparency works now for J2SE 5 and 6 on Leopard.
- JTree: Don't render icons in first row of a sideBar-tree or sourceList-tree if tree is disabled.
- JList, issue #65: Selection of disabled JList must not be changeable by the user.
- JTextField, JPasswordField, JFormattedTextField: Background color was never painted, if the field had no border.
- JBrowser: Double clicking the resize icon sets the column to its preferred width. Revalidate is now called, after a column has been resized to avoid problems with the parent JScrollPane.
- Quaqua-FileChooserOnly-L&F: On Mac OS X 10.5, the Leopard File Chooser is now used.
- JBrowser: Horizontal scrollable block increment to the right moves the the view to the left by one column. In prior versions, the view was moved by multiple columns to the left, and sometimes it was not moved at all.
- JTree: Use Quaqua's own handler for mouse events, even when running with J2SE6.
- JTree: Can be set to a Sourcelist-style using the client property "sourceList".
- Added support for Apple's J2SE6 virtual machine.
- JFileChooser: Always resolve aliases. (Prior versions only resolved aliases when used as an "Open" file dialog.
- JTable: Select all had to be performed by pressing Ctrl+A instead of by Meta+A.
- Native libraries. Fallback to non-native code, if native functions can be loaded
but not used for unknown reasons.
- OSXLeopardFileSystemView. Added $RECYCLE.BIN to list of hidden files.
- JEditorPane - issue #70: Up and down arrow keys didn't work.
- JTable - issue #72: Rendering of huge tables was slow, when the table used the "striped" style.
- General: Quaqua can be selectively applied to Apple's Aqua Look and Feel.
- JBrowser: Added support for resizable columns contributed by 'fedr'.
- ComboBoxUI: Implemented Leopard-design gradient for selection background color.
- FileChooserUI does now fall back to javax.swing.FileSystemView rather than falling back to package private FileView objects of Apple's Aqua L&F. Added missing translations for 'devices' and 'places' in sidebar. Fixed issue #48 (race condition in the file chooser tree model).
- Files: Added more native methods to Files class.
- MenuUI: Draw menu selection with blue gradient for Leopard design.
- ToolBarUI: Paint toolbar on drag window.
- TreeUI: Selection border did not honor insets of the JTree.
- Added libquaqua64.jnilib for use with 64-bit J2SE6 on Mac OS X 10.5.
- TableUI: Set selection foreground color to inactive (=black) when the current cell is not selected to avoid white text on white background. Fixed row and column selection using Meta-key for Java 1.4.
- LeopardCrossPlattformLookAndFeel: Fixed list selection colors (they are now dark blue instead of bright blue).
- TableUI: Fixed row and column selection using Meta-Key in Java 1.4 and J2SE5. Not fixed for J2SE6! For J2SE6 a system property "Quaqua.Table.useJ2SE5MouseHandler" can be set to "true", to use the fix for J2SE5 on J2SE6. This breaks drag and drop functionality and sorting functionality on J2SE6 though.
- LeopardFileChooserUI - Issue #48: Fixed a race condition in AliasFileSystemTreeModel, and fixed a problem in SidebarTreeModel which caused the sidebar to fail, when the /Volumes folder contained items which weren't directories.
- LeopardFileChooserUI - Issue #47: AliasFileSystemTreeModel fired events for nodes which were not in the tree anymore.
- TableUI: Draw focused selection color, if table is editing a cell.
- Added build target for 64 bit version of Quaqua native library: libquaqua64.jnilib. - This file is not part of the distribution yet, because it needs to be built with a 64-bit Intel Mac.
- Quaqua loads libquaqua64.jnilib when running on 64 bit VM.
- FileChooserUI: Squashed NullPointerExceptions which occured when closing the file chooser, when approving the file chooser, and when changing the directory.
- TigerCrossPlatformUI: Use system colors for table, list and tree selection colors when running on SoyLatte. Draw Menu background with pin stripes.
- LeopardCrossPlatformUI: Use system colors for table, list and tree selection colors when running on SoyLatte. Draw menu background with white color. Draw Menu selection background with a blue gradient.
- TableUI: Issue #39 Multiple table cell selection did not work.
- ColorChooserUI: Uses now the generic ICC profile for CMYK color sliders instead of a linear profile.
- FileChooserUI: NullPointerException occured when the sidebar contained an unresolvable alias. Removed debugging output from QuaquaPantherFileChooserUI and QuaquaLeopardFileChooserUI.
- CachedPainter14 does not cache large areas anymore.
- FileChooserUI: SidebarTreeModel fired wrong event to TreeListener. SidebarTreeModel and SidebarTableModel invoked too many workers for reading file icons. The approve button was not always enabled, when the JFileChooser was in directory selection mode. LeopardFileChooserUI.SidebarListCellRenderer.getPreferredSize threw a NullPointerException, when the font of the list cell renderer was null.
- GroupBox does not use cached painting for its border anymore.
- JBrowser: Fixed a NullPointerException in method getSelectionPath. BrowserCellRendererWrapper now forwards setFont calls to wrapped cell renderer.
- ListUI: Calls requestFocusInWindow on mouse pressed.
- RootPaneUI: Fixed memory leak, causing root panes never to be reclaimed.
- ScrollBarUI: Fixed NullPointerException in method getTrackAndButtonBorders.
- TabbedPaneUI: Fixed NullPointerException in method getInsets.
- TableUI: It was not possible to edit cells consecutively without explicitly setting focus on another component. Calls requestFocusInWindow on mouse pressed.
- TreeUI: Calls requestFocusInWindow on mouse pressed.
- PantherFileChooserUI: Ignore clicks in the sidebar on files which are not traversable.
- LeopardFileChooserUI: Ignore clicks in the sidebar on files which are not traversable. Rewrote sidebar view updates from the AliasFileSystemTreeModel.
- TreeUI: Fixed repaint on selection changes. Fixed an updating issue with the leadSelectionPath property in JTree.
- JNI native library: The library is now versioned, so that version mismatches between Quaqua.jar and the library can be detected. The library is now loaded lazily.
- JBrowser: Added support for default TransferHandler. Added BrowserCellRenderer interface. Renamed the existing cell renderer classes and methods.
- ButtonUI: Reduced margins of rounded push buttons by 2 pixels on each side.
- FileChooserUI: Increased vertical spacing between files in Filechooser-only-L&F.
- JBrowser: Fixed anArrayIndexOutOfBoundsException.
- ListUI: Reimplemented selection behavior to make it more consistent with native behavior.
- TableUI: Reimplemented selection behavior to make it more consistent with native behavior.Pressing the Meta-Key does not start editing a cell anymore.
- TreeUI: Reimplemented selection behavior to make it more consistent with native behavior.
- FileChooserUI: Fixed issue #21: BitSet IndexOutOfBoundsException.
- TabbedPaneUI, SliderUI: Fixed issue #33: Incomplete support for graphite appearance.
- OptionPaneUI: Improved scaling quality of application icon under Java 1.5.
- JSheet: When running on Java 1.5 or older, explicitly blocks input on owner window using a glass pane. The focus is now set on the first component on the JSheet, to better support keyboard navigation.
- FileChooserUI: File chooser draws now a focus ring around selected grayed files.
- RootPaneUI: The maximize button was hidden instead of disabled, if a frame is not resizable.
- ScrollPaneUI: Don't cache border texture.
- FileChooserUI: Fixed Issue #26 - set current directory does not work.
- FileChooserUI: Attempted to fix issue #26 - set current directory does not work.
- TableUI: Fixed issue #29 - selection was drawn one pixel too high, and had repaint artifacts.
- TreeUI: Fixed issue #32 - selection was drawn blue instead of grey, if tree is disabled.
- Fixed broken client property "Quaqua.Component.cellRendererFor".
- TreeUI: Fixed keyboard navigation in tree.
- SliderUI with Tiger look added (work in progress).
- Subset look and feels are now included in quaqua.jar.
- PantherLookAndFeel: The proper pinstripes were only drawn, when the
current OS was Panther.
- ButtonUI, ComboBoxUI: Only draw focus border for enabled components.
- FileChooserUI: Current directory did not always change when setDirectory
was invoked on a JFileChooser. Native code crashed when a volume was removed.
Sidebar did not update when a volume was inserted or removed.
- TabbedPaneUI: Reduced top insets of tabs.
- TableUI: Set 'showHorizontalLines' and 'showVerticalLines' to
false once when installing the UI, instead of overwriting these properties every
time when the client property "Quaqua.Table.style" is changed. The UIManager-property
'Table.gridColor' is now light gray instead of white.
- LookAndFeel: Quaqua now overrides the UIManager property "ClassLoader".
- TextFieldBorder: Did draw focus ring even when text component was disabled.
- PasswordFieldUI: Only replace echo character with a bullet character, if the echo character is a '*'.
- FileChooserUI with Leopard design added. (The quaqua-filechooser-only.jar still only contains a file chooser in Tiger design).
- Support for Open Source Java 1.6 Developer Preview Release 2 (SoyLatte binaries) added.
- Updated selection handling code of TreeUI to better support J2SE 5 drag and drop features.
- FileChooserUI for Panther rendered the preview icon with a width of 64 pixels instead of 128 pixels.
- Support for Mac OS X 10.5 Leopard added. Most of the Quaqua components are rendered with Tiger design though.
- Quaqua can now be built on Mac OS X 10.5.
- Dropped support for Java 1.3.
- TigerLookAndFeel and JaguarLookAndFeel now properly render with their background colors, when used on Leopard.
- QuaquaFileChooserUI: Now only renders folders in the volumes area of the sidebar. Huge Leopard icons in the preview column are now scaled down, if the native code only delivers large versions of the icons.
- ComponentUI's did never render with inactive state.
- QuaquaTabbedPaneUI with wrap tab layout now properly renders the click-through state on inactive windows.
- QuaquaScrollPaneBorder does not throw anymore a class cast exception, when the viewport view of the JScrollPane is not a JComponent.
- QuaquaFileChooserUI: Added support for keyboard shortcuts.
- QuaquaFileChooserUI: The filechooser did not properly navigate into another directory, if a file was dropped onto it.
- QuaquaFileChooserUI: Fixed NullPointerExceptions when attempting to
immediately resolve aliases.
- quaqua-filechooser-only.jar: Included missing resource files.
- QuaquaTextFieldUI, QuaquaPasswordFieldUI, QuaquaFormattedTextFieldUI:
Added new UIManager properties "TextField.autoSelect", "FormattedTextField.autoSelect", "PasswordField.autoSelect".
- Fixed broken keyboard focus traversal.
- QuaquaTextFieldUI, QuaquaPasswordFieldUI, QuaquaFormattedTextFieldUI:
Added a new client property "Quaqua.TextComponent.autoSelect"
- UIManager: Added a new property "TextComponent.autoSelect"
- QuaquaHighlighter: Must use inactive selection background, when
the text component has a selection, but is not on an active window.
- QuaquaUtilities: Method isFocused() did not properly
determine the focused state of a JComponent, when the user
clicked on another JFrame or another JDialog.
- QuaquaListUI, QuaquaTableUI, QuaquaTreeUI: Don't change the selection of an already
selected item, when the mouse click is a popup trigger.
- QuaquaTreeUI: Support multiple selection by mouse dragging.
By default, the invokesStopCellEditing property of a JTree is set to true.
- BasicQuaquaLookAndFeel: Look and feel decorated title bar did not render properly.
- RootPaneUI: Only snap to the edge of another window, if the window
is within close distance. Don't snap, if the use holds the alt key down, while dragging a window.
- QuaquaTextFieldUI, QuaquaPasswordFieldUI, QuaquaFormattedTextFieldUI:
Transferring the focus to one of these components using the Tabulator key
automatically selects all text on the component.
- QuaquaComboBoxUI: Removed debugging output. UIManager property
"ComboBox.harmonizePreferredHeight" had no effect.
- JBrowser: Added support for KeyListener to API. This allows to listen for key
events which occur on the currently focused column.
- ComboBoxUI: Added UIManager property "ComboBox.harmonizePreferredHeight". Setting this to true causes editable and non-editable combo boxes to have the
same preferred height, resulting in better layouts with some layout managers.
- TextFieldUI: Added client property "Quaqua.TextField.style" with the values "plain"
and "search". Set this property to "search" to get a text field with
rounded corners like
- RootPaneUI: Added UIManager property "RootPane.windowSnapDistance". Setting this
to an Integer value greater than 0 causes windows to snap to the edges
of each other and to the screen bounds. This property is only in effect
for look and feel decorated windows.
- LayoutStyle: Added support for Java 1.6 javax.swing.LayoutStyle API.
- FileChooserUI: File chooser ran into an inconsistent state, when
the JFileChooser was constructed with a different directory than the users
- MenuUI: Listeners were not properly installed, due to this, accelerators did
not work always.
- OptionPaneUI: The application icon was not scaled properly, when
Quaqua ran without native code.
- RootPaneUI: Resize icon wasn't drawn for look and feel decorated
JDialog windows; Look and feel decorated windows couldn't always be dragged from
a secondary screen to the main screen.
- TextFieldUI, FormattedTextFieldUI, PasswordFieldUI: Added two pixels to
- All text component UI's:Fixed input map for backspace key (replaced "typed \010" by "BACK_SPACE").
- quaqua-filechooser-only.jar, quaqua-menu-only.jar,
quaqua-colorchooser-only.jar: Added missing QuaquaLookAndFeel class.
- QuaquaFileChooserUI: Aliases in the sidebar were resolved with user interaction before the user
clicked on them, causing remote volumes to be mounted too early.
- QuaquaColorChooserUI: The color picker threw an exception when it was moved to a secondary screen. The color picker now degrades its functionality when it is moved on a secondary screen.
- QuaquaOptionPaneUI: The OK button sometimes had no text.
- Experimental Swedish resource file added. The resource file is mostly
in English, only some texts for the JFileChooser and the JOption pane have
- QuaquaFileChooserUI: Aliases were resolved with user interaction before the user
clicked on them, causing remote volumes to be mounted too early. Aliases
to folders didn't behave like regular folders.
- QuaquaFileChooserUI PreviewPane: File icons render now properly, when
Quartz is turned off. The file kind is now retrieved from the Finder.
- QuaquaIconFactory: The application icon is now rendered properly, when
Quartz is turned off.
- Quaqua14RootPaneUI: Repaints 200 milliseconds after a resize to
workaround 'double striking' of components. If someone nows how to actually
fix this problem - let me know!
- QuaquaLayoutStyle returns now clones of Insets object.
- QuaquaTextFieldBorder takes margin of JTextComponent into account.
- To resolve issues with selection colors: Added client
This can be set on a component that is used as a cell renderer. The value
is the component that holds the cells, for example a JTable, a JTree
or a JList.
- FileChooserUI: Double clicking the file preview approves
now the current selection.
- Removed unnecessary console output.
- ColorChooserUI: The text in the text fields is now selected, when
the text fields gain focus.
- ButtonUI: The UIManager property
now supported on all J2SE versions (not just in J2SE 5 and later
versions). The default value for this property is
- ColorChooserUI: Due to rounding errors, some colors, such as RGB
0,170,0 were changed to other values when the color chooser was opened;
The text fields were too short for J2SE 1.3; The text fields in the
HTMLChooser were updated with integer values instead of with Hex
- OptionPaneUI: Sometimes, when creating the icons for a JOptionPane
the following was output on the console, and the application froze:
"Please Attach Debugger: No Autorelease pool exists.
Press any key to continue…".
- OptionPaneUI: The UIManager property "OptionPane.messageLabelWidth" can
be set to 0, to prevent Quaqua from enforcing the width of HTML messages
displayed in option panes. The UIManager property "OptionPane.maxCharacterPerLineCount"
has now been added, it can be used to use a smaller value than returned
- ComboBoxUI: Combo box editor had the wrong background color.
- PopupMenuUI: Mouse released events were just closing the popup
menu without performing menu actions.
- ColorChooserUI: The color chooser did not work in security restricted
Java web-start applications.
- FileChooserUI: Improved performance of file sorting.
- PopupMenuUI: When Quaqua
is run in a security restricted environment, it turns off the fix
for the mouse release behavior.
- ListUI: Only repaints changed cells on contentsChanged event.
- PopupMenuUI: Menu items on a heavyweight popup invoke their actions
now on mouse release
- TabbedPaneUI: Fixed keyboard navigation when
vertical tab runs are shown on the left or on the right. Panther
style tabbed panes were not always rendered with antialasing.
Did only repaint the lead selection cell instead of all selected
cells when focus changed.
- Text components: Added client property
Quaqua.TextComponent.showPopup that allows to disable the popup menu created by the Quaqua look
- When run with Java 5 or higher, opaqueness is changed
using LookAndFeel.installProperty instead of setting it directly.
- Fixed RequestFocusEnabled for some components.
- JSheet sometimes couldn't get focus.
- Support for Graphite appearance contributed by Karl von Randow.
- ComboBoxUI: maximumRowCount was set too high for editable combo
boxes. Baseline was not computed correctly when current value was
null. Clip bounds were not computed correctly for cell renderer.
Issue #13: ComboBox text was not always legible when used as a table
- EditorPaneUI, FormattedTextFieldUI, PasswordFieldUI, TextAreaUI,
TextFieldUI, TextPaneUI: Popup menu with cut/copy and paste action
- FileChooserUI: Renders now a file icon in the preview column.
Made some tweaks for better fidelity with Tiger design.
Improved fidelity of menus, especially when screen menu bar is
- ScrollPaneUI: Threw exception when scroll pane was set wider or
higher than the maximum size allowed.
- TreeUI: Selection was not fully repainted on focusGained/focusLost.
- Added UIManager-property "Component.enforceVisualMargin" to
workaround issue #74522 with
the Matisse GUI builder.
- JSheet: Uses native sheet dialogs when running with J2SE6. Bounces
dock icon when sheet is opened (implemented using JNI).
- TabbedPaneUI: Added support for HTML tabs. Fixed keyboard navigation.
Fixed class-cast exception when running the Idea IDE with the Quaqua
Look and Feel.
- The RequestFocusEnabled and the Focusable properties are set to
false for all components except text fields. Added the system property
"Quaqua.requestFocusEnabled" to alter this behavior.
- Migrating from NetBeans 3.6 to 5.0 (work in progress).
- Refined fix for issue #7: Selection line stays blue even if control
- ListUI: Uses now a non-opaque default cell renderer.
- MenuUI: Arrow icon doesn't overlap with menu text anymore.
- TableUI: Uses now a non-opaque default cell renderer.
- TreeUI: Uses now a non-opaque default cell renderer.
- ViewportUI: Repaints the border of its parent JScrollPane if the
focus of its view changes.
- All components render now also with focused appearance when they
are permanent focus owner.
- JBrowser: Lead selection index was not
updated when tree items were inserted/removed.
- FileChooserUI (Panther):
Focus was not set correctly when dialog is opened.
Fixed preferred and minimum size.
- QuaquaUtilites: Added workaround
for NPE in methods beginGraphics/endGraphics.
- TabbedPaneUI: Fixed
a class cast exception.
- ComboBoxUI: Parts of the popup button were
cut of when the visual margin was set to zero.
Included ConcurrentDispatcher class into jar file. Jar file didn't
work with J2SE 1.5.
- quaqua-colorchooser-only.jar: Jar file didn't
work with J2SE1.5.
- TitledBorder did not render the border line when
applied to a javax.swing.Box component.
- Issue #1: QuaquaIconFactory.LazyOptionPaneIcon
breaks the contract of Icon interface.
- Issue #2: Display tree stripes
even if tree empty.
- Issue #4: JSheet lags behind when parent window
is moved (fix needs J2SE6, older Java versions can't be fixed).
#7: Selection line stays blue even if control looses focus.
#11: JTable cells draw selection background when rowSelectionAllowed
#12: JComboBox as TableCellEditor offset error.
- FileChooserUI: Aliases to directories were not always resolved.
View was not always updated when a file or a folder was created.
- ColorChooserUI: Fixed NullPointerException when running on Java
- TabbedPaneUI with scroll tab layout policy: Client property "Quaqua:TabbedPane.shortenTabs"
added. This allows to disable tab shortening.
- TabbedPaneUI with scroll tab layout policy: Combo box inherits
now font size from tabbed pane. Selecting the first item of the combo
box did not always work.
- JSheet: Inherit title of parent frame
when displaying JSheet like a regular dialog.
- TableUI: Display black border around active cell.
- RootPaneUI: The title bar of Floating palette windows can't be
fully dragged outside of the usable screen bounds anymore.
- TabbedPaneUI: Fixed NullPointerException when using scroll tab
layout with Panther design.
- AliasFileSystemTreeModel: Changed thread sceduling and
sequence of directory and file info validation.
- TableHeaderUI: Takes now border size into account when deciding
whether table headers are empty or not.
- TableUI: Fixed colors for focused cell.
- CheckBoxUI: Renders with small icon when the JCheckBox implements
TableCellRenderer or TableCellEditor.
- FileChooserUI: Approve button was not properly enabled/disabled
when text in the file name field was entered or removed.
- ComboBoxUI did not fire an action event when user pressed the enter
key in the text field.
- FileChooserUI: setSelectedFile() did not always set the selected
file in the JFileChooser; A new folder was sometimes created a level
higher than the current directory; Entering a file name which starts
with the same name as an existing folder immediately selected the
folder while typing.
- FileChooserUI: Couldn't save to a new file.
- ColorChooserUI: Color picker threw a null pointer exception when
- JNI Library: Libraries which preload the Quaqua JNI library by
themselves can set system property "Quaqua.JNI.isPreloaded" to true,
to prevent Quaqua from loading the library again.
- FileChooserUI: Double clicking a folder does not anymore approve
the file chooser when directory selection is enabled. Multiple file
selection returns now all selected files. Using a JFileChooser both
for loading and saving files made method setSelectedFile not working
- JNI Library: Universal binary did not work on Intel computers.
- ColorChooserUI: Color picker can be canceled using the escape key.
Color picker is not displayed, when pixels from the screen can not
be read due to security restrictions.
- JSheet does not show a white background anymore when it can't set
its parent JDialog to translucency due to security restrictions.
- FileChooserUI: Displays a warning dialog when the user attempts
to save to a file that already exists. Does not support Unix
wildcards in the filename text field anymore. Improves performance
on slow network volumes, such as WebDAV folders.
- ColorChooserUI: Has now a color picker tool. This requires Java
- ButtonUI: Has now two new styles: "placard" and "tableHeader".
- TabbedPaneUI: Replaces Apple's TabbedPaneUI for Panther. The new
Panther TabbedPaneUI squeezes tabs and eventually collapses them
into a combo box if not enough space is available. The TabbedPaneUI
can now be customized by more client properties.
- TableUI supports now the client property "Table.isFileList".
- OptionPaneUI: Displays the application icon in the option pane.
This requires Java for Cocoa.
- JNI library is now a Universal binary supporting PowerPC and
- RootPaneUI: Can draw frame decorations in three sizes: standard,
small and mini. This is intended for use by floating palettes as
well as for use by the ToolBarUI. The title pane of a frame can be
placed at the top or at the left of the content pane.
- ToolBarUI: Uses now a mini sized title pane.
- JSheet showed with white background when running with
Java 1.4.2_05 on Mac OS X 10.3.5. To avoid this, JSheet is shown without
a translucent background.
- QuaquaManager: Prints now a warning message, when resource files
can not be accessed.
- JFileChooser did not work on Windows XPJ (Japanese).
- QuaquaLookAndFeel: Reduced start up latency.
- FileChooserUI: reads file icons and file labels asynchronously
to improve perceived performance. Uses now the user defined sorting
imagery for folders and files.
- SplitPaneUI added.
- ScrollBarUI: Client property "Quaqua.ScrollBar.placeButtonsTogether"
- MenuBarUI supports now Tiger design.
- JSheet shows and hides with a transition effect.
- The resource bundle for labels is now retrieved from an UIManager
property to facilitate reuse of the Quaqua L&F in other L&F's.
- QuaquaManagerMethod getLookAndFellClassName does not use UIManager.getDefaultLookAndFeel
anymore to decide which Quaqua look and feel implementation to use.
- System property "Quaqua.Debug.crossPlatform" removed.
- TableHeaderUI defaults now to "leading" aligned labels, instead
of "center" aligned labels.
- LabelUI supports now BackgroundBorder drawing.
- Reorganized some packages.
- FileChooserUI: Does not change text of the filename field
while it has focus. Hides more files.
- ViewportUI: Now properly delegates background drawing to ViewportPainter's.
- ColorChooserUI: Does not write to System.out anymore, if user enters
non-numeric text into color value fields.
- QuaquaUtilities.repaintBorder does not throw an NPE anymore in
method repaintBorder, if the component has no parent.
- BrowserUI: Tweaked disclosure icons
- ScrollBarUI: Tweaked vertical topmost position of thumb. Small
separated scroll bar buttons were not drawn with the correct state.
- QuaquaBorderFactory: Due to a bug, the factory never created CachedImageBevelBorder's.
- Text component borders and scroll pane borders now properly draw
in a lighter color, if the component is disabled.
Version 3.4 - 3.4.1
2005-10-02 - 2005-10-03
- JSheet added.
- TitledBorder: Draws now in a NSBox like style.
- ScrollBarUI added. Places scroll arrows according to system
preferences. Changes "Click in the scroll bar" behaviour
according to system preferences. Supports regular and small size
- ButtonUI provides a new "help" button style.
- Startup latency has been improved by making more use of UIDefaults.LazyValue.
- Drawing speed has been improved by introducing a CachedImageBevelBorder.
- ColorChooserUI: Color Palettes panel added.
This UI depends now on more UIManager properties. This allows to
of the Quaqua Look and Feel.
- FileChooserUI shows a tooltip for a filename, if the filename
does not fit into a column.
- TreeUI: Behaviour and appearance of tree selection changed. This
change was inspired by the article "Giving
JTree Fitts" by Adam Walker.
- ButtonUI: Borders draw now in pressed state only, if the button
is pressed and armed.
- ScrollPaneUI: Does not fill its background anymore when it
is set to non-opaque.
- Fixed quaqua-filechooser-only.jar
- ButtonUI:"Quaqua.Button.style" = "help" does
draw now properly when in pressed but not in armed state. "Quaqua.Button.style" = "push" does
not draw the blue flashing default animation, if it is in pressed
but not armed state.
- TitledBorder: Increased insets.
- Three example subsets of the Quaqua Look and Feel are now provided
as bundled jar files: quaqua-filechooser-only.jar, quaqua-colorchooser-only.jar,
Version 3.3 - 3.3.1
2005-08-28 - 2005-09-08
- ColorChooserUI: Added a Color Wheel panel and a Crayons panel.
- ScrollPaneUI: Ensures that the ScrollBars don't overlap with
the grow-box of the window.
- JBrowser: Renders now empty columns to the right, when there is
room left in the JViewport.
- QuaquaMetalLookAndFeel: Improved color fidelity.
Build / Sourcecode
- Included source of swing-layout project, in order to ensure that
Quaqua can be built from source.
- Removed dated layout examples.
- JPanels inside of JScrollPanes had a white background
instead of gray.
- QuaquaColorCooserUI: The color tracks of the HTML sliders panel
were not always updated when the user switched the option "only web-safe
on and off.
- JFileChoosers don't crash anymore whe running Quaqua in debug modus
- QuaquaSliderUI: Moved slider buttons closer to text field.
Version 3.2 - 3.2.1
2005-07-13 - 2005-07-14
- Added support for JTree's with alternating row colors (stripes).
- Fixed NullPointerException which occured when multiple files are
selected in a Panther JFileChooser.
- Fixed broken quaqua-filechooser.jar.
Version 3.1 - 3.1.2
2005-07-05 - 2005-07-10
- Calling putClientProperty("windowModified", Boolean.TRUE)
on a RootPaneUI which is not displayable does not throw a NullPointerException
- Setting a default button on JRootPaneUI now properly assigns
the key bindings for the Return key to the button.
- Added missing ENTER key input map entry for text fields.
- Removed unnecessary output on System.out.
- Added QuaquaSpinnerUI to QuaquaMetalLookAndFeel
Versions 3.0alpha - 3.0
2005-04-10 - 2005-06-07
- ColorChooserUI added.
- EditorPaneUI, FormattedTextFieldUI, PasswordFieldUI, TextAreaUI,
TextFieldUI, TextPaneUI added or enhanced.
- LabelUI added.
- ButtonUI, CheckBoxUI, RadioButtonUI, ToggleButtonUI added.
- ToolBarSeparatorUI, ToolBarUI added.
- PanelUI, RootPaneUI added.
- ComboBoxUI enhanced.
- Support for Quaqua.Component.borderMargin property added.
style for buttons added.
- Localized ColorChooserUI for German, French and Italian.
- Behaviour for ColorSliderUI implemented, that now better matches
the one of the native color sliders.
- Added debug feature to run Quaqua on top of the Metal L&F instead
on top of Apple's Mac OS X L&F's.
- Added debug feature to display visual bounds and clip bounds of
Quaqua UI delegates.
- Added experimental API to access visual layout info from Quaqua
UI delegates. Also added experimental VisualGridBagLayoutManager
to test the API.
- Added a look and feel for Tiger. It doesn't do yet anything different
than the one for Panther though.
- Added UIManager properties "Button.opaque", "Panel.opaque", "TextField.opaque",
..., to control the opaqueness of components.
- Added System properties "Quaqua.opaque", "Quaqua.sizeStyle", "Quaqua.selectionStyle", "Quaqua.visualMargin", "Quaqua.tabLayoutPolicy".
- Added support for binary PList files. This is needed to read the
user preferences for the sidebar in the FileChooserUI when running
OS X 10.4.
- Changed colors and fonts in the preview column of the FileChooserUI
to better match native file dialogs of Mac OS X 10.4.
- Added support for file type 'Widget' to the preview column of the
- Renamed Client-Property "Quaqua.Component.borderMargin" to "Quaqua.Component.visualMargin".
- Renamed UIManager-Property "Component.borderMargin" to "Component.visualMargin".
- Moved utility classes into separate
- Moved icon of radio buttons up by one pixel.
- Updated NanoXML to Java 2 Collections framework.
- FileChooserUI supports now file names with relative path components.
- Blinking default button is now drawn regardless of the window type
instead of just only on JDialog windows.
- ColorSliderUI had misaligned color bar.
- ToolBarUI had bad insets.
- Panther FileChooserUI: Fixed drawing of color labels. Did some
minor layout tweaks.
- Implemented workarounds for texture paint bugs in Java 1.4, 1.5
JVM on Mac OS X 10.4 Tiger.
- Implemented workarounds to improve performance of texture painting
in Apple's Java 1.3 JVM.
- JButton's does not draw a border anymore, when its "borderPainted" property
is set to false.
- The "Quaqua13PantherLookAndFeel" (instead of the "Quaqua13TigerLookAndFeel")
is now used when running Java 1.3 on Mac OS X 10.3.
- QuaquaToolBarBorderUI does not throw a class cast exception anymore
if it is used on another component.
- JTree does not draw white lines anymore.
- Calls to System.getProperty() catch now security exceptions, in
order to make Quaqua work with Java Web Start applications.
- On rollover, selected Buttons display now the selected icon, if
the rolloverSelected icon has not been supplied. In prior versions
the default icon was displayed.
- The windowModified client property works now on JRootPane's.
- Renamed variables which had the name "enum" to avoid
conflicts with the Java 1.5 programming language specification.
- Fixed choice pattern exception in Italian locale of FileChooserUI.
- Entering a color in the HTML field in the ColorChooserUI did not
update the sliders.
- Controls were not updating their state on window deactivation/activation
when running with Java 1.5.
- Quaqua is not using ProxyLazyValue for QuaquaMenuBorder anymore
when running with Java 1.3.
- Fixed ComboBoxUI popup insets when used as a non-editable TableCellRenderer
with Java 1.3.
- Fixed FileChooserUI insets for labels in preview panel when running
with Java 1.3.
- Fixed broken FileChooser-only versions of Quaqua.
- Quaqua is now setting dummy-insets in the UIManager for insets
that change their size dynamically. Prior 3.0 beta versions set these
insets to null which caused some JVM's to crash.
- Vertically aligned labels and values in the preview column of the
- Borders return now always a clone of their insets.
- ComboBoxButtonUI does not draw with bad insets, if the look and
feel is changed after the JComboBox has been created.
Version 2.8 - 2.8.3
2005-01-30 - 2005-03-21
- Panther design: JFileChooser's renders color labels. This feature
requires the presence of libquaqua.jnilib in the library path.
- Panther design: JFileChooser's show a preview column for files,
when used as an open dialog. This feature is localized for English,
German, French and Italian only. The preview column is not shown
for other languages.
- All designs: The sorting order of Files in JFileChooser's matches
now much better the sorting oder of native file dialogs.
- All designs: File names in JFileChooser's are abbreviated in the
middle (instead of at the end).
- Added missing binding for TAB key
in multiline text fields.
- Added missing files to quaqua-filechooser.jar.
- Panther file chooser did not work with Java 1.3 due to missing
Locale, when JFileChooser has no parent.
- Panther file chooser did not properly display file preview with
- Setting illegal file paths with non-existent path elements could
cause IllegalStateException when opening a JFileChooser.
- Apple's MRJ for Java 1.4.1 throws a class cast exception when Quaqua
tries to draw an image bevel border using a compatible buffered image.
To work around this, Quaqua uses now a standard ARGB image when running
on this JVM.
- All Quaqua UI's that are in use for Java 1.4 are now used for Java
1.3 as well. This results in many improvements when running Java
- Panther design: Selected items in list, tables and trees are now
shown with white text on a darker version of the selection color.
This matches much better the Panther design than before.
- Quaqua uses now its own MenuUI and MenuBarUI, if the screen menu
bar is switched off.
- Panther design: Quaqua uses now a round check icon on RadioButtonMenuItems
instead of a diamond check icon.
- Java 1.3 version: user interface elements on inactive windows are
now rendered with inactive appearance.
- Quaqua closes now the file ~/Library/Preferences/com.apple.sidebarlists.plist
after it has read it.
- Mouse popup triggers (Ctrl+Click) does not change the selection
of a JTable, JList or JTree.
- Quaqua uses now the color gray consistently for focus borders in
JTable's, JList's and JTree's.
- Setting the client property "Quaqua.List.style" to "striped" on
a JList renders the list with altnernating row colors. This feature
is only available when the JList has a vertical layout orientation.
- Improved keyboard behaviour of JTextField, JTextArea and JComboBox.
Cursor up moves to the beginning of the text if the cursor is on
the first line. Cursor down moves to the end of the text if the cursor
is on the last line. Alt+Del deletes to the end of the word or the
next word. Alt+Backspace deletes to the beginning of the word or
the previous word. (Improvements apply to Java 1.4 only).
- Changed icon of CheckBoxMenuItem to match Panther design (Java
- JFileChooser's use the last modification time of a directory to
decide wether its contents needs to be read again. This should greatly
reduce I/O when a file chooser is reused, or when a user browses
the same directory multiple times.
- Added missing classes to quaqua-filechooser.jar to fix ClassNotFoundException.
- The user items section of the sidebar of the QuaquaPantherFileChooserUI
shows now the same user items as the Finder.
(This works only, if the JNI code of Quaqua is in the library path).
- Vertical scrollbar in sidebar of the QuaquaPantherFileChooserUI
did never appear, even when there was not enough space in the sidebar
to display all items.
- Sidebar of the QuaquaPantherFileChooserUI erroneously suported
multiple selection of items instead of single selection.
Versions 2.3 - 2.3.1
- Dropping a file on a JFileChooser selects the file.
- The computer is now shown as the root of the file system in the
folder combo box of JFileChooser's. In previous versions, the system
volume was shown as the root. This fix works only on Mac OS X 10.3
- Renamed file libQuaquaFiles.jnilib to libquaqua.jnilib.
an item in the sidebar or in the location combo box using a QuaquaPantherFileChooserUI
did not always work.
- The release contains now a new file quaqua-filechooser.jar which
contains only the Look and Feel classes for the Panther FileChooser
UI. This is for use in applets or applications that have size restrictions.
- Calling setFileSelected on a JFileChooser did not work properly,
when the provided File object had a relative path.
- When a file is selected, the open button was made enabled, but
not made the default button (blue flashing).
- Double clicking a JFileChooser did not approve the current file
- The FileChooserUI's resolve now aliases to files and directories.
- Determining the name of the system volume in class PantherFileSystemView
now uses fallback code, if method File.getCanonicalFile() on a volume
fails. In prior versions this caused an InternalError, when attempting
to open JFileChooser.
- The file name text field in a save file JFileChooser dialog keeps
now its contents, when another directory is selected.
Versions 2.0beta - 2.0.2
2004-07-29 - 2004-10-06
- Cleaned up the number of look and feel classes.
- FileChooserUI with Panther design added.
- QuaquaFileChooserUI label of approve button changes to "Choose",
when the file chooser is used to choose a directory.
- Added missing keyboard bindings for QuaquaComboBoxUI.
- Added functionality to make Quaqua Look and Feel work in a Java
1.3 Applet sandbox.
- Fixed bugs in FileChooserUI with Jaguar design.
- Fixed an IndexOutOfBoundsException
in QuaquaFileChooserUI which caused a file chooser to become unresponsive.
- Fixed a bug which caused some JComponents on a java.awt.Window
to always draw in inactive state.
- The popup of the ComboBoxUI extends
its width to accomodate the widest item in the list.
- TableUI with support for striped style added.
- Jaguar design for TabbedPaneUI can be switched off.
- Fixed bugs in FileChooserUI.
- FileChooserUI creates folders now at the correct location.
- MenuUI has now corrected popup offsets.
- When running Java 1.4 or higher, QuaquaComboBoxUI and QuaquaTabbedPaneUI
render in click-through state, when their parent Window is not focus
Version 1.6 - 1.6.2
2004-03-14 through 2004-03-30
- File names are displayed in gray, when the JFileChooser is in FILE_SAVE
- System property 'Quaqua.FileChooser.autovalidate' added.
- When clicking on a file on a JFileChooser in FILE_SAVE mode, the
file name is now transferred into the filename text field. Thus the
JFileChooser behaves now like a native file dialog for Mac OS X 10.3
(Panther). The look of the JFileChooser is still the one of Mac OS
X 10.2 (Jaguar).
- Reimplemented the update strategy for the FileSystemTreeModel.
A directory is now updated only when the user clicks at it. Prior
to this version, the whole path up to a file was refreshed frequently.
This resulted in an unacceptable amount of I/O operations for directories
located on remote computers.
- Class OSXFileView catches NullPointerException's thrown by AquaFileView,
when trying to determine isTraversable on aliases if the the alias
is to a network volume that is no longer mounted.
- Fixed an IndexedOutOfBoundsException which occured when a 'default'
file name was supplied to a JFileChooser in FILE_SAVE mode, and the
user aborted the JFileChooser.
- OSXFileView throws a NullPointerException when method getName(File)
is called with a null argument. This prevents the JVM from crashing
in native code in the AquaFileView.
- Reduced the size of quaqua.jar. Some image files in quaqua.jar
were unnecessarily big. The classes are now compiled without debugging
Versions 1.5 - 1.5.1
2004-02-07 through 2004-02-15
- Support for Java 1.4.2 added.
- Improved the performance of the FileSystemTreeModel and the OSXFileView.
This significantly reduces the slugginess of the QuaquaFileChooserUI.
- Fixed a sporadicaly occuring null pointer exception in the QuaquaFileChooserUI.
- Fixed more sporadicaly occuring null pointer exceptions in the
QuaquaFileChooserUI which were caused by class JBrowser using method
JComponent.getLocationOnScreen() to determine the mouse location.
- Support for tabbed panes with tabs on the left and on the right
- Symbols for menu accelerators using cursor keys added.
- Pressing the enter or return key in the file name text field of
QuaquaFileChooserUI triggers the accept action.
- Support for Mac OS X 10.3 (Panther) added.
Versions 1.1 - 1.2.2
2003-09-11 through 2003-10-09
- Look and Feel with specific workarounds for Apple's Java 1.4.1
Update 1 added.
- FileChooserUI with column view added.
- JBrowser expands path on mouse down instead of on mouse up. This
provides a snappier user esperience for the FileChooserUI.
Output to System.out removed.
- Menu fixes need to be switched off
when useScreenMenuBar option is set, because Apple's Aqua LAF casts
MenuItemUI to AquaMenuItemUI.