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