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