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