Add TODO item about CellTable pager positioning.
[online-glom:gwt-glom.git] / TODO
1 Here's a list of TODO items / ideas in no particular order.
2
3
4 Improvements to LayoutListView:
5
6 * Implement column width size as specified in the glom file.
7
8 * Add support for LayoutItem_Text, LayoutItem_Button and LayoutItem_Image items.
9
10 * Make width of the CellTable used for the LayoutList consistent between the
11   tables so that the UI doesn't appear to jump around. One way to do this is to
12   find the width of the largest table and enlarge the column widths
13   proportionally in the smaller tables. Of course this will not respect the
14   column widths specified in the glom file. Another option is to pad the smaller
15   tables with empty columns at the end so that the line under the headers extends to
16   the end of the largest table. Some experimentation is required to see which option
17   is the best.
18
19 * Only the cell backgrounds are coloured which leaves a gap between the cells that
20   isn't coloured. I need to figure out a way to set 'style=background-colour:'
21   on the whole column rather than just the cell.
22
23 * Use ColumnInfo rpc object to send text background and foreground colours
24   instead of sending this information for each cell.
25
26 * Position the pager on the right side of the CellTable. Since the CellTable is
27   not a consistent horizontal size, the pager bounces around when switching and
28   doesn't look nice. A possible solution is to put the CellTable into a
29   container widget that adds a horizontal scrollbar if the horizontal table
30   size is larger than the browser window. I needed to work around some
31   alignment bugs so here's some to code that might help when tackling this
32   problem:
33
34   HorizontalPanel hPanel = new HorizontalPanel();
35   // setting the alignment through the object method doesn't work, I need to set the alignment manually ...
36   // hPanel.setHorizontalAlignment(HasHorizontalAlignment.ALIGN_RIGHT);
37   hPanel.getElement().setPropertyString("align", HasHorizontalAlignment.ALIGN_RIGHT.getTextAlignString());
38   System.out.println(hPanel.getElement().getInnerHTML());
39   // I'm setting text location right but the text is actually at the left of the buttons ...
40   SimplePager pager = new SimplePager(SimplePager.TextLocation.RIGHT);
41   hPanel.add(pager);
42   panel.add(hPanel);
43
44
45 Improvements to LayoutDetailsView:
46
47 * This hasn't been started yet.
48
49
50 Currency formatting:
51
52 * The default Java currency formatting uses the currency symbol (€, $, etc) for
53   the currency used in the specified country and the currency code (EUR, USD,
54   etc) for currencies used outside of the specified country. For example, when
55   using en_CA (English Canada) with CAD (Canadian Dollars), the number 5.89 is
56   represented as "$5.89". With EUR, the same number is represented as "EUR5.89"
57   which is not what is expected. We should get either "€5.89" or "EUR 5.89".
58   Obviously Java is just replacing the currency symbol with the currency code for
59   currencies outside of the specified country. This might be a bug in Java which
60   should be reported to the openjdk project if required. Regardless if it's a bug
61   or not, it should be possible to work around this by using custom formatting
62   strings when we implement a preference for setting locale.
63
64
65 Servlet:
66
67 * Test memory usage before and after we execute the query that would result in
68   a large ResultSet.  We need to ensure that the JDBC driver is in fact
69   returning a cursor based result set that has a low memory footprint. Check
70   the difference between this value before and after the query:
71
72   Runtime.getRuntime().totalMemory() - Runtime.getRuntime().freeMemory()
73
74   See the TODO item about this in
75   src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java.
76
77 * Create a memory and time efficient way to get the row count. Right now the
78   ResultSet is not being returned in cursor mode because we're using
79   TYPE_SCROLL_INSENSITIVE to able to seek to the last record of the ResultSet.
80   The PostgreSQL JDBC driver doesn't support moving around in the ResultSet
81   when in cursor mode.  Here's the relevant PostgreSQL documentation:
82
83   http://jdbc.postgresql.org/documentation/83/query.html#query-with-cursor
84
85   An option might be to do a SELECT COUNT query using a method in libglom or a
86   custom method in java-libglom to build the query.
87
88   See: https://bugzilla.gnome.org/show_bug.cgi?id=645110