Hi all,
As you can see from previous emails, the Pivot project is winding down, and 
attempting to prepare a final release before archiving to the ASF Attic.  We 
have a build VM up and running, all the extant code changes have been 
committed, and I have started preparing the final RELEASE notes.

I have been quite busy with personal life in retirement and have been 
overwhelmed with this “simple” task, so asking for help to convert the attached 
pre-processed list of changes and issues (“pivot-release-notes.txt”) into some 
kind of coherent release notes that would be a) Not too verbose, but b) not too 
terse, considering the breadth and scope of some of these changes.

I realize that the mast majority of these changes have been mine, and so I’m 
the likely candidate for doing all this, but the “lack of progress” tells me 
that if anyone could help it might go faster….

Once the notes have been prepared, I think we’re just a build and a vote away 
from the final release, and then retirement, so …

Many thanks,
~Roger Whitcomb
PMC Chair - Apache Pivot project
ASF Member

P.S. The attached “logs.calc” script can be run by the “Calc” program, built 
from the repository at: https://github.com/rlwhitcomb/utilities/

SVN log over {2014-05-20}:{2024-04-12} has 6250 lines
Total number of revisions: 782

====================
Issues Resolved (96)
====================
   * [PIVOT-498]:
        r1817402: Make the default executor service for Task, TaskSequence, and 
TaskGroup into an "Executors.newCachedThreadPool()", instead of our simple 
service, which was created as a workaround for some problems seen ~7-8 years 
ago. Move that "DefaultExecutorService" out to its own "SimpleExecutorService" 
class, so it can still be used as a workaround if necessary. 

   * [PIVOT-636]:
        r1817567: Calculate non-zero splitter preferred sizes as the sum of the 
splitter thickness and the top/left and bottom/right component preferred sizes 
(if any). 

   * [PIVOT-689]:
        r1624221: set the same background color used in TextInput even in other 
text components 

   * [PIVOT-698]:
        r1613063: use the same palette color of other borders even in tooltips

   * [PIVOT-734]:
        r1823532: Several changes necessary to solve this (although all these 
may be a bit of overkill, at least the problem is solved): * The earlier 
changes mentioned in the JIRA issue involving when to load   the children in 
the skin. * Two new calls to repaint in the case of "showEmptyBranchControls" 
is false. * The main thing:  update "monitorBranch" to monitor the branch 
itself when   called from "setSelectedPath" (if the node is indeed a branch) so 
that when   updates are made the branch will get repainted, and the other 
changes will   cause the correct branch control to actually get painted. 

   * [PIVOT-799]:
        r1692064: update LICENSE with reference to Scala license because 
org.apache.pivot.functional.* classes are derived/inspired from Scala code

   * [PIVOT-850]:
        r1818207: One small font placement problem in TextPane (specifically in 
the "paint()" code for TextPaneSkinTextNodeView:  the y position should be the 
ascent + leading in order to agree with the placement using line height - 
descent (used with GlyphVector drawing).  So, add in the 
LineMetrics.getLeading() to the y position. 

   * [PIVOT-871]:
        r1877271: Final touches on the NumberRuler: add a style to show (or 
not) the number at the zero position.  Enable this style on the 
ComponentExplorer source window.  Minor tweak: use a const style string for 
italic font in the inspector window.  

   * [PIVOT-891]:
        r1830106: Add some unit tests for the new CharUtils methods. Small 
tweak to Javadoc in CharSpan. 

   * [PIVOT-915]:
        r1704223: update release from 1.6 to 1.7 in source files for generated 
pages/deploy files in web site

   * [PIVOT-916]:
        r1624381: Make the default uncaught exception handler available as a 
separate method in ApplicationContext so that user applications that implement 
the Application.UncaughtExceptionHandler interface can have access to the 
default implementation if they need it. 

   * [PIVOT-923]:
        r1611029: (final part of the patch) merge from 2.0.x

   * [PIVOT-948]:
        r1756439: Add an example program that both illustrates how to use data 
binding (in this case, "selected item binding" with a ListButton), but that 
also serves as a check on the fix for this issue.  Having an unselected item 
used to cause the bind mapping not to be called during a "store" operation.  
Now it is called always (if set), and the mapping is responsible for 
translating between the unselected state/index and the underlying stored value. 
 Merged revision 1756437 from branches/2.0.x to trunk. 

   * [PIVOT-949]:
        r1690655: second part of the fix (enhancement, add the ability to 
specify a bxml file to load even as a variable in a script)

   * [PIVOT-951]:
        r1602234: Only first click is received by container listeners  Sample 
application provided by user to test this issue.   Usage:  javac Pivot951.java  
       java Pivot951  Click on the window, and watch the console output for 
messages.  This is a merge of revision 1602233 from branches/2.0.x to trunk.  

   * [PIVOT-953]:
        r1610563: Update startup positioning code to make sure that the final 
position for a desktop application is within the current virtual screen area.  
This is a better fix for earlier code that attempted to make the x and y values 
never go negative for two reasons:  the previous code only worked on the --x 
and --y values specified on the command line, but not for saved positions, and 
for multiple monitor configurations where the secondary monitor(s) are left / 
above the primary monitor, the actual virtual screen coordinates could 
legitimately be negative and the window is still visible.   So, compute the 
bounds of the whole virtual screen space, by getting the union of all the 
screen device bounds, then make sure the x and y coordinates (just before using 
them to set the main window position) are within the virtual screen boundaries. 
 

   * [PIVOT-954]:
        r1611829: Resolve "IndexOutOfBoundsException" thrown from TextAreaSkin 
when you have either an empty document or any document where the first line has 
nothing (except the line ending), and you double click on the first line (or 
any line in the case of an empty document).  Basically we just need to catch 
the "start" value being negative before trying to get the character there. 

   * [PIVOT-955]:
        r1616229: fix draw background when themeIsFlat in TerraSpinnerSkin 
(width was less than required, so a little artifact was visible but mainly with 
Calendars).

   * [PIVOT-956]:
        r1622265: add documentation (in JavaDoc package file) for the new flag 
(transitionEnabled).

   * [PIVOT-957]:
        r1621280: Remove deprecated classes and methods

   * [PIVOT-958]:
        r1678312: updated the new default font (from Verdana to Dialog), but 
only for trunk

   * [PIVOT-959]:
        r1631371: merge from 2.0.x

   * [PIVOT-960]:
        r1828778: Update the timing part of BindTest to report time in seconds, 
not nanoseconds.  

   * [PIVOT-964]:
        r1712175: Fix another place where the "nashorn.global" object has to be 
searched in order to find script variables defined when using Java 8.  The 
trick is that now script variables are a part of the Nashorn global space, 
which is a sub-object of the regular namespace.  So, the additional steps which 
are necessary in the case that a variable is not found would be to then get the 
"nashorn.global" object, and if it exists transform it into a "Bindings" (if 
possible) and then search for the value there.  Note: this fixes the particular 
case reported by user, but I'm pretty sure there are other places that needs 
this same treatment. 

   * [PIVOT-965]:
        r1817960: Fix the problem introduced by earlier changes that caused two 
or more listener list callbacks to overwrite earlier ones, causing the wrong 
callback to be invoked.  Solution is to create a new engine for each callback 
function defined, so they are unique. 

   * [PIVOT-966]:
        r1678319: add some more info in console (merge from 2.0.x), and fix 
some warnings

   * [PIVOT-967]:
        r1675517: Fix the JSONSerializer to correctly deal with special 
characters inside string values (especially \r and others).  Add the ability to 
directly support java.util.Map values in an object passed to 
JSONSerializer.writeObject (by instantiating a MapAdapter around the 
java.util.Map object).  Update the JSONSerializerTest to test these changes 
(both read and write). Update the "map.json" with test values. 

   * [PIVOT-968]:
        r1684802: Implement some Java 7 changes to use try-with-resources in 
various places where it improves code readability and reliability.  Some other 
miscellaneous code cleanup (mostly reformatting of lines that were wrapped from 
an earlier change). 

   * [PIVOT-969]:
        r1684960: Fix the broken build because the concrete instances of 
ApplicationContext don't actually implement the UncaughtExceptionHandler 
interface.  So, fix this by implementing in ApplicationContext itself.  Also 
rearrange the exception handling there.  Make an override of 
"handleUncaughtException" to handle either with or without the thread.  Then 
modify the "catch" statements in the ApplicationContext subclasses to catch 
"Throwable" instead of "Exception".  Make a "finally" clause in a couple of 
places to remove the application at the end, no matter if an exception is 
thrown.  Note: this still doesn't address how to set the uncaught exception 
handler in threads we create (such as for Task).  Still working that out. 

   * [PIVOT-971]:
        r1817316: Update the CheckedListViewTest program to test/demo the 
tri-state checkbox feature.  Add an Adapter class to ListViewItemStateListener 
since it now has two methods in the interface. 

   * [PIVOT-972]:
        r1688484: Fix some more bugs with the calculator tutorial: * Implement 
the difference between "Clear" and "All Clear". * Highlight the current 
operator button (by changing border color). * When two operators are pressed in 
a row, just change operators,   don't do the prior operation. * Fix backspace 
not to do it twice, and to work properly when clearing   the last digit.  

   * [PIVOT-974]:
        r1691618: Fix BXMLSerializer to correctly deal with the new Java 8 
Nashorn script engine by doing two things: 1) Accessing global variables needs 
to be done through the "nashorn.global" object. 2) The 
"nashorn:mozilla_compat.js" script needs to be loaded first before any    other 
scripts are executed.  This change implements these two fixes. 

   * [PIVOT-975]:
        r1692159: Build problems with Java 1.8.0_45  First, enable Java 1.8 as 
a valid Java version number.  Then, there are errors related to 
LocalManifestAdapter being a second class within the LocalManifest.java file.  
It should be moved to its own source file.  This is a merge of revision 1692157 
from branches/2.0.x to trunk.  

   * [PIVOT-976]:
        r1745405: More Javadoc fixes for the warnings from Java 8.  This is the 
LAST!  All the remaining warnings have been removed.  NOTE: this does NOT mean 
that all the Javadoc is correct, complete, informative, helpful, or otherwise 
as good as it could be.  All this means is that the Javadoc processor no longer 
complains about it when you run "ant doc".  

   * [PIVOT-977]:
        r1694284: Correct a typo in one of the test programs.  

   * [PIVOT-978]:
        r1817805: PIVOT-999: The change to TerraCalendarSkin to use 
NumericSpinnerData with the proper date range results in a potentially infinite 
loop resetting the year value, because the "index" is no longer the year value 
(the "item" is). So, we need to change all the year spinner interactions to use 
the selected ITEM instead of the INDEX.  Also correct a calculation error in 
the TerraCalendarButtonSkin painting code that was chopping off the right side 
of the date display, caused by the changes around padding widths.  Add a 
diagnostic message to one of the exceptions in BXMLSerializer so we could 
actually track down this problem. 

   * [PIVOT-982]:
        r1727872: Any file name typed into the Save As mode file name input for 
a VFS Browser Sheet would reject it with the field flagged as an error.  This 
was bascially because code ported from the regular file browser didn't do the 
right thing to resolve the file and ended up with a "file://" URL (for a local 
file) rather than a URL on the remote host.  Using the current base directory 
to resolve the name results in correct behavior for at least the normal cases.  
This hasn't really been tested yet with other edge cases. 

   * [PIVOT-983]:
        r1727931: A similar bug was fixed in the VFS File Browser.  The issue 
is that the "getRowAt" method of TableView returns -1 if the given y position 
is past the end of the data length.  Trying to get row -1 from an ArrayList 
gives this IllegalArgumentException.  The solution implemented in the previous 
fix was simply to check for the -1 row value and exit early in that case.  So, 
port that fix to the regular File Browser. 

   * [PIVOT-984]:
        r1818163: Actually use one of the CSSColor values for the tutorial 
"Ruler" class -- its background color is CSSColor.LightYellow, so specify that. 

   * [PIVOT-985]:
        r1814125: PIVOT-985 (addendum):  Add tests to ColorUtilitiesTest to 
specifically test the light/dark gray colors as being valid and usable. 

   * [PIVOT-986]:
        r1735288: One more minor correction (that probably doesn't even make a 
difference), but for consistency's sake:  use the "isFileHidden" method in the 
other place that was just calling "isHidden" in the VFS Browser code. 

   * [PIVOT-987]:
        r1740570: Address the different handling of script return values from 
attributes versus elements.  The script return value was being ignored in 
AttributeInvocationHandler and the default values were always being used.  But 
in the similar code in ElementInvocationHandler the script result was being 
used and the defaults only used if the script method returns nothing.  Bring 
the code for attributes in line with that for elements.  

   * [PIVOT-988]:
        r1747431: Fix the inclusion check in 
TextPaneSkinElementView.getCharacterBounds(). It was using >= offset && <= 
offset + length, when it should be just: >= offset && < offset + length Thus 
the previous element was used to get the paragraph bounds, which results in the 
position being on the previous line.  This fixes a variety of problems having 
to do with selections in TextPane!  

   * [PIVOT-989]:
        r1747445: Use the correct Charset in StringSerializer.writeObject().  
The "getBytes()" call was not specifying any Charset, thus getting the platform 
default (which on Windows is usually Win-1252), which is usually not the same 
as the UTF-8 default which is used in this class.  So, use the given Charset.  
Also, in "trunk", use the StandardCharsets.UTF_8 value, instead of searching by 
name. Note: this part of the change will not be propagated to "2.0.x" because 
it still needs to compile under Java 6.  Update the StringSerializerTest with a 
specific test of this, and include a byte dump so we can actually examine the 
bytes to make sure (the console output, especially on Windows, is not helpful). 

   * [PIVOT-990]:
        r1810561: There was still a problem in the second code path: x/y + 
width/height greater than display width/height.  So, set the x/y to the display 
width/height minus the menu size, max with 0 so we don't go off the top/left.  
This seems to work very well with all sizes of menu/display. 

   * [PIVOT-992]:
        r1783447: Change the "getSelectedText" method of TextPane to just use 
the equivalent call to "getText(start, finish)" instead of doing a 
"getSelectedRange()" and serializing that.  The results will be different in 
that if the selection doesn't actually encompass an end of line, then the 
result will not contain a spurious newline.  The difference affects 
find/replace operations (for instance) that would be calling "getSelectedText" 
and doing a find operation on a piece of text that doesn't actually appear in 
the document (like "abc\n").  I suspect that this new method is actually a bit 
faster than the old way, although that probably makes little to no difference 
in actual use. 

   * [PIVOT-993]:
        r1792531: Update Version.java to correctly calculate the long 
"getNumber()" value.  Update IllegalArgumentException messages to indicate up 
to 7FFF inclusive.  Add a core "VersionTest.java" to test the new Version 
parsing and "getNumber" calculations. 

   * [PIVOT-995]:
        r1792559: Need to reload the "typeImageView" after an Alert or Prompt 
window close event has cleared it, when the window is re-opened. Otherwise the 
message type icon will not be shown. 

   * [PIVOT-996]:
        r1792807: Yet more safety measures:  Parse the version strings inside a 
new "safelyDecodeVersion()" method that traps all exceptions and provides an 
"empty" version (that is, "0.0.0_00") in case of any errors.  This is what the 
Pivot version already did, so use the same technique for the JVM and Java 
versions.  Change the Javadoc for the three accessor methods to note this 
change of behavior in case of errors.  Note: This should make application 
startup possible no matter what might happen to version strings in the future.  
We don't want these types of urgent issues to come up ever again, to where the 
user application won't start just because of a JVM update/change. 

   * [PIVOT-997]:
        r1795444: Remove premature references to TextInputMethodListener which 
were inadvertently added in addition to the changes for WTKListenerList.  

   * [PIVOT-998]:
        r1796667: Update build requirements for "trunk" to Java 8. First step 
is to change the compiler source and target to 1.8 in the "build.properties". 

   * [PIVOT-999]:
        r1888966: PIVOT-1032,PIVOT-1047: Clean up WindowSkin: * Implement 
focusTraversalPolicy as a static lambda * Remove methods that are the same as 
the default interface methods * Fix checkstyle problems * Add 
@FunctionalInterface to FocusTraversalPolicy  

   * [PIVOT-1001]:
        r1801111: Fix problem where a TextInput without text and with an empty 
prompt (not null, but empty) can cause an IllegalArgumentException from an 
empty text iterator passed to TextLayout. 

   * [PIVOT-1005]:
        r1808126: Fix the deletion of paragraph terminator simply by checking 
if remove count is <= 1.  This fixes the basic issue that you can't delete the 
terminator, but there are still other problems that need fixing. 

   * [PIVOT-1006]:
        r1809109: Fix the calculations on when to include the composed text at 
the end of a paragraph to ignore any parent TextSpan nodes if necessary. This 
would be the case when the hierarchy is Paragraph->TextSpan->TextNode. 

   * [PIVOT-1007]:
        r1810613: Several changes to get Ctrl-Tab and Ctrl-Shift-Tab to cycle 
among the current tabs in a TabPane container. 1. Implement the logic in 
TerraTabPaneSkin.java. 2. Add methods to EnumSet to create enum sets ("of", 
"addAll", "noneOf")    that are similar to the methods in Java's EnumSet. 3. 
Add an "areAnyPressed" method to Keyboard to check a set of modifiers. 4. 
Change ComponentSkin to only do the "Tab" logic there is none of the    
modifiers except SHIFT are pressed.  This allows Tab to cycle through    
components in a container while Ctrl-Tab moves around the tabs (each    of 
which is a container). 5. These other changes use the new EnumSet methods for 
convenience. 

   * [PIVOT-1008]:
        r1811245: Add support for Enum values for automation IDs in two places: 
* Automation.java - support these values in all the basic methods (get, add,   
and remove). * Component.java - add another flavor of "setAutomationID" that 
accepts an   enum value as the ID parameter.  Note: the values are still stored 
as strings for backward compatibility, but enum values are accepted as a 
convenience, and so enums can be easily used for compile-time checking of ID 
values. 

   * [PIVOT-1009]:
        r1811271: Add a field to Task to record (as a WeakReference) what the 
thread was that executed the task. Add an accessor to get the value. Add a new 
class WTKTaskListener that implements a default piece of code for the 
"executeFailed" callback that calls the 
ApplicationContext.uncaughtExceptionHandler with the Task fault value, along 
with the thread context the Task was run under. 

   * [PIVOT-1010]:
        r1813048: Add LocalDate and LocalTime support to our CalendarDate and 
Time classes to facilitate interaction with the new Java 8 time classes.  Also 
make some other changes: * Add a CalendarDateTest class to test these things. * 
Beef up the TimeTest class to actually do some asserts, and to test the   
LocalTime conversions. * Add more supported formats in CalendarDate.Range and 
Time.Range "decode"   methods: JSON array/list format, and simple CSV list 
(similar to other   changes to Bounds, Span, etc.) * Add "equals" and 
"hashCode" methods to these Range classes. * Use Utils methods to check 
parameters. 

   * [PIVOT-1011]:
        r1822906: Remove duplicate import from previous changes. 

   * [PIVOT-1012]:
        r1822921: Fix the remaining calls to GraphicsUtilities.decodeColor that 
did not previously have the color name for the error message. There are a 
couple of calls that do not have it (ColorItem, for instance), and that should 
be okay. 

   * [PIVOT-1013]:
        r1815159: Implement the button press action queuing for MenuButton.  
PIVOT-1012:  Implement parameter validation using "Utils" methods in 
TerraMenuButtonSkin. 

   * [PIVOT-1014]:
        r1888682: PIVOT-1032,PIVOT-1056: Changes to NumberRuler: * Reduce skin 
"setter" methods * Move default settings to theme defaults file * Fix 
"checkstyle" messages  

   * [PIVOT-1016]:
        r1817938: Add tests of all the other potential new Java version strings 
found in the JEP-223 paper, just as a final check. 

   * [PIVOT-1017]:
        r1818707: PIVOT-1019, Tweak the positioning of horizontal ruler text, 
and clean up some code. Copy a bunch of the code and concepts from RulerSkin to 
NumberRulerSkin for drawing the horizontal ruler and text. 

   * [PIVOT-1018]:
        r1818230: Propagate the scroll pane background color to the default 
corner components when they get made visible so the correct background is 
painted. 

   * [PIVOT-1019]:
        r1819087: Several updates to NumberRulerSkin: * Add a new "rowPadding" 
style so this ruler can be used nicely with   TableView. * Fix the drawing 
because with long lists (large scroll pane size) we   exceed the usable 
precision for "float" (which is somewhere around   800,000 lines in the 
LargeData demo). Do this by creating a translated   graphics using "int" 
coordinates to draw in and then drawing with   "float" values inside the 
translated one.  This is essentially what   TableView and ListView do with 
their renderers.  Note: there are now so many styles with NumberRuler it would 
be good to consolidate them somehow (internal "padding", "markerInsets", and 
now "rowPadding"). 

   * [PIVOT-1020]:
        r1875864: Add some more predefined styles to the Style enum; things 
that are used by third-party applications, and so could be useful. 

   * [PIVOT-1021]:
        r1822661: Fix a problem with the updated selection after undo at the 
end of the document. 

   * [PIVOT-1022]:
        r1820931: Make similar changes to Queue and all its implementations: 
add a "maxLength" property and implement checking this length before queuing a 
new item.  Add a test in QueueTest.java.  Update Javadoc in Queue.java and 
Stack.java about what the max length/depth means for the enqueue/push process. 

   * [PIVOT-1023]:
        r1820938: Implement Ctrl/Cmd-U to unselect everything in TableView 
skin. Update one test program to allow testing of the multi-select features.  

   * [PIVOT-1025]:
        r1821520: Fix the Decimal and Formatted Validators to allow a leading 
"+" sign in the "isValid" and "parseNumber" methods. 

   * [PIVOT-1027]:
        r1855341: Finish adding the annotation to the rest of the places where 
it applies. 

   * [PIVOT-1028]:
        r1823598: In TerraListViewSkin when the underlying data list has items 
removed or is cleared, and the "highlightIndex" is within the affected range, 
then reset it so we don't get the IndexOutOfBounds when leaving the now 
differently-sized window. 

   * [PIVOT-1029]:
        r1824382: Updates to Meter code, including adding the first ever test 
of a "wtk" Component here: * Meter.setText was firing the listener every time, 
not only when the   text actually changes. * TerraMeterSkin had no methods to 
set the colors via int indexes into   the Theme colors. * Introduce "MeterTest" 
which basically only test for the listeners   being fired at the proper times 
(that is, when things actually change). * Had to fix the "test" macro in the 
"build.xml" so that the built .jar   files are included in the classpath so 
that this new Component test   will work (otherwise the Theme doesn't get 
loaded). 

   * [PIVOT-1030]:
        r1824532: Update FileSizeFormat to allow for just byte values.  Change 
the formatting to put one fraction digit for scaled values less than 10, and 
otherwise to use none.  Code is simpler and shows small file sizes as exact 
number of bytes, which was the point here. Also changed the file browser skin 
to show blank size for directories (as was already done in the VFS Browser 
skin). 

   * [PIVOT-1031]:
        r1825599: Fix Javadoc from last change. 

   * [PIVOT-1032]:
        r1913476: Last set of changes to reduce "checkstyle" violations, plus 
some code enhancements. 

   * [PIVOT-1033]:
        r1829940: Update the parsing of command line options in 
BrowserApplicationContext and DesktopApplicationContext to allow the "--option" 
form, which sets the value in the "properties" map to "TRUE".  Syntax error if 
there is "key=" (i.e., with no value after the "=") or there is more than one 
"=", or the key itself is empty. 

   * [PIVOT-1034]:
        r1833140: Several things related to theme initialization: * Allow 
ThemeNotFoundException to have a custom message. * Change several other 
exceptions in Theme and TerraTheme to use ThemeNotFoundException   with a 
custom message. * Simplify the theme classes by using the existing "set" method 
instead of accessing   the "componentSkinMap" directly, and make it private. * 
Add checks in that "set" method so that if and override is made that the second 
  class is a subclass of the existing one.  Just a safety check. * Make a bunch 
of style cleanups in this files (PIVOT-1032). 

   * [PIVOT-1035]:
        r1837729: Change build number to the "Last Changed Rev" reported by SVN 
so that: * The contents of the build is traceable to SVN revisions. * The build 
number does not change unless the build content changes. * The build number 
increases for every change, and is a "global" value   (so that anyone who does 
a build with the same contents will have    the same build number). 

   * [PIVOT-1036]:
        r1834042: Add the Japanese resource files. 

   * [PIVOT-1037]:
        r1833950: Add checks for this specific condition, namely that the count 
of nodes to be removed (from the visible nodes list) is out of range of what is 
currently in the children list, and just ignore the request. 

   * [PIVOT-1039]:
        r1840595: Address the remaining deprecation warnings (about 
Class.newInstance) in all the source. The remaining warnings are about the 
deprecation of JApplet, which is another WHOLE issues entirely. 

   * [PIVOT-1040]:
        r1840591: Add the (simple) renderer that allows these vertical buttons. 
Add a test program to illustrate/test the renderer. 

   * [PIVOT-1041]:
        r1838770: Add a "Constants" class and put a few common values into it. 
I have looked for other things, but nothing else stands out as being a "common" 
constant... PIVOT-1032: Also fixed some style errors in these files along the 
way. 

   * [PIVOT-1044]:
        r1861203: Fix BXMLExplorerDocument to use the new Files methods to 
avoid instantiating a FileInputStream. 

   * [PIVOT-1045]:
        r1864990: Start refactoring the read-only collections to use a common 
base class: * Implement ReadOnlySequence which just throws the exception for 
the applicable methods. * Redo ArrayAdapter, EnumList, ImmutableList, and 
NumericSpinnerData as the first fruits. * Misc. changes to ArrayList to spiff 
it up, including removing the now redundant "addAll"   method, adding a 
constructor with capacity and comparator and redoing binarySearch to   use the 
default comparator from Arrays.binarySearch. Add a test of that to 
ArrayListTest. * Correct some small style errors as well (mostly Javadoc and 
final parameters). 

   * [PIVOT-1046]:
        r1864994: Implement the new ColorUtilities methods, deprecate the old 
one and refactor all callers to use the new methods. 

   * [PIVOT-1047]:
        r1889346: PIVOT-1032: Make TextInputSelectionListener back into a 
FunctionalInterface by removing default implementation; fix "checkstyle" 
problems. 

   * [PIVOT-1051]:
        r1885491: Update some documentation around "decodeFont". 

   * [PIVOT-1053]:
        r1887560: Convert the remaining code (demos, etc.) to using new 
"putStyle", "getStyle", and "copyStyle" methods in Component. 

   * [PIVOT-1054]:
        r1887788: Fix the drawing problem with border titles at larger font 
sizes. 

   * [PIVOT-1056]:
        r1888682: PIVOT-1014,PIVOT-1032,Changes to NumberRuler: * Reduce skin 
"setter" methods * Move default settings to theme defaults file * Fix 
"checkstyle" messages  

   * [PIVOT-1057]:
        r1888683: Add "thick" focus rectangle support to TerraTheme. * Add the 
new property to theme description files. * Add code and property to TerraTheme. 
* Add new method and constants to GraphicsUtilities to select a nice "thick" 
stroke. * Consolidate the determination of the focus rectangle stroke to a new 
method   in ComponentSkin, which everyone calls. * Tweak drawing in a couple of 
places to make the thicker focus rectangle play   nicer with the other drawing 
code. 

   * [PIVOT-1058]:
        r1888842: PIVOT-1032: When dealing with files in FileBrowser, use the 
canonical version in order to tell if the file really belongs to the root 
directory (necessary if the root is "." or "..", for instance). Fix 
"checkstyle" problems. 


================================
Other Changes/Enhancements (318)
================================
   * Revision r1600603: clarified TablePane Column and Row sizing, as written 
here: http://apache-pivot-users.399431.n3.nabble.com/TablePane-td2037782.html 

   * Revision r1600878: clarified TablePane Column and Row sizing, and add a 
sample inside text 

   * Revision r1602469: update trunk with latest changes in 2.0.x

   * Revision r1603530: Not part of a specific issue, but this change is a 
further attempt to make TextArea and TextPane more compatible (i.e., useful as 
drop-in replacements) for text-only processing.  Specifically, this change 
basically converts the existing "insert" and "delete" methods in TextPane into 
"insertText" and "removeText" interfaces, which mimic what is in TextArea, 
while leaving "insert" and "delete" there to call the new methods. 

   * Revision r1603751: update forms tutorial with ListButton, to better show a 
Form containing different kind of component (and in Component Explorer for 
example disable the form and see what happens) - merge from 2.0.x

   * Revision r1605125: trim-whitespace

   * Revision r1610980: source cleanup in latest eclipse, using Pivot profile

   * Revision r1614462: Corrected a misspelling in an error message. 

   * Revision r1615517: cleanup and fix some eclipse warnings

   * Revision r1615519: cleanup and fix some eclipse warnings

   * Revision r1615963: fix some eclipse warnings, but in a better (should be 
more performant) way; trim-whitespace

   * Revision r1622192: cleanup: clarified/commented unused code (real, or 
false positive and there add SuppressWarnings annotation)

   * Revision r1623361: small refactor: define/use a constant to clarify its 
usage

   * Revision r1624277: trim-whitespace, and fix some eclipse warnings

   * Revision r1635654: Update the build.xml to use the ${permissions} setting 
from the build.properties to set the .jar attribute "Permissions".  Change the 
default from "sandbox" to "all-permissions" in order to get an all-privileged 
applet. 

   * Revision r1642790: Change the code in ChartView.java "setValueMarkers" 
method to not create a new list listener every time.  The listener is notifying 
the skin (basically) when changes in the value markers list happen, so it only 
needs to be created once and then assigned to the new list every time the list 
changes.  And it must be removed from the old list at that time.  Change the 
logic to look like all other such occurrences.  Basically, heap monitoring 
showed the large number of these listener objects being created, which are 
unnecessary. 

   * Revision r1675204: Code cleanup:  Fix the Javadoc for 
Container.requestFocus to correctly document the return value (it actually 
returns a boolean, not a Component reference, just like the Component base 
class method). 

   * Revision r1678311: fix comment, from multiple to single line

   * Revision r1681231: Code enhancement:  Add two new convenience methods to 
CalendarDate: * addMonths(int months) * addYears(int years)  to allow quick 
navigation and arithmetic using CalendarDate values.  

   * Revision r1684539: Clean up some of the line wrapping that was done that 
has left a number of comments looking very strange. 

   * Revision r1684544: Minor cleanup of the Pivot859 test program: * Change 
the status message from the "Clear" button. * Measure the elapsed time more 
closely to the actual read   from the URL input stream, and measure using 
"System.nanoTime"   for more precision. 

   * Revision r1684545: Code cleanup:  Use try-with-resources in the Image 
loading code to simplify. 

   * Revision r1684760: Code cleanup:  Add an "addAll(Collection<T>)" method to 
ArrayList as a convenience for adding all of any other collection to an array 
list.  I plan to use this in other places, but adding it as a general method to 
the List<T> interface was too disruptive. 

   * Revision r1684798: Add some Javadoc to TerraTableViewSkin to explain the 
new "editOnMouseDown" property (both on the "get" and the "set" methods). 

   * Revision r1687873: Adding a new calculator directory to Pivot tutorials.

   * Revision r1688781: trim-whitespace

   * Revision r1688783: update Servlet API to that provided with latest 
Tomcat-7.0.x (7.0.62), or Servlet-3.0, not a specific requirement but useful to 
refresh this dependency

   * Revision r1694583: Code cleanup:  Don't package up "*.bak" files (editor 
artifacts).  Add some new security-related attributes to the .jar file 
manifests. 

   * Revision r1694754: Code cleanup:  this should eventually go into a JIRA 
issue...  Small changes to allow ComponentNode and ImageNode to actually work 
inside a TextPane.  Not sure of the reasons, but it was very difficult to get 
this to work without turning both into subclasses of Block instead of Node.  
Now, at least, one can insert either straight into a Document and then into a 
TextPane and they will work.  Update the HyperlinkButtonTest program to 
illustrate this. 

   * Revision r1694851: Code cleanup:  Allow ComponentNode inside a TextPane to 
contribute its text to the overall text of the component.  Do this by 
extracting whatever text I can get from whatever component is being used.  The 
only exceptions are ListView, TableView, etc. which have lists of data.  
Otherwise Containers search their children, and Label, Button, TextInput, 
TextArea and TextPane all contribute their text.  

   * Revision r1701059: Correct an oversight in "TerraTheme" where the new 
FillPane class did not have its TerraFillPaneSkin registered in the skin map.  
The only difference this might make is the default background color for a 
FillPane, since this is the only thing implemented in this file (i.e., all the 
other skin functionality is in FillPaneSkin). 

   * Revision r1703277: Code cleanup:  Reorganize the "build.xml" so that the 
tests are compiled after everything else, in case there are new methods that 
the tests depend on that won't compile until the core/wtk .jar files are built. 
 Add a copy of .bxml, .json and .png files in both the tests and tutorials 
directories, so you can just change to the xxxx/ant-bin directory and run tests 
with "java org.apache.pivot....." (that is the class name of the test or 
tutorial).  All the resources will be in place to do that now.  This is a merge 
of revision 1703276 from branches/2.0.x to trunk.  

   * Revision r1703293: Code cleanup:  After the last change to copy some more 
of the resources into place so tutorials and tests can run directly, that broke 
the .jar packaging (caught by the Jenkins jar signing task) because there are 
now lots of duplicate files.  So, exclude these files in the "ant-bin" 
subdirectories from the .jar packaging (they come from the source directories 
instead).  This is a merge of revision 1703292 from branches/2.0.x to trunk.  

   * Revision r1712160: trim-whitespace

   * Revision r1712423: Code cleanup:  Make a new method in the 
org.apache.pivot.utils.Utils class which does the common operation of checking 
an argument for null and throwing "IllegalArgumentException" if it is.  This 
will simplify and standardize a lot of code, since this pattern appears so 
often, whenever objects are passed as arguments.  And it will simplify getting 
an understandable message thrown out in every case.  Before, there were many 
places that just threw the plain exception without a detail message, but this 
change will simplify the checking so there can always be a meaningful message.  
Change just a few files in the "wtk" area that do a lot of this checking 
already. Of course, there are many more places that could use this treatment... 
 

   * Revision r1717360: Add a demo program to illustrate how to use 
ScaleDecorator for zooming in and out of an image. 

   * Revision r1729480: Clean up the DataBindingTest so that it actually works 
now.  This actually only involved simplifying the renderers to only implement 
the "toString(Object)" methods.  But, make the values more interesting, and add 
explanatory stuff to the GUI so it is more understandable what is actually 
happening.  Note: this uses the HyperlinkButton class that is not available in 
the 2.0.x branch, so this will need to be changed in order to backport it. 

   * Revision r1729493: Further refinement of the DataBindingTest program:  
implement the "store" via a new button in the GUI, and update the "context" 
display of the values after the store operation. 

   * Revision r1734986: Code cleanup:  Make an enhancment to Utils.checkNull() 
to allow an empty descriptiont string to also count for throwing a "plain" 
IllegalArgumentDescription (i.e., without a message).  This will eliminate 
weird messages in this case. 

   * Revision r1734988: Code cleanup:  Add Javadoc to the "Span" class.  
Retrofit all the null parameter checks to use the new Utils.checkNull() method 
for consistency. Note: there is NO change in functionality with this, except 
that all the IllegalArgumentExceptions will now have a message instead of none. 

   * Revision r1735007: Misc. TextPane improvements: * Add some Javadoc, mostly 
pertaining to the offsets and whether they   are document-relative or 
block-relative. * Notably add the "getText(start, end)" method so TextPane can 
(almost   completely) be used as a drop-in replacement with added functionality 
  for a TextArea control. * Add some error messages to the 
IllegalStateExceptions that are thrown   everywhere. 

   * Revision r1735008: Misc. TextPane changes (more): * Add the supporting 
methods in ComponentNode, Node, and TextNode   to support the "getText(start, 
end)" method just added to TextPane. * Add some Javadoc (mostly about offsets 
being document-relative or   node-relative). * Correct some weird Javadoc line 
breaks. 

   * Revision r1743220: Two small fixes in the Query class: * Use the 
"getContentLengthLong()" method to get the complete content length   (instead 
of the possibly truncated 32-bit length). * Call the "QueryListener.failed()" 
method before we throw the QueryException   if the server itself returned a 
"not OK" status.  This seemed to be an   oversight in the original code since 
every other place we throw we also   call this listener method. 

   * Revision r1747375: Code cleanup:  some time ago, the whole source in 
"trunk" was reformatted automatically to wrap at a certain width.  
Unfortunately this made some code pretty ugly by making a bunch of short 
comment lines with the leftover stuff.  So, correct some of that. 

   * Revision r1747376: Code cleanup:  Add some explanatory Javadoc to some of 
the TextPane code because it is not clear sometimes what offsets mean and what 
methods do to the novice user. 

   * Revision r1747377: Enhancement:  Add a "userData" property to the TextPane 
"Node" class so that applications building a document can attach their own data 
structures to the various nodes of the document for cross-referencing or other 
uses (such as syntax coloring). 

   * Revision r1747378: Code cleanup:  some time ago, the whole source in 
"trunk" was reformatted automatically to wrap at a certain width.  
Unfortunately this made some code pretty ugly by making a bunch of short 
comment lines with the leftover stuff.  So, correct some of that. 

   * Revision r1747379: Code cleanup:  One more line wrapping change.  Plus 
there is a bug (looks like copy/paste error) where the wrong node view is used 
for the character count.  I don't know what symptoms it would cause, but it is 
clearly wrong, based on all the other times similar logic is used.  

   * Revision r1747382: Code cleanup:  Various changes to TextPane: * Use the 
new Utils.checkNull method in a lot of places. * Add a "checkDocumentExists()" 
method and use that for a common check. * Add some explanatory text to several 
IllegalArgumentExceptions. * Deal with all the various types of line endings 
when reading text   from a stream or file, and construct a canonical form of 
paragraph. 

   * Revision r1747383: Code cleanup:  Fix more comments that were wrapped in 
an ugly manner.  

   * Revision r1747386: Add a convenience method to TextPane's Element class to 
get the whole text of the element, including all children, paragraph line 
endings, etc.  Note: this parallels the more comprehensive code already in 
TextPane to get subsets of the text.  We should probably move that code into 
Element so there is only one copy of the logic. 

   * Revision r1747438: Code cleanup:  Add some Javadoc to ListView.java to 
explain some things better. 

   * Revision r1747458: Code cleanup: Add an RGB display of each theme color to 
the ColorPaletteTest so we can visualize/inspect the current theme color 
values.  

   * Revision r1748459: Code cleanup:  Add Javadoc to the existing Bounds 
class.  Also add null argument checks in several places that lacked it (for 
consistency with all the other checks that were there).  A little reformatting 
of the code to make it a bit more readable.  

   * Revision r1749542: Wrong positioning of cursor in TextPane when using the 
END key. 

   * Revision r1756438: Add Javadoc plugin to Maven configuration. 

   * Revision r1759036: Code cleanup:  Add two more argument checking methods 
to Utils.java and use them in a couple of places to test their utility.  Also, 
put some "TODO:" comments into HyperlinkButton where it might make more sense 
to throw an exception early on rather than much, much later failing silently.  

   * Revision r1759042: Code cleanup:  Add a convenience "getString" method to 
Resources.java for the (very) common case that the resource object will be a 
string.  Use it as an example in the Alert.java code for the message type 
strings.  BTW, change some of the null argument checks in Resources.java to use 
the new Utils.checkNull() method. 

   * Revision r1759043: Code cleanup:  Use the Utils.checkNull() method in a 
bunch of places where we check for null arguments and throw 
IllegalArgumentException.  This gives us cleaner code, cleaner and more 
consistent error messages and gives an opportunity for internationalization of 
these messages since they will be in one place. 

   * Revision r1779123: Update mergeinfo for r1703029 into trunk

   * Revision r1791190: Add a convenience method to TreeView to expand all the 
parents of a particular path so that the node at the path is fully exposed.  I 
needed this in our application, and it seemed both useful and easy to 
implement. Method is "expandToBranch(Path)".  

   * Revision r1792496: update SVGSalamander to latest stable

   * Revision r1792556: Code cleanup:  Initialize "message" parameter in 
Alert's no-arg constructor to an empty string to avoid IllegalArgumentException 
when Label text would be set to null initializing the Alert skin. 

   * Revision r1792629: Code cleanup:  Just some tiny changes to the XMLViewer 
application, suggested as I was getting it to work again with Nashorn scripting 
engine. 

   * Revision r1792630: More work on using the Utils.checkNull utility method 
and his brothers in more key places.  Also moved some of the index checking 
methods into Utils as well, so they can be used outside of ArrayList (for 
instance). 

   * Revision r1792636: More work on using the Utils.checkNull utility method 
and his brothers in other places. 

   * Revision r1793399: Add some new convenience methods for the Alert class -- 
a new "error" alert that sets MessageType.ERROR, and overrides to set the 
preferred width of the window also. 

   * Revision r1793523: Fix use of Java 8 method that is not supported by Java 
7 (recent changes to BXMLSerializer.java). 

   * Revision r1794420: Add functionality to ScriptApplication such that it 
will look for the "src=" file as a local file if it can't find it in the 
classpath as a resource.  Add a "script" executable script that instantiates 
ScriptApplication with the argument as the "--src=" parameter, for convenience 
in running this app with various of the test "bxml" files.  

   * Revision r1794425: Add a "script.bat" as a shortcut way of running 
ScriptApplication conveniently from the command line on Windows.  The *nix 
script has already been added. 

   * Revision r1794915: Code cleanup:  do some internal refactoring of the 
keyboard handling in TerraTextInputSkin just for clarity. 

   * Revision r1795128: Trying to debug why unit tests are failing on Jenkins: 
* Halt and fail the build if the unit tests fail. * Turn on "verbose" for the 
tests to see exactly what's wrong   (note: this should be reverted once the 
cause is pinpointed).  

   * Revision r1795130: Remove "haltonfailure" for unit tests to allow all 
tests to complete.  

   * Revision r1795135: Tweak some line wrapping and do a static import to 
reduce line length. 

   * Revision r1795236: Reset test verbosity to "false" now that we have 
identified and resolved the cause of the Jenkins test failures.  

   * Revision r1795242: Extend the ScriptApplication program to be able to 
display BXML files that don't have a Window (or a subclass of it) as the 
outermost component by creating a default Window in that case and making the 
BXML component its content.  Update one of the TextInput tests with one other 
example for testing. 

   * Revision r1795246: Use some Utils methods in ListenerList to simplify / 
regularize some of the parameter validation checks.  Make a new 
"checkZeroBasedIndex" method in Utils (and use it in ListenerList) to simplify 
the oft-used case of checking an array/list/whatever index against 0..size-1.  

   * Revision r1796076: Add two convenience classes for ListView and Spinner 
that implement the respective ItemBindMapping interfaces in terms of an Integer 
value that represents just the index value for the selected item. 

   * Revision r1796077: Correct misplaced opening braces, according to the 
existing Pivot style guidelines. 

   * Revision r1796188: Add a new flavor of Utils.checkNull that only requires 
the one argument, which will throw an IllegalArgumentException with no message. 

   * Revision r1796226: More work on using the Utils.checkNull utility method 
and his brothers in other places. 

   * Revision r1796229: More work on using the Utils.checkNull utility method 
and his brothers in other places. 

   * Revision r1796337: In preparation for switching to Java 8 for "trunk" 
builds, fix a couple of the core tests that were failing in this configuration 
due to stricter type checking with the JUnit methods.  In particular, use 
"(Integer)" casts where there was a conflict between the (Object, Object) and 
(long, long) "assertEquals" methods.  Also add casts on a couple other tests 
that were in conflict in other ways. 

   * Revision r1796681: More work on using the Utils.checkNull utility method 
and his brothers in other places. 

   * Revision r1796682: Add additional flavor of "decodeColor" method in 
GraphicsUtilities so that the IllegalArgumentException thrown can identify the 
argument that is in error (instead of the default "color" description).  Use 
the "Utils.checkNull" method to do the checking. 

   * Revision r1796689: Check for null font dictionary input to "deriveFont" in 
Theme.java; Use class name to derive Theme PROVIDER_NAME. 

   * Revision r1796711: Using "Utils.checkNull" in Theme.  Also make a private 
"checkColorIndex" method to consolidate common code and give a consistent error 
message. 

   * Revision r1796712: More work on using the Utils.checkNull utility method 
and his brothers in other places. 

   * Revision r1796883: Add Javadoc to the Vote.tally() method to explain the 
algorithm. Use Utils.checkNull() in there also. 

   * Revision r1797271: Code cleanup:  Request focus on the window content in 
ScriptApplication to eliminate the need to click on the window to begin 
interacting with it.  Add batch files to set the classpath to include the "lib" 
and "wtk/lib" directories, to allow testing, and another to restore it to the 
previous state.  Adjust "script.bat" to call these if the original "java" 
invocation results in an error (presumably because the main class can't be 
loaded). 

   * Revision r1798415: Code cleanup:  Make debugging simpler (less verbose) by 
using the simple class name for Dimensions.toString() resulting in just 
"Dimensions[WxH]".  Same thing for Point, resulting in "Point[X,Y]".  Note: we 
did this for Bounds earlier. 

   * Revision r1798611: Code cleanup:  Update PlainTextSerializer (used by 
TextPane) to have a larger interal buffer for reading and writing, and make the 
size configurable. Make use of the Utils class to better check for null 
parameters. 

   * Revision r1798631: Code enhancement:  Use the new 
ApplicationContext.runAndScheduleRecurringCallback() in several places where it 
is applicable:  spinner, scrolling, etc.  This new method simplifies this 
common pattern where an immediate effect is needed, while also scheduling a 
recurring callback to repeat the effect. 

   * Revision r1798697: Code cleanup:  Use "switch" on string arguments to make 
the startup code cleaner in DesktopApplicationContext for getting the startup 
properties. 

   * Revision r1798734: Code enhancement:  Add some methods to Span: * 
normalStart() -> returns the lesser of start,end * normalEnd() -> returns 
greater of start,end * normalEquals() -> uses normal values to compute equality 
* adjacentTo() -> tests whether spans are exactly adjacent to each other * 
before() -> whether this span ends before the other * after() -> whether this 
span starts after the other  Then use the new normal int value methods in other 
places to avoid the overhead of a new object from "normalize()".  Add the first 
"wtk" test to test all these Span methods, as well as the existing ones. 

   * Revision r1798735: Code enhancement:  Add two new methods to Utils: * 
defaultToString() -> returns string description of object just as 
Object.toString() would. * simpleDefaultToString() -> same as above, except 
only the simple class name is used. 

   * Revision r1798736: Code enhancement:  Add a "toHexString()" method to 
StringUtils for debugging purposes:  formats the characters of a string as hex 
values. 

   * Revision r1798737: Code enhancement:  Add and new "ClassUtils" class and 
two new methods to Console (for debugging purposes):  ClassUtils is meant to 
hold static methods for dealing with "classes" (mostly by reflection).  The 
only method (so far) examines the call stack hierarchy to get the 
identity/description of one of the callers of a method.  Useful for debugging 
"who gets called from where".  Then add two new methods to Console that will 
use this ClassUtils method to describe the calling method and log the message 
along with it: * logMethod(String, args) -> get the calling method name and 
format a message   from the format string and optional arguments. * 
logMethod(String, String, args) -> same as above, but with an optional prefix   
to the rest of the message so particular debug printouts can be easily   
spotted in a log file. 

   * Revision r1799028: Update dependencies on needed tools for the build, and 
related documentation, for trunk

   * Revision r1799029: Small updates in build.xml files, to have more info.

   * Revision r1799030: Do an 'ant trim-whitespace', to ensure consistency of 
formatting in all our sources.

   * Revision r1799725: Code cleanup:  Rename "xxxArgument" to "xxxValue" in 
parameter names.  Add an "expand()" method to Bounds.  Add BoundsTest that 
tests a lot of things about Bounds, including the new JSON parsing and 
"translate" / "expand".  

   * Revision r1799726: Code enhancement:  Add JSON parsing for a point to 
include a list format: [ x, y ] Add Javadoc to Point.decode() to explain it 
all.  

   * Revision r1801182: Remove incorrect comment in TextPaneSkinTextNodeView. 

   * Revision r1801184: Update the BUILD file to say we now require JUnit 4.11 
or greater (with separate "hamcrest-core"), and check for the "assertNotEquals" 
method availability in the "org.junit.Assert" class.  This method is used in 
"BoundsTest", and so must be available.  Also add a reference (from 
"build.properties") to the bootstrap classpath when compiling.  This allows 
full checking in the case of back-level Java (actually not used now, but for 
reference). 

   * Revision r1801285: update Year in NOTICE files

   * Revision r1801287: update links for JavaDoc

   * Revision r1801518: Try using "ignoreSystemClasses" to check JUnit 
availability.  

   * Revision r1801545: Update the JUnit test conditions so that they work 
either with the Jenkins build or without.  

   * Revision r1801548: Set a special flag for Jenkins jobs so we can 
dynamically tell whether to use the system classpath for JUnit or not.  

   * Revision r1801661: Add some new methods to Limits to extend its 
capabilities.  Add a "LimitsTest" class to test the Limits operation.  Add two 
new default methods to the Dictionary interface to allow default values for 
"getInt" and "getBoolean" in case the key is not present (instead of using the 
pre-assigned default).  

   * Revision r1801662: Do some variable/parameter renaming from "_Argument" to 
"_Value" which is shorter and more descriptive. Also, "_Local" to "_Value" just 
to be more clear.  

   * Revision r1803581: Add a new constructor for Insets based on Number. Add 
InsetsTest class to do some basic testing of Insets (mainly decoding and the 
shortcut constructors, plus "toString()"). 

   * Revision r1803582: Add a new version of "setTransparencyInColor" that 
takes a Theme color index as a parameter and calls the regular version with 
that theme color value. 

   * Revision r1803584: Calling Utils.checkNull (and friend) in a couple more 
places in GraphicsUtilities. 

   * Revision r1803586: Cleanup of ContainerSkin: * Move the almost ubiquitous 
"setBackgroundColor(int)" method into the superclass   instead of having it in 
many places. * Use Utils.checkNull (or friends) in several places. * Add some 
messages to plain IllegalArgumentException constructors.  Note: there will be 
collateral changes due to the "setBackgroundColor" change shortly (because 
things don't compile). 

   * Revision r1803587: Cleanup of TextPaneSkin: * Add a small accessor method 
"getTextPane" to do the cast of   "getComponent()", and use that everywhere it 
is appropriate. * Use the "Utils.checkNull" method in a number of places to 
simplify   and standardize the null parameter checking.  Also remove the   
checks in places where it is done by "decodeColor" or similar. 

   * Revision r1803588: Clean up Theme class: * Use the "getBoolean" methods of 
Dictionary where possible. * Minor code cleanup to the 
"getDefaultBackgroundColor" and   "getDefaultForegroundColor" methods. 

   * Revision r1803590: Terra Theme skin cleanup: * Remove 
"setBackgroundColor(int)" from all the containers that had the code   now that 
the generic version is in ContainerSkin. * Remove altogether several skin 
classes whose only content was a   "setBackgroundColor(int)" method which is no 
longer needed. * Adjust the component to skin map in TerraTheme to remove these 
deleted   classes. * Use Utils.checkNull for uniform null parameter checking 
where possible. * Some code cleanup (such as using some small accessor methods 
for 2-3 line   code snippets that are repeated in several places and possibly 
sources of   copy/paste errors). * Also remove some parameter checking when 
things like "decodeColor" are   called because these utility methods do their 
own checks. 

   * Revision r1803598: Simplified and cleaned up CornerRadii as with other 
"wtk" utility classes: * Use common parameter and value checking methods (such 
as Utils.checkNull). * Allow "decode" method to use JSON arrays (as well as 
maps). * Take advantage of new Dictionary default methods (Java 8). * Use 
simple class name for "toString()".  

   * Revision r1803599: Add another "Bounds" constructor from a Dimensions 
value.  Add tests to BoundsTest for this new constructor.  

   * Revision r1803600: Simplify and cleanup Decorator classes: * Add new 
default implementations (in "Decorator.java") for   "getBounds()" and 
"getTransform()" methods, and remove these   methods in subclasses that just 
did the default operation. * Same for the "update()" method. * Use the new 
Bounds(Dimensions) constructor where possible. * Do parameter checking using 
"Utils.checkNull()" (and maybe   its friends). * Rename some parameters from 
"xxxArgument" to "xxxValue" as was   done in other places (seems less 
artificial to me).  

   * Revision r1803601: Add missing "import" to ShadeDecorator; needed for 
previous change to many "xxxDecorator" classes.  

   * Revision r1803602: Add "wtk" tests for CornerRadii constructors and 
"decode" method.  

   * Revision r1804168: Add "getWidth()" and "getHeight()" in Insets because it 
is fairly common to do this math in many places, and it makes the code cleaner 
with these helpers.  Other submissions will take advantage of these new 
methods.  But, add some tests in InsetsTest. 

   * Revision r1810151: Code enhancement:  Add some methods and features to 
Dimensions: * expand(int) -> increase/decrease both width and height by same 
amount * expant(int, int) -> increase/decrease width/height by different 
amounts * enhancements to "decode(String)": - allow [n, n] (JSON list form) - 
allow "w x h" or "w, h" (non-JSON forms, just formatted strings)  Add a 
DimensionsTest class to test all these changes. 

   * Revision r1810620: Added a new "expand(Insets)" method to Dimensions, as 
this is a fairly common thing to do.  Added tests to DimensionsTest also.  Some 
cleaning up in TerraTooltipSkin both to use this new method but also to 
simplify the fact that there were a bunch of +2 and +1 to the padding values, 
which seems silly.  So just increased the original (only) padding values, and 
make more room on left/right so the text is more uniformly padded all around. 

   * Revision r1811250: Implement a new format for Insets.decode, namely just a 
comma-separated list of values (can also be semi-colon separated) in the order 
of: top, left, bottom, right (same order as the JSON list form).  Add more 
tests in InsetsTest to check the parsing. 

   * Revision r1811265: Implement new allowed formats for Bounds, CornerRadii, 
Limits and Span along with tests. The new formats are basically simple lists of 
integers separated by commas or semicolons.  Same order for the list as the 
JSON list formats. Some other formats are accepted in some cases (as in 
"start-end" for Limits). These cases basically match the format presented in 
the "toString()" methods for each class. Tweak some "toString()" formats (use 
"getSimpleName" and add/remove some spaces). 

   * Revision r1811267: Add error message text and Javadoc to ImmutableList to 
make things clearer. Also use Utils method to check null parameter. Update one 
message for Utils.checkNonNegative to be the same wording as other exception 
messages in that class. 

   * Revision r1811269: Updates to ApplicationContext to catch Throwable 
everywhere instead of Exception (this is a bit more general).  Also use the 
"handleUncaughtException" method to deal with exceptions in callbacks (this 
method is a bit more general than the similar inline code it replaces). 

   * Revision r1811278: More work with Dimensions: * Use Dimensions.ZERO in 
more places. * Add new default methods to Visual and ConstrainedVisual to 
get/set   size in terms of Dimensions. * Remove the "public" modifiers from the 
methods in these two interfaces   since they are not necessary. * Update 
"getClientArea" in WindowSkin to use this new interface   (that is, construct 
Bounds from Dimensions). * Correct typo in Bounds. * Implement "getSize()" in 
ComponentSkin directly using the width and   height saved values (instead of 
"getWidth()" and "getHeight()").

   * Revision r1811907: More cleanup on the use of Dimensions: * Remove now 
obsolete "getSize()" method in Image (now implemented   in Visual instead. * 
Check for null Dimensions in ConstrainedVisual.setSize(). 

   * Revision r1812302: A collection of related, unrelated changes in a number 
of the "skin" files, including: * Use "Utils.checkNull" for parameter 
validation where appropriate. * Or just eliminate duplicate null checks where 
"decode" methods   or constructors (as in Insets, CornerRadii, etc.) already do 
the   null checking. * Remove some null checking (esp. for backgroundColor) 
where a null   color is supported and appropriate. * Also added some inline 
comments when null background color is   actually supported. * Some reflowing 
of code where it makes sense for readability. * Use of the new 
"Insets.getWidth()"" and "getHeight()" methods. * Use the new "currentTheme()" 
method in ComponentSkin to make the   code more concise where the skin needs 
access to the Theme. * Use just "Theme" instead of "TerraTheme" where the 
methods   called are available in the Theme interface and don't need the   
specific theme to be invoked (which is most of the time with   colors and 
fonts). * Use the new "Dimensions.ZERO" object where appropriate. * Also use 
the new default "getSize()" method in Visual to   simplify the code. * Make the 
hierarchy at TextPaneSkinNodeView more orthogonal in   the "size" methods with 
respect to the ComponentSkin hierarchy. * Some reworking of some constructors, 
esp. around setting of   auxiliary colors -- in some places there was duplicate 
code in   these constructors that was in a "set" method, so it is better   to 
have the code in only one place. * A little bit of cleanup as far as common 
code (as in Alert where   the calculation of the style name was moved to a 
constant).  Also note:  I'm not done with all the places where such changes 
should/could be made. 

   * Revision r1812761: Some enhancements to Insets and Dimensions: * Create a 
"square" Dimensions from a single integer that has   that as both the width and 
height. * Create an Insets from a total width and height; divide the   total 
into left/right and top/bottom, leaving any (odd) extra   value on the right or 
bottom. * Create an Insets, then, from a Dimensions (using the new   
width/height constructor). * Create a "getSize()" method for Insets that 
returns the   Dimensions value containing both width and height.  Test all 
these changes in the DimensionsTest and InsetsTest classes. 

   * Revision r1812764: Make some new variations on the "prepareForText" 
methods in GraphicsUtilities for use in other places in the code.  Also add a 
method to set the font rendering hints.  And methods to set anti-aliasing on 
and off. All these are common operations during drawing that deserve common 
code treatment for consistency and brevity. 

   * Revision r1812765: Add some more parameter checking methods in Utils: * 
Check for non-negative float values (parallel to the "int" value   method 
already there). * Check for "positive" integer value (that is, it throws if the 
value   is <= 0). * Update/correct some of the Javadoc. 

   * Revision r1812782: Update BooleanResult to add a "clear()" method that 
sets the value to "false".  Add tests of this in the BooleanResultTest class. 

   * Revision r1812783: Use of "Utils" methods for parameter checking in 
ImageViewSkin.java. Some code beautification for clarity. Note that null 
background is acceptable.  

   * Revision r1813052: Update some exception messages to be clearer as to what 
the problem is. 

   * Revision r1813055: Add another "checking" method to Utils, this time to 
check arguments for being in the range of a Short (0-0x7fff).  Use this new 
method to simplify the code in Version that does this checking. 

   * Revision r1814126: Code cleanup:  Javadoc tweak in FileSerializer.java; 
give the IllegalArgumentException in the constructor a nice message. 

   * Revision r1814127: Use "Utils" methods for checking parameters in more of 
the "core" code. Some code layout cleanup. 

   * Revision r1814129: Code cleanup:  Use "Utils" methods in the various 
Serializer classes for parameter checks; some code layout cleanup; increase 
buffer sizes for reading files in bigger chunks. 

   * Revision r1814244: Updated the external link to the Java 8 API Javadoc.  

   * Revision r1814428: Code cleanup:  Make some error messages from Utils 
methods read more nicely by capitalizing the first word of the sentence. 

   * Revision r1814534: Code cleanup:  Made some private methods in 
QueryDictionary to remove duplicated code all through this class. Fixed what 
looked like a bug in "remove(String,int)" where the return value was correct, 
but nothing was actually removed from the ArrayList referenced by the key. 

   * Revision r1814877: Code cleanup:  Use "Utils" methods for parameter 
validation in one more class in the "web" package. 

   * Revision r1815136: Clean up the code in TextInputValidatorTest.java.  

   * Revision r1815152: Allow "IntRangeValidator" limits to be set by Limits 
value. 

   * Revision r1815167: Use some new common methods in GraphicsUtilities to 
simplify code. Speed up the drawing inside BorderSkin by doing the measurements 
only when things change, and not every time it is drawn. 

   * Revision r1816667: Code cleanup:  Allow ScriptApplication to deal with 
several other types of main components:  Sheet and Palette, which both require 
an owner window in order to work.  So, create a window to fill the frame and 
open the content on top of this window. 

   * Revision r1816732: Code cleanup:  There was a "TODO:" item in IOTask about 
using an AtomicLong for counting the bytes sent and received (so that access 
from different threads was always accurate).  So, make this change, and 
concomitant changes in Query.java that use these fields. 

   * Revision r1816755: Noticed that Jenkins builds that sign the built .jar 
files were getting a warning: "No -tsa or -tsacert is provided and this jar is 
not timestamped." So, add a "tsaurl" to the "signjar" task for this purpose. 

   * Revision r1817385: Tweak of ListViewIndexBindMapping to fix indents and to 
more generally support "Number" in the "indexOf" method (more than just 
"Integer"). 

   * Revision r1817549: Explicitly add a "Sequence<?>" constructor for Insets, 
Bounds, Dimensions, etc. (basically all the "wtk" classes where we updated the 
"decode" methods to accept a JSON list).  So, update all these decode methods 
to use the new constructor.  Then, add a "Sequence<?>" setter method for Insets 
(padding) in all the places we had already cleaned up the padding code.  Also 
similarly fix up CalendarDate.Range and Time.Range.  Tidy up some comments in 
JSONSerializer. 

   * Revision r1817955: Some of the cleanup done to BeanMonitor actually broke 
the functionality of script bind mapping from one attribute to another, because 
there was a "break;" added after the first "ListenerList" "get" was found, 
instead of going through every listener list as is really required. 

   * Revision r1818208: Add a static "allOf" method to EnumSet that constructs 
a fully-populated set containing all the values of the backing enum. 

   * Revision r1818351: Trim whitespace. 

   * Revision r1819862: Refactor some of the "wtk.content" classes to 
consolidate duplicated code into base classes: "BaseContent.java" and 
"UserContent.java". The base content has an icon and text, while user content 
contains that plus an arbitrary (default null) user object that can be used for 
context in various situations. Redo ButtonData, ListItem, TreeNode, and 
TableViewHeaderData to use these base classes as appropriate. 

   * Revision r1820002: Fix the background color for tooltips in the file 
browsers.  With earlier changes to TextArea the default background was white 
instead of null leading to tooltips that weren't drawn right. 

   * Revision r1820008: Remove the duplicated code in 
tutorials.../bxmlexplorer/tools package in favor of the original code in 
tutorials.../explorer/tools. Make appropriate package import changes in the 
BXMLExplorer code. 

   * Revision r1820327: Move the "defaultToString" and "simpleDefaultToString" 
methods out of Utils and into ClassUtils (because they make more sense there). 
Rename the longer method to just "simpleToString". Change the references to 
these methods. Add a new "checkTwoIndexBounds" method to Utils for use in 
several places (such as the "set selection" methods in the text controls). 

   * Revision r1820338: Changes to TextAreaSkin to use the new "getWidth" and 
"getHeight" methods of Insets to simplify the code. 

   * Revision r1820356: Create two new classes: "wtk.FontUtilities" and 
"util.ImageUtils" to consolidate common code. 

   * Revision r1820359: Use the new "wtk.FontUtilities" class to move the 
common code to one place. 

   * Revision r1820362: Use the new "wtk.FontUtilities" and "utils.class to 
move the common code to one place. 

   * Revision r1820933: Cleanup some duplicated code in Frame.java around 
building a linked list of ancestor components. 

   * Revision r1822709: Copy over more files from tutorials/src and tests/src 
directories to the "ant-bin" directories so the programs will run correctly 
(with all their supporting files) from there. 

   * Revision r1822710: Rearrange the order of constructors and add a bit of 
Javadoc to the VoteResult class. 

   * Revision r1822725: There is a problem with the way tutorials are packaged 
in the .war file versus how the work offline, so that copying the extra files 
"works" to run them standalone, but results in duplicate .zip file entries 
doing a "deploy".  So, rather than break the build, revert to the original file 
copy list and try to figure out what's really going on later. 

   * Revision r1822840: Update the build.xml correctly so that both the 
"deploy" task and running the tutorials from the offline directories will work 
correctly.  This entails copying more files to the "tutorials/ant-bin" 
directory, but also excluding these newly copied files from the "deploy" task 
(because they are .jar'd from the "src" locations).  

   * Revision r1822989: Some cleanup in the build: * Add "examples" as a 
target, which compiles and copies the relevant   source files. * Include 
"examples" in the "clean", "compile" and "test" targets. * Add some more source 
files types to "trim-whitespace", namely:   + css, csv, js, xsl, sql * And fix 
some smart quotes in CSS files that wouldn't actually work.  Then, check in the 
files that had whitespace trimmed, or other changes found by these build fixes. 

   * Revision r1823399: Add an image name parameter to ImageUtils.findByName to 
make error message more explicit.  So, change all the callers.  In addition, 
change some places that could use this method that were not previously using 
it. 

   * Revision r1823400: Add an image name parameter to ImageUtils.findByName to 
make error message more explicit.  So, change all the callers.  In addition, 
change some places that could use this method that were not previously using 
it. 

   * Revision r1823527: Add a static final EMPTY as a default value for 
Bounds(0, 0, 0, 0) Add a test for it in BoundsTest. 

   * Revision r1823726: Code cleanup:  Make one of the exception messages in 
Utils read better. 

   * Revision r1824559: Code cleanup:  Call the 
GraphicsUtilities.setAntialiasingOn instead of the inline code in all the 
remaining places. Plus some other cleanup: * Use lambdas in a few places for 
callbacks. * Call "set" methods to set colors from the theme. 

   * Revision r1825173: Code cleanup:  Remove some unused constants. 

   * Revision r1825947: Allow test / demo / example applications that just load 
a BXML file to easily subclass ScriptApplication by providing an override there 
for the "--src=" command line argument, such that the test application can be 
run on the desktop with just a few lines of code.  Modify SplitPaneTest to 
demonstrate the potential.  Cleanup a little messy code in 
DesktopApplicationContext along the way.  

   * Revision r1827323: Allow more forms than "true" or "false" to be used for 
application startup items, namely "Y", "N", etc. (introduced in 
StringUtils.toBoolean). Call this new method inside DesktopApplicationContext.  

   * Revision r1828188: It was noticed that SuggestionPopup (or rather the 
skin) was always setting the ListView it creates to be variable item height, 
which is rarely the case.  This causes extra processing for no reason.  But it 
may, in fact, be required for some renderers, so leave it the default, but add 
a new style to set it to false. 

   * Revision r1829099: Update the Javaodoc in ListViewSelectionListener to 
better explain how and when the various listener methods are called. 

   * Revision r1829100: Move some of the methods and the comparators out of 
RangeSelection and into Span where they more properly should be.  Add several 
new methods to Span for convenience. Update RangeSelection to use some of the 
new Span methods. Add tests of the new Span stuff in SpanTest. 

   * Revision r1829113: Make the ListViewItemRenderer and TreeViewNodeRenderer 
able to understand and use something of BaseContent to get both the string and 
icon to render.  This allows interchangeable use of ListItem, ButtonData or 
TreeNode/TreeBranch in many places because they all inherit (now) from 
BaseContent. 

   * Revision r1829301: Take out already done "TODO" item in 
ListButtonDataRenderer Javadoc. 

   * Revision r1830002: Code cleanup:  Allow ScriptApplication to deal with 
several other types of main components:  Sheet and Palette, which both require 
an owner window in order to work.  Update class Javadoc about this. 

   * Revision r1830377: Tweak some Javadoc (mostly cleanup of lists).  

   * Revision r1830786: Add a new demo program to display all the CSSColor 
values in a "nice" way, with tooltips showing the RGB color values of each.  

   * Revision r1830787: Update the tooltip in the new Colors demo to show the 
color name as well as the RGB value. 

   * Revision r1830842: Somehow ScriptApplication lost the no-arg constructor, 
which is necessary for use with DesktopApplicationContext.main... So, add it in 
again so the program actually works! 

   * Revision r1830844: Add Javadoc to the Easing interface to explain the 
methods and parameters.  

   * Revision r1832859: Improvements to "Console" debugging package: * Allow 
override of output streams (defaults to System.out and .err). * Make Console 
into a non-static class, but with a default that always   logs to the system 
console. * Make a TextAreaOutputStream that can make itself into a PrintStream  
 for use with Console. * Make a test program (TextAreaConsoleTest) that uses a 
small text area   to demonstrate logging using the Console class inside a 
window. 

   * Revision r1832862: Fix the one usage of Console in the existing code to 
use the new conventions. 

   * Revision r1833931: PIVOT_1035:  Change the build number to a date stamp of 
the form: YYYYDDDHHmm which is "20181711037" right now.  

   * Revision r1837329: Properly check for JDK 9 or (now) JDK 10 for use in 
building Pivot. 

   * Revision r1838997: Change ComponentNode back to a subclass of Node 
(instead of Block), but then allow Document to accept ComponentNode as a child, 
in addition to a Block.  The reason for making it a Block was to allow direct 
insertion into a document, but clicking on one of them that way resulted in an 
exception trying to find children of that node.  So, rather than figure that 
out, just make the special case exception inside a Document. This appears to 
work everywhere without problems. 

   * Revision r1839358: Several fixes to TextPane: * Fix previous changes that 
made ImageNode (and ComponentNode) into subclasses   of Block so that they 
could be inserted directly into a document.  This was   shown to be a flawed 
strategy, and ComponentNode was fixed by a previous   change.  Make ImageNode 
back into a direct subclass of Node. * Add an implementation of "getCharacters" 
to ImageNode to satisfy the abstract   declaration of Node (this is relatively 
new). * Change Document to allow ImageNode (and previously ComponentNode) as 
possible   direct inserts into a Document * Add a method to ClassUtils to check 
any number of possible classes for an   "instanceOf" check, and use this in 
Document. * Unrelated, but discovered in the same test program:  fix 
CharUtils.selectWord   to gracefully handle a null input sequence. 

   * Revision r1840589: Add/update Javadoc in the Image class (to better 
explain the methods available). Address some style errors also. 

   * Revision r1859103: Add some explanatory Javadoc to the EnumList class to 
explain how to use it. 

   * Revision r1870920: Update JSONViewer demo application to: 1) Fix 
"check-style" errors. 2) Use some Java 8+ features (i.e., lambdas) 3) Tweak the 
tree display to make things a bit more readable. 4) Don't use FileInputStream, 
to avoid GC issues with "close()". 5) Add new values to "Style" enum to support 
TreeView styles. 

   * Revision r1870930: Cleanup of some calendar-related classes: 1) Adjust 
time zone usage in CalendarDate to move to the constructor(s) and    use 
constructed time zone for GregorianCalendar conversions. 2) Simplify 
CalendarDateSpinnerData to use CalendarDate only for its values    instead of 
converting to GregorianCalendar on its own. 3) Fix a lot of "check-style" 
errors in both classes. 4) Add more tests in CalendarDateTest.java for the new 
stuff in CalendarDate. 

   * Revision r1870935: Update Ant version requirement to 1.10.2 so that we can 
use the "<javaversion...>" check to allow Java versions greater or equal to 9 
also (builds are failing on OpenJDK 11 because we didn't have the right version 
checks). 

   * Revision r1875319: Change / simplify the way we initialize the CSSColor 
values by using a private static class for the lookup maps, and using an 
alternate constructor that creates the Color value itself. Add a method to 
ColorUtilities to translate a CSSColor to a string value. 

   * Revision r1875320: Add a CSSColorTest to thoroughly test all the 
round-trip paths. 

   * Revision r1875321: Refine the testing in CSSColorTest because of avoidable 
failures.  

   * Revision r1875334: Major rework of the CSSColor scheme: * Some of the Java 
standard colors don't have the same RGB values   as their similarly named CSS 
colors (common things like "pink", "orange",   "green", and the grays, for 
instance). * So, make a convention that "green" or "GREEN" (i.e., all lower- or 
all   upper-case) yields the Java version, while mixed-case (i.e., "Green")   
yields the CSS version. * This means the reverse lookup table is now 
case-sensitive. * BUT, if there is no conflict (e.g., "AliceBlue") then the 
lower-case or   upper-case versions will come up with the same value. Confusing 
enough?! * The color list now has all the Java variants with their Java values. 
* This includes ugly ones like "lightGray" and "LIGHT_GRAY" (but not   
"lightGrey" and "LIGHT_GREY" because Java didn't name them like that). * The 
CSS-only colors all have strictly RGB values. * The test programs had to be 
tweaked and beefed up to test all this stuff. * Javadoc (particularly inside 
CSSColor and GraphicsUtilities.decodeColor)   had to get longer.  

   * Revision r1875336: Add a new method to CSSColor to return a set of all the 
values matching the given RGB value. Add tests to CSSColorTest for this new 
method.  

   * Revision r1875337: Build changes to add the javax.activation module for 
Java 11, and the implementing .jar file.  

   * Revision r1875338: Show the "java_modules" flag in the environment info 
for a build. Helps to debug current problems with java.activation missing for 
javadoc.  

   * Revision r1875830: Rearranged the build.xml file and cleaned up the 
"environment-info" messages with the build number and newly-introduced build 
date/time. Added "compiler.release" to "build.properties" as well as 
"min.ant.version" and load this file right up front, then do the min Ant 
version check next.  Make some of the other checks more dependent on these 
build.properties values.  Use "--release" flag for newer Java compilers.  

   * Revision r1875831: Add "setenv" and "unsetenv" bash scripts for *nix/OSX 
to match the Windows versions to enable easy running of demos and tutorials.  

   * Revision r1875833: Using "--release 8" to build with Java 11 seems to not 
find JSObject anymore, so go back to using "-source" and "-target". And, take 
out the module stuff added for the Javadoc calls -- they aren't needed either 
with the javax-activation.jar file in the classpath now.  Everything seems to 
build and test cleanly from scratch on OpenJDK 11 (with OSX at least).  

   * Revision r1875897: Correct a wrong @throws value.  

   * Revision r1876576: Add new "add(index, listener)" method to ListenerList 
just in case just adding a listener at the end of the list doesn't quite work.  
Add ListenerListTest class to test some of these methods.  

   * Revision r1876577: Refactor code in Service to use "try-with-resources".  

   * Revision r1877132: Add a "normal" build task to simplify my daily / hourly 
build / test procedure.  

   * Revision r1877133: Cleanup some style errors introduced with recent 
changes.  

   * Revision r1877269: Cleanup some style errors introduced with recent 
changes.  

   * Revision r1877270: Make some style-related changes to RangeSelection, as 
well as adding some (presumably) useful methods.  Add a RangeSelectionTest 
class to do some unit testing.  

   * Revision r1877273: Trim whitespace.  

   * Revision r1877274: The "Style" enum was introduced to make setting 
component styles more foolproof by defining the style names in terms of an enum 
that can be checked at compile-time.  So, go through all the uses of 
"getStyles" and correct anything that is still being set via a string constant 
(if possible, some things are just custom JSON, for instance).  Add a few Style 
values that were being set via strings.  Make some "check-style" changes in the 
files that were changed, as well as convert some callbacks to lambdas as 
appropriate.  A bunch of changes to TextPaneDemo suggested some improvements to 
Span, which then required new tests in SpanTest as well. And a new method added 
to Node: "getParagraph".  

   * Revision r1877516: Add a "StringUtilsTest" class to test "StringUtils" 
methods.  

   * Revision r1877611: Do a better job encapsulating the correspondence 
between our Cursor values and the AWT equivalents by moving the code into the 
Cursor enum itself.  

   * Revision r1878782: Update one error message in BeanAdapter to add the type 
name.  

   * Revision r1878783: Update TextAreaOutputStream to add charset to the mix 
and allow non-default buffer size.  Update TextAreaConsoleTest and the 
associated console_text.bxml to display longer messages to test the buffer size 
change.  Fix some style errors.  

   * Revision r1881960: Fixed a TODO item in Keyboard related to checking the 
correct modifiers for each platform to determine the drop action. To that end, 
add methods to Platform to determine the current platform for testing.  

   * Revision r1883769: Add a new "fix-line-endings" target that uses the same 
list of files as "trim-whitespace". 

   * Revision r1884216: Fix compile errors in Keyboard. 

   * Revision r1884960: Added convenience methods for setting text in 
TextInput, TextArea, and TextPane. 

   * Revision r1884963: Fix build file for issues with Java 14+. 

   * Revision r1884964: Make "ifNull" in Utils generic for any type. 

   * Revision r1884965: Add more alternate flavors of 
DesktopApplicationContext.main for other situations. 

   * Revision r1884967: Add "ourVersion" to Version class, and test of it. 

   * Revision r1884968: Fix compile errors from last (untested) commit. 

   * Revision r1884969: Fix compile errors from last (untested) commit. 

   * Revision r1884970: New methods in Keyboard class. 

   * Revision r1884971: Enhance StringUtils.toString and use more places. 

   * Revision r1884972: Add ExceptionUtils class to help with formatting 
exception messages. 

   * Revision r1884973: Correct style problems in Platform. 

   * Revision r1884975: Update links to online Oracle Javadoc. 

   * Revision r1884977: Fix obsolete Javadoc constructs. 

   * Revision r1884991: Fix obsolete Javadoc constructs. 

   * Revision r1884992: Fixup small Javadoc problems from last submission. 

   * Revision r1884993: More "checkstyle" fixes to "core" classes, plus misc. 
cleanup. 

   * Revision r1884994: Rename "StyleErrors" to StyleChecks, as well as the log 
files, and code. 

   * Revision r1884995: Fix obsolete Javadoc constructs. 

   * Revision r1884996: Use a property to compute the build number, not a file. 

   * Revision r1885210: Fix TextAreaOutputStream to correctly handle empty 
lines (as in "println()"). 

   * Revision r1885216: Improve the maximum length checking for TextArea. 

   * Revision r1885217: Fix the EDT-ness of TextAreaOutputStream. 

   * Revision r1885218: Rename "Version.ourVersion()" to 
"Version.implementationVersion()". 

   * Revision r1885232: Fix Java 11 javadoc problems (including extra CSS 
stylesheet). 

   * Revision r1885469: Enhancements to the CSSColor demo. 

   * Revision r1885470: Add a little text to the wtk-terra package doc. 

   * Revision r1885490: Fix the use of StringUtils.toString(List) in several 
places. 

   * Revision r1885494: Improve the parsing of font names inside 
FontUtilities.decode(). 

   * Revision r1885499: Corrected a bug in FontUtilities; corrected style 
violations there. 

   * Revision r1885500: Fix a tab character. 

   * Revision r1886132: Add styles to Form for "labelFont" and "messageFont". 

   * Revision r1886138: Finish code in TerraFormSkin to implement message and 
label fonts. Fix some style errors. 

   * Revision r1886543: Allow Dictionary.getInt and getBoolean to parse Strings 
to get the values. 

   * Revision r1886546: Compile Javadoc to "private" level for debug builds. 

   * Revision r1886548: Two new methods in Utils. 

   * Revision r1886549: Tweak the Javadoc comments in Span. 

   * Revision r1886550: Do some code cleanup in CharSpan; add functionality 
there; add a test module for it. 

   * Revision r1886551: Use new Utils methods for error checking in TextArea. 

   * Revision r1886554: Tweak Javadoc comments. 

   * Revision r1886556: Tweak Javadoc comments. 

   * Revision r1886557: Changes to reduce "checkstyle" violations. 

   * Revision r1886667: Tweak the "selectWord" method in CharUtils. 

   * Revision r1886805: Changes to fix RAT errors (missing licenses). 

   * Revision r1886850: Add a "performAction" static method to Action to 
simplify performing a named action. 

   * Revision r1886907: Update an error message in Component. 

   * Revision r1886926: Refactor Keyboard a little bit and add "arePressed" 
methods. 

   * Revision r1886970: Add styles to set font, colors, and text decoration of 
the Prompt message. 

   * Revision r1886971: Add "enlarge" methods to Bounds and upgrade BoundsTest. 

   * Revision r1887070: Tweak some Javadoc in Component. 

   * Revision r1887073: Tweak some Javadoc in TablePane. 

   * Revision r1887074: Changes to reduce "checkstyle" violations. 

   * Revision r1887075: Changes to reduce "checkstyle" violations. 

   * Revision r1887117: Fix typo in last change to Keyboard. 

   * Revision r1887121: Changes to reduce "checkstyle" violations. 

   * Revision r1887545: Updates to ExceptionUtils to recognize more classes 
that need this treatment, and to make the exception names more readable. 

   * Revision r1887551: Add new "putStyle" methods in Component to make setting 
styles less verbose. Named "putStyle" as reminiscent of the 
"getStyles().put(...)" code it replaces, and to avoid confusion with 
"putStyles" which is a different beast. 

   * Revision r1887553: Improvements to code that needs to get info from the 
theme: - methods in Component to get the theme font and colors - add some 
"getxxx" methods in the skins to reduce code to do the casting - this change 
involves a bunch of "checkstyle" fixes also - move more of the initial theme 
value settings to the JSON file 

   * Revision r1887830: Simplification to Bounds. 

   * Revision r1887832: Spiff up the output of StyleChecks a little bit. 

   * Revision r1887833: Some tweaks to BeanAdapter. 

   * Revision r1888038: Clear up one more obsolete Javadoc construct. 

   * Revision r1888092: Remove empty code from MacroReader (after last change). 

   * Revision r1888187: Allow Insets as valid source for Insets.fromObject. 

   * Revision r1888250: Tweak some doc and an error message in Component. 

   * Revision r1888684: Add a convenience method to Action for adding items to 
the dictionary. 

   * Revision r1888774: Enhancements to Keyboard to recognize the OSX modifier 
key symbols. 

   * Revision r1888779: Fix and expand keystroke decoding in Keyboard 
(generalized to also include OSX Unicode symbols). 

   * Revision r1888797: Implement extended Unicode escapes in JSON parsing: 
\u{xxxxx}. 

   * Revision r1889182: Add another variation of Point.decode ("x, y"); fix 
checkstyle problems. 

   * Revision r1889254: Add "safelyDecode" into Version itself (from 
ApplicationContext). 

   * Revision r1889344: Tweak some error messages and comments. 

   * Revision r1891156: Reduce the number of files to do a "checkstyle" on 
(basically just the "core" classes and not demos, tutorials, etc.). 

   * Revision r1892457: Add new "decodeCapable" method to FontUtilities to 
select the first font from the list (if any) that is capable of displaying the 
desired characters. This supports the new capability of specifying a list of 
fonts for use, where some may not be suitable because of their limited number 
of glyphs. 

   * Revision r1892549: Tweaks to TextAreaOutputStream, including fixing 
scrolling problems for wrapped lines. 

   * Revision r1892625: Add another shortcut method to Alert. 

   * Revision r1892626: Update FontUtilities.decodeCapable to default to a 
monospaced font if the list was for monospaced. Update the list of monospaced 
fonts to be more comprehensive for all platforms. 

   * Revision r1892828: Add two new methods to FontUtilities to register a new 
font for use, either from a file or an input stream. 

   * Revision r1897109: Enhance "Action" to add overrides to facilitate actions 
that are Enum values. 

   * Revision r1897111: Further changes to Action to refine the Enum support 
and regularize the parameter names. 

   * Revision r1897168: Spruce up the output of StyleChecks using single box 
drawing characters everywhere. 

   * Revision r1898141: Window.remove is unsupported to remove the content - 
add message to exception. 

   * Revision r1907119: update security info in classes potentially exposed to 
the Java deserialization of arbitrary objects vulnerability

   * Revision r1913449: Update documentation in two functional/monad classes. 

   * Revision r1913470: update properties of files, as required by checks for 
release

   * Revision r1913889: Set svn props

   * Revision r1914462: fixed failing test

   * Revision r1914463: fix line endings, from our ant task

   * Revision r1914465: fixed failing test

   * Revision r1914466: fixed failing test

Reply via email to