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