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