Version 9.1
2014-03-22
Changes
OS X
- Adds support for OS X 10.9 Mavericks.
Version 9.0
2013-05-30
Changes
OS X
- Adds support for OS X 10.8 Mountain Lion.
JVM
- 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.
Version 8.0
2011-10-02
Fixes
JButton
- Fixes NullPointerException in QuaquaNativeButtonBorder.
JColorChooser
- Fixes appearance of toolbar buttons.
JComboBox
- Fixes QUAQUA-151 JComponent.getBaseline() is not available on J2SE5.
- Fixes QUAQUA-137 firePopupMenuWillBecomeVisible no longer being called.
JFileChooser
- Fixes QUAQUA-148 NullPointerException when sidebar contains a link to an unmounted network folder.
JPopupMenu
- Method sun.awt.SunToolkit.ungrab() is not available on J2SE5.
JScrollPane
- Fixes focus ring painting on J2SE5 by enforcing the opacity setting of the L&F on JScrollPane objects.
JTable
- Fixes QUAQUA-146 wrong background color in table cell editor when cell is selected.
JTextField
- Fixes QUAQUA-149 NullPointerException in QuaquaTextFieldBorder.
Version 8.0alpha10
2011-09-02
Fixes
JTabbedPane
- In 8.0alpha9, Quaqua used the Leopard design for tabbed panes instead of the Lion design.
Version 8.0alpha9
2011-09-01
Fixes
JButton
- 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.
Version 8.0alpha7
2011-08-07
Enhancements
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:
- JButton
- JCheckBox
- JColorChooser
- JComboBox
- JFileChooser
- JFormattedTextField
- JPasswordField
- JRadioButton
- JScrollBar
- JScrollPane
- JSplitPane
- JTextArea
- JTextField
- JTextPane
- JToolBar
- JToggleButton
- JEditorPane
- JTree
- JLabel
- JList
- JTable
- JOptionPane
- JPanel
- JViewport
- JRootPane
JButton
- Adds support for the JButton.segmentPosition property for the following button types: "segmented", "segmentedRoundRect", "segmentedGradient", "square", "gradient".
JTextComponent
- 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".
Fixes
JComboBox
- 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.
Gradients
- Fixes gradients when the Quartz rendering engine is used.
Changes
License
- 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.
Version 7.4.2
2011-07-05
Fixes
JButton
- 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.
JComboBox
- 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.
JFileChooser
- 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
-DQuaqua.FileChooser.quickLookEnabled=false
JOptionPane
- Issue 133: Adds additional text translations in French, German, Italian and Swedish.
JTabbedPane
- JTabbedPane.indexAtLocation(x,y) now properly reports the tab index when all tabs are collapsed into a single JComboBox.
JTable
- Improves visual fidelity of table headers on Snow Leopard.
Version 7.4.1
2011-03-10
Fixes
JComboBox
- 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.
PopupFactory
- Issue 126: The QuaquaPopupFactory is not installed anymore if the Popup UI is excluded.
General
- Fixes a fatal NullPointerException which sometimes occured after setting the QuaquaLookAndFeel in the UIManager.
Version 7.4
2011-02-27
Enhancements
JLabel / JCheckBox
- Adds support for the client property "Quaqua.Label.style".
BinaryPListParser
- BinaryPListParser can now parse dates.
General
- Quaqua can now load its JNI-libs when running on OpenJDK 7.
Fixes
JButton
- Issue 122: Fixes a NullPointerException when switching from Nimbus L&F to Quaqua L&F.
JPopupMenu
- Issue 125: Mouse wheel events on popup menus do not close the popup menu anymore.
JTextComponent
- Issue 130: Fixes a ClassCastException in QuaquaTextCursorHandler.
QuaquaLookAndFeel
- The Quaqua mouse grabbers and keyboard grabbers are now uninstalled when the QuaquaLookAndFeel is uninstalled.
Version 7.3.4
2010-12-28
Fixes
JBrowser
- Fixes potential issues with lead selection handling.
JCheckBoxMenuItem, JRadioButtonMenuItem
- Fixes the location of the check icons when running Quaqua with J2SE 6 on Mac OS X 10.5.
JFileChooser
- Files with name "desktop.ini" are now treated like hidden files.
JTree
- Fixes potential issues when JTree is not displaying.
Batik
- Removes unused FileCacheSeekableStream class.
Potential issues
- Fixes a number of correctness issues reported by FindBugs.
Version 7.3.3
2010-11-07
Fixes
J2SE5 compatibility
- 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.
JTable
- 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.
Potential issues
- Fixes 20 correctness issues, 11 multithreaded correctness issues and 215 other potential issues reported by FindBugs.
Version 7.3.2
2010-11-04
Fixes
JBrowser
- BasicBrowserUI attempts now to load the "Browser.sizeHandleIcon" from the UIManager before falling back to loading the icon directly.
JRadioButton
- 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
- JRootPane is now opaque and uses the same background color as a JPanel.
LayoutStyle
- Fixes issue 121: StackOverflowException when requesting LayoutStyle from QuaquaLookAndFeel.
Version 7.3.1
2010-09-20
Fixes
JFileChooser
- 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.
Version 7.3
2010-08-20
Enhancements
JTable
- Paints table headers of sorted columns with blue background color.
Fixes
- JComboBox
- Fixes focused state of scrollbars in popup menu.
- JFileChooser
- 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.
- JTable
- 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.
- JTextField
- 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.
- QuaquaPopupFactory
- Sets the name of the popup window to "###focusableSwingPopup###".
Version 7.2.1
2010-08-01
Fixes
- JRadioButton
- Fixes issue 107: "Clicking a JRadioButton does not forward focus".
Version 7.2
2010-07-28
Enhancements
- JPopupMenu
- Adds support for client property "Quaqua.PopupMenu.windowAlpha".
Fixes
- QuaquaLookAndFeel
- Installs now QuaquaKeyboardFocusManager when running on J2SE 5.
- Uninstalls now QuaquaPopupFactory and QuaquaKeyboardFocusManager when removed from the UIManager.
- JColorChooser
- Fixes slider values of the "Gray" chooser.
- Fixes inadverted color changes caused by "RGB" chooser.
- JFileChooser
- 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".
- JList
- Fixes the key bindings for "Select All" and "Clear Selection".
- JMenu
- Partially fixes issue 112: "JMenu.setBackground() has no effect". (JMenuBar.setBackground still has no effect).
- JPopupMenu
- Components on a popup menu are now rendered in their active state.
- JRadioButton
- Fixes issue 107: "Clicking a JRadioButton does not forward focus".
(This fix did not work. An improved fix is in Quaqua 7.2.1).
- JScrollPane
- Fixes issue 117: "Two finger horizontal swipe treated as vertical swipe".
- JSplitPane
- Doesn't expand on double click anymore when JSplitPane is not one-touch-expandable.
- JTable:
- 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.
- JTree
- Trees with "sourceList" style do not turn gray anymore when a sheet dialog is opened on the parent window.
Known Issues
- JColorChooser
- "CMYK" chooser doesn't pick up selected color.
Version 7.1.1
2010-06-22
Fixes
- JFileChooser:
- Issue 113: JFileChooser causes JVM crash if Universal Access is enabled.
- Removed debug output on System.out.
Version 7.1
2010-06-20
Fixes
- JBrowser:
- Issue 100: Scrolling to the left should reveal two columns. Tooltip texts should be created using "convertValueToText".
- JComboBox:
- Issue 61: Lists with very long lines were wider than the screen.
- JFileChooser:
- 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
- JOptionPane:
- Issue 111: Components were cut off.
- JRadioButton:
- Issue 107: A radio buttons should request focus when a button in the same button group already has focus.
- JSlider:
- Issue 73: Fixed NullPointerException in method getIconWidth.
- JSpinner rendered poorly when ButtonUI and TextFieldUI was excluded.
- JTabbedPane:
- Issue 52: Titles were not properly updated when they contained HTML text.
- JTable:
- 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.
Changes
- Removed SwingWorker class.
Version 7.0.1
2010-06-13
Changes
- Reverted changes on SwingWorker class, since it is not clear from the license whether we may do changes on this class.
Version 7
2010-05-26
Enhancements
- 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".
Changes
- Removed support for Java 1.4.
Fixes
- The system font was not an UIResource.
- Class "Images": Replaced code which wasn't properly licensed.
- JBrowser:
- 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.
- JTable:
- 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.
Version 6.5
2010-04-07
Enhancements
- JPopupMenu, JComboBox:
- Popup menus use now a rounded border on Leopard and Snow-Leopard.
Version 6.4.1
2010-03-20
Fixes
- JFileChooser:
- The "quick look" preview caused crashes on Mac OS X 10.5. It is now only available on systems running 10.6 and higher.
- JListUI:
- Issue 101: Fixed NullPointerException in mouseDragged handler of QuaquaListUI.
Version 6.4
2010-01-30
Enhancements
- JFileChooser: The "quick look" preview is now expandable. By default it is collapsed. The expanded state is stored in user preferences.
Fixes
- JButton:
- Issue 25: Ability to set minimum button width.
- JRadioButtonMenuItem, JCheckBoxMenuItem:
- Issue 97: JRadioButtonMenuItem renders icon in text.
Version 6.3.1
2010-01-10
Fixes
- OSXFile: Increased version number of native library from 4 to 5.
Version 6.3
2010-01-10
Enhancements
- JFileChooser: The preview column shows a preview of the file content instead of a larger version of the file icon.
Fixes
- 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.
- JTree:
- 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.
Version 6.2.2
2009-11-08
Fixes
- 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.
- Tooltips:
- Issue 92: "Tooltips broken on Java 1.4 (OS X 10.5.8)"
Version 6.2.1
2009-10-28
Enhancements
- Improved performance of conversion from TIFF images into Java Buffered Images.
Fixes
- 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.
Version 6.2
2009-10-18
Enhancements
- ImageBevelBorder can render faster, if a color is provided for filling the center area.
- Improved appearance of popup menus on Snow Leopard.
Fixes
- 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.
Version 6.1.1
2009-10-04
Enhancements
- JToolBar with "bottom" style can now also be used on windows which are not textured.
Fixes
- 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().
Version 6.1
2009-09-27
Enhancements
- JToolBar supports now the client property "Quaqua.ToolBar.style" with the styles "plain", "title", "bottom" and "gradient".
Version 6.0.1
2009-09-15
Fixes
- 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.
Version 6.0
2009-09-13
Enhancements
- 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.
Version 5.4.1
2009-07-14
Fixes
- JComboBox: Popup menu did not have the correct selection color background. The popup menu did only work with the Leopard design.
Version 5.4
2009-07-07
Enhancements
- JPopupMenu, JComboBox, JOptionPane, JSheet: The Command-Period key can now be used to cancel popup menus and dialogs.
Fixes
- 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.
Version 5.3
2009-06-21
Enhancements
- 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.
Fixes
- 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.
Version 5.2.2
2009-04-13
Fixes
- 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.
Version 5.2.1
2009-04-03
Fixes
- JTextField, JPasswordField, JFormattedTextField: Background color was never painted, if the field had no border.
Version 5.2
2009-04-01
Enhancements
- 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.
Fixes
- 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.
Version 5.1.1
2009-03-13
Enhancements
- JTree: Use Quaqua's own handler for mouse events, even when running with J2SE6.
Version 5.1
2009-03-13
Enhancements
- 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.
Fixes
- 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.
Version 5.0.1
2008-11-16
Fixes
- 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.
Version 5.0
2008-07-22
Enhancements
- 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.
Fixes
- 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).
Version 4.4.7
2008-07-16
Fixes
- 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.
Version 4.4.6
2008-06-22
Fixes
- LeopardFileChooserUI - Issue #47: AliasFileSystemTreeModel fired events for nodes which were not in the tree anymore.
Version 4.4.5
2008-05-10
Fixes
- TableUI: Draw focused selection color, if table is editing a cell.
Version 4.4.4
2008-05-04
Enhancements
- 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.
Fixes
- 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.
Version 4.4.3
2008-04-24
Fixes:
- 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.
Version 4.4.2
2008-04-22
Fixes:
- 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.
Version 4.4.1
2008-03-26
Fixes:
- 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.
Version 4.4
2008-03-22
Enhancements:
- JBrowser: Added support for default TransferHandler. Added BrowserCellRenderer interface. Renamed the existing cell renderer classes and methods.
Fixes
- 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.
Version 4.3.1
2008-03-17
Fixes
- 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.
Version 4.3
2008-03-16
Fixes
- 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.
Version 4.2.3
2008-02-21
Fixes
- FileChooserUI: Fixed Issue #26 - set current directory does not work.
Version 4.2.2
2008-02-12
Fixes
- 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.
Version 4.2.1
2008-01-25
Fixes
- Fixed broken client property "Quaqua.Component.cellRendererFor".
- TreeUI: Fixed keyboard navigation in tree.
Version 4.2
2008-01-21
Enhancements
- SliderUI with Tiger look added (work in progress).
- Subset look and feels are now included in quaqua.jar.
Fixes
- 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 '*'.
Version 4.1
2007-11-25
Enhancements
- 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.
Fixes
- FileChooserUI for Panther rendered the preview icon with a width of 64 pixels instead of 128 pixels.
Version 4.0
2007-11-03
Enhancements
- 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.
Changes
- Dropped support for Java 1.3.
Fixes
- 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.
Version 3.9.5
2007-10-21
Enhancements
- QuaquaFileChooserUI: Added support for keyboard shortcuts.
Fixes
- QuaquaFileChooserUI: The filechooser did not properly navigate into another directory, if a file was dropped onto it.
Version 3.9.4
2007-09-02
Fixes
- QuaquaFileChooserUI: Fixed NullPointerExceptions when attempting to
immediately resolve aliases.
- quaqua-filechooser-only.jar: Included missing resource files.
Version 3.9.3
2007-08-18
Enhancements
- QuaquaTextFieldUI, QuaquaPasswordFieldUI, QuaquaFormattedTextFieldUI:
Added new UIManager properties "TextField.autoSelect", "FormattedTextField.autoSelect", "PasswordField.autoSelect".
Fixes
- Fixed broken keyboard focus traversal.
Version 3.9.2
2007-08-09
Enhancements
- QuaquaTextFieldUI, QuaquaPasswordFieldUI, QuaquaFormattedTextFieldUI:
Added a new client property "Quaqua.TextComponent.autoSelect"
- UIManager: Added a new property "TextComponent.autoSelect"
Fixes
- 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.
Version 3.9.1
2007-07-31
Fixes
- QuaquaComboBoxUI: Removed debugging output. UIManager property
"ComboBox.harmonizePreferredHeight" had no effect.
Version 3.9
2007-07-30
Enhancements
- 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
the
Spotlight
search field.
- 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.
Fixes
- FileChooserUI: File chooser ran into an inconsistent state, when
the JFileChooser was constructed with a different directory than the users
home directory.
- 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
preferred width.
- 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.
Version 3.8.1
2007-06-18
Fixes
- 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.
Version 3.8
2007-05-26
Enhancements
- Experimental Swedish resource file added. The resource file is mostly
in English, only some texts for the JFileChooser and the JOption pane have
been translated
into Swedish.
Fixes
- 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!
Version 3.7.7
2007-04-16
Fixes
- QuaquaLayoutStyle returns now clones of Insets object.
Version 3.7.6
2007-04-12
Fixes
- QuaquaTextFieldBorder takes margin of JTextComponent into account.
Version 3.7.5
2007-04-11
Enhancements
- To resolve issues with selection colors: Added client
property
Quaqua.Component.cellRendererFor
.
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.
Fixes
- Removed unnecessary console output.
Version 3.7.4
2007-02-24
Enhancements
- ColorChooserUI: The text in the text fields is now selected, when
the text fields gain focus.
- ButtonUI: The UIManager property
Button.defaultButtonFollowsFocus
is
now supported on all J2SE versions (not just in J2SE 5 and later
versions). The default value for this property is false
.
Fixes
- 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
values.
- 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…".
Version 3.7.3
2007-02-17
Enhancements
- 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
by JOptionPane.getMaxCharacterPerLineCount().
Fixes
- 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.
Version 3.7.2
2007-02-10
Fixes
- 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.
Version 3.7.1
2007-02-10
Fixes
- 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.
- TableUI:
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
and feel.
- 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.
Version 3.7
2007-01-28
Enhancements
- 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
cell renderer.
- EditorPaneUI, FormattedTextFieldUI, PasswordFieldUI, TextAreaUI,
TextFieldUI, TextPaneUI: Popup menu with cut/copy and paste action
added.
- FileChooserUI: Renders now a file icon in the preview column.
Made some tweaks for better fidelity with Tiger design.
- MenuUI:
Improved fidelity of menus, especially when screen menu bar is
turned on.
- 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.
Changes
- Migrating from NetBeans 3.6 to 5.0 (work in progress).
Fixes
- Refined fix for issue #7: Selection line stays blue even if control
looses focus.
- 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.
- ToolBarSeparatorUI:
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.
- quaqua-filechooser-only.jar:
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).
- Issue
#7: Selection line stays blue even if control looses focus.
- Issue
#11: JTable cells draw selection background when rowSelectionAllowed
- Issue
#12: JComboBox as TableCellEditor offset error.
Version 3.6.8-3.6.11
2006-05-27
Fixes
- FileChooserUI: Aliases to directories were not always resolved.
View was not always updated when a file or a folder was created.
Version 3.6.7
2006-05-14
- ColorChooserUI: Fixed NullPointerException when running on Java
1.3.
Version 3.6.6
2006-04-19
Enhancements
- TabbedPaneUI with scroll tab layout policy: Client property "Quaqua:TabbedPane.shortenTabs"
added. This allows to disable tab shortening.
Fixes
- 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.
Version 3.6.5
2006-04-08
Fixes
- 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.
Version 3.6.4
2006-04-02
Fixes
- 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.
Version 3.6.3
2006-03-28
Fixes
- 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.
Version 3.6.2
2006-03-15
Fixes
- FileChooserUI: Couldn't save to a new file.
- ColorChooserUI: Color picker threw a null pointer exception when
used.
Version 3.6.1
2006-03-12
Enhancements
- 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.
Fixes
- 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
properly.
- 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.
Version <IP_ADDRESS>
2006-02-19
Enhancements
- 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
1.5.
- 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
Intel Macs.
- 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.
Fixes
- 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).
Version 3.5
2005-12-11
Enhancements
- QuaquaLookAndFeel: Reduced start up latency.
- FileChooserUI: reads file icons and file labels asynchronously
to improve perceived performance. Uses now the user defined sorting
sequence in
the sidebar.
Uses new
imagery for folders and files.
- SplitPaneUI added.
- ScrollBarUI: Client property "Quaqua.ScrollBar.placeButtonsTogether"
added.
- MenuBarUI supports now Tiger design.
- JSheet shows and hides with a transition effect.
Changes
- 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.
Fixes
- 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
Enhancements
- 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
style.
- 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
better
support
a "color
chooser-only" subset
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.
Fixes
- 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.
Build
- Three example subsets of the Quaqua Look and Feel are now provided
as bundled jar files: quaqua-filechooser-only.jar, quaqua-colorchooser-only.jar,
quaqua-menu-only.jar
Version 3.3 - 3.3.1
2005-08-28 - 2005-09-08
Enhancements
- 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.
Fixes
- 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
colors"
on and off.
- JFileChoosers don't crash anymore whe running Quaqua in debug modus
on Windows.
- QuaquaSliderUI: Moved slider buttons closer to text field.
Version 3.2 - 3.2.1
2005-07-13 - 2005-07-14
Enhancements
- Added support for JTree's with alternating row colors (stripes).
Fixes
- 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
Enhancements
Fixes
- Calling putClientProperty("windowModified", Boolean.TRUE)
on a RootPaneUI which is not displayable does not throw a NullPointerException
anymore.
- 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
Enhancements
- 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.
- ColorWell
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
FileChooserUI.
Changes
- Renamed Client-Property "Quaqua.Component.borderMargin" to "Quaqua.Component.visualMargin".
- Renamed UIManager-Property "Component.borderMargin" to "Component.visualMargin".
- Moved utility classes into separate
util
package.
- Moved icon of radio buttons up by one pixel.
- Updated NanoXML to Java 2 Collections framework.
Bug Fixes
- 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
FileChooserUI.
- 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
Enhancements
- 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
Java 1.3.
- Setting illegal file paths with non-existent path elements could
cause IllegalStateException when opening a JFileChooser.
Bug Fixes
- 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.
Version 2.7
2005-01-06
Enhancements
- 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
1.3.
- 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.
Bug Fixes
- Quaqua closes now the file ~/Library/Preferences/com.apple.sidebarlists.plist
after it has read it.
Version 2.6
2004-12-22
Enhancements
- 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.
Version 2.5
2004-12-05
Enhancements
- 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
1.4 only).
- 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.
Bug Fixes
- Added missing classes to quaqua-filechooser.jar to fix ClassNotFoundException.
Version 2.4
2004-11-05
Enhancements
- 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).
Bug Fixes
- 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
2004-11-02
Enhancements
- 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
or later.
- Renamed file libQuaquaFiles.jnilib to libquaqua.jnilib.
- Selecting
an item in the sidebar or in the location combo box using a QuaquaPantherFileChooserUI
did not always work.
Version 2.2
2004-10-26
Enhancements
- 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.
Bug Fixes
- 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
selection.
Version 2.1
2004-10-17
Enhancements
- 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.
Bug Fixes
- 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
Enhancements
- 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.
Bug Fixes
- 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.
Version 1.8
2004-06-26
Enhancements
- TableUI with support for striped style added.
- Jaguar design for TabbedPaneUI can be switched off.
Bug Fixes
- Fixed bugs in FileChooserUI.
Version 1.7
2004-05-02
Enhancements
Bug Fixes
- 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
owner.
Version 1.6 - 1.6.2
2004-03-14 through 2004-03-30
Enhancements
- File names are displayed in gray, when the JFileChooser is in FILE_SAVE
mode.
- 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).
Bug Fixes
- 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
information.
Versions 1.5 - 1.5.1
2004-02-07 through 2004-02-15
Enhancements
- Support for Java 1.4.2 added.
- Improved the performance of the FileSystemTreeModel and the OSXFileView.
This significantly reduces the slugginess of the QuaquaFileChooserUI.
Bug Fixes
- 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.
Version 1.4
2003-11-13
Enhancements
- Support for tabbed panes with tabs on the left and on the right
added.
- 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.
Version 1.3
2003-10-29
Enhancements
- Support for Mac OS X 10.3 (Panther) added.
Versions 1.1 - 1.2.2
2003-09-11 through 2003-10-09
Enhancements
- Look and Feel with specific workarounds for Apple's Java 1.4.1
Update 1 added.
- FileChooserUI with column view added.
Bug Fixes
- JBrowser expands path on mouse down instead of on mouse up. This
provides a snappier user esperience for the FileChooserUI.
- Diagnostic
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.
Version 1.0
2003-09-05


Track suggester webpage
What programming languages interests you?
Well done!
You are taking the first step to an exciting future!
Do you like ruby?
yes
no
do you appreciate good design?
yes
no
are you detail oriented?
yes
no
do you have a lot of patience?
yes
no
do you like C-based languages?
yes
no
Find Out Now!
Start over
You have got Ruby!
You have got Java!
You have got CSS!
You are 50% between Java and CSS
You should study Spanish!


{% extends "base.html" %} {% block js %} {% endblock %} {% block css %} {% endblock %} {% block main %}
Heroku is a cloud-hosting service provider
Flask is a microframework for Python based on Werkzeug, Jinja 2 and good intentions. And before you ask: It's BSD licensed!
Git is a distributed revision source control
Sleek, intuitive, and powerful front-end framework for faster and easier web development.


interface CacheReplacementPolicy
A Cache Replacement policy maintains a registry of cached objects to free space when cache is full. The object removed when cache fills up depends on the implementation of CacheReplacementPolicy.evictUnsafe method.
For example, FifoCacheReplacementPolicy replaces the first cached object when cache runs out of space. Therefore, its FifoCacheReplacementPolicy.evictUnsafe removes the oldest object from the registry and returns it.
All methods are assumed to be thread unsafe and expect that the caller has already acquired the locks.
A custom replacement policy (Like LRU) can be implemented as long as it conforms to this interface.
class LRUCacheReplacementPolicy(override val cacheSize: Int): CacheReplacementPolicy {
...
}
abstract val cacheSize: Int
Size of the cache |
abstract fun clearRegistryUnsafe(): Unit
Clear any state and reset to initial. For example, clearRegistryUnsafe any linked list state for LRU or FIFO cache. |
|
abstract fun evictUnsafe(): CacheableContainer?
Prune the cache by 1 entry. Returns the removed object. Call this method when cache runs out of space. |
|
abstract fun registerObjectUnsafe(obj: CacheableContainer): CacheableContainer?
Adds a cache entry for the object and returns the entry of a pruned object. Pruning occurs when the cache space is full. |
|
abstract fun unregisterObjectUnsafe(obj: CacheableContainer): Unit
Remove |
class FifoCacheReplacementPolicy : CacheReplacementPolicy
A cache replacement policy which evicts the oldest object from cache to make space when cache is full. |


Utilities for cloning, extending, and de-referencing objects in shallow, deep, and safe ways
npm install --save extendr
require('extendr')
npm install --save extendr
require('extendr')
<EMAIL_ADDRESS>ender add extendr
require('extendr')
This package is published with the following editions:
extendr
aliases extendr/index.js
which uses Editions to automatically select the correct edition for the consumers environmentextendr/source/index.js
is Source + ESNext + Requireextendr/es2015/index.js
is Babel Compiled + ES2015 + RequireOlder environments may need Babel's Polyfill or something similar.
require('extendr').extend(target, ...objects)
- shallow extend the properties from the objects into the targetrequire('extendr').deep(target, ...objects)
- deep extend the properties from the objects into the targetrequire('extendr').defaults(target, ...objects)
- shallow extend the properties from the objects into the target where the target's value is undefined or nullrequire('extendr').deepDefaults(target, ...objects)
- deep extend the properties from the objects into the target where the target's value is undefined or nullrequire('extendr').clone(...objects)
- deep extend the properties from the objects into a new objectrequire('extendr').dereference(object)
- clones the object by traversing through it and setting up new instances of anything that can be referencedrequire('extendr').dereferenceJSON(object)
- clones the object by stringifying it, then parsing the result, to ensure all references are destroyed (objects that not plain objects or arrays will be lost)Discover the release history by heading on over to the HISTORY.md
file.
Discover how you can contribute by heading on over to the CONTRIBUTING.md
file.
These amazing people are maintaining this project:
No sponsors yet! Will you be the first?
These amazing people have contributed code to this project:
Discover how you can contribute by heading on over to the CONTRIBUTING.md
file.
Unless stated otherwise all works are:
and licensed under:


About Me
I was rescued back in August 2014 when my previous owner couldn’t take care of me.
Here’s how that story went:
My mom originally wanted me but the owner said that I was given away already. In defeat, my mom settled for my fluffy nincompoop brother/cousin, Batman, instead. Long story short, the owner came clean and realized she didn’t have the capacity to take care of me since she already had a zoo. My mom was ecstatic and took me home to my now forever family.
I have a big brother, Tigger, who doesn’t like me very much but he tolerates me.  I love my family and if it wasn’t for them, I don’t know what life would be like.


Preparation time
less than 30 mins
Cooking time
10 to 30 mins
Serves
Makes 16 squares
Dietary
I was recipe testing some millionaire’s shortbread and found I did not have enough of the correct ingredients. A family-sized pot of crunchy peanut butter sat almost full at the back of my cupboard, providing me with some nutty inspiration for these peanut butter squares.
Line a 20cm/8in square tin with baking parchment, leaving some excess paper hanging over the edges (this makes it easier to lift out once set).
Melt the butter in a large pan over a low heat.
Snap the chocolate into squares and throw into a small bowl. Melt in the microwave in 30 second blasts, stirring well between each addition or sit the bowl over a pan over simmering water. Make sure that the bottom of the pan does not touch the water or the chocolate may ‘seize’ and go really grainy and stiff.
Blitz the digestive biscuits and brown sugar in a blender or food processor to give fine crumbs. Tip them into the melted butter. Stir in the peanut butter and vanilla extract and mix together so everything is well combined.
Tip the mixture into the lined tin and press it down really hard with the back of the spoon. It needs to be really compact and tight. Then pour over the melted chocolate, tilting the tin back and forth a bit so that the whole thing is evenly covered. Pop in the freezer for 30 minutes to firm up (or the fridge for an hour).
Once the chocolate is set, remove it from the freezer (or fridge). Lift it out of the tin with the help of the baking parchment. Remove the paper and then use a sharp knife to divide it into 16 squares and serve.
You need JavaScript to view this clip.
Melting chocolate


Spencer Bi
Home
Portfolio
About Me
Spencer Bi
Skills & Abilities
Sketching
Figure Drawing
Photoshop Editing
Oil Painting
Want to See More?
Want to Know More?
Spencer Bi
cell:<PHONE_NUMBER> home:<PHONE_NUMBER> email: sbi@horizon.csueastbay.edu


Search
Courses
Facilities
Parking Lots
Events
Name
Open
Close
Name
Open
Close
Name
Course Num
Prof
Fee
Guest
Space
Name
Course Num
Prof
Fee
Guest
Space


FOR LINKS TO BETTER LOOKING WORK SEE THE PORTFOLIO LINK.
About This Page
This Page was designed by me.
This is DESIGNED TO BE A BASIC SITE with colors that update and images that
grow or appear to show mobile responsiveness.
This website was built using HTML5 LESS and JavaScript.
This site was designed to be a "mobile first" website.
Did you know that a majority of users are now viewing your pages from a cell phone or a
tablet?
Writing websites in a mobile first design now makes for a much better user experience on
smaller devices.
It allows for maipulation of the smaller elements first rather than trying to force the
larger elements to shrink and disappear later.


Superclasses to make implementing EJBs simpler and less error-prone,
as well as guaranteeing a Spring BeanFactory is available
to EJBs. This promotes good practice, with EJB services used
for transaction management, thread management, and (possibly) remoting,
while business logic is implemented in easily testable POJOs.
In this model, the EJB is a facade, with as many POJO helpers behind
the BeanFactory as are required.
The classes in this package are discussed in Chapter 11 of
Expert One-On-One J2EE Design and Development
by Rod Johnson (Wrox, 2002).
The present version has changed somewhat, but has the same goals.
Note that the default behaviour is to look for an EJB enviroment variable
with name ejb/BeanFactoryPath
that specifies the
location on the classpath of an XML bean factory definition
file (such as /com/mycom/mypackage/mybeans.xml
.
If this JNDI key is missing, your EJB subclass won't
successfully initialize in the container.


{% extends "layout.html" %} {% block page_title %} Publish government data {% endblock %} {% block proposition_header %} {% include "includes/propositional_navigation_service.html" %} {% endblock %} {% block header_class %} with-proposition {% endblock %} {% block content %} {% include "includes/phase_banner_beta.html" %} {% include "includes/side-navigation.html" %} {{formData | safe}} Upload a new dataset Would you like to be notified? These will give us permission to remember you when your data needs to be updated, and you could do so via email. Would you like to be notified? Yes No {% endblock %}
These will give us permission to remember you when your data needs to be updated, and you could do so via email.


Send
IT
Home
Services
☰
Create Order Section
Create Parcel Delivery Order
Receiver Number:
Weight:
Weight metric:
KG
Item description:
Sender Address:
Destination Address:
Zip Code (Destination):
State (Destination):
Create order


Enter the MSS list of commandy commands here.
Enter »
Check information for the bot and the server
Invite {{ botname }} to your server
Invite »


ebix
Businessmodel of Ebix
Customer Segments
Ebix has a niche market business model, with a specialized customer segment. The company targets its offerings at organizations in the financial, insurance, and healthcare industries.
Value Proposition
Ebix offers four primary value propositions: accessibility, performance, risk reduction, and brand/status.
The company creates accessibility by providing a wide variety of options. It has acquired numerous firms since its founding, including WDEV, Oakstone Publishing, HealthcareMagic, Peak Performance, Confirmnet Corporation, and Periculum Services Group. This strategy has enabled it to greatly expand its capabilities and diversify its portfolio. Consequently, it can provide end-to-end solutions including custom software development, infrastructure exchanges, agency systems, carrier systems, and risk compliance systems.
The company demonstrates strong performance through tangible results. It claims that its solutions have resulted in 50% cost savings, 35% productivity enhancements, and 75% faster time-to-market for its clients. Specific positive outcomes for clients include the following:
- Transamerica Life Insurance Company used Ebix’s solutions to reduce time to process cash business and additions from 3-5 days to one-day (same-day)
- The South Bend Clinic used Ebix’s solutions to boost its website traffic by 10% and increase average visitor time on page
- WELBRO Corporation used Ebix’s solutions to maintain economies of scale, resulting in higher compliance rates and significant cost savings
- Baylor Health Care System used Ebix’s solutions to increase website traffic and visitor stay length
- Insurance Design Administrators used Ebix’s solutions to greatly reduce claim processing time The company reduces risk by maintaining high standards. It is Microsoft-certified and its center in India has achieved Carnegie Mellon’s highest CMMi 5 rating. It also has ISO27001 and ISO9001:2000 certifications.
The company has established a strong brand due to its success. It has over 2,800 employees and operates over 40 offices across Australia, Brazil, Canada, India, New Zealand, Singapore, the United States, and the United Kingdom. It has conducted more than $100 billion worth of insurance premiums annually on its platforms.
It has a recurring revenue base of 80%, with a client base that includes hundreds of corporate clients and carriers and hundreds of thousands of brokers. Its customers are in more than 50 countries across six continents. Lastly, it has won many honors, including the following:
- Recognition as the fourth fastest-growing technology company in the world by Fortune
- Recognition as the sixth fastest-growing technology company in the world by Forbes
- XCelent Awards for Advanced Technology and Breadth of Functionality from Celent
- An ACORD Streamline Award in the Business Process Improvement category
- A Gold Aster Award in the Healthcare/Patient Education category ### Channels
Ebix’s main channel is its direct sales team. It also sells its products and services through resellers.
The company promotes its offerings through its website, social media pages, advertising, sponsorships, and participation in industry events such as forums, expos, summits, and conferences.
Customer Relationships
Ebix’s customer relationship is primarily of a self-service, automated nature. Customers utilize its products while having limited interaction with employees. That said, there is a personal assistance component in the form of phone and e-mail support.
Key Activities
Ebix’s business model entails designing and developing its products and services for its clients.
Key Partners
Ebix’s key partners are the resellers that help it sell its products/services and the suppliers that provide it with the materials it needs to develop its solutions.
Key Resources
Ebix’s main resources are its human resources, who include the engineers that design and develop its products, the sales employees that sell them, and the customer service personnel who provide support. Its staff includes hundreds of domain-specific technology and business professionals.
Cost Structure
Ebix has a cost-driven structure, aiming to minimize expenses through significant automation. Its biggest cost driver is cost of services provided, a variable expense. Other major drivers are in the areas of administration, product development, and sales/marketing, all fixed costs.
Revenue Streams
Ebix has two revenue streams:
Product Revenues – Revenues the company generates from the sale of the following products:
- Exchanges – Data exchanges it operates in the areas of life insurance, annuities, employee health benefits, risk management, workers compensation, insurance underwriting, and P&C insurance
- Broker P&C Systems - Back-end systems (eGlobal, WinBeat, and EbixASP) for international P&C insurance brokers who seek a global system solution
- Risk Compliance Solutions - Business process outsourcing services that include domain intensive project management, time and material based consulting engagements, the tracking of certificates of insurance, and claims adjudication and settlement
-
Carrier P&C Systems - On-demand back-end systems for P&C insurance companies accessed through licenses and subscriptions Professional/Support Service Revenues – Revenues the company generates from:
- Services delivered over its exchanges or from its ASP platforms
- Software development projects and related fees for consulting, implementation, training, and project management
- Business process outsourcing


In my Human Computer Interaction Class, we were tasked with building a web or mobile based application. I served as the UI designer for my group. We collectively decided to challenge ourselves to create a prototype for a smart home control system as it this concept becoming ubiquitous.
Create an application that allows a user to control smart aspects of their home from anywhere.
Starting with a paper prototype, we had an iterative design process. Each member of the team conducted a cognitive walkthrough and we compared notes to alter the current design in the first mockups. Once we had the screens, we used InVision to build the interactivity of our prototype. I then conducted a heuristic review using Neilsen's Design Heuristics. I found that we needed to focus on user control and consistency between pages, as well as matching the design to users' mental models.
Take a look at the following three screen mockups and notice the changes in each iteration
For a walkthrough of our prototype, please follow this link to a video.
The other two members of my group were computer scientists. This project was a valuable exercise in working with developers who may not be as familiar with user-centered design. The prototype is of course still in the early stages, but I am proud of our group that we were able to test multiple times and use multiple techniques.


This story is best tested when story pages are smaller than 345px x 575px.
Clicking link(s) within 48px of the left or right edge of this page should result in navigating to the next or previous page, and not actually open the link.
Clicking the link(s) centered on this page should allow opening the link.
link1 link2 link3


I am trying to improve my photography skills but since the pandemic started this situation affected my motivation and my mobility. I am using canon m50 and I am taking photos with my stock lens. Before starting IDP I never had photoshop experience I just used simple software and a little bit of lightroom. But when I am free I like to take new photos and I like to try new settings with my camera. At the bottom you can see my 3 example photos!


QA Environment Issue Tracker
Create New Issue
Summary
Description
Severity
Low
Medium
High
Assigned Scrum Team
Unassigned
HAL
Engineering Infrastructure
Bolder Dash
RnB
Regionalization
PED
Cores Light
Cloud9erz
License To Trill
MNW
Support Eng
CCR
Data Mob
OCD
UFO
UX
HSA
LFE
Mobile
Submit


rexfw.convenience package¶
Submodules¶
rexfw.convenience.statistics module¶
Some functions creating default statistics elements
-
rexfw.convenience.statistics.
create_default_MCMC_averages
(replica_names, variable_name='x')¶
-
rexfw.convenience.statistics.
create_default_RE_averages
(replica_names)¶
-
rexfw.convenience.statistics.
create_default_heats
(replica_names)¶
-
rexfw.convenience.statistics.
create_default_stepsizes
(replica_names, variable_name='x')¶
-
rexfw.convenience.statistics.
create_default_works
(replica_names)¶
Module contents¶
Convenient functions creating default objects to simplify standard tasks with this framework
-
rexfw.convenience.
create_default_AMDRENS_params
(schedule, n_steps, timesteps, collision_probability=0.1, update_interval=1)¶
-
rexfw.convenience.
create_default_HMCStepRENS_params
(schedule, n_intermediate_steps, hmc_traj_length, n_hmc_iterations, timesteps)¶
-
rexfw.convenience.
create_default_LMDRENS_params
(schedule, n_steps, timesteps, gamma)¶
-
rexfw.convenience.
create_default_RE_params
(n_replicas)¶ Creates default RE exchange parameters
Parameters: n_replicas (int) – the number of replicas Returns: a list of parameter objects holding information required to perform swaps Return type: list of ExchangeParams
-
rexfw.convenience.
create_default_stats_elements
(replica_names, variable_name)¶ Creates default sampling statistics “elements”, each representing a tracked quantity such as acceptance rate, step size etc.
Parameters: replica_names (list) – a list of all replica names Returns: MCMC acceptance rate, RE acceptance rate and step size quantity objects Return type: tuple
-
rexfw.convenience.
create_default_stats_writers
(sim_path, variable_name)¶ Creates default statistics writers, which print sampling statistics on the screen or write it to a text file
Parameters: Returns: default MCMC and RE statistics writers
Return type:
-
rexfw.convenience.
create_directories
(sim_folder)¶ Creates simulation output folders
-
rexfw.convenience.
setup_default_re_master
(n_replicas, sim_path, comm)¶ Creates a default
ExchangeMaster
object for Replica Exchange. This should suffice for most applications.Parameters: - n_replicas (int) – the number of replicas
- sim_path (str) – the folder where simulation output will be stored
- comm (
AbstractCommunicator
) – aAbstractCommunicator
object responsible for communication with the replicas
Returns: a for all practical purposes sufficient
ExchangeMaster
objectReturn type:
-
rexfw.convenience.
setup_default_replica
(init_state, pdf, sampler_class, sampler_params, output_folder, comm, rank)¶ Creates a default
Replica
object for replica exchange. This should suffice for most applications.Parameters: - init_state (depends on your application) – initial state for the replica
- pdf (
AbstractPDF
) – aAbstractPDF
object which describes the probability density the replica will sample - sampler_class (
AbstractSampler
) – the class of the sampler used to sample from this replica’s PDF - sampler_params (dict) – a dict containing additional keyword arguments your sampler might need
- output_folder (str) – the folder where simulation output will be stored
- comm (
AbstractCommunicator
) – aAbstractCommunicator
object responsible for communication with the master object - rank (int) – the index of this replica, usually 1, 2, …
Returns: a for all practical purposes sufficient
Replica
objectReturn type:


Enumerable#group_by - Another Way to Make a Hash
I love learning what methods can do on ruby.doc.org. For this post I'll take you through what I've learned about Enumerable#group_by.
The group_by method of the Enumarable module in Ruby takes a set of data and groups it into a collection know as a hash. The examples below show an array of names of my family members:
>family = ["david", "lamps", "becky", "lamps", "andrew", "lamps", "adellyn", "lamps"]
Below I'll show how the group_by method organizes my family member's names into a hash, depending on how I tell it to group it. When applying .group_by, in the first example it is followed by { |name| name[0] }. This is saying for each name in my array, use the 0 index position of the word to group them into key-value pairs within a hash. The first example uses the first letter of each name as the criteria:
>family.group_by { |name| name[0] }#=> {"d"=>["david"], "l"=>["lamps", "lamps", "lamps", "lamps"], "b"=>["becky"], "a"=>["andrew", "adellyn"]}
This basically collects all of the names based on if they have the same first letter. So david is assigned to the d key, lamps,lamps,lamps,lamps is assignd to the l key, etc.
Below are examples of grouping by various index numbers:
>family.group_by { |name| name[1] }#=> {"a"=>["david", "lamps", "lamps", "lamps", "lamps"], "e"=>["becky"], "n"=>["andrew"], "d"=>["adellyn"]}
>family.group_by { |name| name[2] }
#=> {"v"=>["david"], "m"=>["lamps", "lamps", "lamps", "lamps"], "c"=>["becky"], "d"=>["andrew"], "e"=>["adellyn"]}
>family.group_by { |name| name[3] }
#=> {"i"=>["david"], "p"=>["lamps", "lamps", "lamps", "lamps"], "k"=>["becky"], "r"=>["andrew"], "l"=>["adellyn"]}
>family.group_by { |name| name[4] }
#=> {"d"=>["david"], "s"=>["lamps", "lamps", "lamps", "lamps"], "y"=>["becky"], "e"=>["andrew"], "l"=>["adellyn"]
>family.group_by { |name| name[5] }
#=> {nil=>["david", "lamps", "becky", "lamps", "lamps", "lamps"], "w"=>["andrew"], "y"=>["adellyn"]}
>family.group_by { |name| name[6] }
#=> {nil=>["david", "lamps", "becky", "lamps", "andrew", "lamps", "lamps"], "n"=>["adellyn"]}
For this last example, the criteria for grouping is if the name is lamps. This creates two keys, false and true. If the name is lamps, it is assigned to the true key. Otherwise the name is assigned to the false key.
>family.group_by { |name| name == "lamps" }#=> {false=>["david", "becky", "andrew", "adellyn"], true=>["lamps", "lamps", "lamps", "lamps"]}
This grouping can also be used with numbers. The example below takes the numbers 1 through 6, and then i%3 organizes them into groups of 3. If it had been i%2, it would create groups of 2, and i%6 would create groups of 6.
(1..6).group_by { |i| i%3 }#=> {0=>[3, 6], 1=>[1, 4], 2=>[2, 5]}


How to navigate the site
- To check your score and position, go to the scores section.
- To get a more detailed overview of your score and the problems you've solved, go to the stats section.
- To submit, buy or sell a solution to a problem, go to the problems section.
- To logout, click on the logout button.


Guess the number
Hint:
It's a number between one and twenty!
What's your first guess?
Play Again?
Submit


ABOUT
CONTACT
2-PLAYER GAMES
PUZZLE CHALLENGE
Welcome
to RALETECH, a simple site meant for casual entertainment and amusement. Thank you for dropping in! Feel free to poke around and see what you can find.


ex_cloudinary v0.1.0 ExCloudinary
A wrapper around the HTTPoison.Base module for the image CDN service Cloudinary.
Summary
Functions
Delete an image from your Cloudinary library
Generate an image of a given textual string
Rename the public ID of an image in your Cloudinary library
Upload an image to your Cloudinary library
See &upload_image/2
Upload any type of file to your Cloudinary library
Functions
Delete an image from your Cloudinary library.
Examples
iex> ExCloudinary.delete_image("mlqonaj2pbelfn8sbxgz")
response
Params
public_id
- The identifier of the uploaded image.type
- (optional) The type of the image you want to delete. Default:upload
See delete_image/2
Generate an image of a given textual string.
Examples
iex> ExCloudinary.generate_text_layer("watermark")
response
Params
text
- The text to generate an image for.opts
- Keyword list of options (see below).
Options
public_id
- The identifier that is used for accessing the generated image. If not specified, a unique identifier is generated, persistently mapped to the given text and style settings. This way, you can keep using Cloudinary’s API for generating texts. Cloudinary will make sure not to generate multiple images for the same text and style.font_family
- The name of the font family. List of supported font families.font_size
- Font size in points. Default: 12.font_color
- Name or RGB representation of the font’s color. For example:red
,#ff0000
. Default:black
.font_weight
- Whether to use anormal
or abold
font. Default:normal
.font_style
- Whether to use anormal
or anitalic
font. Default:normal
.background
- Name or RGB representation of the background color of the generated image. For example:red
,#ff0000
. Default:transparent
.opacity
- Text opacity value between 0 (invisible) and 100. Default: 100.text_decoration
- Optionally add anunderline
to the text. Default:none
.
Rename the public ID of an image in your Cloudinary library.
Examples
iex> ExCloudinary.rename_image("mlqonaj2pbelfn8sbxgz", "hw2nr1ivdsnfwotueadh")
response
Params
from_public_id
- The current identifier of the uploaded image.to_public_id
- The new identifier to assign to the uploaded image.opts
- Keyword list of options (see below).
Options
type
- The type of the image you want to rename. Default:upload
.overwrite
- (boolean) Whether to overwrite an existing image with the target public ID. Default: false.
See rename_image/3
Upload an image to your Cloudinary library.
Examples
iex> ExCloudinary.upload_image("/path/to/image.jpeg")
response
iex> ExCloudinary.upload_image("https://www.internet.com/image.jpeg")
response
Parameters
file
- Either the local path to an image or the http url of a public image resource.opts
- Keyword list of upload options (see below).
Options
public_id
- The identifier that is used for accessing the uploaded resource. A randomly generated ID is assigned if not specified. The public ID may contain a full path including folders separated by/
.resource_type
- Valid values:image
,raw
andauto
. Default:image
.type
- Allows uploading images asprivate
orauthenticated
. Valid values:upload
,private
andauthenticated
. Default:upload
.tags
- A comma-separated list of tag names to assign to the uploaded image for later group reference.context
- A pipe separated list of key-value pairs of general textual context metadata to attach to an uploaded resource. The context values of uploaded files are available for fetching using the Admin API. For example:alt=My image|caption=Profile Photo
.transformation
- A transformation to run on the uploaded image before saving it in the cloud. For example: limit the dimension of the uploaded image to 512x512 pixels.format
- An optional format to convert the uploaded image to before saving in the cloud. For example:jpg
.allowed_formats
- A comma-separated list of file formats that are allowed for uploading. The default is any supported image kind and any type of raw file. Files of other types will be rejected. The formats can be image types or raw file extensions. For example:jpg,gif,doc
.eager
- A list of transformations to create for the uploaded image during the upload process, instead of lazily creating them when being accessed by your site’s visitors. The transformation strings are separated by|
.eager_async
- (boolean) Whether to generate the eager transformations asynchronously in the background after the upload request is completed rather than online as part of the upload call. Default: false.proxy
- Tells Cloudinary to upload images from remote URLs through the given proxy. Format:http://hostname:post
.notification_url
- An HTTP URL to send notification to (a webhook) when the upload is completed or any requested asynchronous action is completed.eager_notification_url
- An HTTP URL to send notification to (a webhook) when the generation of eager transformations is completed.backup
- (boolean) Tell Cloudinary whether to backup the uploaded image. Overrides the default backup settings of your account.return_delete_token
- (boolean) Whether to return a deletion token in the upload response. The token can be used to delete the uploaded image within 10 minutes using an unauthenticated API request.faces
- (boolean) Whether to retrieve a list of coordinates of automatically detected faces in the uploaded photo. Default: false.exif
- (boolean)Whether to retrieve the Exif metadata of the uploaded photo. Default: false.colors
- (boolean) Whether to retrieve predominant colors & color histogram of the uploaded image. Default: false.image_metadata
- (boolean) Whether to retrieve IPTC and detailed Exif metadata of the uploaded photo. Default: false.phash
- (boolean) Whether to return the perceptual hash (pHash) on the uploaded image. The pHash acts as a fingerprint that allows checking image similarity. Default: false.invalidate
- (boolean) Whether to invalidate CDN cache copies of a previously uploaded image that shares the same public ID. Default: false.use_filename
- (boolean) Whether to use the original file name of the uploaded image if available for the public ID. The file name is normalized and random characters are appended to ensure uniqueness. Default: false.unique_filename
- (boolean) Only relevant if use_filename is true. When set to false, should not add random characters at the end of the filename that guarantee its uniqueness. Default: true.folder
- An optional folder name where the uploaded resource will be stored. The public ID contains the full path of the uploaded resource, including the folder name.overwrite
- (boolean) Whether to overwrite existing resources with the same public ID. When set to false, return immediately if a resource with the same public ID was found. Default: true.discard_original_filename
- (boolean) Whether to discard the name of the original uploaded file. Relevant when delivering images as attachments (setting theflags
transformation parameter toattachment
). Default: false.face_coordinates
- List of coordinates of faces contained in an uploaded image. The given coordinates are used for cropping uploaded images using the face or faces gravity mode. The specified coordinates override the automatically detected faces. Each face is specified by the X & Y coordinates of the top left corner and the width & height of the face. The coordinates are comma separated while faces are concatenated with|
. For example:10,20,150,130|213,345,82,61
.custom_coordinates
- Coordinates of an interesting region contained in an uploaded image. The given coordinates are used for cropping uploaded images using the custom gravity mode. The region is specified by the X & Y coordinates of the top left corner and the width & height of the region. For example:85,120,220,310
.raw_convert
- Set toaspose
to automatically convert Office documents to PDF files and other image formats using the Aspose Document Conversion add-on.auto_tagging
- (0.0..1.0) Whether to assign tags to an image according to detected scene categories with confidence score higher than the given value.background_removal
- Set toremove_the_background
to automatically clear the background of an uploaded photo using the Remove-The-Background Editing add-on.moderation
- Set tomanual
to add the uploaded image to a queue of pending moderation images. Set towebpurify
to automatically moderate the uploaded image using the WebPurify Image Moderation add-on.upload_preset
- Name of an upload preset that you defined for your Cloudinary account. An upload preset consists of upload parameters centrally managed using the Admin API or from the settings page of the management console. An upload preset may be marked asunsigned
, which allows unsigned uploading directly from the browser and restrict the directly allowed parameters to: public_id, folder, tags, context, face_coordinates and custom_coordinates.
Upload any type of file to your Cloudinary library.
Examples
iex> ExCloudinary.upload_raw("/path/to/file")
response
Params
path
- The local path to a file.public_id
- The identifier that is used for accessing the uploaded resource. A randomly generated ID is assigned if not specified.
See upload_raw/2