================================================================================ Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to You under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. ================================================================================ Release notes for Pivot 1.3: New Features ------------ - File browser component/sheet (PIVOT-32) - Add support for put() and remove() to WTKXSerializer (PIVOT-147) - Put startup properties into root WTKXSerializer in ScriptApplication (PIVOT-148) - Create new FlowPane that adheres to AWT FlowLayout behavior (and rename old FlowPane to BoxPane) (PIVOT-164) - Add application hook into unhandled key events (PIVOT-174) - Add application hook into unhandled exceptions (PIVOT-175) - Add setSize() method to Picture to allow caller to resample image (PIVOT-177) - Make BeanDictionary discover public fields (PIVOT-178) - Add org.apache.pivot.collections.MapList (PIVOT-179) - Add Resources.parent (resource hierarchy) (PIVOT-180) - Context menu handler (PIVOT-181) - Add a menuBar property to Frame (PIVOT-188) - Create a FilteredList class (PIVOT-191) - Add a collapsible flag to Expander (PIVOT-200) - Add a disabled date filter to Calendar and CalendarButton (PIVOT-201) - Add support for bounding preferred size (PIVOT-207) - Display column selection state in TerraTableViewSkin (PIVOT-209) - Add FileSizeFormat class (PIVOT-231) - Add a TableViewFileSizeCellRenderer class (PIVOT-232) - Add a collapsible flag to Rollup (PIVOT-240) - Add delimiter:String style to TerraFormSkin (PIVOT-242) - Add Startup Property in KitchenSink Tutorial to load a custom json file for the Skin Colors to use (PIVOT-243) Improvements ------------ - Complete collection classes (PIVOT-20) - TablePane rows and columns should collapse when vacant (PIVOT-21) - Remove dynamic code execution from WTKXSerializer (PIVOT-34) - SplitPane's splitLocation(int) property should be splitRatio(float) (PIVOT-75) - Optimize performance of constrained preferred size calculations in Component (PIVOT-86) - Hide last row of calendar when none of the dates are selectable (PIVOT-89) - Update JFreeChart provider to latest JFreeChart version (PIVOT-114) - Optimize WTK class loading (PIVOT-122) - Don't set selected index in Rollup and Expander until expand transition is complete (PIVOT-124) - Separate Queue and Stack interfaces from List (PIVOT-133) - Allow TaskGroup and TaskSequence to contain any type of task (Task vs. Task) (PIVOT-134) - Make transitions reversible (PIVOT-135) - Use common Shortcuts in Input fields (PIVOT-142) - Improve scripting support in WTKX (PIVOT-146) - Move flip transition into CardPaneSkin (PIVOT-152) - Allow WTKX binding to any class (PIVOT-153) - Change Locale on Validators (PIVOT-155) - Change return value from Application#startup() to mean "deny" instead of "approve" (PIVOT-156) - Include demos and tutorials in binary distribution (PIVOT-159) - Add a "fill" style to ImageViewSkin (PIVOT-168) - Make table view editors detect read-only properties (PIVOT-183) - Data binding: components should not store their data when disabled (PIVOT-184) - Add padding style to CardPaneSkin and StackPaneSkin (PIVOT-189) - Replace disabled item indexes/paths in ListView, TableView, and TreeView with a disabled item filter; add disabled item filter to ListButton (PIVOT-192) - Clean up multiple selection implementation (PIVOT-197) - Create ImmutablePath class; update TreeView to use ImmutableList in getSelectedPaths() (PIVOT-198) - Add a JSON setter for selected ranges in ListView and TableView (PIVOT-199) - Review framework classes for serializability (PIVOT-206) - Change selected to highlighted in TablePane Row & Column (PIVOT-208) - equals/hashCode fix for Span and Limits (PIVOT-210) - confirm catch blocks to either re-throw or have a good reason for ignoring exception (PIVOT-211) - Eliminate Component "displayable" property; use "visible" for this purpose (PIVOT-212) - TerraFrameSkin should respect preferred size limits (PIVOT-214) - Allow Containers to obtain the keyboard focus (PIVOT-215) - Support comparators in MapAdapter and SetAdapter (PIVOT-224) - Eliminate "affiliate" property in MenuPopup (PIVOT-228) - MenuItemDataRenderer unsuccessfully attempts to right-align keyboard shortcut (PIVOT-230) - Add CardPaneSkin "circular" style (PIVOT-256) - CardPane transition duration should be configurable (PIVOT-257) - TablePane padding should not affect grid lines (PIVOT-271) - Menu popups should respond to ENTER key (PIVOT-285) Bug Fixes --------- - Interaction issues with Pivot and native modal dialogs (PIVOT-40) - wtk:include without specifying namespace results in wtk:id values being lost (PIVOT-79) - Expanders don't collapse completely in Expanders tutorial (PIVOT-128) - Sheet transitions leave artifacts when attached to a non-maximized window (PIVOT-151) - Exceptions thrown during application launch can block application shutdown (PIVOT-157) - Opening a sheet on the Display causes a NullPointerException (PIVOT-162) - Layout problems in BoxPaneSkin (PIVOT-165) - WatermarkDecorator paints outside its bounds (PIVOT-166) - Prompts clip incorrectly while opening (PIVOT-167) - QueryServlet is not thread-safe (PIVOT-172) - LabelSkin.setFontBold(true) and LabelSkin.setFontItalic(true) overwrite each other (PIVOT-176) - Selection always set on mouse down yields incorrect behavior (PIVOT-182) - Container.requestFocus() lacks logic found in Component.transferFocus() (PIVOT-187) - Memory leak in MapList (PIVOT-193) - ListView item check state incorrect upon list data item removed (PIVOT-195) - Class org.apache.pivot.collections.LinkedList defines non-transient non-serializable instance field (PIVOT-204) - MenuBar takes focus away from component (PIVOT-213) - Compile errors in HashMapTest (PIVOT-229) - Possible bug(s) in TerraSplitPaneSkin (PIVOT-237) - Row/item/node highlighting interferes with scroll pane optimization (PIVOT-238) - Clicking on a MenuBar.Item with no menu yields exception (PIVOT-241) - HashMap iteration produces duplicate entries (PIVOT-252) - Nested menus don't fade when closed (PIVOT-253) - Possible rounding error in TerraTableViewSkin.paint() (PIVOT-255) - LinkButtonDataRenderer's label doesn't wrap (PIVOT-258) - Concurrent modification check in ArrayList is too naive (PIVOT-264) - Frame menus are not disabled when a sheet is opened (PIVOT-265) - Sheet opened over a frame with a menu does not align with frame title bar (PIVOT-266) - Window#moveToFront() does not correctly restore focus to the top-most window (PIVOT-267) - TextInput always consumes LEFT and RIGHT arrow key presses (PIVOT-268) - Not all String to Color conversion are using GraphicsUtilities (PIVOT-269) - Context menu handler can be called while previous context menu is still closing (PIVOT-270) - ListButton doesn't automatically scroll the selected item to be visible (PIVOT-272) - Mousing over a different menu item does not close any open menu popup (PIVOT-273) - Prompt.prompt() ignores body component (PIVOT-277) - ArrayList.update(): illegal item modification check is too strict (PIVOT-278) - Selected row is not maintained when column sort is changed in stock tracker demo (PIVOT-279) - LinkedListItemIterator's mutator methods don't check the list's comparator (PIVOT-282) - Keyboard navigation over disabled menu item throws exception (PIVOT-284) Tasks Accomplished ------------------ - Switch all tests to JUnit 4 (PIVOT-130) - Integrate JUnit tests into the Ant build process (PIVOT-131) - check ant version in build script to verify that it is being built with the correct minimum version (PIVOT-137) - Ant task for creating 'demo site' (PIVOT-138) - Rename pivot.* packages to org.apache.pivot.* (PIVOT-143) - Add version numbers to JAR files (PIVOT-144) - Remove timestamp from JAR files (PIVOT-145) - Change target JDK version to 1.6 (PIVOT-150) - Eliminate unnecessary cast compiler warnings (PIVOT-154) - Remove references to @WTKX annotation from untrusted tutorial code (PIVOT-158) - Convert manual core tests to JUnit (PIVOT-161) - Rename FlowPane to BoxPane (PIVOT-163) - Eliminate JUSTIFY alignments (PIVOT-169) - Consolidate ComponentLayoutListener and ComponentDragDropListener into ComponentListener (PIVOT-186) - Remove @author tags from Pivot source (PIVOT-223) - Move Map.Pair to Dictionary interface (PIVOT-250) - Add @Override annotations where applicable (PIVOT-262) - SVN properties missing for lots of files (PIVOT-263) Additional Notes ---------------- - Although the TextArea component is included in this release, it is not completely functional. It works reliably in read-only mode, but editing support is incomplete. - Although the WTKX Translator and Compiler are included in this release, they are not completely functional and should be considered experimental.