Here's a list of TODO items / ideas in no particular order.


Improvements to LayoutListView:

* Implement column width size as specified in the glom file.

* Add support for LayoutItem_Text, LayoutItem_Button and LayoutItem_Image items.

* Make width of the CellTable used for the LayoutList consistent between the
  tables so that the UI doesn't appear to jump around. One way to do this is to
  find the width of the largest table and enlarge the column widths
  proportionally in the smaller tables. Of course this will not respect the
  column widths specified in the glom file. Another option is to pad the smaller
  tables with empty columns at the end so that the line under the headers extends to
  the end of the largest table. Some experimentation is required to see which option
  is the best.

* Only the cell backgrounds are coloured which leaves a gap between the cells that
  isn't coloured. I need to figure out a way to set 'style=background-colour:'
  on the whole column rather than just the cell.

* Use ColumnInfo rpc object to send text background and foreground colours
  instead of sending this information for each cell.

* Position the pager on the right side of the CellTable. Since the CellTable is
  not a consistent horizontal size, the pager bounces around when switching and
  doesn't look nice. A possible solution is to put the CellTable into a
  container widget that adds a horizontal scrollbar if the horizontal table
  size is larger than the browser window. Another possible solution is to
  expand the right most column to fill all of the available space. That will
  allow the pager to placed at the right most position of the hbox without
  bouncing around. More investigation is required. See the layoutlistview-tweaks
  branch for an implementation of some these ideas.

* When you click on the next button in a table with a large number of rows, the
  CellTable collapses then re-expands when retrieving the data. You can see an
  example of this with the Songs table in the Music Collection example. It
  would be nice if the pager didn't appear to jump around when making the RPC
  requests to get more data.

Improvements to LayoutDetailsView:

* This hasn't been started yet.


Currency formatting:

* The default Java currency formatting uses the currency symbol (€, $, etc) for
  the currency used in the specified country and the currency code (EUR, USD,
  etc) for currencies used outside of the specified country. For example, when
  using en_CA (English Canada) with CAD (Canadian Dollars), the number 5.89 is
  represented as "$5.89". With EUR, the same number is represented as "EUR5.89"
  which is not what is expected. We should get either "€5.89" or "EUR 5.89".
  Obviously Java is just replacing the currency symbol with the currency code for
  currencies outside of the specified country. This might be a bug in Java which
  should be reported to the openjdk project if required. Regardless if it's a bug
  or not, it should be possible to work around this by using custom formatting
  strings when we implement a preference for setting locale.


Servlet:

* Test memory usage before and after we execute the query that would result in
  a large ResultSet.  We need to ensure that the JDBC driver is in fact
  returning a cursor based result set that has a low memory footprint. Check
  the difference between this value before and after the query:

  Runtime.getRuntime().totalMemory() - Runtime.getRuntime().freeMemory()

* Test execution time of row count query with a large row count (> 1,000,000
  rows).

* See the TODO items about these two items in
  src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java.

Logging:

* Add the ability to log client side GWT code to the server log. This can be configured with gwt-log.

* Log the libglom error messages. This page describes how to add this:

http://sysgears.com/articles/how-to-redirect-stdout-and-stderr-writing-to-a-log4j-appender
