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