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