Copied from server to tools.

git-svn-id: file:///var/svn/geocell-java/trunk@2 93d897e1-6dfb-4cc2-8962-0b1af1de1100
Added tests from Geocell to a non-GWT file; added support for geohash strings.

git-svn-id: file:///var/svn/geocell-java/trunk@3 93d897e1-6dfb-4cc2-8962-0b1af1de1100
Split GeocellLibrary into multiple files to make it more manageable.

GeocellFormatting is in charge of creating string representations of geocells.
Geohash and Geomodel handle conversions to and from their respective formats.
DistanceFunctions handles the computation of distances, which are only
necessary in the cost functions and debugging.

Next split should be splitting the cost function out of the GeocellLibrary and
allowing GeocellLibrary's determination of bounding boxes to be more easily
controlled.

git-svn-id: file:///var/svn/geocell-java/trunk@4 93d897e1-6dfb-4cc2-8962-0b1af1de1100
Added GeocellIntLibrary to work with int objects instead of long objects.

Added corresponding CellMapInt, StaticIntTests, GeocellInt files.
Made ConverterLongInt to switch between long and int representations.
Added functions to ConverterGeohash/Geomodel to work with int using converter.
Added functions to GeocellFormatting to represent ints using existing long
functions.

git-svn-id: file:///var/svn/geocell-java/trunk@5 93d897e1-6dfb-4cc2-8962-0b1af1de1100
GeocellLongerLibrary with resolutions from 1 to 58 created.

Cardinal direction movements broken; fixing in next commit.

git-svn-id: file:///var/svn/geocell-java/trunk@6 93d897e1-6dfb-4cc2-8962-0b1af1de1100
Bitshifting for cardinal directions fixed.  Interpolation should now work fine.

git-svn-id: file:///var/svn/geocell-java/trunk@7 93d897e1-6dfb-4cc2-8962-0b1af1de1100
Package restructuring to match server hierarchy.

CsnCommon GWT package now provides GeocellLibrary classes.

Geocell_map GWT package now inherits CsnCommon.

git-svn-id: file:///var/svn/geocell-java/trunk@8 93d897e1-6dfb-4cc2-8962-0b1af1de1100
Renaming project.
First primary infrastructure version of the GeocellLongerLibrary committed.

GeocellLibrary now works with single bit resolutions.  Use of even/odd
resolutions is controlled by MINIMUM_USEFUL_RESOLUTION,
MAXIMUM_USEFUL_RESOLUTION, and RESOLUTION_STEP_SIZE.

Converter interface allows GeocellLibrary functions that return sets to return
any type.  This is especially useful for library users that need the calculated
bounds of the geocells in the set.  Previously these functions only returned
longs, and the bounds would have to be recalculated.  This is also useful for
users that want objects other than longs, so they won't have to iterate through
the results and convert each item.

A new base64 string implementation has been added that utilizes the last
character of the string to store the resolution and the other characters to
store the choices.

Geocell{Int|Long|Longer} and other similar classes all removed for unified
library.  With the ConverterInteger class, the new system can represent all of
the old systems with one library.
First deployed version.

Renamed CsnCommon to Geocell.
Updated to App Engine 1.5.4 SDK.

Modified Geostring converter to use standard base64 alphabet ordering with URL
safe modifications.

Modified Geostring converter to use resolution as first character instead of
last, so that geocells of similar resolutions are sorted together (good or
bad?).

Removed library interpolation function helper.

Modified library interpolation function to attempt to increase the resolution of
corner cells where possible.

Comment out library tests for directions not currently used.
Added Serializable interface to GeocellWithBounds for GWT compatibility.
Added Serializable interface to GwtGeocell for GWT compatibility.
Added new maps API key to MapClient to work with geocell-map.appspot.com domain.
Added from/to Geostring tests.

Tried to use Google Plugin's version of GWT maps, but failed in compilation.
Created managedapis pref, which may be useful in feature, but API had to be
removed and reverted for compilation to work.

git-svn-id: file:///var/svn/geocell-java/trunk@14 93d897e1-6dfb-4cc2-8962-0b1af1de1100
Reimport of project from new repository with changes to converters.

Adjusted project files to match new configuration.
Moved implementors of Converter to their own package.
Renamed base directory to geocell.
Moved away from arrays, now using Java objects for state maintenance.

New Point and Bounds classes for state maintenance in GeocellLibrary and the
Container.

Changes to GeocellLibrary that appear major but are mostly cosmetic.  State
maintenance is now handled by Point and Bounds classes inside GeocellContainer,
and functions which used to return arrays now return objects of the appropriate
type.  Arrays were initially used because having a separate Point
implementation on the server side and on the client side, and obligating
someone to use the corresponding Point class to use the library, seemed silly,
but then again so does sending arrays all over the place when it mucks up code
clarity.  Once I started putting the array constants in three different classes
in order to elucidate which direction and component was being accessed, I
realized it was time to change.

Corrected bugs:
- Giant bounded areas where the northeast and northwest cells were the same
  because they wrapped around the world were incorrectly handled.  This was
  fixed in both GeocellLibrary and CellMap independently.
- Resolution checks for cardinal direction moves in GeocellLibrary were still
  at 1, when they should have been 2.

Minor stuff:
- Cleaned up some comments, added minor class level documentation.
- Merged DistanceFunctions into Point and Bounds classes, deleted
  DistanceFunctions.
- Corrected geocell_map entry in .gitignore.
- Renamed GeoModel related things to match capitalization at website.
- Corrected CellMap to use defined variables in object value declarations.
- Renamed ConverterGwtGeocell to match other Conv classes.
Updated GeocellLibrary to work with arbitrary step sizes, other changes.

Many comments updated, particularly in GeocellLibrary.

Bounds updated to return the area more accurately.  While the previous algorithm
worked fine in most cases, it had some degenerate edge cases that the new, and
actually correct, algorithm should not suffer from.

GeocellFormatting deleted; the functions still used were reincorporated into
GeocellLibrary.  If they need to be split out again, they should be made into
a conversion class.

GeocellLibrary:
- Documentation updated to reflect current library status.
- getQueryCells/interpolation/merge/shrink now function with any step size.
- getQueryCells cost function updated slightly, added a way for the resolution
  to continue increasing in spite of an increasing cost function.
- Merge/shrink algorithm split out of interpolation for clarity and to provide
  a way to make the process optional in the future.
Added ancestry classes to GeocellLibrary and fromPointAndRadius to Bounds.

Added children/ancestor and isAncestorOf functions to GeocellLibrary class.

To implement fromPointAndRadius, added destinationPoint to Point.

Moved formatting out of GeocellLibrary again and into BinaryStringConv.
Should move references out of core classes such as GeocellContainer.

Updated some comments and all references to BinaryStringConv functions.
Added testing, ability to freeze calculated cells, and history tokens.

Simple JUnit tests added for GeocellLibrary and Converter classes.
Moved StaticTests, CellMap.runTests, and Point's static main to JUnit
classes.

Added a toggle button to freeze the calculated cells (stop recalculation on
move) and unfreeze them when frozen.

Added resize handler to CellMap to resize the map when the window size changes.

Added functions to CellMap to store state in and restore state from a token.

Changed display style in CellMap in terms of panels used.

Modified MapClient to call itself as a Runnable rather than MapClientCallback.

Changed MapClient display structure in terms of panels used.  Added history
token handler to MapClient which calls CellMap's fromToken.

Added resize handler to MapClient for changing the disclosure panel size.

Added function to GwtGeocell to force label recalculation.  Important for frozen
calculations when the zoom button is used.

Removed setResolution from GeocellLibrary.  Everywhere it was used did not
require the zeroing of the resolution field, and the need to expose it as public
in order for the conversion classes to use it was at best cumbersome and at
worst misleading.  Since all of the referencing code already zeroed out the
resolution bits, it was just as easy, if not quite as explicitly clear, to add
in the resolution.

Started GWT test class for GwtGeocellTest, but using JUnit with Maps API quite
cumbersome.

.gitignore modified to allow /test and ignore /www-test.
.classpath updated with test and JUnit.

geocell_map.html updated to use h1/h2 for title/loadingMsg instead of span.
geocell_map.css simplified to only mention h1/h2.

Moved to App Engine SDK 1.5.5.
Trailing whitespace and minor wording fixes.
Add fixedGrid function to GeocellLibrary along with test.
Change some style elements for geocell-map app display.
Became a slave to Checkstyle.