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