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