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