Use filename based unique document ID in URL and for RPC.
[online-glom:gwt-glom.git] / ChangeLog
1 2011-06-27  Ben Konrath  <ben@bagu.org>
2
3         Use filename based unique document ID in URL and for RPC.
4
5         The document ID is the glom document name with spaces (' ') replaced
6         with pluses ('+') and without the .glom extension.
7
8         This change is mostly a string substitution of 'documentTitle' for
9         'documentID'. The only code change is the addition of a Documents DTO to get the
10         filename to document title mappings as indicated below.
11
12         * src/main/java/org/glom/web/client/OnlineGlomService.java:
13         * src/main/java/org/glom/web/client/OnlineGlomServiceAsync.java:
14         * src/main/java/org/glom/web/client/activity/DetailsActivity.java:
15         * src/main/java/org/glom/web/client/activity/DocumentSelectionActivity.java:
16         Use Documents DTO to create the document links in the document
17         selection view.
18         * src/main/java/org/glom/web/client/activity/ListActivity.java:
19         * src/main/java/org/glom/web/client/activity/TableSelectionActivity.java:
20         * src/main/java/org/glom/web/client/place/DetailsPlace.java:
21         * src/main/java/org/glom/web/client/place/HasSelectableTablePlace.java:
22         * src/main/java/org/glom/web/client/place/ListPlace.java:
23         * src/main/java/org/glom/web/client/ui/DocumentSelectionView.java:
24         * src/main/java/org/glom/web/client/ui/DocumentSelectionViewImpl.java:
25         * src/main/java/org/glom/web/client/ui/ListView.java:
26         * src/main/java/org/glom/web/client/ui/ListViewImpl.java:
27         * src/main/java/org/glom/web/client/ui/TableSelectionView.java:
28         * src/main/java/org/glom/web/client/ui/TableSelectionViewImpl.java:
29         * src/main/java/org/glom/web/server/Log.java:
30         * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java: Change
31         getDocumentTitles() to getDocuments() and return the Documents DTO.
32         * src/main/java/org/glom/web/shared/Documents.java: New DTO for
33         transferring the filename to document title mappings.
34
35 2011-06-25  Ben Konrath  <ben@bagu.org>
36
37         Make the authentication popup work again.
38
39         This bug was introduced when I extracted ConfiguredDocument to its own class.
40
41         * src/main/java/org/glom/web/server/ConfiguredDocument.java: Return the
42         correct success / fail status in setUsernameAndPassword().
43
44 2011-06-25  Ben Konrath  <ben@bagu.org>
45
46         Use filename as unique key for configuring database usernames and passwords.
47
48         This replaces the use of the Glom document title which could change
49         depending on the locale. Thanks to Murray Cumming for pointing out this
50         problem.
51
52         * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java:
53         * src/main/resources/onlineglom.properties:
54
55 2011-06-24  Ben Konrath  <ben@bagu.org>
56
57         Pass primary key value to DetailsView.
58
59         This enables the DetailsView to load the correct data.
60
61         * src/main/java/org/glom/web/client/activity/DetailsActivity.java: Add
62         primary key value field and set in constructor. Pass primary key
63         value to getDetailsData().
64         * src/main/java/org/glom/web/client/place/DetailsPlace.java: Add URL
65         variables for document title and primary key value.
66         * src/main/java/org/glom/web/client/ui/ListViewImpl.java: Pass primary
67         key value to the DetailsPlace.
68
69 2011-06-24  Ben Konrath  <ben@bagu.org>
70
71         Add primary key index to LayoutGroup DTO and add ProvidesKey to CellTable.
72
73         This allows the primary key to be retrieved by the Details button. This
74         functionality has not been implemented yet but it's in the works.
75
76         * src/main/java/org/glom/web/client/activity/ListActivity.java: Pass
77         the LayoutGroup result to ListView.setCellTable instead of all of its
78         fields individually.
79         * src/main/java/org/glom/web/client/ui/ListView.java:
80         * src/main/java/org/glom/web/client/ui/ListViewImpl.java: Use
81         LayoutGroup as parameter for setCellTable. Add ProvidesKey to CellTable
82         get the primary key for the table.
83         * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java: Set the
84         index of the primary key in the LayoutGroup accounting for hidden
85         primary keys. Rename getJavaNumberFormat() to
86         convertToJavaNumberFormat() for consistency. Cleanup / add some
87         comments.
88         * src/main/java/org/glom/web/shared/layout/LayoutGroup.java: Add a
89         field for primary key index and a field to indicate whether the
90         primary key is hidden or not.
91
92 2011-06-23  Ben Konrath  <ben@bagu.org>
93
94         Rename getTableData methods to getListData.
95
96         This is a rename refactor for consistency with other methods.
97
98         * src/main/java/org/glom/web/client/OnlineGlomService.java:
99         * src/main/java/org/glom/web/client/OnlineGlomServiceAsync.java:
100         * src/main/java/org/glom/web/client/ui/ListViewImpl.java:
101         * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java:
102
103 2011-06-23  Ben Konrath  <ben@bagu.org>
104
105         Extract the ConfiguredDocument innerclass into its own class.
106
107         This makes the servlet code more object oriented.
108
109         * src/main/java/org/glom/web/server/ConfiguredDocument.java: Extracted
110         from private ConfiguredDocument class in OnlineGlomServiceImpl.
111         * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java: Use the
112         new ConfiguredDocument class.
113
114 2011-06-21  Ben Konrath  <ben@bagu.org>
115
116         Use the LayoutGroup group for the list layout instead of ColumnInfo and LayoutListTable.
117
118         This makes things more inline with how libglom works and reduces code
119         duplication. This refactor lays the groundwork for adding the primary key to
120         the LayoutGroup object.
121
122         * src/main/java/org/glom/web/client/OnlineGlomService.java:
123         * src/main/java/org/glom/web/client/OnlineGlomServiceAsync.java:
124         * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java:
125         Change method names to getListLayout and getDefaultListLayout for
126         consistency. Use LayoutGroup as the DTO for the list layout instead of
127         ColumnInfo and LayoutListTable.
128         * src/main/java/org/glom/web/client/activity/ListActivity.java: Use the
129         new method names along with the LayoutGroup object for transferring the
130         list layout.
131         * src/main/java/org/glom/web/client/ui/ListView.java:
132         * src/main/java/org/glom/web/client/ui/ListViewImpl.java:
133         Use ArrayList<LayoutItem> instead of ColumnInfo[] in setCellTable().
134         * src/main/java/org/glom/web/shared/ColumnInfo.java: Deleted. Replaced
135         with LayoutGroup.
136         * src/main/java/org/glom/web/shared/LayoutListTable.java: Deleted.
137         Replaced with LayoutGroup.
138         * src/main/java/org/glom/web/shared/layout/LayoutGroup.java: Add
139         expectedResultSize and defaultTableName fields which are needed for
140         the list layout.
141         * src/main/java/org/glom/web/shared/layout/LayoutItemField.java: Add
142         type field which is needed for the list layout but will also be
143         useful for the details layout as things progress.
144         * src/main/java/org/glom/web/shared/layout/LayoutItemWithFormatting.java:
145         Make class abstract. Remove the unnecessary
146         getFormattingHorizontalAlignment method. Add setFormatting method.
147
148 2011-06-16  Ben Konrath  <ben@bagu.org>
149
150         Add scripts for building and installing war.
151
152         These will help when updating OnlineGlom but they're also good
153         supplemental documentation of the build and deployment proceeding.
154
155         * utils/build-onlineglom-war.sh: New file.
156         * utils/install-onlineglom-war.sh: New file.
157
158 2011-06-16  Ben Konrath  <ben@bagu.org>
159
160         Create wrapper class to create consistent log messages.
161
162         I wrapped methods in the Log class of gwt-log to add the method names
163         from the servlet and create consistent formatting of the document title
164         and table names in the log messages.
165
166         * src/main/java/org/glom/web/server/Log.java: New file with wrapped methods.
167         * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java: Convert all
168         log methods to use methods from wrapped Log class.
169
170 2011-06-16  Ben Konrath  <ben@bagu.org>
171
172         Remove superfluous conditional return.
173
174         Thanks to Murray Cumming for pointing this out!
175
176         * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java:
177
178 2011-06-15  Ben Konrath  <ben@bagu.org>
179
180         Return an ArrayList of LayoutGroups for the Details layout.
181
182         This corrects a problem with the details layout as it can have more
183         than one top level LayoutGroup.
184
185         * src/main/java/org/glom/web/client/OnlineGlomService.java:
186         * src/main/java/org/glom/web/client/OnlineGlomServiceAsync.java: Change
187         method name from get*DetailsLayoutGroup to get*DetailsLayout. Return
188         an ArrayList<LayoutGroup> in the get*DetailsLayout methods.
189         * src/main/java/org/glom/web/client/activity/DetailsActivity.java: Deal
190         with ArrayList of LayoutGroups for the details view layout.
191         * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java: Change
192         method name from get*DetailsLayoutGroup to get*DetailsLayout. Return an
193         ArrayList<LayoutGroup> in the get*DetailsLayout methods. Inline
194         getTableFieldsToShowForSequence() into getFieldsToShowForSQLQuery() to simplify
195         the code a bit. Rename getTableFieldsToShowForSequenceAddGroup() to
196         getFieldsToShowForSQLQueryAddGroup() to try to keep things more consistent.
197
198 2011-06-14  Ben Konrath  <ben@bagu.org>
199
200         Use cast_dynamic method to determine the libglom LayoutItem type.
201
202         This is better than finding the LayoutItem type by using the string
203         returned from the get_part_type_name() method.
204
205         * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java:
206
207 2011-06-14  Ben Konrath  <ben@bagu.org>
208
209         Add method names to log entries in the servlet.
210
211         This helps when tracking down deployment problems.
212
213         * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java:
214
215 2011-06-14  Ben Konrath  <ben@bagu.org>
216
217         Add data to the DetailsView using a hard-coded primary key value.
218
219         The layout and functionality of the DetailsView is not complete. This
220         is just a checkpoint so the patch doesn't get too big.
221
222         * src/main/java/org/glom/web/client/OnlineGlomService.java:
223         * src/main/java/org/glom/web/client/OnlineGlomServiceAsync.java:
224         Add getDetailsData() servlet method.
225         * src/main/java/org/glom/web/client/activity/DetailsActivity.java:
226         Add RPC to getDetailsData(). Change the way the LayoutGroups and
227         LayoutFields are added to the DetailsView.
228         * src/main/java/org/glom/web/client/ui/DetailsView.java:
229         * src/main/java/org/glom/web/client/ui/DetailsViewImpl.java:
230         Add setData() method. Change addLayoutGroup() and addLayoutField() to
231         take the string for the title instead of the object.
232         * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java:
233         Add implementation getDetailsData() along with some private helper
234         methods.
235         * src/main/webapp/style.css: Add padding to details-data class. Add a
236         details-label class with the same padding as the details-data class.
237
238 2011-06-03  Ben Konrath  <ben@bagu.org>
239
240         Use presenter.goTo() to change to the DetailsPlace.
241
242         This will make things easier when we need to open the DetailsView with
243         data specific to the row that was clicked.
244
245         * src/main/java/org/glom/web/client/ui/ListViewImpl.java:
246
247 2011-06-02  Ben Konrath  <ben@bagu.org>
248
249         Add CSS file from mockups.
250
251         I'm adding this now because it's going to be useful to have when
252         developing the DetailsView. The TableSelectionView and ListView aren't
253         setup properly yet.
254
255         * src/main/webapp/OnlineGlom.html:
256         * src/main/webapp/style.css:
257
258 2011-06-02  Ben Konrath  <ben@bagu.org>
259
260         Use String.isEmpty() to check for empty string.
261
262         * src/main/java/org/glom/web/client/activity/ListActivity.java:
263
264 2011-06-02  Ben Konrath  <ben@bagu.org>
265
266         Display main layout group titles in the DetailsView.
267
268         This is the start of the DetailsActivity/DetailsView implementation.
269
270         * src/main/java/org/glom/web/client/OnlineGlomService.java:
271         * src/main/java/org/glom/web/client/OnlineGlomServiceAsync.java:
272         Add getDetailsLayoutGroup() and getDefaultDetailsLayoutGroup() methods.
273         * src/main/java/org/glom/web/client/activity/DetailsActivity.java:
274         Get the layout information for the details view from the server and set
275         the main layout group titles.
276         * src/main/java/org/glom/web/client/ui/DetailsView.java:
277         * src/main/java/org/glom/web/client/ui/DetailsViewImpl.java:
278         Add addLayoutGroup() and addLayoutField() methods. This are just
279         temporary methods for creating the the details view that will change
280         in the future.
281         * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java:
282         Implement getDetailsLayoutGroup() and getDefaultDetailsLayoutGroup()
283         methods.
284         * src/main/java/org/glom/web/shared/layout/Formatting.java:
285         * src/main/java/org/glom/web/shared/layout/LayoutGroup.java:
286         * src/main/java/org/glom/web/shared/layout/LayoutItem.java:
287         * src/main/java/org/glom/web/shared/layout/LayoutItemField.java:
288         * src/main/java/org/glom/web/shared/layout/LayoutItemWithFormatting.java:
289         Data Transfer Objects that mimic the libglom object structure. These are
290         used for transferring the details layout but could also be used for
291         transferring the list layout.
292
293 2011-05-27  Ben Konrath  <ben@bagu.org>
294
295         Reset the AuthenticationPopup when clearing the ListView.
296
297         * src/main/java/org/glom/web/client/activity/ListActivity.java:
298
299 2011-05-27  Ben Konrath  <ben@bagu.org>
300
301         Fix problem with onlineglom.properties file loading.
302
303         The old way worked in Eclipse but not on the server. Loading the
304         onlineglom.properties file now works in Eclipse and on the server.
305
306         * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java:
307
308 2011-05-24  Ben Konrath  <ben@bagu.org>
309
310         Update gwt-log from 3.1.0 to 3.1.2.
311
312         Gwt-log 3.1.0 has been marked as depreciated.
313
314         * pom.xml:
315
316 2011-05-24  Ben Konrath  <ben@bagu.org>
317
318         Add comment to ListActivity.goTo() method.
319
320         * src/main/java/org/glom/web/client/activity/ListActivity.java:
321
322 2011-05-24  Ben Konrath  <ben@bagu.org>
323
324         Remove FIXME in convertGdkColorToHtmlColour()
325
326         The Gdk::Color value returned by libglom is 16-bits per channel on both
327         64 and 32-bit platforms.
328
329         * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java:
330
331 2011-05-19  Ben Konrath  <ben@bagu.org>
332
333         Improve performance of initial ListView load.
334
335         I removed a round trip to the server for getting the default table name
336         and then requesting information about that table. This also removes a potential
337         problem with the table change handler not being setup in time to receive the
338         table change event from the ListActivity.
339
340         * src/main/java/org/glom/web/client/OnlineGlomService.java:
341         * src/main/java/org/glom/web/client/OnlineGlomServiceAsync.java: Add
342         getDefaultLayoutListTable() method. Improve comments.
343         * src/main/java/org/glom/web/client/activity/ListActivity.java: Use
344         getDefaultLayoutListTable() method instead of firing a table change
345         event to get the table to load.
346         * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java: Add
347         implementation of getDefaultLayoutListTable() method.
348         * src/main/java/org/glom/web/shared/LayoutListTable.java: Add field for
349         table name.
350
351 2011-05-19  Ben Konrath  <ben@bagu.org>
352
353         Override toDebugString() in TableChangeEvent.
354
355         This is useful to have for debugging.
356
357         * src/main/java/org/glom/web/client/event/TableChangeEvent.java:
358
359 2011-05-19  Ben Konrath  <ben@bagu.org>
360
361         Add a "Back to List" link when at the DetailsPlace.
362
363         * src/main/java/org/glom/web/client/activity/ListActivity.java:
364         Populate the CellTable based on the selected table of the ListBox if
365         it's set otherwise use the default table. This allows the "Back to
366         List" link to work.
367         * src/main/java/org/glom/web/client/activity/TableSelectionActivity.java:
368         Remove Place from constructors. Add a setPlace() method. Add
369         goToPlace() method. Set class as presenter for TableSelectionView.
370         * src/main/java/org/glom/web/client/mvp/TableSelectionActivityMapper.java:
371         Use the same TableSelectionActivity when switching between the List and
372         Details Places.
373         * src/main/java/org/glom/web/client/place/DetailsPlace.java:
374         Subclass the new HasSelectableTablePlace. This removes some duplicate
375         code.
376         * src/main/java/org/glom/web/client/place/HasSelectableTablePlace.java:
377         New class to represent Places that display the TableSelectionView.
378         * src/main/java/org/glom/web/client/place/ListPlace.java:
379         Subclass the new HasSelectableTablePlace. This removes some duplicate
380         code.
381         * src/main/java/org/glom/web/client/ui/TableSelectionView.java:
382         * src/main/java/org/glom/web/client/ui/TableSelectionViewImpl.java:
383         Add Presenter interface. Add setBackLinkVisible() method. Add
384         setBackLink() method.
385
386 2011-05-18  Ben Konrath  <ben@bagu.org>
387
388         Enable the "Details" buttons.
389
390         Right now only an empty details view is displayed.
391
392         * src/main/java/org/glom/web/client/ClientFactory.java:
393         * src/main/java/org/glom/web/client/ClientFactoryImpl.java:
394         Add DetailsView to ClientFactory.
395         * src/main/java/org/glom/web/client/activity/DetailsActivity.java:
396         A basic activity for the details view.
397         * src/main/java/org/glom/web/client/activity/TableSelectionActivity.java:
398         Add a new constructor that takes a DetailsPlace. Rename shutdown() to
399         clearView().
400         * src/main/java/org/glom/web/client/mvp/AppPlaceHistoryMapper.java:
401         Add DetailsPlace.Tokenizer to the list of tokens that are generated by
402         GWT.
403         * src/main/java/org/glom/web/client/mvp/DataActivityMapper.java:
404         Create a new DetailsActivity when a DetailsPlace is requested. Remove
405         unnecessary super() in constructor.
406         * src/main/java/org/glom/web/client/mvp/TableSelectionActivityMapper.java:
407         Create a new TableSelectionActivity when a DetailsPlace is requested. We
408         really shouldn't create a new TableSelectionActivity for both the ListPlace
409         and the DetailsPlace so this should be considered a temporary solution.
410         * src/main/java/org/glom/web/client/place/DetailsPlace.java:
411         New file. Represents a URL for the details view.
412         * src/main/java/org/glom/web/client/ui/DetailsView.java:
413         * src/main/java/org/glom/web/client/ui/DetailsViewImpl.java:
414         A basic details view interface and implementation.
415         * src/main/java/org/glom/web/client/ui/ListViewImpl.java:
416         Enable the "Details" buttons.
417
418 2011-05-12  Ben Konrath  <ben@bagu.org>
419
420         Use a LayoutPanel with multiple display areas for main layout.
421
422         This is mostly a refactor in that there are no changes from the user
423         point of view. These changes are required so that we can swap out the list view
424         with the details view when the user clicks the "Details" button.
425
426         * src/main/java/org/glom/web/client/ClientFactory.java:
427         * src/main/java/org/glom/web/client/ClientFactoryImpl.java: Remove
428         OnlineGlomView. Add TableSelectionView, ListView and
429         AuthenticationPopup.
430         * src/main/java/org/glom/web/client/OnlineGlom.java: Use LayoutPanel
431         for main layout. Add display regions for main activities. Add
432         activity manager for for main activities.
433         * src/main/java/org/glom/web/client/activity/ListActivity.java: New
434         file from parts of the deleted OnlineGlomActivity.
435         * src/main/java/org/glom/web/client/activity/TableSelectionActivity.java:
436         New file from parts of the deleted OnlineGlomActivity.
437         * src/main/java/org/glom/web/client/event/TableChangeEvent.java:
438         * src/main/java/org/glom/web/client/event/TableChangeEventHandler.java:
439         New files for app wide table change event.
440         * src/main/java/org/glom/web/client/mvp/DataActivityMapper.java:
441         * src/main/java/org/glom/web/client/mvp/DocumentSelectionActivityMapper.java:
442         * src/main/java/org/glom/web/client/mvp/TableSelectionActivityMapper.java:
443         Activity mappers for the main activities replace the deleted app-wide
444         AppActivityMapper.
445         * src/main/java/org/glom/web/client/ui/AuthenticationPopup.java:
446         Fix a spelling error in he comment.
447         * src/main/java/org/glom/web/client/ui/ListView.java:
448         * src/main/java/org/glom/web/client/ui/ListViewImpl.java:
449         Renamed from LayoutListView and modified for MVP. This still not a
450         proper dumb view as prescribed by the MVP pattern but it works for now.
451         * src/main/java/org/glom/web/client/ui/TableSelectionView.java:
452         * src/main/java/org/glom/web/client/ui/TableSelectionViewImpl.java:
453         New widget stripped out of the deleted OnlineGlomView.
454         * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java:
455         Remove hack that is fixed by this patch.
456
457 2011-05-06  Ben Konrath  <ben@bagu.org>
458
459         Rename OnlineGlomPlace to ListPlace.
460
461         The only change besides the rename is that url will now display #list
462         instead of #Document.
463
464         * src/main/java/org/glom/web/client/activity/OnlineGlomActivity.java:
465         * src/main/java/org/glom/web/client/mvp/AppActivityMapper.java:
466         * src/main/java/org/glom/web/client/mvp/AppPlaceHistoryMapper.java:
467         * src/main/java/org/glom/web/client/place/ListPlace.java:
468         * src/main/java/org/glom/web/client/ui/DocumentSelectionViewImpl.java:
469
470 2011-05-06  Ben Konrath  <ben@bagu.org>
471
472         Use Presenter for app navigation.
473
474         This is the proper way to deal with Place (URL) changes with the MVP
475         framework.
476
477         * src/main/java/org/glom/web/client/ClientFactory.java:
478         * src/main/java/org/glom/web/client/ClientFactoryImpl.java: Remove
479         PlaceHistoryMapper and PlaceHistoryHandler.
480         * src/main/java/org/glom/web/client/OnlineGlom.java: Re-add
481         PlaceHistoryMapper and PlaceHistoryHandler.
482         * src/main/java/org/glom/web/client/activity/DocumentSelectionActivity.java:
483         Don't use getHistoryMapper().getToken(place) to create the hyperlinks.
484         * src/main/java/org/glom/web/client/ui/DocumentSelectionView.java:
485         * src/main/java/org/glom/web/client/ui/DocumentSelectionViewImpl.java:
486         Add Presenter interface and setPresenter methods. Rename addHyperLink
487         to addDocumentLink taking only the document title as a parameter.
488
489 2011-04-14  Ben Konrath  <ben@bagu.org>
490
491         Prompt for db username/password if they haven't been set.
492
493         This is implemented with a popup widget that is contained within the
494         OnlineGlomView and managed by the OnlineGlomActivity.
495
496         * src/main/java/org/glom/web/client/OnlineGlomService.java: Two new
497         methods for checking and setting the database username and password.
498         * src/main/java/org/glom/web/client/OnlineGlomServiceAsync.java: Two
499         new methods for checking and setting the database username and
500         password.
501         * src/main/java/org/glom/web/client/activity/OnlineGlomActivity.java:
502         Display authentication popup if the JDBC connection to the database
503         has not been authenticated.
504         * src/main/java/org/glom/web/client/ui/AuthenticationPopup.java: New
505         file.
506         * src/main/java/org/glom/web/client/ui/OnlineGlomView.java: Add methods
507         for dealing with the authentication popup.
508         * src/main/java/org/glom/web/client/ui/OnlineGlomViewImpl.java:
509         Implement the methods for dealing with the authentication popup.
510         * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java: Don't
511         try to executed queries if the database connection hasn't been
512         authenticated. Implement methods for checking and setting the
513         database username and password.
514
515 2011-04-12  Ben Konrath  <ben@bagu.org>
516
517         Make log messages a little clearer.
518
519         Add a dash betweeen the document title and the table name.
520
521         * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java:
522
523 2011-04-12  Ben Konrath  <ben@bagu.org>
524
525         Protect against NPEs when cleaning up database resources.
526
527         While this isn't strictly necessary because the exception is caught,
528         not protecting against the NPEs makes it harder to find the real error
529         in the log file.
530
531         * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java:
532
533 2011-04-12  Ben Konrath  <ben@bagu.org>
534
535         Move configuration of the servlet to the constructor.
536
537         The servlet will be initialized even if the database authentication
538         information is not set or correct. I still need to add the UI for prompting
539         the user for the authentication information when it's required.
540
541         * src/main/java/org/glom/web/client/OnlineGlomService.java: Add
542         javadocs for getDocumentTitles() method.
543         * src/main/java/org/glom/web/client/activity/DocumentSelectionActivity.java:
544         Set error message when RPC fails.
545         * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java: Get the
546         glom files directory from the configuration file. Try to set the
547         database authentication information for the specific document if it's
548         set and works otherwise try to use the global authentication
549         information set for the directory.
550         * src/main/resources/onlineglom.properties: Moved from
551         src/main/webapp/WEB-INF/OnlineGlom.properties. Updated with new keys.
552         Added detailed comments for the new keys.
553
554 2011-04-11  Ben Konrath  <ben@bagu.org>
555
556         Remove unnecessary @Override in DocumentSelectionViewImpl.
557
558         * src/main/java/org/glom/web/client/ui/DocumentSelectionViewImpl.java:
559
560 2011-04-11  Ben Konrath  <ben@bagu.org>
561
562         Remove center alignment in DocumentSelectionView.
563
564         The title element is still centred but the document titles and bottom
565         sentence are both left-aligned.
566
567         * src/main/java/org/glom/web/client/ui/DocumentSelectionViewImpl.ui.xml:
568
569 2011-04-11  Ben Konrath  <ben@bagu.org>
570
571         Change 'Demo' naming convention to 'Document'.
572
573         This is just a rename refactor with no functional changes to the code.
574
575         * src/main/java/org/glom/web/client/ClientFactory.java:
576         * src/main/java/org/glom/web/client/ClientFactoryImpl.java:
577         * src/main/java/org/glom/web/client/OnlineGlom.java:
578         * src/main/java/org/glom/web/client/OnlineGlomService.java:
579         * src/main/java/org/glom/web/client/OnlineGlomServiceAsync.java:
580         * src/main/java/org/glom/web/client/activity/DocumentSelectionActivity.java:
581         * src/main/java/org/glom/web/client/mvp/AppActivityMapper.java:
582         * src/main/java/org/glom/web/client/mvp/AppPlaceHistoryMapper.java:
583         * src/main/java/org/glom/web/client/place/DocumentSelectionPlace.java:
584         * src/main/java/org/glom/web/client/ui/DocumentSelectionView.java:
585         * src/main/java/org/glom/web/client/ui/DocumentSelectionViewImpl.java:
586         * src/main/java/org/glom/web/client/ui/DocumentSelectionViewImpl.ui.xml:
587         * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java:
588
589 2011-04-08  Ben Konrath  <ben@bagu.org>
590
591         Remove FIXME from safeLongToInt() method.
592
593         Libglom uses longs on 32-bit and 64-bit platforms so it's ok to use
594         this method.
595
596         * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java:
597
598 2011-04-08  Ben Konrath  <ben@bagu.org>
599
600         Display an error if no glom documents are found in the specified directory.
601
602         * src/main/java/org/glom/web/client/activity/DemoSelectionActivity.java:
603         * src/main/java/org/glom/web/client/ui/DemoSelectionView.java:
604         * src/main/java/org/glom/web/client/ui/DemoSelectionViewImpl.java:
605         * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java:
606
607 2011-04-08  Ben Konrath  <ben@bagu.org>
608
609         Add copyright header to one more file ... oops.
610
611         * src/main/java/org/glom/web/client/OnlineGlomServiceAsync.java:
612
613 2011-04-08  Ben Konrath  <ben@bagu.org>
614
615         Add copyright header to files without it.
616
617         * src/main/java/org/glom/web/client/activity/DemoSelectionActivity.java:
618         * src/main/java/org/glom/web/client/place/DemoSelectionPlace.java:
619         * src/main/java/org/glom/web/client/ui/DemoSelectionView.java:
620         * src/main/java/org/glom/web/client/ui/DemoSelectionViewImpl.java:
621         * src/main/java/org/glom/web/shared/ColumnInfo.java:
622         * src/main/java/org/glom/web/shared/GlomField.java:
623
624 2011-04-08  Ben Konrath  <ben@bagu.org>
625
626         Add support for accessing multiple glom documents in the servlet.
627
628         This completes the demo selection functionality.
629
630         * src/main/java/org/glom/web/client/OnlineGlomService.java: Add
631         document title to methods.
632         * src/main/java/org/glom/web/client/OnlineGlomServiceAsync.java: Add
633         document title to methods.
634         * src/main/java/org/glom/web/client/activity/DemoSelectionActivity.java:
635         Set browser window title when the activity starts. Correct name of
636         document title variable.
637         * src/main/java/org/glom/web/client/activity/OnlineGlomActivity.java:
638         Set browser window title when the activity starts. Set the table
639         selector change handler after table selector has been set. Clear the
640         OnlineGlomView when the activity has been stopped.
641         * src/main/java/org/glom/web/client/place/OnlineGlomPlace.java: Use the
642         document title as the place token. Use "#Document:" instead of
643         "#OnlineGlomPlace:" in the URL.
644         * src/main/java/org/glom/web/client/ui/DemoSelectionViewImpl.ui.xml:
645         Change heading to "Online Glom"
646         * src/main/java/org/glom/web/client/ui/LayoutListView.java: Use
647         document title in RPC methods.
648         * src/main/java/org/glom/web/client/ui/OnlineGlomView.java: Remove
649         setDocumentTitle() method. Add clear() method.
650         * src/main/java/org/glom/web/client/ui/OnlineGlomViewImpl.java: Remove
651         setDocumentTitle() method. Implement clear() method which removes the
652         change handler on the ListBox, clears the ListBox and clears the
653         DataPanel.
654         * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java:
655         Implement methods with document title. Keep track for the configured
656         glom documents and their corresponding JDBC configurations in a hash
657         table. This information is retrieved using the document title as the
658         key in the hash table.
659         * src/main/java/org/glom/web/shared/GlomDocument.java: Remove
660         document title field as it's no longer needed.
661
662 2011-04-08  Ben Konrath  <ben@bagu.org>
663
664         Update the Eclipse JDT configuration.
665
666         * .settings/org.eclipse.jdt.ui.prefs: Automatically add comments to new
667         methods. Automatically add the copyright header to new files.
668
669 2011-04-05  Ben Konrath  <ben@bagu.org>
670
671         Add new page for demo selection.
672
673         This patch adds all the components required to view and start an
674         OnlineGlom demo by clicking on the desired hyperlink. The user is
675         able to return to the demo selection page with the browser's back
676         button. I still need to modify the servlet to work with multiple
677         documents so all demo links will load the file defined in the
678         OnlineGlom.properties.
679
680         * .gitignore: Add .gwt which holds the error log for the GWT UiBuidler.
681         This is only useful during development so we don't need to save it.
682         * src/main/java/org/glom/web/client/ClientFactory.java: Add method to
683         get a reference to the DemoSelectionView.
684         * src/main/java/org/glom/web/client/ClientFactoryImpl.java: Implement
685         method to get a reference to the DemoSelectionView.
686         * src/main/java/org/glom/web/client/OnlineGlom.java: Change the
687         default view to DemoSelectionView.
688         * src/main/java/org/glom/web/client/OnlineGlomService.java: Add method
689         to get glom document titles for glom files in a hard-coded directory.
690         * src/main/java/org/glom/web/client/OnlineGlomServiceAsync.java: Add
691         method to get glom document titles for glom files in a hard-coded
692         directory.
693         * src/main/java/org/glom/web/client/activity/DemoSelectionActivity.java:
694         Presenter for DemoSelectionView.
695         * src/main/java/org/glom/web/client/mvp/AppActivityMapper.java: Update
696         for DemoSelectionView.
697         * src/main/java/org/glom/web/client/mvp/AppPlaceHistoryMapper.java:
698         Update for DemoSelectionView.
699         * src/main/java/org/glom/web/client/place/DemoSelectionPlace.java:
700         Basic 'Place' implementation for the DemoSelectionView.
701         * src/main/java/org/glom/web/client/ui/DemoSelectionView.java:
702         The interface for the DemoSelectionView.
703         * src/main/java/org/glom/web/client/ui/DemoSelectionViewImpl.java:
704         The implementation of the DemoSelectionView.
705         * src/main/java/org/glom/web/client/ui/DemoSelectionViewImpl.ui.xml:
706         The GWT UiBuilder xml file used in DemoSelectionViewImpl.
707         * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java: Add
708         implementation of method to get glom document titles for glom files
709         in a hard-coded directory.
710         * src/main/webapp/OnlineGlom.html: Remove link to CSS file as it's
711         on longer being used.
712         * src/main/webapp/glom.png: Glom logo.
713
714 2011-04-05  Ben Konrath  <ben@bagu.org>
715
716         Move RPC code from OnlineGlomViewImpl to OnlineGlomActivity.
717
718         This is the forth and final commit of a refactor that will allow
719         OnlineGlom to be used with multiple documents.
720
721         * src/main/java/org/glom/web/client/activity/OnlineGlomActivity.java:
722         Move RPC code from OnlineGlomViewImpl to this class.
723         * src/main/java/org/glom/web/client/ui/OnlineGlomView.java: Add methods
724         to inferface.
725         * src/main/java/org/glom/web/client/ui/OnlineGlomViewImpl.java: Move
726         RPC code to the presenter class (the P in MVP).
727
728 2011-04-04  Ben Konrath  <ben@bagu.org>
729
730         Start moving the existing OnlineGlom code to MVP.
731
732         This work is based on the GWT MVP framework that is documented here:
733
734         https://code.google.com/webtoolkit/doc/2.2/DevGuideMvpActivitiesAndPlaces.html
735
736         This is the third commit of a refactor that will allow OnlineGlom to
737         be used with multiple documents.
738
739         * src/main/java/org/glom/web/client/ClientFactory.java: New file.
740         Interface for client factory which is used to get instances of various
741         classes throughout the app.
742         * src/main/java/org/glom/web/client/ClientFactoryImpl.java: New file.
743         Implementation of client factory.
744         * src/main/java/org/glom/web/client/OnlineGlom.java: Add code to
745         initialize the MVP framework.
746         * src/main/java/org/glom/web/client/activity/OnlineGlomActivity.java:
747         New file. Activity manager for the main container widget. This is the
748         Presenter in MVP.
749         * src/main/java/org/glom/web/client/mvp/AppActivityMapper.java: New file.
750         Maps place (URL) to its corresponding activity.
751         * src/main/java/org/glom/web/client/mvp/AppPlaceHistoryMapper.java:
752         New file. This is just a place holder for a generated file.
753         * src/main/java/org/glom/web/client/place/OnlineGlomPlace.java:
754         New file. Represents the URL for the main Online Glom app.
755         * src/main/java/org/glom/web/client/ui/LayoutListView.java: Update
756         for changes in LayoutListViewImpl.
757         * src/main/java/org/glom/web/client/ui/OnlineGlomView.java: Create
758         interface for View. Move code to OnlineGlomViewImpl class.
759         * src/main/java/org/glom/web/client/ui/OnlineGlomViewImpl.java: New
760         file. Implementation of OnlineGlomView.
761         * src/main/resources/org/glom/web/OnlineGlom.gwt.xml: Add Activity and
762         Place resources. Use ClientFactoryImpl by default.
763
764 2011-04-04  Ben Konrath  <ben@bagu.org>
765
766         Move View classes to their own package.
767
768         This is the second commit of a refactor that will allow OnlineGlom to
769         be used with multiple documents.
770
771         * src/main/java/org/glom/web/client/OnlineGlom.java:
772         * src/main/java/org/glom/web/client/ui/LayoutListView.java:
773         * src/main/java/org/glom/web/client/ui/OnlineGlomView.java:
774
775 2011-04-02  Ben Konrath  <ben@bagu.org>
776
777         Move UI code from the main module to its own class.
778
779         This is the first commit of a refactor that will allow OnlineGlom to be
780         used with multiple documents.
781
782         * src/main/java/org/glom/web/client/LayoutListView.java: Update
783         references to OnlineGlom to OnlineGlomView.
784         * src/main/java/org/glom/web/client/OnlineGlom.java: Move code to
785         OnlineGlomView and instantiate it here.
786         * src/main/java/org/glom/web/client/OnlineGlomView.java: New class that
787         represents the main OnlineGlomView with one document.
788
789 2011-04-01  Ben Konrath  <ben@bagu.org>
790
791         Fix formatting of gwt.xml and add DTD.
792
793         * src/main/resources/org/glom/web/OnlineGlom.gwt.xml:
794
795 2011-03-30  Ben Konrath  <ben@bagu.org>
796
797         Propperly convert gdkColor string to html colour string.
798
799         * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java:
800
801 2011-03-28  Ben Konrath  <ben@bagu.org>
802
803         Change implementation of OnlineGlomServiceImpl.getColumnInfoHorizontalAlignment().
804
805         This implementation matches
806         OnlineGlomServiceImpl.getColumnInfoGlomFieldType(), should perform better, is more
807         readable and is not tied to Swig.
808
809         * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java:
810
811 2011-03-28  Ben Konrath  <ben@bagu.org>
812
813         Use read-only checkboxes for boolean field types.
814
815         * src/main/java/org/glom/web/client/LayoutListView.java: Create columns
816         in the CellTable based on the field type. It currently only
817         distinguishes between boolean and text columns but I'll need to add
818         support for more types.
819         * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java: Set the
820         column type in the ColumnInfo object. Add method to convert between the
821         glom field type enum in ColumnInfo and the glom field type in libglom.
822         * src/main/java/org/glom/web/shared/ColumnInfo.java: Add support for
823         field type.
824         * src/main/java/org/glom/web/shared/GlomField.java: Add support for
825         getting and setting booleans.
826
827 2011-03-25  Ben Konrath  <ben@bagu.org>
828
829         Don't get the Date twice from the ResultSet.
830
831         * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java:
832
833 2011-03-25  Ben Konrath  <ben@bagu.org>
834
835         Cleanup code in the servlet.
836
837         * TODO: Remove item about row count. Add item about testing row count
838         query with large number of rows.
839         * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java: Fix
840         spelling mistakes, change method parameter to be consistent with
841         other methods.
842
843 2011-03-25  Ben Konrath  <ben@bagu.org>
844
845         Add server side logging with the gwt-log library.
846
847         * .gitignore: Ignore the log file we're now producing.
848         * TODO: Add a couple TODO item for logging.
849         * pom.xml: Add gwt-log and log4j as a dependency.
850         * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java: Add
851         logging of errors, warnings and some important info.
852         * src/main/resources/log4j.properties: New file to configure log4j.
853
854 2011-03-24  Ben Konrath  <ben@bagu.org>
855
856         Add a disable button for the Details view.
857
858         * src/main/java/org/glom/web/client/LayoutListView.java:
859
860 2011-03-22  Ben Konrath  <ben@bagu.org>
861
862         Use a count query to get the number of rows for the list view pager.
863
864         * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java:
865
866 2011-03-22  Ben Konrath  <ben@bagu.org>
867
868         Add more TODO information about CellTable pager positioning. 
869
870         * TODO:
871
872 2011-03-19  Ben Konrath  <ben@bagu.org>
873
874         Add TODO item about CellTable pager positioning.
875
876         * TODO:
877
878 2011-03-18  Ben Konrath  <ben@bagu.org>
879
880         Remove unneeded GlomFieldColumn class.
881
882         This is just a small code cleanup.
883
884         * src/main/java/org/glom/web/client/LayoutListView.java:
885
886 2011-03-18  Ben Konrath  <ben@bagu.org>
887
888         Use cursor mode in the query that gets data for the list view.
889
890         I still need to fix the potential memory problem when getting the row
891         count for the list view.
892
893         * TODO: Add note about testing memory usage with large data sets. Add
894         item about fixing row counting with large data sets.
895         * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java: Put the
896         PostgreSQL JDBC driver into cursor mode when getting data for the
897         list view.
898
899 2011-03-15  Ben Konrath  <ben@bagu.org>
900
901         Remove the GWT Container from the Eclipse build classpath.
902
903         The GWT dependencies are set by Maven so this isn't needed.
904
905         * .classpath:
906
907 2011-03-15  Murray Cumming  <murrayc@murrayc.com>
908
909         Added some earlier mockups to git, but not to the tarball dist.
910
911         * mockups/: Added some mockups from 2010-02 by Daniel Borgmann for
912         Openismus. These hopefully show how we might structure the HTML so that
913         it can be styled easily with CSS. However, we probably need to adapt them
914         for the CSS structure that GWT dictates for common widgets.
915
916 2011-03-14  Ben Konrath  <ben@bagu.org>
917
918         Locate OnlineGlom.properties using the ServletContext.
919
920         This is required to be able to locate the file in the deployed servlet.
921
922         * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java:
923         Configure the database and glom document in in a helper method so
924         that the ServletContext can be used to locate OnlineGlom.properties.
925         * src/main/webapp/WEB-INF/OnlineGlom.properties: Moved from
926         src/main/webapp. This is the proper location for .properites files.
927
928 2011-03-12  Ben Konrath  <ben@bagu.org>
929
930         Add note to README about why we're compiling down to obfuscated JavaScript.
931
932         * README:
933
934 2011-03-11  Ben Konrath  <ben@bagu.org>
935
936         Use properties file to configure servlet.
937
938         This allows people to change the glom file path, db username and db
939         password without recompiling the code.
940
941         * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java:
942         * src/main/webapp/OnlineGlom.properties:
943
944 2011-03-11  Ben Konrath  <ben@bagu.org>
945
946         Use table fields in layout list view if the layout list is not defined.
947
948         * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java:
949         Manually create a LayoutFieldVector for the query builder using the
950         table fields when a layout list is not defined in the glom file.
951
952 2011-03-11  Ben Konrath  <ben@bagu.org>
953
954         Only show FIXME string for images when there's an image.
955
956         * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java: Also included
957         in this change are some small code cleanups.
958
959 2011-03-11  Ben Konrath  <ben@bagu.org>
960
961         Set text for fields with TYPE_IMAGE and TYPE_INVALID to avoid NPEs.
962
963         * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java:
964
965 2011-03-11  Ben Konrath  <ben@bagu.org>
966
967         Correctly set the index of the default table.
968
969         * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java:
970         Correctly set the index of the default table. Add commented out example
971         file paths.
972
973 2011-03-10  Ben Konrath  <ben@bagu.org>
974
975         Add comment to pom.xml about the previous change.
976
977         * pom.xml: Add comment about the deployment issue so that it's obvious
978         why java-libglom is set to the provided scope.
979
980 2011-03-10  Ben Konrath  <ben@bagu.org>
981
982         Change java-libglom dependency from compile to provided in pom.xml.
983
984         Since java-libglom uses jni it can only be loaded once and therefore
985         must be placed in $CATALINA_HOME/lib and not included in each war.
986         This directory is defined as /usr/share/tomcat6/lib/ on Ubuntu 10.04.
987         More information about this issue can be found in the Tomcat 6 release
988         notes in the "JNI Based Applications" section:
989
990         http://tomcat.apache.org/tomcat-6.0-doc/RELEASE-NOTES.txt
991
992         * README: Remove note about this issue. Deployment info should really
993         be on the wiki anyway so I'll add it right now.
994         * pom.xml: Change java-libglom dependency from compile to provided so
995         that it's copied in to the packaged war.
996
997 2011-03-09  Ben Konrath  <ben@bagu.org>
998
999         Change to using a neutral locale for currency, date and time formatting.
1000
1001         This solves the problem of currency values being represented without a
1002         space between the currency code and the number (e.g. "EUR5.89" is now
1003         represented as "EUR 5.89"). More work is required when we implement
1004         a locale preference setting.
1005
1006         * TODO: Add note about currency formatting issues with different
1007         locales.
1008         * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java: Change
1009         to using the neutral ROOT locale.
1010
1011 2011-03-09  Ben Konrath  <ben@bagu.org>
1012
1013         Add support for currency codes that are not ISO 4217 codes.
1014
1015         * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java: Use
1016         the currency code defined in the glom file when it's not 3 characters
1017         long or when Java doesn't recognize the string as an ISO 4217 code.
1018
1019 2011-03-08  Ben Konrath  <ben@bagu.org>
1020
1021         Remove test classes, launch configurations and configuration.
1022
1023         The test stuff was getting in the way when creating the war. To make
1024         the war file you can now do 'mvn clean package'. The packaged war file
1025         will be in the target directory.
1026
1027         * .classpath: Remove unused classpathentry for tests and i18n.
1028         * pom.xml: Remove junit.jar dependency. Properly use gwt.version
1029         property. Don't run test or i18n goals when packaging the war.
1030         * src/main/webapp/WEB-INF/web.xml: Add xml name space. Correct
1031         formatting.
1032
1033         Removed files:
1034
1035         * OnlineGlomTest-dev.launch:
1036         * OnlineGlomTest-prod.launch:
1037         * src/test/java/org/glom/web/client/GwtTestOnlineGlom.java:
1038         * src/test/resources/org/glom/web/OnlineGlomJUnit.gwt.xml:
1039
1040 2011-03-07  Ben Konrath  <ben@bagu.org>
1041
1042         Update gwt-maven plugin to 2.2.0 and fix other configuation problems.
1043
1044         These fixes allow me to use 'mvn deploy' to create the war file.
1045
1046         * .classpath: This generated config has been updated by Eclipse. This
1047         change was probably triggered by me updating from Eclipse 3.6.1 to
1048         3.6.2.
1049         * .gitignore: Add entry to ignore the directory
1050         src/main/webapp/WEB-INF/deploy. This directory is generated by Eclipse.
1051         * .project: The generated config has been updated by Eclipse. This
1052         change was probably triggered by me updating from Eclipse 3.6.1 to
1053         3.6.2.
1054         * .settings/com.google.appengine.eclipse.core.prefs: Add empty config
1055         so that Eclipse doesn't complain
1056         * pom.xml: Update to gwt-maven-plugin 2.2.0.
1057         * src/test/java/org/glom/web/client/GwtTestOnlineGlom.java: Move from
1058         'tests' directory to 'client' directory. This is the new
1059         gwt-maven-plugin convension.
1060         * src/test/resources/org/glom/web/OnlineGlomJUnit.gwt.xml: Correctly
1061         refer to org.glom.web.OnlineGlom gwt module and OnlineGlomServiceImpl.
1062
1063 2011-03-07  Ben Konrath  <ben@bagu.org>
1064
1065         Add support for horizontal alignment in the LayoutList columns.
1066
1067         * TODO: Remove item about horizontal alignment. Add item about
1068         improvements to ColumnInfo.
1069         * src/main/java/org/glom/web/client/LayoutListView.java: Set horizontal
1070         alignment on the columns. Use ColumnInfo RPC object get the column
1071         title and horizontal alignment.
1072         * src/main/java/org/glom/web/client/OnlineGlom.java: Update
1073         LayoutListView creation with ColumnInfo RPC object.
1074         * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java: Create
1075         a ColumnInfo object for every LayoutList columnn. Convert the
1076         FieldFormatting.HorizontalAlignment to the correct
1077         ColumnnInfo.HorizontatlAlignment with the new
1078         getColumnInfoHorizontalAlignment helper method.
1079         * src/main/java/org/glom/web/shared/ColumnInfo.java: New RPC object
1080         to encapsulate column information like alignment and title. This
1081         could be used to set the colour instead of on a per cell field basis.
1082         * src/main/java/org/glom/web/shared/LayoutListTable.java: Replace
1083         column title storage and retrieval with ColumnInfo.
1084
1085 2011-03-04  Ben Konrath  <ben@bagu.org>
1086
1087         Add support for column sorting.
1088
1089         * src/main/java/org/glom/web/client/LayoutListView.java: Change
1090         AsynDataProvider to be an anonymous inner class. Use new
1091         getSortedTableData RPC method when column sort is requested. Set all
1092         columns sortable and add an AsyncHandler to activate sorting in the
1093         AsyncDataProvider.
1094         * src/main/java/org/glom/web/client/OnlineGlomService.java: Add new
1095         method getSortedTableData(). Cleanup other method signatures.
1096         * src/main/java/org/glom/web/client/OnlineGlomServiceAsync.java: Add
1097         new method getSortedTableData(). Cleanup other method signatures.
1098         * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java:
1099         Implement getSortedTableData() and getTableData() methods by using a
1100         private helper method with the appropriate parameters filled in. Use
1101         user supplied sort clause when supplied, otherwise fall back to
1102         sorting by the primary key. Move destroy() method to be underneath
1103         constructor for readability.  Cleanup comments.
1104
1105 2011-03-03  Ben Konrath  <ben@bagu.org>
1106
1107         Add support for colour text and colour backgrounds to the layout list cells.
1108
1109         Only the cell backgrounds are coloured which leaves a gap between the
1110         cells that isn't coloured. I need to figure out a way to set
1111         'style=background-colour:' on the whole column rather than just the
1112         cell.
1113
1114         * TODO: Add a note about colouring the background of the whole column.
1115         * src/main/java/org/glom/web/client/LayoutListView.java: Add a custom
1116         column type (GlomFieldColumn) and a custom cell type (GlomFieldCell) to
1117         render the coloured text and backgrounds. Use GlomField[] for the row type.
1118         * src/main/java/org/glom/web/client/OnlineGlomService.java: Use GlomField[]
1119         for the row type.
1120         * src/main/java/org/glom/web/client/OnlineGlomServiceAsync.java: Use
1121         GlomField[] for the row type.
1122         * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java: Use
1123         GlomField[] for the row type. Set the text, text colour and background
1124         colour in the GlomField objects as specified in the glom document. Add
1125         method to convert from Gdk::Color to HTML colour string. Cleanup comments.
1126         * src/main/java/org/glom/web/shared/GlomField.java: New file to encapulate
1127         the glom field text, foreground colour and background colour.
1128
1129 2011-03-02  Ben Konrath  <ben@bagu.org>
1130
1131         Don't display hidden tables in the combo box.
1132
1133         * src/main/java/org/glom/web/client/OnlineGlom.java: Update code to use
1134         ArrayLists.
1135         * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java: Add
1136         code to ignore hidden tables using ArrayLists for the table names and
1137         titles.
1138         * src/main/java/org/glom/web/shared/GlomDocument.java: Change tableTitles and
1139         tableNames to use ArrayLists instead of String[]. Update getter and setter
1140         methods.
1141
1142 2011-03-01  Ben Konrath  <ben@bagu.org>
1143
1144         Add support for Date and Time number types.
1145
1146         * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java:
1147         Implement formatting for Date and Time values. Change the default glom
1148         file to small business example.
1149
1150 2011-03-01  Ben Konrath  <ben@bagu.org>
1151
1152         Add support for formatting glom types as specified in the glom file.
1153
1154         Formatting isn't finished yet - I still need to add support for Date
1155         and Time values.
1156
1157         * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java: Add
1158         formatting support for TYPE_TEXT, TYPE_BOOLEAN and TYPE_NUMERIC. Remove
1159         checks for null values in JDBC cleanup code and catch all exceptions
1160         instead of just SQLExceptions.
1161         * src/main/java/org/glom/web/shared/LayoutListTable.java: Fix incorrect
1162         method name.
1163
1164 2011-03-01  Ben Konrath  <ben@bagu.org>
1165
1166         Use GWT 2.2.0 instead of 2.1.1.
1167
1168         * pom.xml: Change GWT version numbers.
1169
1170 2011-03-01  Ben Konrath  <ben@bagu.org>
1171
1172         A few small code cleanups.
1173
1174         * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java: Remove
1175         duplicate for loop.
1176         * src/main/java/org/glom/web/shared/GlomDocument.java: Remove
1177         unnecessary object creation in constructor.
1178         * src/main/java/org/glom/web/shared/LayoutListTable.java: Remove
1179         unnecessary object creation in constructor.
1180
1181 2011-02-28  Ben Konrath  <ben@bagu.org>
1182
1183         Add file for TODO list.
1184
1185         * TODO: New file.
1186
1187 2011-02-18  Ben Konrath  <ben@bagu.org>
1188
1189         Enable the CellTable Pager when more than 20 rows need to be viewed.
1190
1191         The Pager will automatically become active when the results are larger
1192         than the CellTable size which is currently set to 20 lines.
1193
1194         * src/main/java/org/glom/web/client/LayoutListView.java: Correct class
1195         name on debug statment in RPC call in LayoutListDataProvider, add
1196         numRows parameter to LayoutListView constructor, propperly set rowCount
1197         in CellTable.
1198         * src/main/java/org/glom/web/client/OnlineGlom.java: Correct class
1199         name on debug statment in RPC call, use LayoutListTable object in RPC
1200         calls, pass rowCount to LayoutListView.
1201         * src/main/java/org/glom/web/client/OnlineGlomService.java: Change
1202         getLayoutListHeaders to getLayoutListTable and return LayoutListTable
1203         object.
1204         * src/main/java/org/glom/web/client/OnlineGlomServiceAsync.java: Update
1205         interface for changes in OnlineGlomService.
1206         * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java: Change
1207         getLayoutListHeaders() to getLayoutListTable() and return
1208         LayoutListTable. Using this object allows me to pass other information
1209         about the LayoutList like the expected number of rows in the result set.
1210         The Connection object from the connection pool is now propperly closed.
1211         Only the requested number of lines are returned to the client in
1212         getTableData().
1213         * src/main/java/org/glom/web/shared/LayoutListTable.java: Move from
1214         GlomTable and add columnTitles and numRows.
1215
1216 2011-02-18  Ben Konrath  <ben@bagu.org>
1217
1218         Use String arrays instead of GlomTable objects in GlomDocument GWT-RPC object.
1219
1220         This is a small performance boost. I'll use GlomTable to get the required
1221         layoutlist information.
1222
1223         * src/main/java/org/glom/web/client/OnlineGlom.java:
1224         * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java:
1225         * src/main/java/org/glom/web/shared/GlomDocument.java:
1226
1227 2011-02-18  Ben Konrath  <ben@bagu.org>
1228
1229         Add option to turn off formatting in JDT formatter preferences.
1230
1231         * .settings/org.eclipse.jdt.core.prefs:
1232
1233 2011-02-18  Ben Konrath  <ben@bagu.org>
1234
1235         Rename LayoutList to LayoutListView.
1236
1237         I'm working towards setting things up to easily use MVP when the time
1238         comes.
1239
1240         * src/main/java/org/glom/web/client/LayoutListView.java: Rename from
1241         LayoutList.java.
1242         * src/main/java/org/glom/web/client/OnlineGlom.java: Update
1243         references.
1244
1245 2011-02-17  Ben Konrath  <ben@bagu.org>
1246
1247         Move LayoutListDataProvider class into LayoutList.java.
1248
1249         * src/main/java/org/glom/web/client/LayoutList.java:
1250
1251 2011-02-17  Ben Konrath  <ben@bagu.org>
1252
1253         Rename RPC service classes from LibGlomService* to OnlineGlomService*.
1254
1255         * src/main/java/org/glom/web/client/LayoutListDataProvider.java: Update
1256         references.
1257         * src/main/java/org/glom/web/client/OnlineGlom.java: Update references.
1258         * src/main/java/org/glom/web/client/OnlineGlomService.java: Rename
1259         from LibGlomServer.java.
1260         * src/main/java/org/glom/web/client/OnlineGlomServiceAsync.java:
1261         Rename from LibGlomServiceAsync.java.
1262         * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java:
1263         Rename from LibGlomServiceImpl.java.
1264         * src/main/webapp/WEB-INF/web.xml: Update configuration.
1265
1266 2011-02-17  Ben Konrath  <ben@bagu.org>
1267
1268         Update JDT settings.
1269
1270         * .settings/org.eclipse.jdt.core.prefs:
1271
1272 2011-02-17  Ben Konrath  <ben@bagu.org>
1273
1274         Move GWT-RPC objects to shared package (where they should be).
1275
1276         * src/main/java/org/glom/web/client/LibGlomService.java: Update imports.
1277         * src/main/java/org/glom/web/client/LibGlomServiceAsync.java: Update imports.
1278         * src/main/java/org/glom/web/client/OnlineGlom.java: Update imports.
1279         * src/main/java/org/glom/web/server/LibGlomServiceImpl.java: Update imports.
1280         * src/main/java/org/glom/web/shared/GlomDocument.java: Move to
1281         org.glom.web.shared package.
1282         * src/main/java/org/glom/web/shared/GlomTable.java: Move to
1283         org.glom.web.shared package.
1284         * src/main/resources/org/glom/web/OnlineGlom.gwt.xml: Included shared
1285         directory in compilation to javascript.
1286
1287 2011-02-16  Ben Konrath  <ben@bagu.org>
1288
1289         Add sort clause to the sql query that grabs table information.
1290
1291         * src/main/java/org/glom/web/server/LibGlomServiceImpl.java: Add sort clause
1292         if one of the columns is a primary key.
1293
1294 2011-02-16  Ben Konrath  <ben@bagu.org>
1295
1296         Disable generateAsync feature of gwt-maven.
1297
1298         The generated interface does not correctly match the methods in LibGlomService
1299         and the generated singleton Util inner-class doesn't respect the servlet
1300         mappings.
1301
1302         * pom.xml: Turn off generateAsync feature.
1303         * src/main/java/org/glom/web/client/LibGlomServiceAsync.java: Re-add file
1304         with singleton Util inner-class.
1305
1306 2011-02-14  Ben Konrath  <ben@bagu.org>
1307
1308         Add LGPL v3 licence notices.
1309
1310         Followed directions listed here:
1311         http://www.gnu.org/licenses/gpl-howto.html
1312
1313         * COPYING: This file is a copy of the GPL v3.
1314         * COPYING.LESSER: This file is a copy of the LGPL v3.
1315         * src/main/java/org/glom/web/client/GlomDocument.java: Add licence
1316         notice.
1317         * src/main/java/org/glom/web/client/GlomTable.java: Add licence
1318         notice.
1319         * src/main/java/org/glom/web/client/LayoutList.java: Add licence
1320         notice.
1321         * src/main/java/org/glom/web/client/LayoutListDataProvider.java: Add
1322         licence notice.
1323         * src/main/java/org/glom/web/client/LibGlomService.java: Add licence
1324         notice.
1325         * src/main/java/org/glom/web/client/OnlineGlom.java: Add licence
1326         notice.
1327         * src/main/java/org/glom/web/server/LibGlomServiceImpl.java: Add
1328         licence notice.
1329
1330 2011-02-14  Ben Konrath  <ben@bagu.org>
1331
1332         Use ArrayList instead of Array in GWT-RPC calls.
1333
1334         Apparently this gives a slight performance boost to the compiled
1335         java script.
1336
1337         * src/main/java/org/glom/web/client/LayoutListDataProvider.java: Use ArrayList
1338         instead of Array.
1339         * src/main/java/org/glom/web/client/LibGlomService.java: Use ArrayList instead
1340         of Array.
1341
1342 2011-02-14  Ben Konrath  <ben@bagu.org>
1343
1344         Access data from a postgres db rather than the example glom file.
1345
1346         * .settings/com.google.gwt.eclipse.core.prefs: Change GWT setting to
1347         compile down to obfuscated javascript.
1348         * pom.xml: Add c3p0 and postgres JDBC libraries.
1349         * src/main/java/org/glom/web/server/LibGlomServiceImpl.java: Return data
1350         using a postgres db accessed through the c3p0 connection pooling library.
1351
1352 2011-02-14  Ben Konrath  <ben@bagu.org>
1353
1354         Update Java formatter settings.
1355
1356         * .settings/org.eclipse.jdt.core.prefs: Change comment length to 120.
1357
1358 2011-02-02  Ben Konrath  <ben@bagu.org>
1359
1360         Update Eclipse and Maven configs to in preparation for the postgres JDBC jar.
1361
1362         * .classpath: Change JRE to Java 1.6, remove GWT configuration as we're now
1363         using Maven.
1364         * .settings/com.google.gwt.eclipse.core.prefs: Don't copy gwt-servlet.jar to
1365         the compiled webapp directory that Eclipse uses as we're using Maven now.
1366         * .settings/org.eclipse.jdt.core.prefs: Change target platform to Java 1.6.
1367         * .settings/org.eclipse.wst.common.project.facet.core.xml: Change Java version
1368         to 1.6.
1369         * pom.xml: Format file, change target Java version to 1.6.
1370
1371 2011-02-02  Ben Konrath  <ben@bagu.org>
1372
1373         Add information about a deployment related issue.
1374
1375         * README: Add Notes section with the problem outlined.
1376
1377 2011-02-02  Ben Konrath  <ben@bagu.org>
1378
1379         Call Glom.libglom_deinit() when the servlet is shutdown.
1380
1381         * src/main/java/org/glom/web/server/LibGlomServiceImpl.java: Add
1382         Glom.libglom_deinit() to destroy() method.
1383
1384 2011-01-28  Ben Konrath  <ben@bagu.org>
1385
1386         Use generated Util class to get the RPC Async interface.
1387
1388         * .settings/com.google.gwt.eclipse.core.prefs: Update generated Eclipse config
1389         file.
1390         * src/main/java/org/glom/web/client/LayoutListDataProvider.java: Use generated
1391         getInstance() method to get a reference to the RPC Async interface.
1392         * src/main/java/org/glom/web/client/OnlineGlom.java: Use generated
1393         getInstance() method to get a reference to the RPC Async interface, remove
1394         the now unused getLibGlomServiceProxy() method.
1395
1396 2011-01-27  Ben Konrath  <ben@bagu.org>
1397
1398         Cleanup ChangeLog entry from previous commit.
1399
1400         * ChangeLog: Group logical changes together and add comments.
1401
1402 2011-01-25  Ben Konrath  <ben@bagu.org>
1403
1404         Convert to gwt-maven project.
1405
1406         * .gitignore: Update for new project structure.
1407         * README: New file with a link to the online documentation.
1408         * pom.xml: The generated maven configuration file with some tweaks.
1409
1410         Add / update Eclipse settings. These files are a merge of the files that
1411         were generated with the gwt-maven plugin and the files we were previously
1412         using.
1413         * .classpath:
1414         * .project:
1415         * .settings/.jsdtscope:
1416         * .settings/com.google.gdt.eclipse.core.prefs:
1417         * .settings/com.google.gwt.eclipse.core.prefs:
1418         * .settings/org.eclipse.jdt.core.prefs:
1419         * .settings/org.eclipse.wst.common.component:
1420         * .settings/org.eclipse.wst.common.project.facet.core.xml:
1421         * .settings/org.eclipse.wst.jsdt.ui.superType.container:
1422         * .settings/org.maven.ide.eclipse.prefs:
1423         * OnlineGlomTest-dev.launch:
1424         * OnlineGlomTest-prod.launch:
1425
1426         Java source files moved from the 'src' directory to the directory structure
1427         required by maven.
1428         * src/main/java/org/glom/web/client/GlomDocument.java:
1429         * src/main/java/org/glom/web/client/GlomTable.java:
1430         * src/main/java/org/glom/web/client/LayoutList.java:
1431         * src/main/java/org/glom/web/client/LayoutListDataProvider.java:
1432         * src/main/java/org/glom/web/client/LibGlomService.java:
1433         * src/main/java/org/glom/web/client/OnlineGlom.java:
1434         * src/main/java/org/glom/web/server/LibGlomServiceImpl.java:
1435
1436         Non-functional property file used for translations. I included this as
1437         reminder that it's something I need to sort out.
1438         * src/main/resources/org/glom/web/client/Messages.properties:
1439
1440         The OnlineGlom GWT config file moved from the 'src/org/glom/web' directory.
1441         * src/main/resources/org/glom/web/OnlineGlom.gwt.xml:
1442
1443         The servlet configuration files moved from the 'war' directory.
1444         * src/main/webapp/OnlineGlom.css:
1445         * src/main/webapp/OnlineGlom.html:
1446         * src/main/webapp/WEB-INF/web.xml:
1447
1448         Generated test files with most of the code commented out. I included these
1449         so that it's easy to add tests when we're ready for them.
1450         * src/test/java/org/glom/web/tests/GwtTestOnlineGlom.java:
1451         * src/test/resources/org/glom/web/OnlineGlomJUnit.gwt.xml:
1452
1453 2011-01-25  Ben Konrath  <ben@bagu.org>
1454
1455         Remove unused println.
1456
1457         * src/org/glom/web/server/LibGlomServiceImpl.java:
1458
1459 2011-01-25  Ben Konrath  <ben@bagu.org>
1460
1461         Add project specific JDT settings.
1462
1463         * .settings/org.eclipse.jdt.core.prefs: Generated by Eclipse.
1464         * .settings/org.eclipse.jdt.ui.prefs: Generated by Eclipse.
1465
1466 2011-01-25  Ben Konrath  <ben@bagu.org>
1467
1468         Populate celltable with example data.
1469
1470         * src/org/glom/web/client/GlomDocument.java: Correct formatting.
1471         * src/org/glom/web/client/GlomTable.java: Correct formatting.
1472         * src/org/glom/web/client/LayoutList.java: Renamed from ListLayoutTable.java,
1473         add LayoutListDataProvider to CellTable, add simpler pager (not working yet).
1474         * src/org/glom/web/client/LayoutListDataProvider.java: New file,
1475         asynchronously gets the example data.
1476         * src/org/glom/web/client/LibGlomService.java: Add getTableData() method.
1477         * src/org/glom/web/client/LibGlomServiceAsync.java: Add getTableData() method.
1478         * src/org/glom/web/client/OnlineGlom.java: Allow service proxy object and
1479         curently selected table to be retrieved by other widgets.
1480         * src/org/glom/web/server/LibGlomServiceImpl.java: Correct formatting,
1481         implement getTableData() in a hacky way. This method needs to be updated
1482         to grab information from the database when database creating is
1483         implemented.
1484
1485 2011-01-20  Ben Konrath  <ben@bagu.org>
1486
1487         Set table headers when table dropBox changes.
1488
1489         * src/org/glom/web/client/GlomDocument.java: Correct some method
1490         names.
1491         * src/org/glom/web/client/LibGlomService.java: Add method
1492         to get list layout field names.
1493         * src/org/glom/web/client/LibGlomServiceAsync.java: Add method
1494         to get list layout field names.
1495         * src/org/glom/web/client/ListLayoutTable.java: New file - composite
1496         widget for list layout table.
1497         * src/org/glom/web/client/OnlineGlom.java: Add a change handler for
1498         the table drop box and add new updateTable() method to asynchronously
1499         get the layout list field names for the currently selected table.
1500         * src/org/glom/web/server/LibGlomServiceImpl.java: Add server side
1501         implementation of getLayoutListHeaders() method.
1502         * war/OnlineGlom.html: Remove GlomWebApp div tag as it is not required.
1503
1504 2011-01-18  Ben Konrath  <ben@bagu.org>
1505
1506         Make a listBox with table titles instead of the flexTable demo.
1507
1508         This is the start of something more useful.
1509
1510         * .classpath: Exclude a bunch of packages from the JVM that are
1511         getting in the way of the Eclipse content assist.
1512         * src/org/glom/web/client/GlomDocument.java:
1513         * src/org/glom/web/client/GlomTable.java:
1514         * src/org/glom/web/client/LibGlomService.java:
1515         * src/org/glom/web/client/LibGlomServiceAsync.java:
1516         * src/org/glom/web/client/OnlineGlom.java:
1517         * src/org/glom/web/server/LibGlomServiceImpl.java:
1518         * war/OnlineGlom.html:
1519         * war/WEB-INF/web.xml:
1520
1521 211-01-13  Ben Konrath  <ben@bagu.org>
1522
1523         Update to new java-libglom API.
1524
1525         * .gitignore: Ignore OnlineGlom.war.
1526         * src/org/glom/web/server/TableNamesServiceImpl.java: Update to new java-libglom API.
1527
1528 2010-12-20  Ben Konrath  <ben@bagu.org>
1529
1530         Add some basic style to the table listing.
1531
1532         * src/org/glom/web/client/OnlineGlom.java: Add style to the table
1533         header, print useful error message on async callback failure.
1534         * war/OnlineGlom.css: Add style for table header, remove defaults
1535         provided by the Eclipse project wizard.
1536
1537 2010-12-20  Ben Konrath  <ben@bagu.org>
1538
1539         Load example file from installed glom dir.
1540
1541         * src/org/glom/web/server/TableNamesServiceImpl.java: Use the Java API
1542         provided by java-libglom to find the example file.
1543
1544 2010-12-20  Ben Konrath  <ben@bagu.org>
1545
1546         Update Eclipse settings.
1547
1548         * .classpath:
1549         * .settings/com.google.gdt.eclipse.core.prefs:
1550         * .settings/com.google.gwt.eclipse.core.prefs:
1551
1552 2010-12-17  Ben Konrath  <ben@bagu.org>
1553
1554         Initial commit.
1555
1556         * .classpath: New file.
1557         * .gitignore: New file.
1558         * .project: New file.
1559         * .settings/com.google.gdt.eclipse.core.prefs: New file.
1560         * .settings/com.google.gwt.eclipse.core.prefs: New file.
1561         * src/org/glom/web/OnlineGlom.gwt.xml: New file.
1562         * src/org/glom/web/client/GlomTable.java: New file.
1563         * src/org/glom/web/client/OnlineGlom.java: New file.
1564         * src/org/glom/web/client/TableNameService.java: New file.
1565         * src/org/glom/web/client/TableNameServiceAsync.java: New file.
1566         * src/org/glom/web/server/TableNamesServiceImpl.java: New file.
1567         * war/OnlineGlom.css: New file.
1568         * war/OnlineGlom.html: New file.
1569         * war/WEB-INF/web.xml: New file.
1570         * war/images/glom.png: New file.