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