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