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