SqlUtils: Remove the Connection parameters.
[online-glom:gwt-glom.git] / ChangeLog
1 2012-05-15  Murray Cumming  <murrayc@murrayc.com>
2
3         SqlUtils: Remove the Connection parameters.
4
5         * src/main/java/org/glom/web/server/SqlUtils.java:
6         build_sql_select_with_key(), build_sql_select_with_where_clause(),
7         createSelect(), build_sql_select_step_with_where_clause(),
8         build_sql_count_select_with_where_clause(),
9         build_sql_select_count_rows(): Remove the Connection parameter because
10         jOOQ does not actually need a connectionwhen it is just used to build 
11         a SQL string:
12         https://groups.google.com/forum/#!topic/jooq-user/tIwobFOR2iM
13
14         * src/main/java/org/glom/web/server/ReportGenerator.java:
15         generateReport():
16         * src/main/java/org/glom/web/server/database/DetailsDBAccess.java:
17         getData():
18         * src/main/java/org/glom/web/server/database/ListDBAccess.java:
19         Constructor, getListData(), getResultSizeOfSQLQuery():
20         * src/main/java/org/glom/web/server/database/ListViewDBAccess.java:
21         getSelectQuery(), getCountQuery():
22         * src/main/java/org/glom/web/server/database/RelatedListDBAccess.java:
23         getSelectQuery(), getCountQuery():
24         * src/main/java/org/glom/web/server/database/RelatedListNavigation.java:
25         getNavigationRecord(): Adapted.
26
27 2012-05-14  Murray Cumming  <murrayc@murrayc.com>
28
29         Fix quick find.
30
31         * src/main/java/org/glom/web/server/SqlUtils.java:
32         get_find_where_clause_quick(): Use a comparison of 
33         lowercase values, instead of a simple equals. Regular Glom
34         uses the PostgreSQL ILIKE operator but jOOQ does not 
35         support that just yet, though it will soon.
36
37 2012-05-14  Murray Cumming  <murrayc@murrayc.com>
38
39         TableToViewDetails: Use a real serialization ID.
40
41         * src/main/java/org/glom/web/shared/libglom/layout/TableToViewDetails.java:
42         Though this does not fix the serialization problem.
43
44 2012-05-12  Murray Cumming  <murrayc@murrayc.com>
45
46         Added LayoutItemPortalDeepCloneTest.
47
48 2012-05-11  Murray Cumming  <murrayc@murrayc.com>
49
50         Make navigation work again.
51
52         * src/main/java/org/glom/web/server/libglom/Document.java:
53         Add getLayoutItemFieldShouldHaveNavigation().
54         * src/main/java/org/glom/web/shared/libglom/layout/LayoutItemField.java:
55         Replace get/setAddNavigation() with the partly-existing 
56         get/setNavigationTableName(), with an empty string being no navigation,
57         because this is simpler. Use the new 
58         Document.getLayoutItemFieldShouldHaveNavigation() method to set this.
59         
60         * src/main/java/org/glom/web/server/ConfiguredDocument.java:
61         Add updateFieldsExtras() and call setNavigationTableName in it.
62         getDetailsLayoutGroup(), 
63         * src/main/java/org/glom/web/client/activity/DetailsActivity.java
64         createLayout(): Adapted.
65         * src/main/java/org/glom/web/client/ui/details/DetailsCell.java
66         Constructor: Adapted.
67
68         * src/main/java/org/glom/web/shared/libglom/layout/LayoutItemPortal.java:
69         Replace get/setAddNavigation() with get/setNavigation(), returning a
70         TableToViewDetails class with both the table name and UsesRelationship,
71         because both are need. The previous code used java-libglom's output 
72         variable (strangely, via sharedptr) to return both, but we cannot really
73         do that in Java.
74         * src/main/java/org/glom/web/server/database/RelatedListNavigation.java:
75         getNavigationRecord(): Adapt. However, we cannot actually use the cache
76         here because it somehow gets set to null during deepCopy(). I must test this.
77         * src/test/java/org/glom/web/server/libglom/DocumentTest.java
78         testGetSuitableTableToViewDetails(): Adapted.
79         
80         TODO: Find out why deepClone() is not quite working.
81         
82 2012-05-11  Murray Cumming  <murrayc@murrayc.com>
83
84         DBAccess: Simplify the retrievel of full field details.
85
86         * src/main/java/org/glom/web/server/database/DBAccess.java
87         getFieldsToShowForSQLQueryAddGroup(). This might be unnecessary anyway,
88         because the Document loading should have done this.
89
90 2012-05-11  Murray Cumming  <murrayc@murrayc.com>
91
92         Document: Correct loading of doubly-related layout fields.
93
94         * src/main/java/org/glom/web/server/libglom/Document.java:
95         loadUsesRelationship(): Actually set the related relationship, instead
96         of only setting it if it's not found.
97
98 2012-05-09  Murray Cumming  <murrayc@murrayc.com>
99
100         Replace all appearances of Colour with color.
101
102         Because US English is dominant.
103
104 2012-05-09  Murray Cumming  <murrayc@murrayc.com>
105
106         Use colors in HTML format, solving a warning about an unused function.
107
108         * src/main/java/org/glom/web/shared/libglom/NumericFormat.java
109         * src/main/java/org/glom/web/shared/libglom/layout/Formatting.java:
110         Add *asHTMLColor() versions of methods.
111         TODO: However, we should create and cache the results on the server.
112         * src/main/java/org/glom/web/client/ui/details/DetailsCell.java
113         * src/main/java/org/glom/web/client/ui/list/ListTable.java
114         * src/main/java/org/glom/web/server/ConfiguredDocument.java
115         * src/test/java/org/glom/web/server/libglom/DocumentTest.java:
116         Use the asHTMLcolor() versions.
117
118 2012-05-09  Murray Cumming  <murrayc@murrayc.com>
119
120         ListViewTable: Constructor: Take the table name as a parameter.
121
122         * src/main/java/org/glom/web/client/ui/list/ListViewTable.java:
123         Constructor: Take the tableName, and set the member variable, because
124         we use it here.
125         * src/main/java/org/glom/web/client/ui/ListViewImpl.java:
126         setCellTable(): Pass the table name.
127         This makes navigation to non-default tables work again. I don't know 
128         why it worked before in the master branch.
129
130 2012-05-07  Murray Cumming  <murrayc@murrayc.com>
131
132         ConfiguredDocument: Restore correct addition of hidden primary key items.
133
134         * src/main/java/org/glom/web/client/ui/list/ListTable.java
135         (ListTable.createCellTable): Uncomment out the check for the hidden
136         primary key.
137         * src/main/java/org/glom/web/server/ConfiguredDocument.java: Only
138         add primary key items for top-level lists and portals, as before, 
139         instead of adding them to each group.
140         * src/main/java/org/glom/web/shared/libglom/layout/LayoutGroup.java:
141         Actually implement the extra methods such as setHiddenPrimaryKey() and
142         comment that these are used only for top-level list groups and in portals.
143         This strangeness suggests even more that this should not be squeezed
144         into the LayoutGroup class.
145
146 2012-05-07  Murray Cumming  <murrayc@murrayc.com>
147
148         Fix Formatting loading.
149
150         * src/main/java/org/glom/web/shared/libglom/layout/LayoutItemField.java:
151         getFormattingUsed(): Remove the duplicate Formatting member variable
152         in favour of the one from the base class.
153         * src/main/java/org/glom/web/shared/libglom/layout/LayoutItemWithFormatting.java:
154         Initialize a new Formatting instead of using null by default, so we 
155         have some defaults, instead of having to initialize one later just to 
156         get the same defaults. This also makes loading of formatting from the
157         document work, because that expected a non-null.
158
159 2012-05-07  Murray Cumming  <murrayc@murrayc.com>
160
161         RelatedListTable: Make sure that the tableName is set.
162
163         * src/main/java/org/glom/web/client/ui/details/RelatedListTable.java:
164         Constructor: Take the tableName so it is available later. Otherwise, 
165         the server assumes that we mean the default table and cannot find the
166         relationship in it.
167         * src/main/java/org/glom/web/client/activity/DetailsActivity.java
168         setData(): Pass the tableName to the RelatedListTable constructor.
169
170 2012-05-07  Murray Cumming  <murrayc@murrayc.com>
171
172         Add some checks.
173
174         * src/main/java/org/glom/web/client/activity/DetailsActivity.java:
175         RelatedListNavigationButtonCell.onEnterKeyDown(), setData():
176         * src/main/java/org/glom/web/client/ui/details/RelatedListTable.java:
177         getDataProvider():
178         * src/main/java/org/glom/web/client/ui/list/ListTable.java:
179         addColumn():
180         * src/main/java/org/glom/web/server/database/DBAccess.java:
181         convertResultSetToDTO(), getPortal():
182         * src/main/java/org/glom/web/server/database/ListDBAccess.java
183         getListData():
184         * src/main/java/org/glom/web/server/database/RelatedListDBAccess.java:
185         Add checks for null objects and out of range access, with log messages to
186         give hints so we can fix these properly.
187
188 2012-05-07  Murray Cumming  <murrayc@murrayc.com>
189
190         Portals: some corrections.
191
192         * src/main/java/org/glom/web/client/activity/DetailsActivity.java
193         setData():
194         * src/main/java/org/glom/web/client/ui/details/RelatedListTable.java:
195         constructor: Use getRelationshipNameUsed() instead of getName(), because
196         that is what is meant.
197         * src/main/java/org/glom/web/shared/libglom/layout/LayoutItemPortal.java:
198         getFromField(): Fix a typo, to get the field name, not the table name.
199         * src/main/java/org/glom/web/server/database/DBAccess.java:
200         getPortal(): Fix a typo that stopped this from working.
201
202 2012-05-07  Murray Cumming  <murrayc@murrayc.com>
203
204         LayoutItemPortal: Also override getTitleOriginal().
205
206         * src/main/java/org/glom/web/shared/libglom/layout/LayoutItemPortal.java:
207         This lets the base getTitle() with no parameters work.
208         TODO: Test this properly.
209
210 2012-05-06  Murray Cumming  <murrayc@murrayc.com>
211
212         LayoutItemPortal: getTitle*(): Use the relationship title.
213
214 2012-05-06  Murray Cumming  <murrayc@murrayc.com>
215
216         LayoutItemField: Fix loading of custom titles.
217
218         * src/main/java/org/glom/web/server/libglom/Document.java
219         loadDataLayoutItemField(): The title, if any, instead of the field 
220         title, is stored in a title_custom node. Load it from there.
221         * src/main/java/org/glom/web/shared/libglom/CustomTitle.java: Add this
222         class.
223         * src/main/java/org/glom/web/shared/libglom/layout/LayoutItemField:
224         Add getCustomTitle() and use it, instead of super.getTitle*(), in the
225         getTitle*() overrides.
226         * src/test/java/org/glom/web/server/libglom/LayoutItemFieldTest.java:
227         Adapt.
228
229 2012-05-06  Murray Cumming  <murrayc@murrayc.com>
230
231         LayoutItemField: Fall back to field titles, so some are really shown.
232
233         * src/main/java/org/glom/web/shared/libglom/layout/LayoutItemField.java:
234         Override getTitleOriginal() and getTitle(), as in java-libglom.
235         * src/test/java/org/glom/web/server/libglom/LayoutItemFieldTest.java:
236         Test this behaviour.
237
238 2012-05-06  Murray Cumming  <murrayc@murrayc.com>
239
240         Correct use of setExpectedResultSize().
241
242         * src/main/java/org/glom/web/server/ConfiguredDocument.java
243         getValidListViewLayoutGroup(), getDetailsLayoutGroup():
244         Use setExpectedResultSize only on top-level groups (for instance, the
245         list layout) or on child portals (in details views).
246         Use the correct table name for portals to avoid SQL errors.
247         Update the expected counts when returning cached layouts.
248
249 2012-05-06  Murray Cumming  <murrayc@murrayc.com>
250
251         Document: Interpret no group column count as 1.
252
253         * src/main/java/org/glom/web/server/libglom/Document.java: Use a sane
254         default, though we now check for this in the UI code anyway.
255
256 2012-05-06  Murray Cumming  <murrayc@murrayc.com>
257
258         More null checks.
259
260 2012-05-06  Murray Cumming  <murrayc@murrayc.com>
261
262         Translatable: Use Hashmap instead of Treemap because GWT supports it.
263
264         * src/main/java/org/glom/web/shared/libglom/Translatable.java:
265         The use of Treemap lead to this error from async methods, with no 
266         further clue:
267         "The response could not be deserialized"
268
269 2012-05-06  Murray Cumming  <murrayc@murrayc.com>
270
271         OnlineGlom.gwt.xml: Add exludes to fix explicit gwt compilation in Eclipse.
272
273         * src/main/java/org/glom/web/OnlineGlom.gwt.xml: This is necessary 
274         when using the Google -> GWT Compile, or 
275         g toolbar button -> GWT Compile Project... feature in Eclipse.
276
277 2012-05-06  Murray Cumming  <murrayc@murrayc.com>
278
279         ListTable.addColumn(): Protect against a null Formatting.
280
281         * src/main/java/org/glom/web/client/ui/list/ListTable.java: addColumn():
282         Create a default Formatting if it is null, because that is the simplest
283         way to do this.
284
285 2012-05-06  Murray Cumming  <murrayc@murrayc.com>
286
287         ConfiguredDocument.updateLayoutGroup(): Protect against a null dereference.
288
289         * src/main/java/org/glom/web/server/ConfiguredDocument.java
290         updateLayoutGroup(): Check that the field is not null.
291
292 2012-05-06  Murray Cumming  <murrayc@murrayc.com>
293
294         ListViewImpl: Protected against a bad cast error.
295
296         * src/main/java/org/glom/web/client/ui/ListViewImpl.java:
297         onEnterKeyDown(): Do not cast without an instanceof check.
298
299 2012-05-06  Murray Cumming  <murrayc@murrayc.com>
300
301         ListTable: Protect against an out of range error.
302
303         * src/main/java/org/glom/web/client/ui/list/ListTable.java
304         createCellTable(): This is unlikely, but can happen while debugging.
305
306 2012-05-06  Murray Cumming  <murrayc@murrayc.com>
307
308         AsyncMessage onFailure() callbacks: Log the exception message.
309
310         * src/main/java/org/glom/web/client/activity/DetailsActivity.java
311         * src/main/java/org/glom/web/client/activity/DocumentSelectionActivity.java:
312         * src/main/java/org/glom/web/client/activity/ListActivity.java:
313         * src/main/java/org/glom/web/client/activity/ReportActivity.java:
314         * src/main/java/org/glom/web/client/activity/TableSelectionActivity:
315         * src/main/java/org/glom/web/client/ui/details/RelatedListTable.java:
316         * src/main/java/org/glom/web/client/ui/list/ListViewTable.java:
317         These are useful clues when something is wrong.
318
319 2012-05-06  Murray Cumming  <murrayc@murrayc.com>
320
321         ConfiguredDocument: Avoid a null dereference.
322
323         * src/main/java/org/glom/web/server/ConfiguredDocument.java
324         TableLayoutsForLocale.getMapWithAdd(): Make sure that the list and 
325         details maps are created.
326
327 2012-05-06  Murray Cumming  <murrayc@murrayc.com>
328
329         Document: Correct the port number parsing.
330
331         * src/main/java/org/glom/web/server/libglom/Document.java:
332         This lets us actually connect to the database and show the document.
333
334 2012-05-05  Murray Cumming  <murrayc@murrayc.com>
335
336         Fix mvn gwt:test
337
338         * pom.xml: Use htmlunit mode for gwt:test, because the default demands
339         user-interaction, asking us to load a temporary URL in a browser.s
340         * src/main/java/org/glom/web/OnlineGlom.gwt.xml: Add a servlet node,
341         which is apparently necessary for testing the service. See the comment.
342         * src/test/java/org/glom/web/client/GwtTestOnlineGlomService.java: 
343         Show the exception, if any. This is how I saw the 404 in the HTML in 
344         the exception.
345
346 2012-05-05  Murray Cumming  <murrayc@murrayc.com>
347
348         DocumentTest: Move the .glom files into the resources directory.
349
350         * src/test/java/org/glom/web/server/libglom/DocumentTest: And get the
351         URI via getResource().
352
353 2012-05-05  Murray Cumming  <murrayc@murrayc.com>
354
355         Document: Remove the FieldIdentifies inner class.
356
357         * src/main/java/org/glom/web/server/libglom/Document.java: We only
358         use the Relationship (though the same function in libglom is maybe
359         used in other ways) and so this removes a compiler warning.
360
361 2012-05-05  Murray Cumming  <murrayc@murrayc.com>
362
363         Document.load() Remove the error code parameter.
364
365         * src/main/java/org/glom/web/server/libglom/Document.java: load():
366         Remove the parameter. We do not set it yet and it could never have
367         worked as an output parameter (though maybe it did in java-libglom).
368         We could use an exception if we really want the failure reason.
369         * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java:
370         init():
371         * src/test/java/org/glom/web/server/libglom/DocumentTest.java:
372         setUp(), testGetSuitableTableToViewDetails(): Adapt.
373
374 2012-05-05  Murray Cumming  <murrayc@murrayc.com>
375
376         Make some inner classes static.
377
378         * src/main/java/org/glom/web/server/ConfiguredDocument.java
379         * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java
380         * src/main/java/org/glom/web/server/ReportGenerator.java
381         * src/main/java/org/glom/web/server/libglom/Document.java
382         Make all inner classes static that can be static.
383
384 2012-05-05  Murray Cumming  <murrayc@murrayc.com>
385
386         OnlineGlomServiceImpl: Do not load and check for java-libglom.
387
388         * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java
389         init(): We do not use java-libglom any more.
390
391 2012-05-05  Murray Cumming  <murrayc@murrayc.com>
392
393         Remove mentions of java-libglom.
394
395         * README: Remove mention of java-libglom, because it no longer needed.
396         * utils/build-onlineglom-war.sh:
397         * utils/check-and-recover-tomcat.py:
398         * utils/install-onlineglom-war.sh: Remove these as they are no longer
399         useful. Building is now far easier, with no need for jhbuild.
400
401 2012-05-05  Murray Cumming  <murrayc@murrayc.com>
402
403         Fix the build (mvn package)
404
405         * src/main/java/org/glom/web/shared/libglom/layout/LayoutGroup.java
406         (LayoutGroup): Make the LayoutItemList inner class static and protected.
407         Otherwise the GWT Java->Javascript compilation fails with just this
408         error, during mvn package or when attempting to view in a browser, 
409         in the GWT developer mode in Eclipse.
410
411         [INFO] --- gwt-maven-plugin:2.4.0:compile (default) @ gwt-glom ---
412         [INFO] auto discovered modules [org.glom.web.OnlineGlom]
413         [INFO] Compiling module org.glom.web.OnlineGlom
414         [INFO]    [ERROR] Errors in 'file:/home/murrayc/checkouts/gnome/gwt-glom/src/main/java/org/glom/web/client/OnlineGlomServiceAsync.java'
415         [INFO]       [ERROR] Line 46:  Failed to resolve 'org.glom.web.client.OnlineGlomService' via deferred binding
416         [INFO]    Scanning for additional dependencies: file:/home/murrayc/checkouts/gnome/gwt-glom/src/main/java/org/glom/web/client/ui/details/DetailsCell.java
417         [INFO]       [WARN] For the following type(s), generated source was never committed (did you forget to call commit()?)
418         [INFO]          [WARN] org.glom.web.client.OnlineGlomService_Proxy
419         [INFO]    [ERROR] Cannot proceed due to previous errors
420
421         It has taken me 2 days to find out what was causing that. After reducing
422         the code, the compiler eventually showed me the full error message.
423
424 2012-05-04  Murray Cumming  <murrayc@murrayc.com>
425
426         ConfiguredDocument: Cache the cloned and stripped layouts.
427
428         * src/main/java/org/glom/web/server/ConfiguredDocument.java:
429         getValidListViewLayoutGroup(), .getDetailsLayoutGroup(): Store the cloned
430         layout in a map, so we can retrieve it again without rebuilding it.
431
432 2012-05-04  Murray Cumming  <murrayc@murrayc.com>
433
434         UsesRelationshipImpl: Complete the relationshipEquals() implementation.
435
436 2012-05-04  Murray Cumming  <murrayc@murrayc.com>
437
438         libglom classes: Implement some auto-generated emthods.
439
440 2012-05-04  Murray Cumming  <murrayc@murrayc.com>
441
442         Add GwtTestOnlineGlomService.
443
444         * src/test/java/org/glom/web/client/GwtTestOnlineGlomService.java:
445         However, this (and the other GwtTest*) does not seem to run during 
446         mvn test. 
447
448 2012-05-04  Murray Cumming  <murrayc@murrayc.com>
449
450         Remove use of unsupported features from client code.
451
452         * src/main/java/org/glom/web/client/StringUtils.java: Add equals().
453         * src/main/java/org/glom/web/shared/libglom/layout/UsesRelationshipImpl.java:
454         * src/main/java/org/glom/web/shared/libglom/layout/reportparts/LayoutItemGroupBy.java:
455         Use our client version of StringUtils instead of the apache commons one.
456         
457         However, the GWT Javascript compliation still fails.
458
459 2012-04-25  Murray Cumming  <murrayc@murrayc.com>
460
461         Add a Field class and implement some loading of it in Document.
462
463 2012-04-25  Murray Cumming  <murrayc@murrayc.com>
464
465         Initial Document loading implementation, instead of libglom.
466
467         * src/test/java/org/glom/web/shared/libglom/: Add Document, Report,
468         and Translatable classes, and adapt the rest of the code to use them.
469         However, this is still missing Layout and Field classes and loading.
470
471 2012-04-24  Murray Cumming  <murrayc@murrayc.com>
472
473         Use of jOOQ: Move Field creation into a utility method.
474
475         * src/main/java/org/glom/web/server/SqlUtils.java:
476         This lets us improve it more easily.
477
478 2012-04-24  Murray Cumming  <murrayc@murrayc.com>
479
480         Use of jOOQ: Improve the code to COUNT a sub-select.
481
482         * src/main/java/org/glom/web/server/SqlUtils.java:
483         Move initial query creation into 
484         build_sql_select_step_with_where_clause().
485         build_sql_select_count_rows(): Use the jOOQ API instead of
486         concatentating text, because a jOOQ Select*Step is a TableLike,
487         which is what from() takes.
488
489 2012-04-23  Murray Cumming  <murrayc@murrayc.com>
490
491         Use jOOQ instead of Glom.build_sql*(), to avoid native calls.
492
493         * pom.xml: Depend on jooq.
494         * src/main/java/org/glom/web/server/SqlUtils.java: Reimplement the
495         methods with jOOQ, based on the C++ implementations in libglom,
496         with some changes to the logic required by jooQ.
497         Take a jOOQ Condition rather than a Glom.SqlExpr (GdaSqlExpr) for the
498         where clause.
499         * src/main/java/org/glom/web/client/ui/TableSelectionViewImpl.java:
500         * src/main/java/org/glom/web/server/ReportGenerator.java:
501         * src/main/java/org/glom/web/server/SqlUtils.java:
502         * src/main/java/org/glom/web/server/database/DetailsDBAccess.java:
503         * src/main/java/org/glom/web/server/database/ListDBAccess.java:
504         * src/main/java/org/glom/web/server/database/ListViewDBAccess.java:
505         * src/main/java/org/glom/web/server/database/RelatedListDBAccess.java:
506         * src/main/java/org/glom/web/server/database/RelatedListNavigation:
507         Adapt. In particular, the SqlUtils methods now need to take a Connection,
508         because jOOQ needs that, though it seems unnecessary.
509
510         This is not quite finished. Ideally jOOQ would help us to build 
511         table_name.field_name names, quoting and escaping them properly.
512         See http://stackoverflow.com/questions/10264001/instantiating-a-jooq-field-by-name
513
514 2012-04-21  Murray Cumming  <murrayc@murrayc.com>
515
516         Move use of Glom.build_sql*() into a new SqlUtils class.
517
518         * src/main/java/org/glom/web/server/SqlUtils.java: Add static methods
519         to wrap Glom.build_sql*(). The parameter types are still Glom one,
520         but this will make it easier to start using something other than 
521         libglom or SqlBuilder.
522
523 2012-04-21  Murray Cumming  <murrayc@murrayc.com>
524
525         Update the project URL.
526
527         * pom.xml: Use an OnlineGlom-specific URL for the project URL.
528
529 2012-04-21  Murray Cumming  <murrayc@murrayc.com>
530
531         Main layout: Use a FlowTable instead of absolute positioning.
532
533         * src/main/java/org/glom/web/client/OnlineGlom.java: onModuleLoad():
534         The RootLayoutPanel is a (extends) AbsolutePanel, so each of its 
535         child panels/widgets must have an absolute position. But that is annoying, so
536         this adds a FlowTable and puts the child panels in there.
537
538 2012-04-21  Murray Cumming  <murrayc@murrayc.com>
539
540         GwtTestOnlineGlom: Comment out unused code.
541
542         * src/test/java/org/glom/web/client/GwtTestOnlineGlom.java:
543         Eclipse has started to say that some code is unused.
544
545 2012-04-21  Murray Cumming  <murrayc@murrayc.com>
546
547         Update to the latest versions of dependencies.
548
549         * pom.xml: Update version numbers of dependencies to the latest
550         versions.
551         * src/main/java/org/glom/web/server/ConfiguredDocument.java:
552         * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java:
553         * src/main/java/org/glom/web/server/ReportGenerator.java:
554         * src/main/java/org/glom/web/server/database/ListViewDBAccess.java:
555         * src/main/java/org/glom/web/server/database/RelatedListDBAccess.java:
556         * src/main/java/org/glom/web/server/database/RelatedListNavigation.
557         java:
558         * src/test/java/org/glom/web/client/GwtTestOnlineGlom.java:
559         Modify the imports where necessary.
560
561 2012-04-17  Murray Cumming  <murrayc@murrayc.com>
562
563         Style: Remove overflow:hidden from searchbox
564
565         * src/main/webapp/style.css: Because this pushes the Back To Link
566         label/link on to the next row, which is then hidden due to the 
567         hard-coded (in ems) height.
568
569 2012-04-20  Murray Cumming  <murrayc@murrayc.com>
570
571         Remove some duplicate code.
572
573         * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java
574         getDocumentInfo(): This must have been duplicated during the merge from the
575         reports branch.
576
577 1.21.8.1:
578
579 2012-04-19  Murray Cumming  <murrayc@murrayc.com>
580
581         Reports: Localize the waiting for report message.
582
583         * src/main/java/org/glom/web/client/activity/ReportActivity.java
584         start(): Get the message from the contants.
585         * src/main/resources/org/glom/web/client/ui/OnlineGlomConstants.properties:
586         Add the string here.
587         * src/main/resources/org/glom/web/client/ui/OnlineGlomConstants_cs.properties:
588         * src/main/resources/org/glom/web/client/ui/OnlineGlomConstants_de.properties:
589         * src/main/resources/org/glom/web/client/ui/OnlineGlomConstants_es.properties:
590         * src/main/resources/org/glom/web/client/ui/OnlineGlomConstants_sl.properties:
591         * src/main/resources/org/glom/web/client/ui/OnlineGlomConstants_zh_CN.properties:
592         Update these files with the English text for newer strings for now.
593
594 2012-04-19  Murray Cumming  <murrayc@murrayc.com>
595
596         Reports: Show a message while waiting for the report.
597
598         * src/main/java/org/glom/web/client/ui/ReportView.java
599         * src/main/java/org/glom/web/client/ui/ReportViewImpl.java:
600         Add setWaitingText(), to show a message saying that we are 
601         waiting for the report to be ready.
602         * src/main/java/org/glom/web/client/activity/ReportActivity.java
603         start(): Call setWaitingText() before calling the async
604         report generation.
605
606 2012-04-19  Murray Cumming  <murrayc@murrayc.com>
607
608         ReportGenerator: Specify date and time formats.
609
610         * src/main/java/org/glom/web/server/ReportGenerator.java:
611         createFieldValueElement(): Use the default (and localized)
612         short formats, though we still need a way to show 4-digit
613         years without providing the format for every locale.
614         * src/main/java/org/glom/web/server/database/DBAccess.java:
615         convertResultSetToDTO(): Use the short formats here too.
616
617 2012-04-18  Murray Cumming  <murrayc@murrayc.com>
618
619         ReportGenerator: Use the correct numeric formatting.
620
621         * src/main/java/org/glom/web/server/ReportGenerator.java
622         createFieldExpression(), createFieldValueElement(): Take the
623         whole LayoutItem_Field instead of just the field name, so
624         we have access to the formatting.
625         createFieldValueElement(): Use JRTextField.setPattern() to
626         specify the numeric formatting, with the help of a 
627         regular DecimalFormat.
628
629 2012-04-18  Murray Cumming  <murrayc@murrayc.com>
630
631         ReportGenerator: Avoid showing null for group by titles.
632
633         * src/main/java/org/glom/web/server/ReportGenerator.java
634         generateReport(): Use setBlankWhenNull() on the field title
635         style too, because this is used for values in group by
636         sections.
637
638 2012-04-18  Murray Cumming  <murrayc@murrayc.com>
639
640         ReportGenerator: Add a colon to titles in vertical groups.
641
642         * src/main/java/org/glom/web/server/ReportGenerator.java
643         addFieldToDetailBandVertical(): Pass true for the withColon
644         parameter.
645
646 2012-04-18  Murray Cumming  <murrayc@murrayc.com>
647
648         ReportGenerator: Simplify the code by using Position more.
649
650 2012-04-18  Murray Cumming  <murrayc@murrayc.com>
651
652         Reports: Support vertical groups, roughly.
653
654         * src/main/java/org/glom/web/server/ReportGenerator.java:
655         addToReport(): Rename to addGroupToReport() and, if necessary,
656         call the new addVerticalGroupToReport() method.
657         createFieldValueElement(): Let the caller specify the Y position
658         too.
659
660 2012-04-17  Murray Cumming  <murrayc@murrayc.com>
661
662         Reports: Allow a second report to be shown.
663
664         * src/main/java/org/glom/web/client/ui/ReportViewImpl.java:
665         clear(): Do not remove the HTML widget, which broke the whole layout.
666
667 2012-04-17  Murray Cumming  <murrayc@murrayc.com>
668
669         Locales drop-down: Show that we use English by default.
670
671         * src/main/java/org/glom/web/client/activity/TableSelectionActivity.java:
672         fillView(): When we use English, just because that is the default, when
673         no locale is specified, show that in the Locales drop-down instead of 
674         just showing the first item.
675
676 2012-04-17  Murray Cumming  <murrayc@murrayc.com>
677
678         Unselect the Report/Locale/Table combo item when appropriate.
679
680         * src/main/java/org/glom/web/client/activity/TableSelectionActivity.java:
681         setPlace(): clear reportName if this is not a ReportPlace.
682         * src/main/java/org/glom/web/client/ui/TableSelectionViewImpl.java:
683         setSelectedTableName(), setSelectedLocale(), setSelectedReport():
684         When the provided name is empty, unselect all items, so that none are
685         indicated. This uses a for loop because I cannot find a single method
686         to do this.
687
688 2012-04-17  Murray Cumming  <murrayc@murrayc.com>
689
690         Report: Give the user a way to get back to the list.
691
692         * src/main/java/org/glom/web/client/activity/TableSelectionActivity.java:
693         start(), setPlace(): Show the Back To List link on reports, and also 
694         interpret selecting the empty report item as back to list.
695
696 2012-04-13  Murray Cumming  <murrayc@murrayc.com>
697
698         Really show the selected Report name.
699
700         * src/main/java/org/glom/web/client/activity/TableSelectionActivity:
701         setPlace(): Store the reportName here, if it is that kind of Place.
702         fillView(): Set the selected Report after filling the list of reports.
703         * src/main/java/org/glom/web/client/ui/TableSelectionViewImpl.java:
704         setSelectedLocale(), setSelectedReport(): Avoid possible uses of
705         null Strings, though we need some way to unselect all ListBox items
706         in that case.
707
708 2012-04-13  Murray Cumming  <murrayc@murrayc.com>
709
710         ReportGenerator: Try to avoid some problems.
711
712         * src/main/java/org/glom/web/server/ReportGenerator.java
713         addField(): Try to avoid duplicates, and avoid using a null
714         class type.
715
716 2012-04-13  Murray Cumming  <murrayc@murrayc.com>
717
718         Reports: Use quickFind.
719
720         * src/main/java/org/glom/web/client/OnlineGlomService.java;
721         * src/main/java/org/glom/web/client/OnlineGlomServiceAsync.java:
722         * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java:
723         getReportHTML(): Add a quickFind parameter.
724         * src/main/java/org/glom/web/client/activity/ReportActivity.java
725         start(): Pass the quickFind parameter.
726         * src/main/java/org/glom/web/server/ReportGenerator.java
727         generateReport(): Take a quickFind parameter.
728
729 2012-04-13  Murray Cumming  <murrayc@murrayc.com>
730
731         ReportPlace: Actually use the report name.
732
733         * src/main/java/org/glom/web/client/place/ReportPlace.java
734         getPlace(): Do not assign the report name to the quickfind.
735
736 2012-04-13  Murray Cumming  <murrayc@murrayc.com>
737
738         Show java.library.path when complaining.
739
740         * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java
741         init(): When telling us to check java.library.path, show the
742         current value.
743
744 2012-03-06  Murray Cumming  <murrayc@murrayc.com>
745
746         ReportGenerator: Do not show nulls.
747
748 2012-03-06  Murray Cumming  <murrayc@murrayc.com>
749
750         ReportGenerator: Make the title font larger.
751
752 2012-03-06  Murray Cumming  <murrayc@murrayc.com>
753
754         ReportGenerator: Put field titles inside groups, if there are groups.
755
756 2012-03-06  Murray Cumming  <murrayc@murrayc.com>
757
758         ReportGenerator: Take the Report itself instead of the name and group.
759
760         * src/main/java/org/glom/web/server/ConfiguredDocument.java
761         Remove getReportLayoutGroup().
762         * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java
763         getReportHTML(): Pass the report instead
764         of its name and layout group.
765         * src/main/java/org/glom/web/server/ReportGenerator.java
766         generateReport(): Use the report object to use the title 
767         instead of the name.
768
769 2012-03-06  Murray Cumming  <murrayc@murrayc.com>
770
771         ReportGenerator: Remove designBand parameters.
772
773         * src/main/java/org/glom/web/server/ReportGenerator.java:
774         Make designBand a class member instead of passing it to all
775         methods.
776
777 2012-03-06  Murray Cumming  <murrayc@murrayc.com>
778
779         ReportGenerator: Add lines, a bit like in the desktop version.
780
781         * src/main/java/org/glom/web/server/ReportGenerator.java
782         addToReport(): Use JRDesignLine.
783
784 2012-03-06  Murray Cumming  <murrayc@murrayc.com>
785
786         ReportGenerator: Correct the title positions and use some bold style.
787
788         * src/main/java/org/glom/web/server/ReportGenerator.java:
789         Break the code up into reusable functions, correct the placement of 
790         titles, and use normal/bold styles as in the reports in the desktop 
791         version.
792
793 2012-03-06  Murray Cumming  <murrayc@murrayc.com>
794
795         ReportGenerator: Add a header band to show the field titles.
796
797         * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java
798         getReportHTML(): Pass the localeId to the ReportGenerator 
799         constructor.
800         * src/main/java/org/glom/web/server/ReportGenerator.java
801         constructor: Take the localeID so we can get translated field
802         titles.
803         generateReport(), addToReport(), addFieldToBand(): Add field 
804         titles in a column header band.
805
806 2012-03-05  Murray Cumming  <murrayc@murrayc.com>
807
808         Reports drop-down list: Some improvement.
809
810         * src/main/java/org/glom/web/client/ui/TableSelectionView.java
811         * src/main/java/org/glom/web/client/ui/TableSelectionViewImpl.java:
812         Adedd setSelectedReport(),
813         setReportList(): Add a blank line so that the user can select the 
814         first one.
815         * src/main/java/org/glom/web/client/activity/ReportActivity.java
816         start(): Show the current report by calling setSelectedReport().
817         This does not seem to work yet.
818
819 2012-03-05  Murray Cumming  <murrayc@murrayc.com>
820
821         DetailsActivity, ListActivity: Move some variables into a base class.
822
823         * src/main/java/org/glom/web/client/activity/DetailsActivity.java:
824         * src/main/java/org/glom/web/client/activity/HasTableActivity.java:
825         * src/main/java/org/glom/web/client/activity/ListActivity.java: Move 
826         the clientFactory, documentID, tableName and authenticationPopup into
827         a base class, to avoid duplication.
828
829 2012-03-05  Murray Cumming  <murrayc@murrayc.com>
830
831         Translate the Reports label.
832
833         * src/main/java/org/glom/web/client/ui/TableSelectionViewImpl.java
834         Get the "Reports" label string from the constants.
835         * src/main/resources/org/glom/web/client/ui/OnlineGlomConstants.pro
836         perties: Add Reports to the constants.
837
838 2012-03-05  Murray Cumming  <murrayc@murrayc.com>
839
840         Reports: Implement grouping.
841
842         * src/main/java/org/glom/web/server/ReportGenerator.java:
843         Handle LayoutItem_GroupBy items and try to do the right thing
844         with JRDesignGroup. It seems to work.
845
846 2012-03-04  Murray Cumming  <murrayc@murrayc.com>
847
848         Actually show some data with JasperReports.
849
850         * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java: 
851         getReportHTML(): Move most code into a ReportGenerator class.
852         * src/main/java/org/glom/web/server/ReportGenerator.java:
853         Recurse into sub-groups, adding fields to the JasperDesign's details
854         band. Note that we must set an arbitrary width and height, or it just
855         will not show any data.
856
857 2012-03-04  Murray Cumming  <murrayc@murrayc.com>
858
859         Reports Chooser: Show the titles, not the names.
860
861         * src/main/java/org/glom/web/client/ui/TableSelectionViewImpl.java
862         (TableSelectionViewImpl.setReportList): Show the titles in the UI,
863         and the names as the values.
864         * src/main/java/org/glom/web/server/ConfiguredDocument.java
865         (ConfiguredDocument.getReportLayoutGroup): Do not return a default
866         group now that we provide the report name, so it should always 
867         succeed.
868
869 2012-02-15  Murray Cumming  <murrayc@murrayc.com>
870
871         Depend on jasperreports.
872
873         * pom.xml: Add the dependency. My plan is to use this on the 
874         server side.
875
876 2012-01-31  Murray Cumming  <murrayc@murrayc.com>
877
878         Implement navigation to report places.
879
880         * src/main/java/org/glom/web/client/activity/ReportActivity.java
881         start(): Do not bother to handle all events here.
882         * src/main/java/org/glom/web/client/ui/TableSelectionView.java
883         * src/main/java/org/glom/web/client/ui/TableSelectionViewImpl.java:
884         Added getSelectedReport().
885         * src/main/java/org/glom/web/client/activity/TableSelectionActivity
886         .java: start(): When handling a change to the reports chooser,
887         call getSelectedReport() and goTo() its ReportPlace.
888         * src/main/java/org/glom/web/client/ui/ReportView.java
889         * src/main/java/org/glom/web/client/ui/ReportViewImpl.java:
890         Added setReportHTML() which puts the html in a gwt HTML widget.
891         * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java
892         getReportHTML(): Return "TODO" just to show that this works.
893
894 2012-01-31  Murray Cumming  <murrayc@murrayc.com>
895
896         Make ReportPlace usable.
897
898         * src/main/java/org/glom/web/client/mvp/AppPlaceHistoryMapper.java:
899         Mention ReportPlace.
900         * src/main/java/org/glom/web/client/place/ReportPlace.java:
901         Correct the @prefix annotation.
902
903 2012-01-31  Murray Cumming  <murrayc@murrayc.com>
904
905         OnlineGlomService: Return report HTML rather than the LayoutGroup.
906
907         * src/main/java/org/glom/web/client/OnlineGlomService.java:
908         * src/main/java/org/glom/web/client/OnlineGlomServiceAsync.java:
909         * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java:
910         Change getReportLayout() to getReportHMTL() because we will not need to 
911         parse or render the report layout on the client side.
912         * src/main/java/org/glom/web/server/ConfiguredDocument.java:
913         getReportLayout(): Return the libglom LayoutGroup type because we will
914         not need to convert to a shared type, because this will not be used on
915         the client side.
916         * src/main/java/org/glom/web/client/activity/ReportActivity.java:
917         Adapted.
918
919         Note that there is still no implementation for this.
920
921
922 2012-01-27  Murray Cumming  <murrayc@murrayc.com>
923
924         Add a (empty) Report Place, View, and Activity.
925
926         * src/main/java/org/glom/web/client/place/HasSelectableTablePlace.java:
927         Rename to:
928         * src/main/java/org/glom/web/client/place/HasTablePlace.java
929         * src/main/java/org/glom/web/client/place/ListPlace.java: Move some of
930         this into a superclass:
931         * src/main/java/org/glom/web/client/place/HasRecordsPlace.java
932         and also use it as the base of this new ReportPlace:
933         * src/main/java/org/glom/web/client/place/ReportPlace.java
934
935         * src/main/java/org/glom/web/client/ui/ReportView.java
936         * src/main/java/org/glom/web/client/ui/ReportViewImpl.java
937         * src/main/java/org/glom/web/client/activity/ReportActivity.java:
938         Add these, containing mostly boiler-plate for now.
939
940         * src/main/java/org/glom/web/client/OnlineGlomService.java
941         * src/main/java/org/glom/web/client/OnlineGlomServiceAsync.java
942         * src/main/java/org/glom/web/server/ConfiguredDocument.java
943         * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java:
944         Add API to get the LayoutGroup for the report.
945
946 2012-01-23  Murray Cumming  <murrayc@murrayc.com>
947
948         Add and fill a Reports drop-down list box.
949
950         * src/main/java/org/glom/web/server/ConfiguredDocument.java:
951         Aded getReports():
952         * src/main/java/org/glom/web/client/OnlineGlomService.java:
953         * src/main/java/org/glom/web/client/OnlineGlomServiceAsync.java:
954         * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java:
955         Added getReports(document, table, localeID), calling 
956         ConfiguredDocument.getReports().
957         * src/main/java/org/glom/web/client/ui/TableSelectionView.java:
958         * src/main/java/org/glom/web/client/ui/TableSelectionViewImpl.java:
959         Added setReportsList() and a list widget.
960         * src/main/java/org/glom/web/client/activity/TableSelectionActivity
961         .java (TableSelectionActivity.fillView(): Fill the view's reports list.
962
963
964 1.21.8:
965
966 2012-04-12  Murray Cumming  <murrayc@murrayc.com>
967
968         Translations: Add Esperanto.
969
970         * src/main/java/org/glom/web/OnlineGlom.gwt.xml
971         * src/main/resources/org/glom/web/client/ui/OnlineGlomConstants_eo.
972         properties: Add this translation because someone took the time to make it.
973
974 2012-03-15  Murray Cumming  <murrayc@murrayc.com>
975
976         Adapt to the java-libglom 1.21.7 API. 
977
978         * src/main/java/org/glom/web/server/ReportGenerator.java:
979         addToReport(): get_group_secondary_fields() is now
980         get_secondary_fields().
981
982
983 2012-03-15  Murray Cumming  <murrayc@murrayc.com>
984
985         Use the latest java-libglom version.
986
987         * pom.xml: Use java-libglom 1.21.7.
988
989 2012-03-03  Ben Konrath  <ben@bagu.org>
990
991         Display date and time in details view.
992
993         https://bugzilla.gnome.org/show_bug.cgi?id=671257
994
995         * src/main/java/org/glom/web/client/ui/details/DetailsCell.java:
996
997 2012-03-05  Murray Cumming  <murrayc@murrayc.com>
998
999         Require the latest java-libglom.
1000
1001         * pom.xml: java-libglom 1.21.5 has LayoutItem_GroupBy.
1002
1003 2012-03-04  Murray Cumming  <murrayc@murrayc.com>
1004
1005         ListViewDbAccess.getSelectQuery(): Avoid using empty quickfind strings.
1006
1007         * src/main/java/org/glom/web/server/database/ListViewDBAccess.java
1008         ListViewDBAccess.getSelectQuery(): Do not create a where clause for 
1009         an empty quickfind string. I also corrected libglom to create only 
1010         empty where clauses for empty quickfind strings, but this avoids the
1011         need for that fix.
1012
1013 2012-02-24  Ben Konrath  <ben@bagu.org>
1014
1015         Improve the tabs in the Notebook widget.
1016
1017         Bug #670728
1018
1019 2012-01-30  Murray Cumming  <murrayc@murrayc.com>
1020
1021         Translations: Try to translate the strings.
1022
1023         * src/main/resources/org/glom/web/client/ui/OnlineGlomConstants_cs.properties:
1024         * src/main/resources/org/glom/web/client/ui/OnlineGlomConstants_de.properties:
1025         * src/main/resources/org/glom/web/client/ui/OnlineGlomConstants_es.properties:
1026         * src/main/resources/org/glom/web/client/ui/OnlineGlomConstants_sl.properties:
1027         * src/main/resources/org/glom/web/client/ui/OnlineGlomConstants_zh_CN.properties:
1028         Take the Open translation from GTK+'s .po files.
1029         Take the Details translation from Glom's po files.
1030         I have added the other strings to Glom so we can get translations that way:
1031         http://git.gnome.org/browse/glom/commit/?id=c3cefe607428a84bdf8de1b04e8bef6f70b04564
1032
1033 2012-01-27  Murray Cumming  <murrayc@murrayc.com>
1034
1035         TableSelectionViewImpl: Put the search label and entry in a div.
1036
1037         * src/main/java/org/glom/web/client/ui/TableSelectionViewImpl.java:
1038         Put the search widgets in a FlowTable so that the CSS can be used to
1039         style them while keeping them together.
1040         * src/main/webapp/style.css: Mention the new div.
1041
1042 2012-01-27  Murray Cumming  <murrayc@murrayc.com>
1043
1044         Translate more strings in more locales.
1045
1046         * src/main/resources/org/glom/web/client/ui/OnlineGlomConstants.properties:
1047         * src/main/java/org/glom/web/client/ui/details/DetailsCell.java:
1048         * src/main/java/org/glom/web/client/ui/details/RelatedListTable.java:
1049         * src/main/java/org/glom/web/client/ui/list/ListViewTable.java:
1050         Translate the "Details" and "Open" string too.
1051
1052         * src/main/java/org/glom/web/OnlineGlom.gwt.xml:
1053         * src/main/resources/org/glom/web/client/ui/OnlineGlomConstants.properties:
1054         * src/main/resources/org/glom/web/client/ui/OnlineGlomConstants_cs.properties:
1055         * src/main/resources/org/glom/web/client/ui/OnlineGlomConstants_es.properties:
1056         * src/main/resources/org/glom/web/client/ui/OnlineGlomConstants_sl.properties:
1057         * src/main/resources/org/glom/web/client/ui/OnlineGlomConstants_zh_CN.properties:
1058         Add these new locales as placeholders though they currently contain English.
1059
1060 2012-01-27  Murray Cumming  <murrayc@murrayc.com>
1061
1062         OnlineGlomServiceImpl: Avoid (unlikely) null object dereferences.
1063
1064         * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java: get*():
1065         Check the ConfiguredDocument* for null before using it.
1066
1067 2012-01-26  Murray Cumming  <murrayc@murrayc.com>
1068
1069         Tell Eclipse about the generated java files.
1070
1071         * .classpath: This lets it find OnlineGlomConstants.java.
1072         It would be nice if Eclipse just used the maven build files.
1073
1074 2012-01-26  Murray Cumming  <murrayc@murrayc.com>
1075
1076         Prevent a crash when no locale is specified in the URL.
1077
1078         * src/main/java/org/glom/web/client/Utils.java: getCurrentLocaleID():
1079         Avoid returning a null string, obtained from 
1080         Window.Location.getParameter(). This caused a crash when it was
1081         later passed to libglom's API.
1082         * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java:
1083         init(), getDocumentInfo(), getListViewLayout(), getDocuments(),
1084         getDetailsLayoutAndData(): Use StringUtils.defaultString() to
1085         guard against future null strings.
1086
1087 2012-01-26  Murray Cumming  <murrayc@murrayc.com>
1088
1089         Use the ?locale= query param instead of the &lang= token param. 
1090
1091         * src/main/java/org/glom/web/client/place/ListPlace.java
1092         * src/main/java/org/glom/web/client/place/DetailsPlace.java
1093         * src/main/java/org/glom/web/client/place/HasSelectableTablePlace.java
1094         Remove the lang token key and value.
1095         
1096         * src/main/java/org/glom/web/client/ui/TableSelectionView.java
1097         * src/main/java/org/glom/web/client/ui/TableSelectionViewImpl.java:
1098         When the user selects a different locale from the chooser, use 
1099         Window.Location.assign() to change the URL, which then causes a reload.
1100         
1101         * src/main/java/org/glom/web/client/Utils.java: Added getCurrentLocaleID().
1102         * src/main/java/org/glom/web/client/activity/DetailsActivity.java
1103         * src/main/java/org/glom/web/client/activity/DocumentSelectionActivity.java
1104         * src/main/java/org/glom/web/client/activity/ListActivity.java
1105         * src/main/java/org/glom/web/client/activity/TableSelectionActivity
1106         * src/main/java/org/glom/web/client/ui/DocumentSelectionView.java
1107         * src/main/java/org/glom/web/client/ui/DocumentSelectionViewImpl.java:
1108         * src/main/java/org/glom/web/client/ui/ListView.java:
1109         * src/main/java/org/glom/web/client/ui/ListViewImpl.java:
1110
1111         Remove localeID member variables and method/constructor parameters, instead
1112         using Utils.getCurrentLocaleID() when we need a localID to pass to 
1113         OnlineGlomService.
1114
1115 2012-01-26  Murray Cumming  <murrayc@murrayc.com>
1116
1117         Internationalize the UI strings.
1118
1119         * pom.xml: gwt-maven-plugin: Add the i18n goal and specify a 
1120         <i18nConstantsBundle>, removing the unused <i18nMessagesBundle>.
1121         * src/main/resources/org/glom/web/client/Messages.properties: Remove this
1122         because it is unused. Messages are apparently strings that can have 
1123         parameters, but we do not need that yet, so Contants will be enough for now.
1124         * src/main/java/org/glom/web/OnlineGlom.gwt.xml: Add extend-property lines
1125         to say that we support the en and de locales.
1126         * src/main/resources/org/glom/web/client/ui/OnlineGlomConstants.properties:
1127         The original English strings.
1128         * src/main/resources/org/glom/web/client/ui/OnlineGlomConstants_de.properties:
1129         Some German translations of the English strings.
1130         The i18n goal then uses the .properties file to generate an 
1131         OnlineGlomConstants.java file in target/ and somehow GWT.create() magically
1132         returns an implementation that returns the translated strings.
1133         The documentation suggests putting these in src/java/*/client/, but it seems
1134         best to put it in src/resources/*/client/.
1135         * src/main/java/org/glom/web/client/ui/TableSelectionViewImpl.java:
1136         Instantiate OnlineGlomConstants via GWT.create() and use it to get the strings
1137         instead of hard-coding them.
1138         Note that we cannot import OnlineGlomConstants because it does not exist yet,
1139         but that does not seem to stop the build, though it confuses Eclipse.
1140         
1141         You can see the translated string by adding ?locale=de to the URL, like so:
1142         http://127.0.0.1:8888/OnlineGlom.html?gwt.codesvr=127.0.0.1:9997?locale=de#list:document=film_manager
1143
1144 2012-01-24  Murray Cumming  <murrayc@murrayc.com>
1145
1146         Improve null/empty String checks. 
1147
1148         * pom.xml: Add a dependency on commons-lang, to use
1149         org.apache.commons.lang.StringUtils.
1150         * src/main/java/org/glom/web/server/ConfiguredDocument.java
1151         * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java
1152         * src/main/java/org/glom/web/server/database/RelatedListDBAccess.java
1153         * src/main/java/org/glom/web/server/database/RelatedListNavigation.java:
1154         Use StringUtils.isEmpty().
1155
1156         * src/main/java/org/glom/web/client/StringUtils.java: Add a tiny
1157         StringUtils class with a static isEmpty() function because we 
1158         cannot use org.apache.commons.lang.StringUtils in client-side
1159         GWT code because it (apparently) cannot be compiled to javascript.
1160         * src/main/java/org/glom/web/client/activity/DetailsActivity.java
1161         * src/main/java/org/glom/web/client/activity/ListActivity.java
1162         * src/main/java/org/glom/web/client/activity/TableSelectionActivity.java
1163         * src/main/java/org/glom/web/client/place/DetailsPlace.java
1164         * src/main/java/org/glom/web/client/place/HasSelectableTablePlace.java
1165         * src/main/java/org/glom/web/client/place/ListPlace.java
1166         * src/main/java/org/glom/web/client/ui/cell/NumericCell.java
1167         * src/main/java/org/glom/web/client/ui/cell/TextCell.java
1168         * src/main/java/org/glom/web/client/ui/details/DetailsCell.java
1169         * src/main/java/org/glom/web/client/ui/details/Group.java
1170         * src/main/java/org/glom/web/client/ui/details/Notebook.java: Use 
1171         our StringUtils.isEmpty() function.
1172
1173 2012-01-24  Murray Cumming  <murrayc@murrayc.com>
1174
1175         Update to the latest java-libglom API.
1176
1177         * pom.xml: Require java-libglom 1.21.4.
1178         * src/main/java/org/glom/web/server/ConfiguredDocument.java
1179         getDocumentInfo(), getListViewLayoutGroup():
1180         * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java
1181         getDocuments():
1182         * src/main/java/org/glom/web/server/database/DBAccess.java
1183         getFieldsToShowForSQLQueryAddGroup(),
1184         getPrimaryKeyLayoutItemField(): Replace get_database_title()
1185         with either get_database_title_original() or 
1186         get_database_title(localeID).
1187
1188 2012-01-24  Murray Cumming  <murrayc@murrayc.com>
1189
1190         ConfiguredDocument: Avoid a null pointer exception.
1191
1192         * src/main/java/org/glom/web/server/ConfiguredDocument.java
1193         Initialize localeID to "" to avoid returning a null String which 
1194         causes a crash in java-libglom's swing-generated code.
1195
1196 2012-01-23  Murray Cumming  <murrayc@murrayc.com>
1197
1198         Some simple renaming.
1199
1200         * src/main/java/org/glom/web/client/ui/TableSelectionViewImpl.java
1201         * src/main/webapp/style.css: Rename, tableChooser to tablesChooser. Likewise
1202         for localeChooser. This seems more appropriate and is less ambiguous 
1203         particularly in the .css file.
1204
1205 2012-01-23  Murray Cumming  <murrayc@murrayc.com>
1206
1207         ConfiguredDocument: Rename the localedID private member variable.
1208
1209 2012-01-23  Murray Cumming  <murrayc@murrayc.com>
1210
1211         Adapt to the latest java-libglom API from git master.
1212
1213         * src/main/java/org/glom/web/server/database/ListDBAccess.java:
1214         libglom now uses only Vector instead of List, which uses add() instead of
1215         addLast(). 
1216
1217 2012-01-22  Murray Cumming  <murrayc@murrayc.com>
1218
1219         ConfiguredDocument: Rename the localedID private member variable.
1220
1221 2012-01-20  Murray Cumming  <murrayc@murrayc.com>
1222
1223         Build a source tarball with mvn assembly:single
1224
1225         * assembly.xml: Add this file.
1226         * pom.xml: Use the maven-assembly-plugin and tell it to use 
1227         our assembly.xml file.
1228
1229 2012-01-19  Murray Cumming  <murrayc@murrayc.com>
1230
1231         OnlineGlomServiceImpl: Get .glom files recursively.
1232
1233         * pom.xml: Depend on commons-io from org.apache.commons.
1234         * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java
1235         init(): Use org.apache.commons.io.FileUtils.listFiles() to get the 
1236         files recursively, and with the easier filter for the extension.
1237         Use org.apache.commons.io.FilenameUtils.removeExtension() to 
1238         simplify that code too.
1239
1240 2012-01-19  Murray Cumming  <murrayc@murrayc.com>
1241
1242         README: Mention that you must install java-libglom packages separately.
1243
1244         But then it works, because java-libglom is now in the central maven 
1245         repository.
1246
1247 2012-01-18  Murray Cumming  <murrayc@murrayc.com>
1248
1249         locales drop-down: Show the correct selected locale when the URL changes.
1250
1251         * src/main/java/org/glom/web/client/activity/TableSelectionActivity
1252         .java: setPlace(): Move some code into fillView().
1253
1254 2012-01-18  Murray Cumming  <murrayc@murrayc.com>
1255
1256         locales drop-down: Do not lose the primary key.
1257
1258         * src/main/java/org/glom/web/client/activity/DetailsActivity.java
1259         start(): onLocaleChange(): Pass the current primary key value, 
1260         instead of an empty value.
1261
1262 2012-01-18  Murray Cumming  <murrayc@murrayc.com>
1263
1264         locales drop-down: Do not lose the drop-down selection.
1265
1266         * src/main/java/org/glom/web/client/activity/TableSelectionActivity
1267         .java (TableSelectionActivity.fillView): Set the selected locale
1268         after changing the drop-down items (though we do not really need
1269         to change them just because the locale changes.)
1270
1271 2012-01-18  Murray Cumming  <murrayc@murrayc.com>
1272
1273         locales drop-down: Change the tables list when this changes.
1274
1275         * src/main/java/org/glom/web/client/activity/TableSelectionActivity
1276         .java: TableSelectionActivity.start(): Move the async table titles
1277         retrieval into a private fillView() method and also call this when 
1278         the chosen locale changes.
1279         Note that the document title is not actually translatable yet, but
1280         that is a problem that I should fix soon in libglom.
1281
1282 2012-01-18  Murray Cumming  <murrayc@murrayc.com>
1283
1284         Improve the placement of the locales drop-down.
1285
1286         * src/main/java/org/glom/web/client/ui/TableSelectionViewImpl.java
1287         Put the title and locales drop-down in a div (gwt.FlowTable).
1288         * src/main/webapp/style.css: Add magic css properties to make this work.
1289         Also remove the left margin from the title so that it lines up with the 
1290         headerbox below it.
1291
1292 2012-01-18  Murray Cumming  <murrayc@murrayc.com>
1293
1294         locales selector: Show human-readable locale titles.
1295
1296         * src/main/java/org/glom/web/server/ConfiguredDocument.java
1297         getDocumentInfo(): Use java.util.Locale to show a real title of 
1298         each locale, in the locale's own language.
1299
1300 2012-01-17  Murray Cumming  <murrayc@murrayc.com>
1301
1302         Add a language/locale selector drop-down.
1303
1304         * src/main/java/org/glom/web/shared/DocumentInfo.java:
1305         Add getLocaleIDs(), setLocaleIDs(), getLocaleTitles(), setLocaleTitles().
1306         * /src/main/java/org/glom/web/server/ConfiguredDocument.java:
1307         getDocumentInfo(): Store the available Locales in the DocumentInfo.
1308         * src/main/java/org/glom/web/client/ui/TableSelectionView.java:
1309         * src/main/java/org/glom/web/client/ui/TableSelectionViewImpl.java:
1310         Add a ListBox to show the available locales. Add getLocaleSelector(),
1311         setLocaleList(), getSelectedLocale(), setSelectedLocale().
1312         * src/main/java/org/glom/web/client/event/LocaleChangeEvent.java
1313         * src/main/java/org/glom/web/client/event/LocaleChangeEventHandler.
1314         java: Add these classes.
1315         * src/main/java/org/glom/web/client/activity/TableSelectionActivity.java:
1316         start(): Fill the locales ListBox. Handle its change event, firing a 
1317         LocaleChangeEvent.
1318         setPlace(): Show the selected locale as specified by the URL token.
1319         * src/main/java/org/glom/web/client/activity/DetailsActivity.java:
1320         * src/main/java/org/glom/web/client/activity/ListActivity.java:
1321         Handle LocaleChangeEvent, going to a new *Place with that locale.
1322
1323         The placement of the ListBox is not pretty, and it currently uses the ID
1324         as a title, instead of "English", "Deutsch", "Espanola", etc, but it 
1325         is a start.
1326
1327
1328 2012-01-17  Murray Cumming  <murrayc@murrayc.com>
1329
1330         Search box: Show the search text from the URL token.
1331
1332         * src/main/java/org/glom/web/client/ui/TableSelectionView.java:
1333         * src/main/java/org/glom/web/client/ui/TableSelectionViewImpl.java:
1334         Add setQuickFindText().
1335         * src/main/java/org/glom/web/client/activity/TableSelectionActivity
1336         .java: setPlace(): Store the queryText if the place is a ListPlace, 
1337         and call TableSelectionView.setQuickFindText().
1338
1339 2012-01-17  Murray Cumming  <murrayc@murrayc.com>
1340
1341         Allow use of translations via, for instance, &lang=de in the URL.
1342
1343         * pom.xml: Use the unstable java-libglom 1.21 version.
1344
1345         * src/main/java/org/glom/web/client/OnlineGlomService.java:
1346         * src/main/java/org/glom/web/client/OnlineGlomServiceAsync.java
1347         * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java:
1348         init(): Instead of calling TranslatableItem.set_current_locale() 
1349         (now removed), call ConfiguredDocument.setDefaultLocaleID().
1350         However, this is only for default locales, which are not needed to 
1351         change the locale in the URL.
1352         getDocumentInfo(), getListViewLayout(), getSortedListViewData(),
1353         getDetailsData(), getDetailsLayoutAndData(), getRelatedListData(),
1354         getSortedRelatedListData(): Add a localeID parameter, so we can get the 
1355         layout for a particular locale.
1356         * src/main/java/org/glom/web/server/ConfiguredDocument.java:
1357         Add get/setDefaultLocaleID().
1358         getDocumentInfo(), getListViewData(), getRelatedListData(),
1359         getDetailsLayoutGroup(), getListViewLayoutGroup(),
1360         createLayoutItemPortalDTO(), convertToGWTGlomLayoutItemField(): Add a 
1361         localeID parameter, so we can get the layout for a particular locale.
1362
1363         * src/main/java/org/glom/web/client/place/HasSelectableTablePlace.java:
1364         * src/main/java/org/glom/web/client/place/DetailsPlace.java:
1365         * src/main/java/org/glom/web/client/place/ListPlace.java:
1366         Parse and construct a lang parameter too.
1367
1368         * src/main/java/org/glom/web/client/activity/DocumentSelectionActivity.java:
1369         start(): Pass the defaultLocaleID to addDocumentLink(). It is then
1370         passed to subsequent methods and constructors.
1371         * src/main/java/org/glom/web/client/activity/DetailsActivity.java:
1372         * src/main/java/org/glom/web/client/activity/ListActivity.java:
1373         Store the localeID from the *Place and pass it to other constructors
1374         and methods, such as OnlineGlomServiceAsync.getDetailsLayoutAndData().
1375
1376         * src/main/java/org/glom/web/client/ui/DocumentSelectionView.java:
1377         * src/main/java/org/glom/web/client/ui/DocumentSelectionViewImpl.java:
1378         * src/main/java/org/glom/web/client/ui/TableSelectionView.java
1379         * src/main/java/org/glom/web/client/ui/TableSelectionViewImpl.java
1380         * src/main/java/org/glom/web/client/ui/ListView.java:
1381         * src/main/java/org/glom/web/client/ui/ListViewImpl.java:
1382         Take localeID parameters and pass them to subsequent constructors and 
1383         methods, so that the layout is always retrieved for that locale.
1384
1385         This is rather repetitive.
1386
1387         Note that "" means the original (default) locale of the Glom document,
1388         which is usually English.       
1389
1390 2012-01-17  Murray Cumming  <murrayc@murrayc.com>
1391
1392         Documents: Remove final keyword to fix startup configuration.
1393
1394         * src/main/java/org/glom/web/shared/Documents.java: Remove the
1395         final keywords on the private member variables because that breaks
1396         the startup, apparently (there are warnings) because it stops them
1397         from being serialized. I added these in the previous commit.
1398
1399 2012-01-13  Murray Cumming  <murrayc@murrayc.com>
1400
1401         Documents: Add some final keywords.
1402
1403         * src/main/java/org/glom/web/shared/Documents.java: Eclipse suggested
1404         this.
1405
1406 2012-01-13  Murray Cumming  <murrayc@murrayc.com>
1407
1408         OnlineGlomServiceImpl: Add to overview comments.
1409
1410         * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java:
1411         Note that this is where all the document are loaded. They are not 
1412         loaded freshly for each page.
1413
1414 2012-01-12  Murray Cumming  <murrayc@murrayc.com>
1415
1416         Add a search box.
1417
1418         * src/main/java/org/glom/web/client/ui/TableSelectionViewImpl.java:
1419         Add a TextBox for the text of a quick find.
1420         Add getQuickFindBox(), to get the widget, and getQuickFindText() to 
1421         get the text.
1422         setBackLink(): Add a String quickFind parameter.
1423         * src/main/java/org/glom/web/client/ui/TableSelectionView.java
1424         (TableSelectionView): Add getQuickFindBox() and getQuickFindText()
1425         to the base interface, because that is how TableSelectionViewImpl is used.
1426         * src/main/webapp/style.css: Add style for the search box and its label.
1427
1428         * src/main/java/org/glom/web/client/event/QuickFindChangeEvent.java:
1429         * src/main/java/org/glom/web/client/event/QuickFindChangeEventHandler.java:
1430         Add these files, based on the existing TableChangeEvent and 
1431         TableChangeEventHandlers.
1432         * src/main/java/org/glom/web/client/activity/DetailsActivity.java
1433         start(): Handle QuickFindChangeEvent, passing its quickFind text to
1434         a ListPlace() that the user should be taken to.
1435         * src/main/java/org/glom/web/client/activity/ListActivity.java
1436         start(): Handle it here too and adapt the TableChangeEvent handler to 
1437         pass the extra "" quickFind parameter to ListPlace.
1438         * src/main/java/org/glom/web/client/place/ListPlace.java: 
1439         Constructor: Take an extra String quickFind parameter and store it, 
1440         returning it from a new  getQuickFind() method.
1441         getToken(): Put the quickFind text in the URL token.
1442         getPlace(): Parse the quickFind text from the URL token.
1443         * src/main/java/org/glom/web/client/ui/DocumentSelectionViewImpl.ja
1444         va: addDocumentLink(): Pass an extra "" quickFind parameter to the 
1445         ListPlace constructor.
1446         * src/main/java/org/glom/web/client/activity/TableSelectionActivity
1447         .java: start(): Add a Change handler for the TableSelectionView's
1448         TextBox (via its base HasChangeHandlers interface), firing the new 
1449         QuickFindChangeEvent.
1450         setPlace(): Adapt the call to TableSelectionView.setbackLink(), to 
1451         pass the extra "" quickFind parameter.
1452
1453         * src/main/java/org/glom/web/client/ui/ListViewImpl.java:
1454         setCellTable(): Add a String quickFind parameter and pass it to 
1455         the ListViewTable() constructor.
1456         * src/main/java/org/glom/web/client/ui/ListView.java: Change 
1457         setCellTable() in the base interface, because that is how ListViewImpl
1458         is used.
1459
1460         * src/main/java/org/glom/web/client/ui/list/ListTable.java:
1461         Add a String quickFind member variable.
1462         * src/main/java/org/glom/web/client/ui/list/ListViewTable.java:
1463         Constructor: Add a String quickFind parameter, storing it in the
1464         base ListTable's member variable.
1465         onRangeChanged(): Pass quickFind to the 
1466         OnlineGlomServiceAsync.getSortedListViewData() and 
1467         OnlineGlomServiceAsync.getListViewData() methods.
1468
1469         * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java:
1470         getListViewData(), getSortedListViewData(): Add a String quickFind 
1471         parameter, passing it to ConfiguredDocument.getListViewData().
1472         * src/main/java/org/glom/web/client/OnlineGlomService.java:
1473         Change getListViewData(), getSortedListViewData() in the base interface,
1474         because that is how OnlineGlomServiceImpl is used, via this:
1475         * src/main/java/org/glom/web/client/OnlineGlomServiceAsync.java:
1476         Change getListViewData(), getSortedListViewData() here too.
1477         This class can apparently be used to asynchronously call methods on 
1478         OnlineGlomService, and GWT seems to implement that after recognizing 
1479         just the *Async name convention and the extra AsyncCallback parameters.
1480
1481         * src/main/java/org/glom/web/server/ConfiguredDocument.java
1482         getListViewData(): Add a String quickFind parameter, and pass it to 
1483         ListViewDBAccess.getData().
1484         * src/main/java/org/glom/web/server/database/ListDBAccess.java
1485         getListData(): Add a String quickFind parameter and pass it to 
1486         getSelectQuery().
1487         getSelectQuery(): Add a String quickFind parameter.
1488         * src/main/java/org/glom/web/server/database/ListViewDBAccess.java
1489         getSelectQuery(): Add a String quickFind parameter and use it with 
1490         Glom.get_find_where_clause_quick() to pass a where_clause to 
1491         Glom.build_sql_select_with_where_clause(), to actually filter the 
1492         list view results.
1493         getData(): Add a String quickFind parameter, passing it to getListData().
1494         * src/main/java/org/glom/web/server/database/RelatedListDBAccess.ja
1495         va: getData(): Pass an empty string to getListData() for the 
1496         quickFind parameter.
1497
1498 2012-01-12  Murray Cumming  <murrayc@murrayc.com>
1499
1500         ListTable: Minor change.
1501
1502         * src/main/java/org/glom/web/client/ui/list/ListTable.java
1503         createCellTable(): Make this protected instead of public.
1504
1505 2012-01-12  Murray Cumming  <murrayc@murrayc.com>
1506
1507         Many files: Use final for the parameters and use the @override attribute.
1508
1509 2012-01-22  Ben Konrath <ben@bagu.org>
1510
1511         Add anchor links for single line text that starts with http, ftp and www.
1512
1513         Bug #667269
1514
1515 2012-01-22  Ben Konrath <ben@bagu.org>
1516
1517         Add ellipsis to single line text in details view.
1518
1519         Bug #667269
1520
1521 2012-01-04  Murray Cumming  <murrayc@murrayc.com>
1522
1523         Remove all javadoc author tags.
1524
1525         Because they are awkward and meaningless when many people touch
1526         many files.
1527         See https://gitorious.org/online-glom/gwt-glom/commit/7628b732cb90cbc6d5635420a75568504e8b3655#comment_81164
1528  
1529 2012-01-04  Murray Cumming  <murrayc@murrayc.com>
1530
1531         Revert the COPYING.LESSER to COPYING rename.
1532
1533         Apparently both should be there if it is LGPL.
1534
1535 2012-01-03  Murray Cumming  <murrayc@murrayc.com>
1536
1537         *View: Remove unused imports.
1538
1539         * src/main/java/org/glom/web/client/ui/DetailsView.java:
1540         * src/main/java/org/glom/web/client/ui/DocumentSelectionView.java
1541         * src/main/java/org/glom/web/client/ui/ListView.java:
1542         * src/main/java/org/glom/web/client/ui/TableSelectionView.java:
1543         Remove unused imports, as suggested by Eclipse.
1544
1545 2012-01-02  Murray Cumming  <murrayc@murrayc.com>
1546
1547         Move the *View::Presenter types, and some API into one base View.
1548
1549         * src/main/java/org/glom/web/client/ui/DetailsView.java:
1550         * src/main/java/org/glom/web/client/ui/DocumentSelectionView.java:
1551         * src/main/java/org/glom/web/client/ui/ListView.java:
1552         * src/main/java/org/glom/web/client/ui/TableSelectionView.java: Move
1553         Presenter, setPresenter() and clear() into a shared base interface,
1554         to avoid the unnecessary duplicate Presenter types and to more clearly
1555         show how the *Views share the same structure, even if they are not 
1556         used polymorphically.
1557
1558         * src/main/java/org/glom/web/client/ui/DetailsViewImpl.java:
1559         * src/main/java/org/glom/web/client/ui/DocumentSelectionViewImpl.ja
1560         va:
1561         * src/main/java/org/glom/web/client/activity/DetailsActivity.java:
1562         * src/main/java/org/glom/web/client/activity/ListActivity.java:
1563         * src/main/java/org/glom/web/client/activity/DocumentSelectionActiv
1564         ity.java:
1565         * src/main/java/org/glom/web/client/activity/TableSelectionActivity
1566         .java: Adapt.
1567
1568         Feel free to revert this if there is a good reason for the duplicate
1569         types.
1570
1571 2012-01-02  Murray Cumming  <murrayc@murrayc.com>
1572
1573         OnlineGlom: Make clientFactory a (protected) member, and test it a bit.
1574
1575         * src/main/java/org/glom/web/client/OnlineGlom.java: Make clientFactory
1576         a class member instead of a local variable in the method.
1577         This lets us use it to get the view instances, for use in tests.
1578         * src/test/java/org/glom/web/client/GwtTestOnlineGlom.java:
1579         beforeOnlineGlom(): Test some more details of the initial view.
1580         Again, this is not very useful.
1581
1582         To really test gwt-glom we will need to start a local postgresql 
1583         instance with local data, like the Glom tests in C++.
1584
1585 2012-01-02  Murray Cumming  <murrayc@murrayc.com>
1586
1587         pom.xml: Mention the LGPL license.
1588
1589         * pom.xml: Add a licenses section.
1590         * COPYING.LESSER: Move this to COPYING, which
1591         previously contained the GPL. But gwt-glom is all LGPL.
1592
1593 2012-01-02  Murray Cumming  <murrayc@murrayc.com>
1594
1595         Add project information to README and pom.xml.
1596
1597         * README: Add a brief description and mention some mvn
1598         commands.
1599         * pom.xml: This extra information shows up in mvn site
1600         generated pages.
1601
1602 2011-01-02  Murray Cumming  <murrayc@murrayc.com>
1603
1604         Use the latest java-libglom version.
1605
1606         * pom.xml: Use java-libglom 1.19.2 instead of 1.19.1.
1607
1608 2012-01-01  Murray Cumming  <murrayc@murrayc.com>
1609
1610         GwtTestOnlineGlom: Test a little more.
1611
1612         * src/main/java/org/glom/web/client/OnlineGlom.java: Make the panels
1613         protected rather than private, as suggested by the gwt-test-utils
1614         maintianer here:
1615         http://stackoverflow.com/questions/7931724/gwt-testcase-simulating-clicking-a-button-on-my-page
1616         * src/test/java/org/glom/web/client/GwtTestOnlineGlom.java
1617         Test the initial visibility of the panels.
1618
1619         However, this is not a very useful test.
1620         And I wonder how we should generally test using this idea for an
1621         activity/places app like ours where the real changes happen implicitly
1622         based on the history token/URL.
1623
1624 2012-01-01  Murray Cumming  <murrayc@murrayc.com>
1625
1626         Slight modification to *Mapper comments.
1627
1628         * src/main/java/org/glom/web/client/mvp/DataActivityMapper.java
1629         (DataActivityMapper)
1630         * src/main/java/org/glom/web/client/mvp/DocumentSelectionActivityMa
1631         pper.java
1632         * src/main/java/org/glom/web/client/mvp/TableSelectionActivityMappe
1633         r.java
1634         Remove comments mentioning GIN because they are just copied from 
1635         the example code and are apparently not helpful:
1636         http://groups.google.com/group/google-web-toolkit/msg/82f0098b20669a73
1637         Also change the mention of a class that is only in the example code.
1638
1639 2012-01-01  Murray Cumming  <murrayc@murrayc.com>
1640
1641         GwtTestOnlineGlom test: Minor changes.
1642
1643         * src/test/java/org/glom/web/client/GwtTestOnlineGlom.java:
1644         Avoid the long qualified class name and modify the comment 
1645         because it is now obvious to me that the mocked class is the only
1646         custom one created via GWT.create().
1647
1648 2012-01-01  Murray Cumming  <murrayc@murrayc.com>
1649
1650         Tests: Added the beginnings of a test using gwt-test-utils.
1651
1652         * pom.xml: Add dependencies on gwt-test-utils and easymock.
1653         * src/test/resources/META-INF/gwt-test-utils.properties: Add this file
1654         which tells gwt-test-utils what class will be tested.
1655         * src/test/java/org/glom/web/client/GwtTestOnlineGlom.java:
1656         Add a simple (but empty) test case. One class, used by the OnlineGlom
1657         class, is mocked so that it can be created. However, I am not sure 
1658         why only this class needs to be mocked.
1659
1660         Note that mockito seems more popular, and clearer, than easymock,
1661         but I have not got that working yet. It might be a matter of the 
1662         mockito version.
1663
1664         This test is run during mvn integration-test.
1665
1666 2011-12-31  Murray Cumming  <murrayc@murrayc.com>
1667
1668         Tests: Use junit4-style syntax instead of junit3-style.
1669
1670         * src/test/java/org/glom/web/client/place/DetailsPlaceTest.java:
1671         * src/test/java/org/glom/web/client/place/ListPlaceTest.java:
1672         * src/test/java/org/glom/web/shared/DataItemTest.java:
1673         Use the @Test annotation rather than relying on the test*() prefix.
1674         Also no longer implement TestCase, to avoid triggering support for 
1675         the junit3-way, which stops the annotations from working.
1676         Change the imports from import junit.framework.* to 
1677         import org.junit.*, which is apparently the new way.
1678
1679 2011-12-31  Murray Cumming  <murrayc@murrayc.com>
1680
1681         Added a test for ListPlace token parsing and creation.
1682
1683         * src/test/java/org/glom/web/client/place/ListPlaceTest.java:
1684         This is much the same as DetailsPlaceTest.
1685
1686         I wonder how we could test the other parts of the *Place API.
1687
1688 2011-12-30  Murray Cumming  <murrayc@murrayc.com>
1689
1690         DetailsPlace test: Also test getToken() and recreation via getPlace().
1691
1692         * src/test/java/org/glom/web/client/place/DetailsPlaceTest.java:
1693         testGetPlaceParameters(): Get the tokens from the DetailsPlace and 
1694         recreate it, testing the recreated DetailsPlace for the same parameter
1695         values.
1696
1697 2011-12-30  Murray Cumming  <murrayc@murrayc.com>
1698
1699         Use the surefire-report plugin.
1700
1701         * pom.xml: This generates a HTML report about the tests in 
1702         target/site/surefire-report.html
1703         when you do mvn surefire-report:report. It seems to be popular/normal.
1704
1705 2011-12-30  Murray Cumming  <murrayc@murrayc.com>
1706
1707         Added a test for DetailsPlace.
1708
1709         * src/test/java/org/glom/web/client/place/DetailsPlaceTest.java:
1710         Test the getPlace() token parsing.
1711
1712 2011-12-30  Murray Cumming  <murrayc@murrayc.com>
1713
1714         Added a first unit test.
1715
1716         * pom.xml: Add a test goal, and a dependency on junit in that scope.
1717         * src/test/java/org/glom/web/shared/DataItemTest.java:
1718         This is a silly test but it is just to get things started. Note that
1719         maven/junit finds the test because it looks in src/test by default.
1720
1721 2011-12-22  Ben Konrath  <ben@bagu.org>
1722
1723         Change charsetName to "UTF-8" when replacing line breaks.
1724
1725         JavaScript requires the charsetName to be "UTF-8". CharsetName values
1726         that work in Java (such as "UTF8") will not work when compiled to
1727         JavaScript.
1728
1729         This fixes a problem with multi-line details view fields that have hard
1730         line breaks. The "License Text" field on this page demonstrates the
1731         problem:
1732
1733         http://onlineglom.openismus.com/OnlineGlom/#details:document=debian_repository_analyzer&table=licenses&value=197
1734
1735         * src/main/java/org/glom/web/client/ui/details/DetailsCell.java:
1736
1737 2011-12-22  Ben Konrath  <ben@bagu.org>
1738
1739         Fix another bug with related list navigation.
1740
1741         I've tested all the navigation buttons in all of the related lists
1742         so things should be good now.
1743
1744         * src/main/java/org/glom/web/server/ConfiguredDocument.java:
1745
1746 2011-12-22  Ben Konrath  <ben@bagu.org>
1747
1748         Fix a crasher when refreshing the list view with the default table.
1749
1750         This crash will also happen when loading the list view with the default
1751         table from a link or bookmark.
1752
1753         * src/main/java/org/glom/web/client/activity/DetailsActivity.java: Go
1754         to the main document selection page when the document id hasn't been
1755         set.
1756         * src/main/java/org/glom/web/client/activity/ListActivity.java: Go to
1757         the main document selection page when the document id hasn't been
1758         set.
1759         * src/main/java/org/glom/web/client/place/DetailsPlace.java: Use empty
1760         values for the details place when the document id hasn't been set.
1761         * src/main/java/org/glom/web/client/place/ListPlace.java: Use empty
1762         values for the list place when the document id hasn't been set.
1763
1764 2011-12-21  Ben Konrath  <ben@bagu.org>
1765
1766         Protect against NPE when glom.document.locale is not in config.
1767
1768         This patch protects against an NPE when glom.document.locale is not in
1769         the config file. This NPE will also happen if glom.document.locale is
1770         commented out.
1771
1772         The patch also updates the error message to display the class name when
1773         the getMessage() returns null. This was happening when the NPE was
1774         thrown and I had "Configuration Error: null". If an NPE is encountered
1775         with this patch, "Configuration Error: NullPointerException " will be
1776         displayed.
1777
1778         This commit closes this bug:
1779
1780         https://bugzilla.gnome.org/show_bug.cgi?id=666669
1781
1782         * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java:
1783
1784 2011-12-20  Murray Cumming  <murrayc@murrayc.com>
1785
1786         Rename onlineglom.properties to onlineglom.properties.sample.
1787
1788         * src/main/resources/onlineglom.properties: Rename to:
1789         * src/main/resources/onlineglom.properties.sample:
1790         * src/main/resources/README: And add this file explaining that people
1791         should rename it back when deploying.
1792
1793 2011-12-20  Murray Cumming  <murrayc@murrayc.com>
1794
1795         Allow choosing the translation in the .properties file.
1796
1797         * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java
1798         init(): Read a glom.document.locale value from the configuration file 
1799         and call Glom's TransatableItem::set_current_locale() method.
1800         * src/main/resources/onlineglom.properties: Add a commented-out 
1801         example of this new setting.
1802
1803         It would be better to add &lang=de_DE to the URL, but the current 
1804         libglom API does not allow us to do this easily. I am working on that.
1805
1806 2011-12-19  Murray Cumming  <murrayc@murrayc.com>
1807
1808         Avoid a crash in parsing of token parameters.
1809
1810         * src/main/java/org/glom/web/client/place/HasSelectableTablePlace.j
1811         ava: getTokenParams(): Do not crash if a parameter has a key but no 
1812         value, and ignore parameters with neither.
1813
1814 2011-12-17  Murray Cumming  <murrayc@murayc.com>
1815
1816         History token building/handling: Improve use of token parameters.
1817
1818         * src/main/java/org/glom/web/client/place/HasSelectableTablePlace.java 
1819         (HasSelectableTablePlace.Tokenizer): Add getTokenParams(String)
1820         and buildParamsToken(HashMap), for use by derived classes.
1821         Make the separator private because it is no longer be needed.
1822         * src/main/java/org/glom/web/client/place/DetailsPlace.java
1823         (DetailsPlace.Tokenizer.getToken): Use buildParamsToken()
1824         instead of manual string concatenation.
1825         (DetailsPlace.Tokenizer.getPlace): Use getTokenParams() instead 
1826         of hardcoded indices and awkward splitting code.
1827         * src/main/java/org/glom/web/client/place/ListPlace.java
1828         (ListPlace.Tokenizer.getToken): Use buildParamsToken()
1829         instead of manual string concatenation.
1830         (ListPlace.Tokenizer.getPlace): Use getTokenParams() instead 
1831         of hardcoded indices and awkward splitting code.
1832         This should fix bug #666420
1833
1834 2011-12-16  Murray Cumming  <murrayc@murrayc.com>
1835
1836         Fix a Navgiation->Navigation typo in the code.
1837
1838         * src/main/java/org/glom/web/client/activity/DetailsActivity.java
1839         Rename processNavgiation() to processNavigation().
1840
1841 2011-12-16  Murray Cumming  <murrayc@murrayc.com>
1842
1843         Fix a seperator->separator typo in the code.
1844
1845         * src/main/java/org/glom/web/client/place/DetailsPlace.java
1846         * src/main/java/org/glom/web/client/place/HasSelectableTablePlace.java
1847         * src/main/java/org/glom/web/client/place/ListPlace.java: Just a 
1848         misspelling.
1849
1850 2011-12-15  Ben Konrath <ben@bagu.org>
1851
1852         Cleanup some comments.
1853
1854         * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java:
1855
1856 2011-12-14  Ben Konrath <ben@bagu.org>
1857
1858         Replace \n with <br/> for multiline text in the details view.
1859
1860         Vertical scrollbars are added when needed as well.
1861
1862         * src/main/java/org/glom/web/client/ui/details/DetailsCell.java:
1863
1864 2011-12-14  Ben Konrath <ben@bagu.org>
1865
1866         Specify the font for document selection links.
1867
1868         * src/main/webapp/style.css:
1869
1870 2011-12-14  Ben Konrath <ben@bagu.org>
1871
1872         Fix bouncy CellTable while paging.
1873
1874         This doesn't currently work with related list tables in unselected
1875         Notebook tabs.
1876
1877         * src/main/java/org/glom/web/client/ui/list/ListTable.java
1878
1879 2011-12-14  Ben Konrath <ben@bagu.org>
1880
1881         Revamp the appearance of the document selection page.
1882
1883         * src/main/java/org/glom/web/client/ui/DocumentSelectionViewImpl.java:
1884         * src/main/java/org/glom/web/client/ui/DocumentSelectionViewImpl.ui.xml:
1885         * src/main/webapp/style.css:
1886
1887 2011-12-13  Ben Konrath <ben@bagu.org>
1888
1889         Set navigation button column to the smallest size possible.
1890
1891         * src/main/java/org/glom/web/client/ui/list/ListTable.java:
1892
1893 2011-12-13  Ben Konrath <ben@bagu.org>
1894
1895         Change OpenButton nomenclature to NavigationButton.
1896
1897         Using NavigtionButton makes things more generic. Classes, methods and
1898         variables have been changed.
1899
1900         This is a rename-only refactor.
1901
1902         * src/main/java/org/glom/web/client/activity/DetailsActivity.java:
1903         * src/main/java/org/glom/web/client/ui/ListViewImpl.java:
1904         * src/main/java/org/glom/web/client/ui/cell/NavigationButtonCell.java:
1905         Renamed from OpenButtonCell.
1906         * src/main/java/org/glom/web/client/ui/details/RelatedListTable.java:
1907         * src/main/java/org/glom/web/client/ui/list/ListTable.java:
1908         * src/main/java/org/glom/web/client/ui/list/ListViewTable.java:
1909
1910 2011-12-12  Ben Konrath <ben@bagu.org>
1911
1912         Remove unnecessary String argument in RelatedListTable and ListViewTable.
1913
1914         * src/main/java/org/glom/web/client/activity/DetailsActivity.java:
1915         * src/main/java/org/glom/web/client/ui/ListViewImpl.java:
1916         * src/main/java/org/glom/web/client/ui/details/RelatedListTable.java:
1917         * src/main/java/org/glom/web/client/ui/list/ListViewTable.java:
1918
1919 2011-12-12  Ben Konrath <ben@bagu.org>
1920
1921         Update variable names and comments.
1922
1923         * src/main/java/org/glom/web/client/ui/details/RelatedListTable.java:
1924         * src/main/java/org/glom/web/client/ui/list/ListViewTable.java:
1925
1926 2011-12-12  Ben Konrath <ben@bagu.org>
1927
1928         Properly initialize numNonEmptyRows variable to zero.
1929
1930         * src/main/java/org/glom/web/client/ui/details/RelatedListTable.java:
1931         * src/main/java/org/glom/web/client/ui/list/ListViewTable.java:
1932
1933 2011-12-05  Ben Konrath  <ben@bagu.org>
1934
1935         Add latest mockup with HTML tables.
1936
1937         Features of this mockup:
1938
1939         -> HTML table for flowtable
1940         -> HTML table for flowtable column
1941         -> Example of how related lists would look
1942         -> Not using text entries for data items
1943
1944         The current version of Online Glom doesn't use HTML tables for the
1945         flowtable columns.
1946
1947         This mockup has been sent to the glom-devel mailing list but it's good
1948         to have it here as well.
1949
1950         * mockups/details-view-html-tables.html:
1951
1952 2011-12-05  Ben Konrath  <ben@bagu.org>
1953
1954         Remove unnecessary getPrimaryKeyField() method.
1955
1956         getPrimaryKeyFieldForTable(String) has been renamed to
1957         getPrimaryKeyField(String).
1958
1959         * src/main/java/org/glom/web/server/database/DBAccess.java:
1960         * src/main/java/org/glom/web/server/database/DetailsDBAccess.java:
1961         * src/main/java/org/glom/web/server/database/RelatedListNavigation.java:
1962
1963 2011-12-05  Ben Konrath  <ben@bagu.org>
1964
1965         Add string representation of TypedDataItem value to conversion error message.
1966
1967         * src/main/java/org/glom/web/server/Utils.java: Logging the error
1968         message was extracted into its own method to avoid duplication.
1969
1970 2011-12-05  Ben Konrath  <ben@bagu.org>
1971
1972         Add type checking to navigation primary key value creation.
1973
1974         Create navigation primary key only if the expected type from the Glom
1975         document matches the type returned by the SQL query.
1976
1977         * src/main/java/org/glom/web/server/database/RelatedListNavigation.java:
1978
1979 2011-12-05  Ben Konrath  <ben@bagu.org>
1980
1981         Rename a couple of variables in RelatedListNavigation.
1982
1983         This is a rename-only refactor.
1984
1985         * src/main/java/org/glom/web/server/database/RelatedListNavigation.java:
1986
1987 2011-12-05  Ben Konrath  <ben@bagu.org>
1988
1989         Move getListLayoutGroup() into getListViewLayoutGroup().
1990
1991         This removes getListLayoutGroup(). It was only being called by
1992         getListViewLayoutGroup().
1993
1994         * src/main/java/org/glom/web/server/ConfiguredDocument.java:
1995
1996 2011-12-05  Ben Konrath  <ben@bagu.org>
1997
1998         Remove check for LayoutItem_Portal in list table method.
1999
2000         This check is no longer necessary because the method isn't being used
2001         to create the LayoutItemPortal DTO.
2002
2003         * src/main/java/org/glom/web/server/ConfiguredDocument.java:
2004
2005 2011-12-05  Ben Konrath  <ben@bagu.org>
2006
2007         Properly support related list navigation.
2008
2009         Navigation from the "Repository Analyzer -> Package Scans ->
2010         Dependencies" related table wasn't working because the primary key for
2011         related tables wasn't being set properly. This commit fixes the
2012         problem.
2013
2014         * src/main/java/org/glom/web/server/ConfiguredDocument.java: Don't use
2015         getListLayoutGroup() to create the LayoutItemPortal DTO. This method
2016         doesn't set the primary key properly for related list tables.
2017         * src/main/java/org/glom/web/server/database/DBAccess.java: Add table
2018         name parameter to getPrimaryKeyLayoutItemField(). This makes the method
2019         useful for getting the primary key for list view tables and for related
2020         list tables.
2021         * src/main/java/org/glom/web/server/database/ListDBAccess.java:
2022         * src/main/java/org/glom/web/server/database/ListViewDBAccess.java:
2023         Move code to set the primary key for the table from the abstract
2024         ListDBAccess class to ListViewDBAccess as it's only correct for list
2025         view tables.
2026         * src/main/java/org/glom/web/server/database/RelatedListDBAccess.java:
2027         Properly add primary key to related list tables.
2028
2029 2011-12-02  Ben Konrath  <ben@bagu.org>
2030
2031         Properly set the horizontal alignment of fields.
2032
2033         This fix is for both the list tables and the details view.
2034
2035         * src/main/java/org/glom/web/server/ConfiguredDocument.java: Use
2036         LayoutItem_WithFormatting.get_formatting_used_horizontal_alignment(boolean)
2037         to set the horizontal alignment of fields.
2038
2039 2011-12-02  Ben Konrath  <ben@bagu.org>
2040
2041         Display currency codes in the details view.
2042
2043         * src/main/java/org/glom/web/client/ui/details/DetailsCell.java:
2044
2045 2011-12-02  Ben Konrath  <ben@bagu.org>
2046
2047         Avoid duplicate JNI call.
2048
2049         JNI is not as efficient as pure Java and this is an easy (and small)
2050         optimization.
2051
2052         * src/main/java/org/glom/web/server/database/RelatedListDBAccess.java:
2053         Use previously retrieved value for whereClauseToTableName instead of
2054         getting it again.
2055
2056 2011-12-02  Ben Konrath  <ben@bagu.org>
2057
2058         Rename a couple of variables in RelatedListNavigation.
2059
2060         This is a rename-only refactor.
2061
2062         * src/main/java/org/glom/web/server/database/RelatedListNavigation.java:
2063
2064 2011-12-02  Ben Konrath  <ben@bagu.org>
2065
2066         Indicate clearly that a mismatched primary key type is a bug.
2067
2068         * src/main/java/org/glom/web/server/Utils.java: Change log level from
2069         warning to error. Add 'This is a bug.' to message.
2070
2071 2011-12-02  Ben Konrath  <ben@bagu.org>
2072
2073         Update / fix some comments.
2074
2075         * src/main/java/org/glom/web/client/OnlineGlomService.java: Remove old
2076         comments.
2077         * src/main/java/org/glom/web/client/ui/details/DetailsCell.java: Fix
2078         comment.
2079         * src/main/java/org/glom/web/server/database/RelatedListDBAccess.java:
2080         Fix comments. Add some TODOs.
2081
2082 2011-12-02  Ben Konrath  <ben@bagu.org>
2083
2084         Enable navigation to details view with string primary key from related list.
2085
2086         * src/main/java/org/glom/web/server/database/RelatedListNavigation.java:
2087         Create a text primary key value when return type of result is
2088         java.sql.Types.VARCHAR.
2089
2090 2011-12-02  Ben Konrath  <ben@bagu.org>
2091
2092         Use checkboxes for booleans in the details view.
2093
2094         * src/main/java/org/glom/web/client/ui/details/DetailsCell.java:
2095
2096 2011-12-01  Ben Konrath  <ben@bagu.org>
2097
2098         Improve performance of related list height calculation.
2099
2100         * src/main/java/org/glom/web/client/ui/details/RelatedListTable.java:
2101         Put code to calculate the expected height in a static initializer so
2102         that that it's only called once.
2103
2104 2011-12-01  Ben Konrath  <ben@bagu.org>
2105
2106         Show related list tables in notebooks (again).
2107
2108         Calculate the height of the related list tables so the Notebook can be
2109         set the correct height. The height of the related list table is also needed by
2110         FlowTable to be able decide how to create the layout.
2111
2112         * src/main/java/org/glom/web/client/ui/details/Portal.java: Calculate
2113         and set the Portal height based on the height of the related list
2114         table and the Portal container.
2115         * src/main/java/org/glom/web/client/ui/details/RelatedListTable.java:
2116         Add method to calculate the height of the related list tables.
2117         * src/main/java/org/glom/web/client/ui/list/ListTable.java:
2118         * src/main/webapp/style.css: Add css class for Pager. This is needed to
2119         calculate the height of the Pager widget.
2120
2121 2011-12-01  Ben Konrath  <ben@bagu.org>
2122
2123         Use CellTable API for table property instead of setting style on Element.
2124
2125         * src/main/java/org/glom/web/client/ui/details/RelatedListTable.java:
2126
2127 2011-12-01  Ben Konrath  <ben@bagu.org>
2128
2129         Make ListViewTable and RelatedListTable a consistent height.
2130
2131         The tables are now a consistent height regardless of the contents of
2132         the table. A hidden button is added to empty rows to ensure that the
2133         height of these rows will match the height of rows with data.
2134
2135         A navigation button column is now added to every table. The width of
2136         the navigation column is set to 0px when a RelatedListTable shouldn't
2137         have navigation buttons. This maintains the a consistent row height in
2138         tables that don't show the navigation buttons.
2139
2140         * src/main/java/org/glom/web/client/activity/DetailsActivity.java: Hide
2141         navigation column when not needed.
2142         * src/main/java/org/glom/web/client/ui/ListViewImpl.java: Move method
2143         arguments for navigation button to constructor of ListViewTable.
2144         * src/main/java/org/glom/web/client/ui/cell/OpenButtonCell.java: Render
2145         hidden button for empty data rows.
2146         * src/main/java/org/glom/web/client/ui/details/RelatedListTable.java: Add method
2147         arguments for navigation button to constructor.
2148         * src/main/java/org/glom/web/client/ui/list/ListTable.java: Always
2149         create navigation buttons. Add hideNavigationButtons() method.
2150         * src/main/java/org/glom/web/client/ui/list/ListViewTable.java: Add method
2151         arguments for navigation button to constructor.
2152
2153 2011-12-01  Ben Konrath  <ben@bagu.org>
2154
2155         Use 'visibility: hidden' in Utils.getWidgetHeight().
2156
2157         This is better choice because hidden elements are invisible, don't
2158         respond to events and are not part of the tab order. They will,
2159         however, take up space which is required to be able to calculate the
2160         height of the widget.
2161
2162         * src/main/java/org/glom/web/client/Utils.java:
2163
2164 2011-12-01  Ben Konrath  <ben@bagu.org>
2165
2166         Use Utils.getWidgetHeight() in FlowTable.
2167
2168         * src/main/java/org/glom/web/client/Utils.java: Remove TODO item about
2169         this.
2170         * src/main/java/org/glom/web/client/ui/details/FlowTable.java:
2171
2172 2011-12-01  Ben Konrath  <ben@bagu.org>
2173
2174         Put the details css class name on the correct table column.
2175
2176         * src/main/java/org/glom/web/client/ui/list/ListTable.java:
2177
2178 2011-11-30  Ben Konrath  <ben@bagu.org>
2179
2180         Update for java-libglom API change.
2181
2182         The getters and setters on FieldFormatting and NumericFormat were
2183         changed to remove the 'M'.
2184
2185         * src/main/java/org/glom/web/server/ConfiguredDocument.java:
2186
2187 2011-11-29  Ben Konrath  <ben@bagu.org>
2188
2189         Only allow RelatedListTables in Portals.
2190
2191         * src/main/java/org/glom/web/client/ui/details/Portal.java:
2192
2193 2011-11-29  Ben Konrath  <ben@bagu.org>
2194
2195         Only create a contents panel for Portals when title is being set.
2196
2197         * src/main/java/org/glom/web/client/ui/details/Portal.java:
2198
2199 2011-11-29  Ben Konrath  <ben@bagu.org>
2200
2201         Set TabLayoutPanel height based on calculated height its widgets.
2202
2203         This is a potential fix for this bug:
2204
2205         https://bugzilla.gnome.org/show_bug.cgi?id=665133
2206
2207         * src/main/java/org/glom/web/client/ui/details/Notebook.java:
2208
2209 2011-11-29  Ben Konrath  <ben@bagu.org>
2210
2211         Align details field labels and data with the Open buttons.
2212
2213         * src/main/webapp/style.css:
2214
2215 2011-11-29  Ben Konrath  <ben@bagu.org>
2216
2217         Remove unnecessary <div> in the Notebook widget.
2218
2219         * src/main/java/org/glom/web/client/ui/details/Group.java: Remove
2220         method to get container FlowPanel (<div>).
2221         * src/main/java/org/glom/web/client/ui/details/Notebook.java: Run the
2222         initWidget() method directly on the TabLayoutPanel widget instead of
2223         Group's container widget.
2224
2225 2011-11-29  Ben Konrath  <ben@bagu.org>
2226
2227         Don't add group titles for Portals in Notebooks.
2228
2229         This reverts the previous patch and fixes a bug I introduced with
2230         commit b1753fd27bd2c4ea189c4c353e0ece92dcc66c2c .
2231
2232         * src/main/java/org/glom/web/client/ui/details/Group.java:
2233         * src/main/java/org/glom/web/client/ui/details/Portal.java:
2234
2235 2011-11-28  Ben Konrath  <ben@bagu.org>
2236
2237         Remove unused boolean argument in Portal constructor.
2238
2239         Just a code cleanup.
2240
2241         * src/main/java/org/glom/web/client/ui/details/Group.java:
2242         * src/main/java/org/glom/web/client/ui/details/Portal.java:
2243
2244 2011-11-28  Ben Konrath  <ben@bagu.org>
2245
2246         Remove hack for glom 1.18 style glom files.
2247
2248         * src/main/java/org/glom/web/client/ui/details/Group.java:
2249         * src/main/java/org/glom/web/client/ui/details/Notebook.java:
2250         * src/main/java/org/glom/web/client/ui/details/Portal.java:
2251
2252 2011-11-28  Ben Konrath  <ben@bagu.org>
2253
2254         Use Gda Value version of primary key to log result too large error.
2255
2256         * src/main/java/org/glom/web/server/database/DetailsDBAccess.java:
2257
2258 2011-11-28  Ben Konrath  <ben@bagu.org>
2259
2260         Don't use TypedDataItem.getText() for Unknown types from the URL.
2261
2262         * src/main/java/org/glom/web/client/place/DetailsPlace.java:
2263         * src/main/java/org/glom/web/server/Utils.java: Use getUnknown()
2264         instead of getText().
2265         * src/main/java/org/glom/web/shared/TypedDataItem.java: Add unknown
2266         String field and getUnknown() method.
2267
2268 2011-11-28  Ben Konrath  <ben@bagu.org>
2269
2270         Log an error message when the java-libglom .so is not present.
2271
2272         The error message was being set in the exception but not logged.
2273
2274         * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java:
2275
2276 2011-11-28  Ben Konrath  <ben@bagu.org>
2277
2278         Ignore LayoutItem_CalendarPortals.
2279
2280         * src/main/java/org/glom/web/server/ConfiguredDocument.java: Don't
2281         create the LayoutItemPortal DTO for LayoutItem_CanendarPortals.
2282
2283 2011-11-28  Ben Konrath  <ben@bagu.org>
2284
2285         Extract method for creating the LayoutItemPortal DTO.
2286
2287         Just breaking the code up into smaller chunks.
2288
2289         * src/main/java/org/glom/web/server/ConfiguredDocument.java:
2290
2291 2011-11-28  Ben Konrath  <ben@bagu.org>
2292
2293         Add TypedDataItem.
2294
2295         This should have been added with the refactor. Oops!
2296
2297         * src/main/java/org/glom/web/shared/TypedDataItem.java:
2298
2299 2011-11-28  Ben Konrath  <ben@bagu.org>
2300
2301         Create primary key value from URL string using type from Glom document.
2302
2303         See this bug, comments 19 - 25:
2304
2305         https://bugzilla.gnome.org/show_bug.cgi?id=662376#c19
2306
2307         * src/main/java/org/glom/web/client/place/DetailsPlace.java: Don't
2308         create a TypeDataItem for the primary key here when loading from a
2309         URL. Show the same string for the primary key value as was received
2310         from the URL string (when loading from a URL).
2311         * src/main/java/org/glom/web/server/Utils.java: Update method for
2312         creating the Gda Value from the TypeDataItem to properly deal with
2313         creating a Gda Value based on the Glom document type for the primary
2314         key value string when loading from a URL.
2315         * src/main/java/org/glom/web/server/database/DetailsDBAccess.java:
2316         * src/main/java/org/glom/web/server/database/RelatedListDBAccess.java:
2317         * src/main/java/org/glom/web/server/database/RelatedListNavigation.java:
2318         Update for changed method name.
2319
2320 2011-11-27  Ben Konrath  <ben@bagu.org>
2321
2322         Rename PrimaryKeyItem to TypedDataItem.
2323
2324         The name PrimaryKeyItem suggests what the class should be used for.
2325         TypedDataItem is a neutral name that describes the class better.
2326
2327         This is a rename-only refactor.
2328
2329         * src/main/java/org/glom/web/client/OnlineGlomService.java:
2330         * src/main/java/org/glom/web/client/OnlineGlomServiceAsync.java:
2331         * src/main/java/org/glom/web/client/Utils.java:
2332         * src/main/java/org/glom/web/client/activity/DetailsActivity.java:
2333         * src/main/java/org/glom/web/client/place/DetailsPlace.java:
2334         * src/main/java/org/glom/web/client/ui/ListViewImpl.java:
2335         * src/main/java/org/glom/web/client/ui/details/RelatedListTable.java:
2336         * src/main/java/org/glom/web/client/ui/list/ListTable.java:
2337         * src/main/java/org/glom/web/server/ConfiguredDocument.java:
2338         * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java:
2339         * src/main/java/org/glom/web/server/Utils.java:
2340         * src/main/java/org/glom/web/server/database/DetailsDBAccess.java:
2341         * src/main/java/org/glom/web/server/database/RelatedListDBAccess.java:
2342         * src/main/java/org/glom/web/server/database/RelatedListNavigation.java:
2343         * src/main/java/org/glom/web/shared/NavigationRecord.java:
2344
2345 2011-11-25  Ben Konrath  <ben@bagu.org>
2346
2347         Improve Gda Value conversion from PrimaryKeyItem.
2348
2349         The value from the PrimaryKeyItem is only used if its type match the
2350         type from the glom document.
2351
2352         * src/main/java/org/glom/web/server/Utils.java:
2353
2354 2011-11-25  Ben Konrath  <ben@bagu.org>
2355
2356         Manually check if the java-liblgom .so is visible to the JVM.
2357
2358         It seems that Tomcat has problems when a static initializer throws an
2359         exception. This check is done before the first method call into
2360         java-libglom so that execution doesn't continue if the .so is not
2361         found.
2362
2363         * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java:
2364
2365 2011-11-25  Ben Konrath  <ben@bagu.org>
2366
2367         Improve browser configuration error messages.
2368
2369         This fixes:
2370
2371         https://bugzilla.gnome.org/show_bug.cgi?id=662792
2372
2373         * src/main/java/org/glom/web/client/OnlineGlomService.java:
2374         * src/main/java/org/glom/web/client/OnlineGlomServiceAsync.java: Add
2375         getConfigurationErrorMessage() method.
2376         * src/main/java/org/glom/web/client/activity/DocumentSelectionActivity.java:
2377         Get and display a specific configuration error message when no Glom
2378         documents are found.
2379         * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java:
2380         Implement getConfigurationErrorMessage() method. Surround configuration
2381         code in the init() method with a try/catch block. This allows the
2382         errors to be caught while keeping the servlet available to retrieve the
2383         configuration error message.
2384
2385 2011-11-25  Ben Konrath  <ben@bagu.org>
2386
2387         Don't use Strings to hold primary key values.
2388
2389         The primary key values are now held in a new data object
2390         (PrimaryKeyItem) that holds type information and the primary key value
2391         using the correct type.
2392
2393         * src/main/java/org/glom/web/client/OnlineGlomService.java:
2394         * src/main/java/org/glom/web/client/OnlineGlomServiceAsync.java:
2395         * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java: Use
2396         PrimaryKeyItem instead of String to hold the primary key value.
2397         * src/main/java/org/glom/web/client/Utils.java: Remove
2398         getKeyValueStringForQuery(). Add getPrimaryKeyItem() which creates a
2399         PrimaryKeyItem based on the GlomFieldType and the DataItem.
2400         * src/main/java/org/glom/web/client/activity/DetailsActivity.java: Use
2401         PrimaryKeyItem instead of String to hold the primary key value. Load
2402         document selection page when the documentID has not been set correctly.
2403         * src/main/java/org/glom/web/client/place/DetailsPlace.java: Re-work
2404         DetailsPlace -> URL and URL -> DetailsPlace conversion with
2405         PrimaryKeyItem.
2406         * src/main/java/org/glom/web/client/place/DocumentSelectionPlace.java:
2407         Return empty string for URL instead of "null".
2408         * src/main/java/org/glom/web/client/ui/ListViewImpl.java:
2409         * src/main/java/org/glom/web/client/ui/details/RelatedListTable.java:
2410         * src/main/java/org/glom/web/client/ui/list/ListTable.java:
2411         * src/main/java/org/glom/web/server/ConfiguredDocument.java: Use
2412         PrimaryKeyItem instead of String to hold primary key values.
2413         * src/main/java/org/glom/web/server/Utils.java: New method to convert a
2414         PrimaryKeyValue to a Gda Value.
2415         * src/main/java/org/glom/web/server/database/DetailsDBAccess.java:
2416         * src/main/java/org/glom/web/server/database/RelatedListDBAccess.java:
2417         * src/main/java/org/glom/web/server/database/RelatedListNavigation.java:
2418         Replace temporary database access code that uses the PrimaryKeyValue to
2419         Gda Value conversion.
2420         * src/main/java/org/glom/web/shared/DataItem.java: Add comment.
2421         * src/main/java/org/glom/web/shared/NavigationRecord.java: Use
2422         PrimaryKeyItem instead of String.
2423         * src/main/java/org/glom/web/shared/PrimaryKeyItem.java: New class to
2424         hold primary key values.
2425
2426 2011-11-24  Ben Konrath  <ben@bagu.org>
2427
2428         Use newly added java-libglom API to create queries.
2429
2430         This isn't finished. I still need to stop using Strings for primary key
2431         values in the client code.
2432
2433         * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java: Tell
2434         libglom to use fake connections so that retrieving the query string will
2435         work.
2436         * src/main/java/org/glom/web/server/database/DetailsDBAccess.java:
2437         * src/main/java/org/glom/web/server/database/ListViewDBAccess.java:
2438         * src/main/java/org/glom/web/server/database/RelatedListDBAccess.java:
2439         * src/main/java/org/glom/web/server/database/RelatedListNavigation.java:
2440         Use the newly added libglom sql methods and classes to create the
2441         query. Add temporary hack to convert primary value strings to Gda
2442         Value.
2443
2444 2011-11-23  Ben Konrath  <ben@bagu.org>
2445
2446         Don't explicitly set the height of Portals.
2447
2448         See comments 6 - 10 of this bug for details:
2449
2450         https://bugzilla.gnome.org/show_bug.cgi?id=662930#c6
2451
2452         * src/main/java/org/glom/web/client/ui/details/Portal.java:
2453
2454 2011-11-23  Ben Konrath  <ben@bagu.org>
2455
2456         Use an HTML table instead of CSS for the FlowTable layout.
2457
2458         * src/main/java/org/glom/web/client/ui/details/FlowTable.java: Use
2459         GWT's FlexTable to implement the FlowTable.
2460         * src/main/webapp/style.css: Adjust CSS for the change to FlexTable.
2461
2462 2011-11-18  Ben Konrath  <ben@bagu.org>
2463
2464         Add boolean example to HTML table mockup.
2465
2466         * mockups/details-view-html-tables-text-entries.html:
2467
2468 2011-11-17  Ben Konrath  <ben@bagu.org>
2469
2470         Ensure the pager buttons are always visible for related lists.
2471
2472         To accomplish this, I've turned off text wrapping in the list view and
2473         related list tables for both the header and data text. The related list
2474         table now has a fixed layout so the it doesn't overflow its container.
2475         This is required to ensure that the cell text is clipped when it
2476         overflows the cell and an ellipsis is added to the right side of the
2477         cell when text is clipped.
2478
2479         A fixed table layout for the related list table in the details view
2480         seems what we want for the details view anyway, so the side-effect is
2481         desirable.
2482
2483         The ellipsis will only be displayed in Firefox >= 7.
2484
2485         This fixes bug:
2486
2487         https://bugzilla.gnome.org/show_bug.cgi?id=662930
2488
2489         * src/main/java/org/glom/web/client/ui/cell/NumericCell.java:
2490         * src/main/java/org/glom/web/client/ui/cell/TextCell.java: Add
2491         'overflow: hidden; text-overflow: ellipsis;' CSS properties to the table
2492         cell text.
2493         * src/main/java/org/glom/web/client/ui/details/RelatedListTable.java:
2494         Set the 'table-layout: fixed' CSS property to the related list table.
2495         * src/main/java/org/glom/web/client/ui/list/ListTable.java: Set the
2496         'white-space: nowrap;' CSS property on both the list view and the
2497         related list tables.
2498
2499 2011-11-16  Ben Konrath  <ben@bagu.org>
2500
2501         Rework the fix for empty notebook tab labels.
2502
2503         Setting the empty group titles with its name caused problems for the
2504         details layout. Instead of using libglom's
2505         LayoutItem.get_title_or_name(), the LayoutItem name is explicitly sent
2506         to the client when the title is empty. This allows the Notebook to use
2507         the name when the title is empty without affecting anything else.
2508
2509         * src/main/java/org/glom/web/client/ui/details/Notebook.java:
2510         * src/main/java/org/glom/web/server/ConfiguredDocument.java:
2511
2512 2011-11-16  Ben Konrath  <ben@bagu.org>
2513
2514         Set group titles with name when title is empty.
2515
2516         This fixes a problem with an empty notebook tab label in the Lesson
2517         Planner document. The forth tab in the notebook should be "Internet":
2518
2519         http://bagu.org:8080/OnlineGlom/#details:document=lesson-planner&table=teachers&value=0
2520
2521         * src/main/java/org/glom/web/server/ConfiguredDocument.java: Use
2522         libglom's LayoutItem.get_title_or_name() to fill in the LayoutGroup
2523         DTO title.
2524
2525 2011-11-16  Ben Konrath  <ben@bagu.org>
2526
2527         Remove whitespace from the configured username properties.
2528
2529         This assumes that usernames won't have whitespace at the beginning
2530         or end. But I think this is a reasonable assumption.
2531
2532         * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java: Use
2533         String.trim() to remove the whitespace from the username properties.
2534
2535 2011-11-15  Ben Konrath  <ben@bagu.org>
2536
2537         Add details view mockup with HTML tables and text entries.
2538
2539         This is from the attachment on this bug:
2540
2541         https://bugzilla.gnome.org/show_bug.cgi?id=663109
2542
2543         * mockups/details-view-html-tables-text-entries.html:
2544
2545 2011-11-15  Ben Konrath  <ben@bagu.org>
2546
2547         Add space between the columns of the flow table.
2548
2549         This fixes:
2550
2551         https://bugzilla.gnome.org/show_bug.cgi?id=662918
2552
2553         * src/main/java/org/glom/web/client/ui/details/FlowTable.java: Add a 1%
2554         space between columns in the flow table.
2555
2556 2011-11-15  Ben Konrath  <ben@bagu.org>
2557
2558         Add backup files to the .gitignore.
2559
2560         * .gitignore: Ignore files that end with ~.
2561
2562 2011-11-09  Ben Konrath  <ben@bagu.org>
2563
2564         Use latest release of gwt-log.
2565
2566         Gwt-log releases are now being submitted to the maven central
2567         repository so manual installation of the jar is no longer required.
2568
2569         * pom.xml: Update version and groupId of gwt-log dependency.
2570
2571 2011-10-31  Ben Konrath  <ben@bagu.org>
2572
2573         Don't use GWT numeric formatting to override the glom currency formatting.
2574
2575         Currencies are now displayed like they are in Glom. See this bug:
2576
2577         https://bugzilla.gnome.org/show_bug.cgi?id=646216
2578
2579         * src/main/java/org/glom/web/client/Utils.java: Remove GWT currency
2580         formatting.
2581         * src/main/java/org/glom/web/client/ui/cell/NumericCell.java: Add
2582         currency code to constructor and set it when the cell is rendered.
2583         * src/main/java/org/glom/web/client/ui/list/ListTable.java: Add the
2584         currency code to the constructor of the NumericCell.
2585
2586 2011-10-27  Ben Konrath  <ben@bagu.org>
2587
2588         Require the latest release of java-libglom (1.17.4).
2589
2590         * pom.xml:
2591
2592 2011-10-26  Ben Konrath  <ben@bagu.org>
2593
2594         Add style to Notebook that matches current theme.
2595
2596         It's not the best style in the world but it's better than the default.
2597
2598         * src/main/java/org/glom/web/client/ui/details/Notebook.java: Add some
2599         padding at the bottom of the child widgets.
2600         * src/main/webapp/style.css: Add style for the Notebook.
2601
2602 2011-10-26  Ben Konrath  <ben@bagu.org>
2603
2604         Move servlet initialization code to overridden init method.
2605
2606         This is half of the solution to getting proper error messages
2607         displayed when configuration errors occur. Here's the relevant bug:
2608
2609         https://bugzilla.gnome.org/show_bug.cgi?id=662792
2610
2611         The rest of the solution involves surrounding the init method with a
2612         try/catch block and setting a global variable with the error /
2613         exception. A new async method should be created to retrieve and display
2614         the error message / exception.
2615
2616         * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java: Move
2617         code from constructor to init method adding exceptions as needed.
2618
2619 2011-10-26  Ben Konrath  <ben@bagu.org>
2620
2621         Add script to monitor and restart tomcat if required.
2622
2623         * utils/check-and-recover-tomcat.py: New file.
2624
2625 2011-10-26  Ben Konrath  <ben@bagu.org>
2626
2627         Display the correct number of data items in the pager.
2628
2629         This commit fixes:
2630
2631         https://bugzilla.gnome.org/show_bug.cgi?id=661441
2632
2633         * src/main/java/org/glom/web/client/ui/list/ListViewTable.java:
2634         * src/main/java/org/glom/web/client/ui/details/RelatedListTable.java:
2635         The implementation is the same for both tables: Keep track of the
2636         number of non-empty rows and fire and RowCountChangeEvent after the data has
2637         been updated.
2638         * src/main/java/org/glom/web/client/ui/list/ListTable.java: Add a
2639         custom Pager class that subclasses SimplePager to handle displaying
2640         the correct number when empty rows have been added.
2641
2642 2011-10-26  Ben Konrath  <ben@bagu.org>
2643
2644         Correct error in previous commit.
2645
2646         * src/main/java/org/glom/web/client/activity/ListActivity.java: Remove
2647         eventBus parameter from listView.setCellTable().
2648
2649 2011-10-26  Ben Konrath  <ben@bagu.org>
2650
2651         Fix error in TODO comment.
2652
2653         * src/main/java/org/glom/web/client/activity/ListActivity.java:
2654
2655 2011-10-24  Ben Konrath  <ben@bagu.org>
2656
2657         Create Notebook widgets to the details view.
2658
2659         This isn't finished just yet - I still need to create a reasonable
2660         style to match the current theme.
2661
2662         * src/main/java/org/glom/web/client/Utils.java: Add method for
2663         calculating the height of a widget. This is used in the Notebook class.
2664         * src/main/java/org/glom/web/client/ui/DetailsViewImpl.java: Update for
2665         new constructor method in Group.
2666         * src/main/java/org/glom/web/client/ui/details/Group.java: Add new
2667         method for creating child widget that can be used by subclasses
2668         like Notebook. New constructor that allows disabling the group
2669         titles - Notebooks don't set a group title for their child groups.
2670         * src/main/java/org/glom/web/client/ui/details/Notebook.java: New class
2671         to make Notebooks using GWT's TabLayoutPanel.
2672         * src/main/java/org/glom/web/client/ui/details/Portal.java: New
2673         constructor that allows disabling the group titles.
2674         * src/main/java/org/glom/web/server/ConfiguredDocument.java: Create the
2675         LayoutItemNotebook DTO.
2676         * src/main/java/org/glom/web/shared/layout/LayoutItemNotebook.java: New
2677         DTO for Notebooks. It's just an empty class for now but we might need
2678         it to transfer some specific information in the future.
2679
2680 2011-10-21  Ben Konrath  <ben@bagu.org>
2681
2682         Add navigation buttons to related list tables.
2683
2684         * src/main/java/org/glom/web/client/OnlineGlomService.java:
2685         * src/main/java/org/glom/web/client/OnlineGlomServiceAsync.java:
2686         * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java: Add new
2687         method getSuitableRecordToViewDetails() for getting the table name
2688         and primary key value for related list navigation buttons.
2689         * src/main/java/org/glom/web/client/activity/DetailsActivity.java: Add
2690         private cell renderer class to get the navigation information for
2691         related list tables from the server. Extract the navigation
2692         processing code from the details cell navigation and use it for the
2693         related list navigation as well.
2694         * src/main/java/org/glom/web/client/ui/ListViewImpl.java: Add private
2695         cell renderer class for the details open buttons. This was needed
2696         because the related list navigation buttons and the list view
2697         navigation buttons need to react differently when clicked.
2698         * src/main/java/org/glom/web/client/ui/cell/OpenButtonCell.java: Remove
2699         the onEnterKeyDown() method because it's now overriden in the
2700         subclasses that are specific to the related list tables and the list
2701         view tables.
2702         * src/main/java/org/glom/web/client/ui/details/Portal.java: Increase
2703         the vertical size a little because the buttons add a bit of vertical
2704         space to table. This is not a perfect solution because the vertical
2705         size of with table fewer than 5 rows will be a little smaller.
2706         * src/main/java/org/glom/web/client/ui/list/ListTable.java: Update for
2707         changes in how navigation buttons are handled.
2708         * src/main/java/org/glom/web/server/ConfiguredDocument.java: Implement
2709         getSuitableRecordToViewDetails() using the new RelatedListNavigation
2710         database access object.
2711         * src/main/java/org/glom/web/server/database/DBAccess.java: Move code
2712         to find the portal for a given relationship name from
2713         RelatedListDBAccess. Add method to find a primary key field for a
2714         given table.
2715         * src/main/java/org/glom/web/server/database/RelatedListDBAccess.java:
2716         Move code to find the portal for a given relationship name to
2717         DBAccess.
2718         * src/main/java/org/glom/web/server/database/RelatedListNavigation.java:
2719         New file: database access object for getting the related list
2720         navigation information (the table name and the primary key value).
2721         * src/main/java/org/glom/web/shared/NavigationRecord.java: New file:
2722         DTO for transferring a table name to navigate to and a primary key
2723         value.
2724         * src/main/java/org/glom/web/shared/layout/LayoutItemPortal.java: Add
2725         boolean and getter/setter to specifies if the related list should add
2726         navigation buttons.
2727
2728 2011-10-24  Murray Cumming  <murrayc@murrayc.com>
2729
2730         Use the master branch of java-libglom
2731
2732         * pom.xml: Depend on java-libglom 1.19 instead.
2733         
2734         This is the master branch. See also the libglom-1-18 branch.
2735
2736 2011-10-11  Ben Konrath  <ben@bagu.org>
2737
2738         Enable the open navigation button when the data has been set.
2739
2740         This avoids having active buttons that don't do anything when the data
2741         has not been set.
2742
2743         * src/main/java/org/glom/web/client/ui/details/DetailsCell.java:
2744
2745 2011-10-11  Ben Konrath  <ben@bagu.org>
2746
2747         Use IsWidget interface for FlowTableItem.
2748
2749         * src/main/java/org/glom/web/client/ui/details/FlowTable.java: Change
2750         FlowTableItem.getWidget() to asWidget() from the IsWidget interface.
2751
2752 2011-10-11  Ben Konrath  <ben@bagu.org>
2753
2754         Remove GWT styling from open button in details view.
2755
2756         There are still some issues with how the details cell is arranged but
2757         this should be made to match Glom 1.20. I'm going to leave fixing this
2758         until I have Glom 1.20 up and running.
2759
2760         * src/main/java/org/glom/web/client/ui/details/DetailsCell.java: Set
2761         style name on open button.
2762         * src/main/webapp/style.css: Move and edit details-navigation class.
2763         Re-arrange some classes to make them appear in the same order as the
2764         UI.
2765
2766 2011-10-07  Ben Konrath  <ben@bagu.org>
2767
2768         Update to GWT 2.4.0.
2769
2770         * .gitignore: Ignore new cache directory.
2771         * .settings/com.google.gwt.eclipse.core.prefs: Update Eclipse settting.
2772         * pom.xml: Change GWT and maven plugin to 2.4.0.
2773         * src/main/java/org/glom/web/OnlineGlom.gwt.xml: Update doctype for
2774         2.4.0.
2775         * src/main/java/org/glom/web/client/ClientFactory.java:
2776         * src/main/java/org/glom/web/client/ClientFactoryImpl.java:
2777         * src/main/java/org/glom/web/client/OnlineGlom.java:
2778         Update source for API changes.
2779         * utils/build-onlineglom-war.sh: Remove cache directory before the
2780         build.
2781
2782 2011-10-07  Ben Konrath  <ben@bagu.org>
2783
2784         Add navigation buttons in the details view.
2785
2786         This isn't finished but I thought I'd commit what I have as it's a
2787         pretty good start. I still need to:
2788
2789         1. Change the style so that it fits better into the current theme
2790         2. Adjust the details cell to expand as much as possible.
2791
2792         * src/main/java/org/glom/web/client/activity/DetailsActivity.java: Add
2793         click handlers to navigation buttons in the DetailsCells. Create a
2794         refreshData() method to get just the data from the server without the
2795         layout.
2796         * src/main/java/org/glom/web/client/activity/TableSelectionActivity.java:
2797         Update the tableSelector and browser title when the table name
2798         changes without using the tableSelector.
2799         * src/main/java/org/glom/web/client/ui/DetailsView.java:
2800         * src/main/java/org/glom/web/client/ui/DetailsViewImpl.java: Rename
2801         getDetailsCells() to getCells(). Update variable names.
2802         * src/main/java/org/glom/web/client/ui/details/DetailsCell.java: Add
2803         method to set click handler on navigation button. Rename a few
2804         variables. Add navigation buttons where needed.
2805         * src/main/java/org/glom/web/client/ui/details/Group.java: Rename a few
2806         variables and methods.
2807         * src/main/java/org/glom/web/server/ConfiguredDocument.java: Set the
2808         navigation boolean and navigation table as required in the
2809         LayoutItemField DTO.
2810         * src/main/java/org/glom/web/shared/layout/LayoutItemField.java: Add
2811         variables for navigation along with getter/setter methods.
2812
2813 2011-10-07  Ben Konrath  <ben@bagu.org>
2814
2815         Rename Field to DetailsCell.
2816
2817         This is a refactor-only commit. No functionality has been added or
2818         removed.
2819
2820         * src/main/java/org/glom/web/client/activity/DetailsActivity.java:
2821         Update variable and method names.
2822         * src/main/java/org/glom/web/client/ui/DetailsView.java:
2823         * src/main/java/org/glom/web/client/ui/DetailsViewImpl.java: Update
2824         variable and method names.
2825         * src/main/java/org/glom/web/client/ui/details/DetailsCell.java:
2826         Renamed from Field.
2827         * src/main/java/org/glom/web/client/ui/details/Group.java: Update
2828         variable and method names.
2829
2830 2011-10-07  Ben Konrath  <ben@bagu.org>
2831
2832         Create separate methods for layout and data the details view.
2833
2834         This is a refactor-only commit. No functionality has been added or
2835         removed.
2836
2837         * src/main/java/org/glom/web/client/activity/DetailsActivity.java: New
2838         private methods: setData(), createLayout().
2839
2840 2011-10-07  Ben Konrath  <ben@bagu.org>
2841
2842         Don't use TableSelectorImpl implementation details in TableSelectorActivity.
2843
2844         This is part of a change to get navigation buttons in the details view
2845         but it should have been done this way from the start.
2846
2847         * src/main/java/org/glom/web/client/activity/ListActivity.java: Update
2848         for method name change in TableSelectionView.
2849         * src/main/java/org/glom/web/client/activity/TableSelectionActivity.java:
2850         Create TableChangeEvent and set the browser title using the
2851         TableSelectionView API.
2852         * src/main/java/org/glom/web/client/ui/TableSelectionView.java:
2853         * src/main/java/org/glom/web/client/ui/TableSelectionViewImpl.java:
2854         Change getSelectedTable() to getSelectedTableName(). Add
2855         getSelectedTableTitle().
2856
2857 2011-10-07  Ben Konrath  <ben@bagu.org>
2858
2859         Use primaryKeyValue naming convention in constructor of DetailsPlace.
2860
2861         * src/main/java/org/glom/web/client/place/DetailsPlace.java:
2862
2863 2011-10-07  Ben Konrath  <ben@bagu.org>
2864
2865         Update TableChangeEvent to use newTableName naming convention.
2866
2867         This makes the class more consistent with GWT naming conventions.
2868
2869         * src/main/java/org/glom/web/client/activity/DetailsActivity.java:
2870         Update for method name change in TableChangeEvent.
2871         * src/main/java/org/glom/web/client/activity/ListActivity.java: Update
2872         for method name change in TableChangeEvent.
2873         * src/main/java/org/glom/web/client/event/TableChangeEvent.java: Update
2874         newTableName variable and getter method. Make toDebugString()
2875         actually work.
2876
2877 2011-09-30  Ben Konrath  <ben@bagu.org>
2878
2879         Disable the pager in the list tables when the data row count is less than the minimum.
2880
2881         * src/main/java/org/glom/web/client/activity/DetailsActivity.java:
2882         * src/main/java/org/glom/web/client/ui/ListViewImpl.java:
2883
2884 2011-09-30  Ben Konrath  <ben@bagu.org>
2885
2886         Add empty rows to the end of related list and list view tables.
2887
2888         I also extracted the cell rendering classes from the ListTable because
2889         the code was becoming a little crazy with all the anonymous inner
2890         classes. My plan is to use these cell rendering classes in the details
2891         view as well so this refactor will be needed for that change.
2892
2893         * src/main/java/org/glom/web/client/activity/DetailsActivity.java: Only
2894         set the row count in related list tables if the data has more rows
2895         than the minimum number of rows visible.
2896         * src/main/java/org/glom/web/client/ui/ListViewImpl.java: Only set the
2897         row count in list view tables if the data has more rows than the
2898         minimum number of rows visible.
2899         * src/main/java/org/glom/web/client/ui/cell/BooleanCell.java: New class
2900         for rendering TYPE_BOOLEAN cells. The code was extracted from the
2901         ListTable class.
2902         * src/main/java/org/glom/web/client/ui/cell/NumericCell.java: New class
2903         for rendering TYPE_NUMERIC cells. The code was extracted from the
2904         ListTable class.
2905         * src/main/java/org/glom/web/client/ui/cell/OpenButtonCell.java: New
2906         class for rendering cells with buttons in list views. The code was
2907         extracted from the ListTable class.
2908         * src/main/java/org/glom/web/client/ui/cell/TextCell.java: New class
2909         for rendering TYPE_TEXT cells. The code was extracted from the
2910         ListTable class.
2911         * src/main/java/org/glom/web/client/ui/details/RelatedListTable.java:
2912         Add empty rows to the end of the data if required. Implement
2913         ListTable.getMinNumVisibleRows().
2914         * src/main/java/org/glom/web/client/ui/list/ListTable.java: Extract
2915         cell renderer code to public classes. Return null in
2916         Column.getValue() for empty rows. Add new abstract method:
2917         getMinNumVisibleRows(). Move code to set the row count of the list view
2918         table to ListViewImpl.
2919         * src/main/java/org/glom/web/client/ui/list/ListViewTable.java: Add
2920         empty rows to the end of the data if required. Implement
2921         ListTable.getMinNumVisibleRows().
2922
2923
2924 2011-09-27  Ben Konrath  <ben@bagu.org>
2925
2926         Use GWT.log for client-side debugging statements.
2927
2928         These are optimized out when deployed so I should have used this method
2929         in the first place. These statements will eventually be replaced with some sort
2930         of notification in the browser.
2931
2932         * src/main/java/org/glom/web/client/activity/DetailsActivity.java:
2933         * src/main/java/org/glom/web/client/activity/ListActivity.java:
2934         * src/main/java/org/glom/web/client/activity/TableSelectionActivity.java:
2935         * src/main/java/org/glom/web/client/ui/details/RelatedListTable.java:
2936         * src/main/java/org/glom/web/client/ui/list/ListViewTable.java:
2937
2938 2011-09-27  Ben Konrath  <ben@bagu.org>
2939
2940         Put tableselector on the right, back to list link on right.
2941
2942         The idea is that the table selector is acting like a label for the
2943         currently displayed table so it should be placed below the document title. This
2944         puts the table title in a similar position to where it is in Glom.
2945
2946         * mockups/details-contacts.html:
2947         * mockups/details-projects.html:
2948         * mockups/listview-contacts.html:
2949         * mockups/listview-projects.html:
2950         * mockups/style.css:
2951         Update mockups to match how the interfaces currently look.
2952         * src/main/webapp/style.css: Swap positions of backlink with the table
2953         selector. Add some space on the left side of the table selector to
2954         line things up with the document title.
2955
2956 2011-09-27  Ben Konrath  <ben@bagu.org>
2957
2958         Add field colouring to details view.
2959
2960         This change re-works how field colouring works. The colour formatting
2961         information is now set to the client with the layout information instead of
2962         with the data. This eliminates the need to send the same colour strings for
2963         data in list view column when colour information is set.
2964
2965         In order to set an alternate colour for negative numeric values, the
2966         number is now sent to client and formatted with the GWT NumberFormat class.
2967
2968         This change also fixes:
2969
2970         https://bugzilla.gnome.org/show_bug.cgi?id=659752
2971
2972         * src/main/java/org/glom/web/OnlineGlom.gwt.xml: Add the GWT
2973         internationalization framework which is needed for client side numeric
2974         formatting.
2975         * src/main/java/org/glom/web/client/Utils.java: New file for some
2976         client static utility methods.
2977         * src/main/java/org/glom/web/client/activity/DetailsActivity.java: Pass
2978         the DataItem object to the Field class. Use a utility method to
2979         create the foreignKeyValue string.
2980         * src/main/java/org/glom/web/client/ui/details/Field.java: Set
2981         alignment and text colours in the constructor. Add setData(DataItem)
2982         method. Remove setText(String) method.
2983         * src/main/java/org/glom/web/client/ui/list/ListTable.java: Add the
2984         colour information to GlomTextCell. Create and use GlomNumberCell for
2985         rendering numbers. Use utility method to get the string for the
2986         primary key of the key provider. Re-work how the horizontal alignment
2987         is set.
2988         * src/main/java/org/glom/web/server/ConfiguredDocument.java: Add
2989         formatting to layout information. Methods for converting the libglom
2990         formatting information were moved from DBAccess.
2991         * src/main/java/org/glom/web/server/database/DBAccess.java: Remove
2992         numeric formatting (it's now done on the client side). Don't set text
2993         colours in DataItem. Move libglom formatting conversion methods to
2994         ConfiguredDocument.
2995         * src/main/java/org/glom/web/shared/DataItem.java: Remove fields and
2996         getters/setters for text colour information.
2997         * src/main/java/org/glom/web/shared/GlomNumericFormat.java: New file
2998         for transferring the libglom NumericFormat information to the client.
2999         * src/main/java/org/glom/web/shared/layout/Formatting.java: Add fields
3000         and getters/setters for: GlomNumericFormat, background colour and
3001         foreground colour strings.
3002
3003 2011-09-26  Ben Konrath  <ben@bagu.org>
3004
3005         Simplify code that iterates through the LayoutGroup.
3006
3007         * src/main/java/org/glom/web/client/ui/list/ListTable.java:
3008
3009 2011-09-26  Ben Konrath  <ben@bagu.org>
3010
3011         Accept Eclipse formatting for OnlineGlomServiceAsync.
3012
3013         * src/main/java/org/glom/web/client/OnlineGlomServiceAsync.java:
3014
3015 2011-09-26  Ben Konrath  <ben@bagu.org>
3016
3017         Don't use the ListDBAccess classes to get the primary key layout information.
3018
3019         This was causing a bug where the wrong index for the hidden primary key
3020         was being sent to the client.
3021
3022         * src/main/java/org/glom/web/server/ConfiguredDocument.java: Find the
3023         primary key while creating the LayoutGroup DTO. Create a
3024         LayoutItemField DTO for hidden primary keys. Don't use the
3025         RelatedListDBAccess because it was only used for getting the primary
3026         key.
3027         * src/main/java/org/glom/web/server/database/DBAccess.java: Change the
3028         access modifier from public to protected for getPrimaryKeyField() and
3029         getPrimaryKeyLayoutItemField().
3030         * src/main/java/org/glom/web/server/database/ListDBAccess.java: Remove
3031         abstract method getExpectedResultSize() because RelatedListDBAccess
3032         doesn't have enough info to implement it.
3033         * src/main/java/org/glom/web/server/database/ListViewDBAccess.java:
3034         Remove @Override for getExpectedResultSize().
3035         * src/main/java/org/glom/web/server/database/RelatedListDBAccess.java:
3036         Remove method getExpectedResultSize().
3037
3038 2011-09-23  Ben Konrath  <ben@bagu.org>
3039
3040         Log which layout (list or details) the ignored item is from.
3041
3042         * src/main/java/org/glom/web/server/ConfiguredDocument.java:
3043
3044 2011-09-23  Ben Konrath  <ben@bagu.org>
3045
3046         Remove annotations that turn off code formatting in DataItem.
3047
3048         * src/main/java/org/glom/web/shared/DataItem.java:
3049
3050 2011-09-23  Ben Konrath  <ben@bagu.org>
3051
3052         Rename GlomField to DataItem and update associated methods.
3053
3054         This is a rename-only refactor. No functionality has been added or
3055         removed.
3056
3057         * src/main/java/org/glom/web/client/OnlineGlomService.java:
3058         * src/main/java/org/glom/web/client/OnlineGlomServiceAsync.java:
3059         * src/main/java/org/glom/web/client/activity/DetailsActivity.java:
3060         * src/main/java/org/glom/web/client/ui/ListViewImpl.java:
3061         * src/main/java/org/glom/web/client/ui/details/RelatedListTable.java:
3062         * src/main/java/org/glom/web/client/ui/list/ListTable.java:
3063         * src/main/java/org/glom/web/client/ui/list/ListViewTable.java:
3064         * src/main/java/org/glom/web/server/ConfiguredDocument.java:
3065         * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java:
3066         * src/main/java/org/glom/web/server/database/DBAccess.java:
3067         * src/main/java/org/glom/web/server/database/DetailsDBAccess.java:
3068         * src/main/java/org/glom/web/server/database/ListDBAccess.java:
3069         * src/main/java/org/glom/web/server/database/ListViewDBAccess.java:
3070         * src/main/java/org/glom/web/server/database/RelatedListDBAccess.java:
3071         * src/main/java/org/glom/web/shared/DataItem.java:
3072         * src/main/java/org/glom/web/shared/DetailsLayoutAndData.java:
3073         * src/main/java/org/glom/web/shared/layout/LayoutGroup.java:
3074
3075 2011-09-23  Ben Konrath  <ben@bagu.org>
3076
3077         Rename GlomDocument to DocumentInfo and update associated methods.
3078
3079         This is a rename-only refactor. No functionality has been added or
3080         removed.
3081
3082         * src/main/java/org/glom/web/client/OnlineGlomService.java:
3083         * src/main/java/org/glom/web/client/OnlineGlomServiceAsync.java:
3084         * src/main/java/org/glom/web/client/activity/ListActivity.java:
3085         * src/main/java/org/glom/web/client/activity/TableSelectionActivity.java:
3086         * src/main/java/org/glom/web/server/ConfiguredDocument.java:
3087         * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java:
3088         * src/main/java/org/glom/web/shared/DocumentInfo.java:
3089
3090 2011-09-20  Ben Konrath  <ben@bagu.org>
3091
3092         Require java-libglom 1.17.3.
3093
3094         This picks up the fix for the seg fault problem with the Scenes table
3095         in the Openismus Film Manager example.
3096
3097         * pom.xml:
3098
3099 2011-09-20  Ben Konrath  <ben@bagu.org>
3100
3101         Change the way sort clause is added for primary key when no sort clause is requested.
3102
3103         The primary key is now added to the LayoutFieldVector (fieldsToGet)
3104         before the sort clause is created. When a sort clause is not requested, the
3105         sort clause is created by finding the primary key in the LayoutFieldVector
3106         (fieldsToGet).
3107
3108         * src/main/java/org/glom/web/server/database/ListDBAccess.java:
3109
3110 2011-09-20  Ben Konrath  <ben@bagu.org>
3111
3112         Log error message if no documents are found in the configured directory.
3113
3114         * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java: Also:
3115         Extract the glom file extension string to a private static final class
3116         variable (mostly as syntactic sugar). Accept a minor formatting change.
3117         * src/main/resources/onlineglom.properties: Add '/glomfile' to end of
3118         the example glom.document.directory configuration property to make it
3119         more clear that it can any directory, not just the home directory.
3120
3121 2011-09-18  Ben Konrath  <ben@bagu.org>
3122
3123         Add related lists to details view.
3124
3125         The related list table has support for paging and sorting just like the
3126         table in the list view.
3127
3128         * pom.xml: Require java-libglom 1.17.2 for the new methods to build the
3129         SQL queries for the related list tables.
3130         * src/main/java/org/glom/web/client/OnlineGlomService.java:
3131         * src/main/java/org/glom/web/client/OnlineGlomServiceAsync.java:
3132         * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java:
3133         Rename getList methods to getListView and add comments. Remove
3134         getDetailsLayout() as it's not used anymore. Add note to getDetailsData() about
3135         it being unused. Add methods: getDetailsLayoutAndData(),
3136         getSortedRelatedListData(), getRelatedListData(), getRelatedListRowCount()
3137         * src/main/java/org/glom/web/client/activity/DetailsActivity.java:
3138         Create the layout and set the data for the fields in one async call
3139         instead of two. Create related lists where appropriate.
3140         * src/main/java/org/glom/web/client/activity/ListActivity.java: Changes
3141         for method name changes in OnlineGlomService.
3142         * src/main/java/org/glom/web/client/ui/DetailsView.java:
3143         * src/main/java/org/glom/web/client/ui/DetailsViewImpl.java: Rename
3144         addLayoutGroup() to addGroup(). Add methods to get the DTOs for the
3145         visible UI objects.
3146         * src/main/java/org/glom/web/client/ui/ListView.java:
3147         * src/main/java/org/glom/web/client/ui/ListViewImpl.java: Remove
3148         tableName from setCellTable(). Create a ListViewTable instead of
3149         ListTable.
3150         * src/main/java/org/glom/web/client/ui/details/Field.java: New class to
3151         represent a data field in the details view.
3152         * src/main/java/org/glom/web/client/ui/details/Group.java: Move to code
3153         from addDetailsCell() to Field class. Keep track of the Fields and
3154         Portals in the details view.
3155         * src/main/java/org/glom/web/client/ui/details/Portal.java: Make portal
3156         a little bigger to match Glom. Keep track of the LayoutItemPortal DTO
3157         and add a method to get it. Add method to set the contents of the
3158         portal.
3159         * src/main/java/org/glom/web/client/ui/details/RelatedListTable.java:
3160         New class for related list tables. This class has the data provider
3161         for the related list table.
3162         * src/main/java/org/glom/web/client/ui/list/ListTable.java: Change to
3163         abstract class which is the base class for the ListViewTable and the
3164         RelatedListTable.
3165         * src/main/java/org/glom/web/client/ui/list/ListViewTable.java:
3166         New class for list view tables. This class has the data provider for
3167         the list view table.
3168         * src/main/java/org/glom/web/server/ConfiguredDocument.java: Add
3169         methods for related list tables. Add more information to the
3170         LayoutItemField and LayoutItemPortal DTOs.
3171         * src/main/java/org/glom/web/server/database/DetailsDBAccess.java:
3172         Remove debugging print statement.
3173         * src/main/java/org/glom/web/server/database/ListDBAccess.java:
3174         Remove debugging print statements. Add primary key field to SQL count
3175         query.
3176         * src/main/java/org/glom/web/server/database/ListViewDBAccess.java:
3177         Remove unnecessary LayoutFieldVector parameter from
3178         getResultSizeOfSQLQuery() method.
3179         * src/main/java/org/glom/web/server/database/RelatedListDBAccess.java:
3180         New class for related list table database access.
3181         * src/main/java/org/glom/web/shared/DetailsLayoutAndData.java: New
3182         class that is a wrapper DTO for details view layout and data.
3183         * src/main/java/org/glom/web/shared/layout/LayoutItemPortal.java: Add
3184         new 'fromField' string to this DTO.
3185         * src/main/webapp/style.css: Remove bottom margin and override top
3186         margin with 0em.
3187
3188 2011-09-15  Ben Konrath  <ben@bagu.org>
3189
3190         Breakup the OnlineGlomServiceImpl class to make it more manageable.
3191
3192         This sets things up to make it easier to add the data retrieval for
3193         related lists (portals). No user noticeable changes were made with
3194         this commit.
3195
3196         * src/main/java/org/glom/web/server/ConfiguredDocument.java: This
3197         class has the code to retrieve the layouts and access the
3198         database using the new database helper classes.
3199         * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java:
3200         Most of the functionality has been removed from this class. This
3201         class now represents the public interface for the client side
3202         code. It also deals with configuring the servlet and cleaning
3203         things up when the servlet is stopped.
3204         * src/main/java/org/glom/web/server/Utils.java: Extract a couple
3205         of static methods into this utility class.
3206         * src/main/java/org/glom/web/server/database/DBAccess.java:
3207         * src/main/java/org/glom/web/server/database/DetailsDBAccess.java:
3208         * src/main/java/org/glom/web/server/database/ListDBAccess.java:
3209         * src/main/java/org/glom/web/server/database/ListViewDBAccess.java:
3210         These classes have the database retrieval code. The class hierarchy
3211         has been setup to make it easy to reuse code for similar
3212         functionality.
3213
3214 2011-09-06  Ben Konrath  <ben@bagu.org>
3215
3216         Create separate classes for list table code and the data provider.
3217
3218         As part of this refactor, I also split up the code a bit to make it
3219         more manageable.
3220
3221         * src/main/java/org/glom/web/client/ui/ListViewImpl.java: Move list
3222         table code to two new classes (below).
3223         * src/main/java/org/glom/web/client/ui/list/ListTable.java: New file
3224         with code from ListViewImpl.
3225         * src/main/java/org/glom/web/client/ui/list/ListTableDataProvider.java:
3226         New file with code from ListViewImpl.
3227
3228 2011-09-06  Ben Konrath  <ben@bagu.org>
3229
3230         Change the LayoutItemPortal DTO to extend LayoutGroup instead of LayoutItem.
3231
3232         This fixes the LayoutItemPortal DTO to match the libglom layout object
3233         hierarchy.
3234
3235         * src/main/java/org/glom/web/shared/layout/LayoutItemPortal.java:
3236
3237 2011-09-01  Ben Konrath  <ben@bagu.org>
3238
3239         Set title of Portals in the Details View.
3240
3241         * pom.xml: Bump required version of java-libglom to 1.17.1.
3242         * src/main/java/org/glom/web/client/ui/details/Group.java: Move Portal
3243         widget creation to its own class. Add comments to constructor.
3244         * src/main/java/org/glom/web/client/ui/details/Portal.java: New file.
3245         The code is mostly from the Group class with the title now set.
3246         * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java: Set
3247         title of Portal. Update some comments. Fix some code formatting.
3248
3249 2011-09-01  Ben Konrath  <ben@bagu.org>
3250
3251         Remove TODO comment for the flow table column width.
3252
3253         The flow table column width is working correctly and doesn't need to be
3254         changed. See this mailing list post for more info:
3255
3256         https://mail.gnome.org/archives/glom-devel-list/2011-August/msg00017.html
3257
32