Not related to the issue; accidentally rediscovered the 'WrapLayout'
used for the backgrounds and applied it to the palette. This makes
resizing the palette a lot nicer since the 'grid' is not static and
fills as much as it can.
Filled out a design (not full implementation) of the Template class for
drawing an entire set of tiles at once per click.
Added implementation for templates and stubbed out interface for tile
editing. Discovered that the entire level editor will have to be
refactored to allow for an easy to use Template editor that feels the
same graphically as the level editor. In the meantime, may also want to
add support for the command pattern for a possible eventual
implementation of undo/redo.
Refactored out Paintbrush as a common element from main editor and added
utility class. First attempt at implementing interface failed horribly,
so those changes were reversed. Will have to revise design
Stubbed out with a bit of implementation a new TileMap class. This is a
bit of a focus shift; before I can implement templates, I must refactor
the Tile[][] that was used into a separate class so that tilemaps can
easily be rendered outside of actual levels.
Uprooted the entire tile[][] system with a TileMap class that internally
stores tiles as a 1D array, not 2D. Removed Tile class as it was
useless... tiles do not exist in a vaccum, they are always part of a map
that gives them position, so storing x/y position was unneeded; the map
now references TileType directly simplifying a great deal of code.

With the new TileMap type, it is now possible to define and easily
draw/update a map of tiles independent of the LevelScreen, with an
arbitrary size, which was a requirement to getting Templates to work.
Removed all the TileEditorGrid interface and implementation stuff and
the template editor. Starting at basic step by building a concrete class
for just editing a tilemap without regard to Sprites or goodies.
First step in refactoring MapEditor to be used by editing canvas... some
issues regarding goodies and the indicator image, as well as not
properly editing map. Will have to iron this out, probably remove
LevelScreenEditor and WorldEditor, since wrapping LevelScreen and World
is normally useless; most of the time the actual object is needed anyway
and the forwarding methods are an unneeded complexity.
Functionality of the level editor has finally been restored. The use of
MapEditor for editing just the tile section can now be re-used for the
template code.
Added some initial code to add a template palette to the editor.
Technically, this code really is more of a stub; template functionality
is still not ready.
Biggest breakthrough so far: templates can draw to levels properly!
Currently, two templates are hardcoded for testing; next step is to
softcode via xml, and then provide a method of editing a template
in-editor.
Wrote up an initial draft of the XML parsing. Will need to write test
cases to confirm. Does not cover XML writing.

Refactored to add TileTypes, a static class that handles creating common
tile types from an id and sometimes a world reference, automatically
handling any specifics required for getting a reference to a TileType.
Loading the xml file for templates is working, although XPath code is
bulky. If the complexity of the preferences file is ever increased, will
switch to Apache Digester for better ease of use (just didn't want to
add another library to the project)

Some delayed updated drawing on Palette and Templates when switching
worlds.
Wrote an extension to TileMap that creates a copy of the current map,
but resized, as well as JUnit tests to ensure the algorithm works. This
will eventually be used by the new template editor class for resizing
the paintable field on a whim.
Updated all TileType objects to properly implement equals and hashCode.
This is important for defining template equality, which will become
important for ensuring that if an editor is open for some Template A,
another editor cannot be opened for that same Template.
Added some hooks for adding/editing/removing in the TemplatePalette, but
cannot yet create the new template editor due to odd drawing and sizing
issues.
Template editor moves to palette itself to fix weird frame issue, but
current layout is not properly allowing the map to be represented at the
right sizes
Finally fixed display issues: Template can now be drawn in the palette
window. Last steps will be to tie that into the ability to save in
memory and back to XML.
New templates can now be created in memory, although editing existing
templates is still not working properly
XML Writer created, but will need to finally be glued to the rest of the
system and tested. The issue is almost completed.