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