Protect against NPEs when cleaning up database resources.
[online-glom:gwt-glom.git] / ChangeLog
1 2011-04-12  Ben Konrath  <ben@bagu.org>
2
3         Protect against NPEs when cleaning up database resources.
4
5         While this isn't strictly necessary because the exception is caught,
6         not protecting against the NPEs makes it harder to find the real error
7         in the log file.
8
9         * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java:
10
11 2011-04-12  Ben Konrath  <ben@bagu.org>
12
13         Move configuration of the servlet to the constructor.
14
15         The servlet will be initialized even if the database authentication
16         information is not set or correct. I still need to add the UI for prompting
17         the user for the authentication information when it's required.
18
19         * src/main/java/org/glom/web/client/OnlineGlomService.java: Add
20         javadocs for getDocumentTitles() method.
21         * src/main/java/org/glom/web/client/activity/DocumentSelectionActivity.java:
22         Set error message when RPC fails.
23         * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java: Get the
24         glom files directory from the configuration file. Try to set the
25         database authentication information for the specific document if it's
26         set and works otherwise try to use the global authentication
27         information set for the directory.
28         * src/main/resources/onlineglom.properties: Moved from
29         src/main/webapp/WEB-INF/OnlineGlom.properties. Updated with new keys.
30         Added detailed comments for the new keys.
31
32 2011-04-11  Ben Konrath  <ben@bagu.org>
33
34         Remove unnecessary @Override in DocumentSelectionViewImpl.
35
36         * src/main/java/org/glom/web/client/ui/DocumentSelectionViewImpl.java:
37
38 2011-04-11  Ben Konrath  <ben@bagu.org>
39
40         Remove center alignment in DocumentSelectionView.
41
42         The title element is still centred but the document titles and bottom
43         sentence are both left-aligned.
44
45         * src/main/java/org/glom/web/client/ui/DocumentSelectionViewImpl.ui.xml:
46
47 2011-04-11  Ben Konrath  <ben@bagu.org>
48
49         Change 'Demo' naming convention to 'Document'.
50
51         This is just a rename refactor with no functional changes to the code.
52
53         * src/main/java/org/glom/web/client/ClientFactory.java:
54         * src/main/java/org/glom/web/client/ClientFactoryImpl.java:
55         * src/main/java/org/glom/web/client/OnlineGlom.java:
56         * src/main/java/org/glom/web/client/OnlineGlomService.java:
57         * src/main/java/org/glom/web/client/OnlineGlomServiceAsync.java:
58         * src/main/java/org/glom/web/client/activity/DocumentSelectionActivity.java:
59         * src/main/java/org/glom/web/client/mvp/AppActivityMapper.java:
60         * src/main/java/org/glom/web/client/mvp/AppPlaceHistoryMapper.java:
61         * src/main/java/org/glom/web/client/place/DocumentSelectionPlace.java:
62         * src/main/java/org/glom/web/client/ui/DocumentSelectionView.java:
63         * src/main/java/org/glom/web/client/ui/DocumentSelectionViewImpl.java:
64         * src/main/java/org/glom/web/client/ui/DocumentSelectionViewImpl.ui.xml:
65         * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java:
66
67 2011-04-08  Ben Konrath  <ben@bagu.org>
68
69         Remove FIXME from safeLongToInt() method.
70
71         Libglom uses longs on 32-bit and 64-bit platforms so it's ok to use
72         this method.
73
74         * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java:
75
76 2011-04-08  Ben Konrath  <ben@bagu.org>
77
78         Display an error if no glom documents are found in the specified directory.
79
80         * src/main/java/org/glom/web/client/activity/DemoSelectionActivity.java:
81         * src/main/java/org/glom/web/client/ui/DemoSelectionView.java:
82         * src/main/java/org/glom/web/client/ui/DemoSelectionViewImpl.java:
83         * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java:
84
85 2011-04-08  Ben Konrath  <ben@bagu.org>
86
87         Add copyright header to one more file ... oops.
88
89         * src/main/java/org/glom/web/client/OnlineGlomServiceAsync.java:
90
91 2011-04-08  Ben Konrath  <ben@bagu.org>
92
93         Add copyright header to files without it.
94
95         * src/main/java/org/glom/web/client/activity/DemoSelectionActivity.java:
96         * src/main/java/org/glom/web/client/place/DemoSelectionPlace.java:
97         * src/main/java/org/glom/web/client/ui/DemoSelectionView.java:
98         * src/main/java/org/glom/web/client/ui/DemoSelectionViewImpl.java:
99         * src/main/java/org/glom/web/shared/ColumnInfo.java:
100         * src/main/java/org/glom/web/shared/GlomField.java:
101
102 2011-04-08  Ben Konrath  <ben@bagu.org>
103
104         Add support for accessing multiple glom documents in the servlet.
105
106         This completes the demo selection functionality.
107
108         * src/main/java/org/glom/web/client/OnlineGlomService.java: Add
109         document title to methods.
110         * src/main/java/org/glom/web/client/OnlineGlomServiceAsync.java: Add
111         document title to methods.
112         * src/main/java/org/glom/web/client/activity/DemoSelectionActivity.java:
113         Set browser window title when the activity starts. Correct name of
114         document title variable.
115         * src/main/java/org/glom/web/client/activity/OnlineGlomActivity.java:
116         Set browser window title when the activity starts. Set the table
117         selector change handler after table selector has been set. Clear the
118         OnlineGlomView when the activity has been stopped.
119         * src/main/java/org/glom/web/client/place/OnlineGlomPlace.java: Use the
120         document title as the place token. Use "#Document:" instead of
121         "#OnlineGlomPlace:" in the URL.
122         * src/main/java/org/glom/web/client/ui/DemoSelectionViewImpl.ui.xml:
123         Change heading to "Online Glom"
124         * src/main/java/org/glom/web/client/ui/LayoutListView.java: Use
125         document title in RPC methods.
126         * src/main/java/org/glom/web/client/ui/OnlineGlomView.java: Remove
127         setDocumentTitle() method. Add clear() method.
128         * src/main/java/org/glom/web/client/ui/OnlineGlomViewImpl.java: Remove
129         setDocumentTitle() method. Implement clear() method which removes the
130         change handler on the ListBox, clears the ListBox and clears the
131         DataPanel.
132         * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java:
133         Implement methods with document title. Keep track for the configured
134         glom documents and their corresponding JDBC configurations in a hash
135         table. This information is retrieved using the document title as the
136         key in the hash table.
137         * src/main/java/org/glom/web/shared/GlomDocument.java: Remove
138         document title field as it's no longer needed.
139
140 2011-04-08  Ben Konrath  <ben@bagu.org>
141
142         Update the Eclipse JDT configuration.
143
144         * .settings/org.eclipse.jdt.ui.prefs: Automatically add comments to new
145         methods. Automatically add the copyright header to new files.
146
147 2011-04-05  Ben Konrath  <ben@bagu.org>
148
149         Add new page for demo selection.
150
151         This patch adds all the components required to view and start an
152         OnlineGlom demo by clicking on the desired hyperlink. The user is
153         able to return to the demo selection page with the browser's back
154         button. I still need to modify the servlet to work with multiple
155         documents so all demo links will load the file defined in the
156         OnlineGlom.properties.
157
158         * .gitignore: Add .gwt which holds the error log for the GWT UiBuidler.
159         This is only useful during development so we don't need to save it.
160         * src/main/java/org/glom/web/client/ClientFactory.java: Add method to
161         get a reference to the DemoSelectionView.
162         * src/main/java/org/glom/web/client/ClientFactoryImpl.java: Implement
163         method to get a reference to the DemoSelectionView.
164         * src/main/java/org/glom/web/client/OnlineGlom.java: Change the
165         default view to DemoSelectionView.
166         * src/main/java/org/glom/web/client/OnlineGlomService.java: Add method
167         to get glom document titles for glom files in a hard-coded directory.
168         * src/main/java/org/glom/web/client/OnlineGlomServiceAsync.java: Add
169         method to get glom document titles for glom files in a hard-coded
170         directory.
171         * src/main/java/org/glom/web/client/activity/DemoSelectionActivity.java:
172         Presenter for DemoSelectionView.
173         * src/main/java/org/glom/web/client/mvp/AppActivityMapper.java: Update
174         for DemoSelectionView.
175         * src/main/java/org/glom/web/client/mvp/AppPlaceHistoryMapper.java:
176         Update for DemoSelectionView.
177         * src/main/java/org/glom/web/client/place/DemoSelectionPlace.java:
178         Basic 'Place' implementation for the DemoSelectionView.
179         * src/main/java/org/glom/web/client/ui/DemoSelectionView.java:
180         The interface for the DemoSelectionView.
181         * src/main/java/org/glom/web/client/ui/DemoSelectionViewImpl.java:
182         The implementation of the DemoSelectionView.
183         * src/main/java/org/glom/web/client/ui/DemoSelectionViewImpl.ui.xml:
184         The GWT UiBuilder xml file used in DemoSelectionViewImpl.
185         * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java: Add
186         implementation of method to get glom document titles for glom files
187         in a hard-coded directory.
188         * src/main/webapp/OnlineGlom.html: Remove link to CSS file as it's
189         on longer being used.
190         * src/main/webapp/glom.png: Glom logo.
191
192 2011-04-05  Ben Konrath  <ben@bagu.org>
193
194         Move RPC code from OnlineGlomViewImpl to OnlineGlomActivity.
195
196         This is the forth and final commit of a refactor that will allow
197         OnlineGlom to be used with multiple documents.
198
199         * src/main/java/org/glom/web/client/activity/OnlineGlomActivity.java:
200         Move RPC code from OnlineGlomViewImpl to this class.
201         * src/main/java/org/glom/web/client/ui/OnlineGlomView.java: Add methods
202         to inferface.
203         * src/main/java/org/glom/web/client/ui/OnlineGlomViewImpl.java: Move
204         RPC code to the presenter class (the P in MVP).
205
206 2011-04-04  Ben Konrath  <ben@bagu.org>
207
208         Start moving the existing OnlineGlom code to MVP.
209
210         This work is based on the GWT MVP framework that is documented here:
211
212         https://code.google.com/webtoolkit/doc/2.2/DevGuideMvpActivitiesAndPlaces.html
213
214         This is the third commit of a refactor that will allow OnlineGlom to
215         be used with multiple documents.
216
217         * src/main/java/org/glom/web/client/ClientFactory.java: New file.
218         Interface for client factory which is used to get instances of various
219         classes throughout the app.
220         * src/main/java/org/glom/web/client/ClientFactoryImpl.java: New file.
221         Implementation of client factory.
222         * src/main/java/org/glom/web/client/OnlineGlom.java: Add code to
223         initialize the MVP framework.
224         * src/main/java/org/glom/web/client/activity/OnlineGlomActivity.java:
225         New file. Activity manager for the main container widget. This is the
226         Presenter in MVP.
227         * src/main/java/org/glom/web/client/mvp/AppActivityMapper.java: New file.
228         Maps place (URL) to its corresponding activity.
229         * src/main/java/org/glom/web/client/mvp/AppPlaceHistoryMapper.java:
230         New file. This is just a place holder for a generated file.
231         * src/main/java/org/glom/web/client/place/OnlineGlomPlace.java:
232         New file. Represents the URL for the main Online Glom app.
233         * src/main/java/org/glom/web/client/ui/LayoutListView.java: Update
234         for changes in LayoutListViewImpl.
235         * src/main/java/org/glom/web/client/ui/OnlineGlomView.java: Create
236         interface for View. Move code to OnlineGlomViewImpl class.
237         * src/main/java/org/glom/web/client/ui/OnlineGlomViewImpl.java: New
238         file. Implementation of OnlineGlomView.
239         * src/main/resources/org/glom/web/OnlineGlom.gwt.xml: Add Activity and
240         Place resources. Use ClientFactoryImpl by default.
241
242 2011-04-04  Ben Konrath  <ben@bagu.org>
243
244         Move View classes to their own package.
245
246         This is the second commit of a refactor that will allow OnlineGlom to
247         be used with multiple documents.
248
249         * src/main/java/org/glom/web/client/OnlineGlom.java:
250         * src/main/java/org/glom/web/client/ui/LayoutListView.java:
251         * src/main/java/org/glom/web/client/ui/OnlineGlomView.java:
252
253 2011-04-02  Ben Konrath  <ben@bagu.org>
254
255         Move UI code from the main module to its own class.
256
257         This is the first commit of a refactor that will allow OnlineGlom to be
258         used with multiple documents.
259
260         * src/main/java/org/glom/web/client/LayoutListView.java: Update
261         references to OnlineGlom to OnlineGlomView.
262         * src/main/java/org/glom/web/client/OnlineGlom.java: Move code to
263         OnlineGlomView and instantiate it here.
264         * src/main/java/org/glom/web/client/OnlineGlomView.java: New class that
265         represents the main OnlineGlomView with one document.
266
267 2011-04-01  Ben Konrath  <ben@bagu.org>
268
269         Fix formatting of gwt.xml and add DTD.
270
271         * src/main/resources/org/glom/web/OnlineGlom.gwt.xml:
272
273 2011-03-30  Ben Konrath  <ben@bagu.org>
274
275         Propperly convert gdkColor string to html colour string.
276
277         * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java:
278
279 2011-03-28  Ben Konrath  <ben@bagu.org>
280
281         Change implementation of OnlineGlomServiceImpl.getColumnInfoHorizontalAlignment().
282
283         This implementation matches
284         OnlineGlomServiceImpl.getColumnInfoGlomFieldType(), should perform better, is more
285         readable and is not tied to Swig.
286
287         * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java:
288
289 2011-03-28  Ben Konrath  <ben@bagu.org>
290
291         Use read-only checkboxes for boolean field types.
292
293         * src/main/java/org/glom/web/client/LayoutListView.java: Create columns
294         in the CellTable based on the field type. It currently only
295         distinguishes between boolean and text columns but I'll need to add
296         support for more types.
297         * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java: Set the
298         column type in the ColumnInfo object. Add method to convert between the
299         glom field type enum in ColumnInfo and the glom field type in libglom.
300         * src/main/java/org/glom/web/shared/ColumnInfo.java: Add support for
301         field type.
302         * src/main/java/org/glom/web/shared/GlomField.java: Add support for
303         getting and setting booleans.
304
305 2011-03-25  Ben Konrath  <ben@bagu.org>
306
307         Don't get the Date twice from the ResultSet.
308
309         * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java:
310
311 2011-03-25  Ben Konrath  <ben@bagu.org>
312
313         Cleanup code in the servlet.
314
315         * TODO: Remove item about row count. Add item about testing row count
316         query with large number of rows.
317         * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java: Fix
318         spelling mistakes, change method parameter to be consistent with
319         other methods.
320
321 2011-03-25  Ben Konrath  <ben@bagu.org>
322
323         Add server side logging with the gwt-log library.
324
325         * .gitignore: Ignore the log file we're now producing.
326         * TODO: Add a couple TODO item for logging.
327         * pom.xml: Add gwt-log and log4j as a dependency.
328         * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java: Add
329         logging of errors, warnings and some important info.
330         * src/main/resources/log4j.properties: New file to configure log4j.
331
332 2011-03-24  Ben Konrath  <ben@bagu.org>
333
334         Add a disable button for the Details view.
335
336         * src/main/java/org/glom/web/client/LayoutListView.java:
337
338 2011-03-22  Ben Konrath  <ben@bagu.org>
339
340         Use a count query to get the number of rows for the list view pager.
341
342         * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java:
343
344 2011-03-22  Ben Konrath  <ben@bagu.org>
345
346         Add more TODO information about CellTable pager positioning. 
347
348         * TODO:
349
350 2011-03-19  Ben Konrath  <ben@bagu.org>
351
352         Add TODO item about CellTable pager positioning.
353
354         * TODO:
355
356 2011-03-18  Ben Konrath  <ben@bagu.org>
357
358         Remove unneeded GlomFieldColumn class.
359
360         This is just a small code cleanup.
361
362         * src/main/java/org/glom/web/client/LayoutListView.java:
363
364 2011-03-18  Ben Konrath  <ben@bagu.org>
365
366         Use cursor mode in the query that gets data for the list view.
367
368         I still need to fix the potential memory problem when getting the row
369         count for the list view.
370
371         * TODO: Add note about testing memory usage with large data sets. Add
372         item about fixing row counting with large data sets.
373         * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java: Put the
374         PostgreSQL JDBC driver into cursor mode when getting data for the
375         list view.
376
377 2011-03-15  Ben Konrath  <ben@bagu.org>
378
379         Remove the GWT Container from the Eclipse build classpath.
380
381         The GWT dependencies are set by Maven so this isn't needed.
382
383         * .classpath:
384
385 2011-03-15  Murray Cumming  <murrayc@murrayc.com>
386
387         Added some earlier mockups to git, but not to the tarball dist.
388
389         * mockups/: Added some mockups from 2010-02 by Daniel Borgmann for
390         Openismus. These hopefully show how we might structure the HTML so that
391         it can be styled easily with CSS. However, we probably need to adapt them
392         for the CSS structure that GWT dictates for common widgets.
393
394 2011-03-14  Ben Konrath  <ben@bagu.org>
395
396         Locate OnlineGlom.properties using the ServletContext.
397
398         This is required to be able to locate the file in the deployed servlet.
399
400         * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java:
401         Configure the database and glom document in in a helper method so
402         that the ServletContext can be used to locate OnlineGlom.properties.
403         * src/main/webapp/WEB-INF/OnlineGlom.properties: Moved from
404         src/main/webapp. This is the proper location for .properites files.
405
406 2011-03-12  Ben Konrath  <ben@bagu.org>
407
408         Add note to README about why we're compiling down to obfuscated JavaScript.
409
410         * README:
411
412 2011-03-11  Ben Konrath  <ben@bagu.org>
413
414         Use properties file to configure servlet.
415
416         This allows people to change the glom file path, db username and db
417         password without recompiling the code.
418
419         * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java:
420         * src/main/webapp/OnlineGlom.properties:
421
422 2011-03-11  Ben Konrath  <ben@bagu.org>
423
424         Use table fields in layout list view if the layout list is not defined.
425
426         * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java:
427         Manually create a LayoutFieldVector for the query builder using the
428         table fields when a layout list is not defined in the glom file.
429
430 2011-03-11  Ben Konrath  <ben@bagu.org>
431
432         Only show FIXME string for images when there's an image.
433
434         * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java: Also included
435         in this change are some small code cleanups.
436
437 2011-03-11  Ben Konrath  <ben@bagu.org>
438
439         Set text for fields with TYPE_IMAGE and TYPE_INVALID to avoid NPEs.
440
441         * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java:
442
443 2011-03-11  Ben Konrath  <ben@bagu.org>
444
445         Correctly set the index of the default table.
446
447         * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java:
448         Correctly set the index of the default table. Add commented out example
449         file paths.
450
451 2011-03-10  Ben Konrath  <ben@bagu.org>
452
453         Add comment to pom.xml about the previous change.
454
455         * pom.xml: Add comment about the deployment issue so that it's obvious
456         why java-libglom is set to the provided scope.
457
458 2011-03-10  Ben Konrath  <ben@bagu.org>
459
460         Change java-libglom dependency from compile to provided in pom.xml.
461
462         Since java-libglom uses jni it can only be loaded once and therefore
463         must be placed in $CATALINA_HOME/lib and not included in each war.
464         This directory is defined as /usr/share/tomcat6/lib/ on Ubuntu 10.04.
465         More information about this issue can be found in the Tomcat 6 release
466         notes in the "JNI Based Applications" section:
467
468         http://tomcat.apache.org/tomcat-6.0-doc/RELEASE-NOTES.txt
469
470         * README: Remove note about this issue. Deployment info should really
471         be on the wiki anyway so I'll add it right now.
472         * pom.xml: Change java-libglom dependency from compile to provided so
473         that it's copied in to the packaged war.
474
475 2011-03-09  Ben Konrath  <ben@bagu.org>
476
477         Change to using a neutral locale for currency, date and time formatting.
478
479         This solves the problem of currency values being represented without a
480         space between the currency code and the number (e.g. "EUR5.89" is now
481         represented as "EUR 5.89"). More work is required when we implement
482         a locale preference setting.
483
484         * TODO: Add note about currency formatting issues with different
485         locales.
486         * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java: Change
487         to using the neutral ROOT locale.
488
489 2011-03-09  Ben Konrath  <ben@bagu.org>
490
491         Add support for currency codes that are not ISO 4217 codes.
492
493         * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java: Use
494         the currency code defined in the glom file when it's not 3 characters
495         long or when Java doesn't recognize the string as an ISO 4217 code.
496
497 2011-03-08  Ben Konrath  <ben@bagu.org>
498
499         Remove test classes, launch configurations and configuration.
500
501         The test stuff was getting in the way when creating the war. To make
502         the war file you can now do 'mvn clean package'. The packaged war file
503         will be in the target directory.
504
505         * .classpath: Remove unused classpathentry for tests and i18n.
506         * pom.xml: Remove junit.jar dependency. Properly use gwt.version
507         property. Don't run test or i18n goals when packaging the war.
508         * src/main/webapp/WEB-INF/web.xml: Add xml name space. Correct
509         formatting.
510
511         Removed files:
512
513         * OnlineGlomTest-dev.launch:
514         * OnlineGlomTest-prod.launch:
515         * src/test/java/org/glom/web/client/GwtTestOnlineGlom.java:
516         * src/test/resources/org/glom/web/OnlineGlomJUnit.gwt.xml:
517
518 2011-03-07  Ben Konrath  <ben@bagu.org>
519
520         Update gwt-maven plugin to 2.2.0 and fix other configuation problems.
521
522         These fixes allow me to use 'mvn deploy' to create the war file.
523
524         * .classpath: This generated config has been updated by Eclipse. This
525         change was probably triggered by me updating from Eclipse 3.6.1 to
526         3.6.2.
527         * .gitignore: Add entry to ignore the directory
528         src/main/webapp/WEB-INF/deploy. This directory is generated by Eclipse.
529         * .project: The generated config has been updated by Eclipse. This
530         change was probably triggered by me updating from Eclipse 3.6.1 to
531         3.6.2.
532         * .settings/com.google.appengine.eclipse.core.prefs: Add empty config
533         so that Eclipse doesn't complain
534         * pom.xml: Update to gwt-maven-plugin 2.2.0.
535         * src/test/java/org/glom/web/client/GwtTestOnlineGlom.java: Move from
536         'tests' directory to 'client' directory. This is the new
537         gwt-maven-plugin convension.
538         * src/test/resources/org/glom/web/OnlineGlomJUnit.gwt.xml: Correctly
539         refer to org.glom.web.OnlineGlom gwt module and OnlineGlomServiceImpl.
540
541 2011-03-07  Ben Konrath  <ben@bagu.org>
542
543         Add support for horizontal alignment in the LayoutList columns.
544
545         * TODO: Remove item about horizontal alignment. Add item about
546         improvements to ColumnInfo.
547         * src/main/java/org/glom/web/client/LayoutListView.java: Set horizontal
548         alignment on the columns. Use ColumnInfo RPC object get the column
549         title and horizontal alignment.
550         * src/main/java/org/glom/web/client/OnlineGlom.java: Update
551         LayoutListView creation with ColumnInfo RPC object.
552         * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java: Create
553         a ColumnInfo object for every LayoutList columnn. Convert the
554         FieldFormatting.HorizontalAlignment to the correct
555         ColumnnInfo.HorizontatlAlignment with the new
556         getColumnInfoHorizontalAlignment helper method.
557         * src/main/java/org/glom/web/shared/ColumnInfo.java: New RPC object
558         to encapsulate column information like alignment and title. This
559         could be used to set the colour instead of on a per cell field basis.
560         * src/main/java/org/glom/web/shared/LayoutListTable.java: Replace
561         column title storage and retrieval with ColumnInfo.
562
563 2011-03-04  Ben Konrath  <ben@bagu.org>
564
565         Add support for column sorting.
566
567         * src/main/java/org/glom/web/client/LayoutListView.java: Change
568         AsynDataProvider to be an anonymous inner class. Use new
569         getSortedTableData RPC method when column sort is requested. Set all
570         columns sortable and add an AsyncHandler to activate sorting in the
571         AsyncDataProvider.
572         * src/main/java/org/glom/web/client/OnlineGlomService.java: Add new
573         method getSortedTableData(). Cleanup other method signatures.
574         * src/main/java/org/glom/web/client/OnlineGlomServiceAsync.java: Add
575         new method getSortedTableData(). Cleanup other method signatures.
576         * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java:
577         Implement getSortedTableData() and getTableData() methods by using a
578         private helper method with the appropriate parameters filled in. Use
579         user supplied sort clause when supplied, otherwise fall back to
580         sorting by the primary key. Move destroy() method to be underneath
581         constructor for readability.  Cleanup comments.
582
583 2011-03-03  Ben Konrath  <ben@bagu.org>
584
585         Add support for colour text and colour backgrounds to the layout list cells.
586
587         Only the cell backgrounds are coloured which leaves a gap between the
588         cells that isn't coloured. I need to figure out a way to set
589         'style=background-colour:' on the whole column rather than just the
590         cell.
591
592         * TODO: Add a note about colouring the background of the whole column.
593         * src/main/java/org/glom/web/client/LayoutListView.java: Add a custom
594         column type (GlomFieldColumn) and a custom cell type (GlomFieldCell) to
595         render the coloured text and backgrounds. Use GlomField[] for the row type.
596         * src/main/java/org/glom/web/client/OnlineGlomService.java: Use GlomField[]
597         for the row type.
598         * src/main/java/org/glom/web/client/OnlineGlomServiceAsync.java: Use
599         GlomField[] for the row type.
600         * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java: Use
601         GlomField[] for the row type. Set the text, text colour and background
602         colour in the GlomField objects as specified in the glom document. Add
603         method to convert from Gdk::Color to HTML colour string. Cleanup comments.
604         * src/main/java/org/glom/web/shared/GlomField.java: New file to encapulate
605         the glom field text, foreground colour and background colour.
606
607 2011-03-02  Ben Konrath  <ben@bagu.org>
608
609         Don't display hidden tables in the combo box.
610
611         * src/main/java/org/glom/web/client/OnlineGlom.java: Update code to use
612         ArrayLists.
613         * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java: Add
614         code to ignore hidden tables using ArrayLists for the table names and
615         titles.
616         * src/main/java/org/glom/web/shared/GlomDocument.java: Change tableTitles and
617         tableNames to use ArrayLists instead of String[]. Update getter and setter
618         methods.
619
620 2011-03-01  Ben Konrath  <ben@bagu.org>
621
622         Add support for Date and Time number types.
623
624         * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java:
625         Implement formatting for Date and Time values. Change the default glom
626         file to small business example.
627
628 2011-03-01  Ben Konrath  <ben@bagu.org>
629
630         Add support for formatting glom types as specified in the glom file.
631
632         Formatting isn't finished yet - I still need to add support for Date
633         and Time values.
634
635         * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java: Add
636         formatting support for TYPE_TEXT, TYPE_BOOLEAN and TYPE_NUMERIC. Remove
637         checks for null values in JDBC cleanup code and catch all exceptions
638         instead of just SQLExceptions.
639         * src/main/java/org/glom/web/shared/LayoutListTable.java: Fix incorrect
640         method name.
641
642 2011-03-01  Ben Konrath  <ben@bagu.org>
643
644         Use GWT 2.2.0 instead of 2.1.1.
645
646         * pom.xml: Change GWT version numbers.
647
648 2011-03-01  Ben Konrath  <ben@bagu.org>
649
650         A few small code cleanups.
651
652         * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java: Remove
653         duplicate for loop.
654         * src/main/java/org/glom/web/shared/GlomDocument.java: Remove
655         unnecessary object creation in constructor.
656         * src/main/java/org/glom/web/shared/LayoutListTable.java: Remove
657         unnecessary object creation in constructor.
658
659 2011-02-28  Ben Konrath  <ben@bagu.org>
660
661         Add file for TODO list.
662
663         * TODO: New file.
664
665 2011-02-18  Ben Konrath  <ben@bagu.org>
666
667         Enable the CellTable Pager when more than 20 rows need to be viewed.
668
669         The Pager will automatically become active when the results are larger
670         than the CellTable size which is currently set to 20 lines.
671
672         * src/main/java/org/glom/web/client/LayoutListView.java: Correct class
673         name on debug statment in RPC call in LayoutListDataProvider, add
674         numRows parameter to LayoutListView constructor, propperly set rowCount
675         in CellTable.
676         * src/main/java/org/glom/web/client/OnlineGlom.java: Correct class
677         name on debug statment in RPC call, use LayoutListTable object in RPC
678         calls, pass rowCount to LayoutListView.
679         * src/main/java/org/glom/web/client/OnlineGlomService.java: Change
680         getLayoutListHeaders to getLayoutListTable and return LayoutListTable
681         object.
682         * src/main/java/org/glom/web/client/OnlineGlomServiceAsync.java: Update
683         interface for changes in OnlineGlomService.
684         * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java: Change
685         getLayoutListHeaders() to getLayoutListTable() and return
686         LayoutListTable. Using this object allows me to pass other information
687         about the LayoutList like the expected number of rows in the result set.
688         The Connection object from the connection pool is now propperly closed.
689         Only the requested number of lines are returned to the client in
690         getTableData().
691         * src/main/java/org/glom/web/shared/LayoutListTable.java: Move from
692         GlomTable and add columnTitles and numRows.
693
694 2011-02-18  Ben Konrath  <ben@bagu.org>
695
696         Use String arrays instead of GlomTable objects in GlomDocument GWT-RPC object.
697
698         This is a small performance boost. I'll use GlomTable to get the required
699         layoutlist information.
700
701         * src/main/java/org/glom/web/client/OnlineGlom.java:
702         * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java:
703         * src/main/java/org/glom/web/shared/GlomDocument.java:
704
705 2011-02-18  Ben Konrath  <ben@bagu.org>
706
707         Add option to turn off formatting in JDT formatter preferences.
708
709         * .settings/org.eclipse.jdt.core.prefs:
710
711 2011-02-18  Ben Konrath  <ben@bagu.org>
712
713         Rename LayoutList to LayoutListView.
714
715         I'm working towards setting things up to easily use MVP when the time
716         comes.
717
718         * src/main/java/org/glom/web/client/LayoutListView.java: Rename from
719         LayoutList.java.
720         * src/main/java/org/glom/web/client/OnlineGlom.java: Update
721         references.
722
723 2011-02-17  Ben Konrath  <ben@bagu.org>
724
725         Move LayoutListDataProvider class into LayoutList.java.
726
727         * src/main/java/org/glom/web/client/LayoutList.java:
728
729 2011-02-17  Ben Konrath  <ben@bagu.org>
730
731         Rename RPC service classes from LibGlomService* to OnlineGlomService*.
732
733         * src/main/java/org/glom/web/client/LayoutListDataProvider.java: Update
734         references.
735         * src/main/java/org/glom/web/client/OnlineGlom.java: Update references.
736         * src/main/java/org/glom/web/client/OnlineGlomService.java: Rename
737         from LibGlomServer.java.
738         * src/main/java/org/glom/web/client/OnlineGlomServiceAsync.java:
739         Rename from LibGlomServiceAsync.java.
740         * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java:
741         Rename from LibGlomServiceImpl.java.
742         * src/main/webapp/WEB-INF/web.xml: Update configuration.
743
744 2011-02-17  Ben Konrath  <ben@bagu.org>
745
746         Update JDT settings.
747
748         * .settings/org.eclipse.jdt.core.prefs:
749
750 2011-02-17  Ben Konrath  <ben@bagu.org>
751
752         Move GWT-RPC objects to shared package (where they should be).
753
754         * src/main/java/org/glom/web/client/LibGlomService.java: Update imports.
755         * src/main/java/org/glom/web/client/LibGlomServiceAsync.java: Update imports.
756         * src/main/java/org/glom/web/client/OnlineGlom.java: Update imports.
757         * src/main/java/org/glom/web/server/LibGlomServiceImpl.java: Update imports.
758         * src/main/java/org/glom/web/shared/GlomDocument.java: Move to
759         org.glom.web.shared package.
760         * src/main/java/org/glom/web/shared/GlomTable.java: Move to
761         org.glom.web.shared package.
762         * src/main/resources/org/glom/web/OnlineGlom.gwt.xml: Included shared
763         directory in compilation to javascript.
764
765 2011-02-16  Ben Konrath  <ben@bagu.org>
766
767         Add sort clause to the sql query that grabs table information.
768
769         * src/main/java/org/glom/web/server/LibGlomServiceImpl.java: Add sort clause
770         if one of the columns is a primary key.
771
772 2011-02-16  Ben Konrath  <ben@bagu.org>
773
774         Disable generateAsync feature of gwt-maven.
775
776         The generated interface does not correctly match the methods in LibGlomService
777         and the generated singleton Util inner-class doesn't respect the servlet
778         mappings.
779
780         * pom.xml: Turn off generateAsync feature.
781         * src/main/java/org/glom/web/client/LibGlomServiceAsync.java: Re-add file
782         with singleton Util inner-class.
783
784 2011-02-14  Ben Konrath  <ben@bagu.org>
785
786         Add LGPL v3 licence notices.
787
788         Followed directions listed here:
789         http://www.gnu.org/licenses/gpl-howto.html
790
791         * COPYING: This file is a copy of the GPL v3.
792         * COPYING.LESSER: This file is a copy of the LGPL v3.
793         * src/main/java/org/glom/web/client/GlomDocument.java: Add licence
794         notice.
795         * src/main/java/org/glom/web/client/GlomTable.java: Add licence
796         notice.
797         * src/main/java/org/glom/web/client/LayoutList.java: Add licence
798         notice.
799         * src/main/java/org/glom/web/client/LayoutListDataProvider.java: Add
800         licence notice.
801         * src/main/java/org/glom/web/client/LibGlomService.java: Add licence
802         notice.
803         * src/main/java/org/glom/web/client/OnlineGlom.java: Add licence
804         notice.
805         * src/main/java/org/glom/web/server/LibGlomServiceImpl.java: Add
806         licence notice.
807
808 2011-02-14  Ben Konrath  <ben@bagu.org>
809
810         Use ArrayList instead of Array in GWT-RPC calls.
811
812         Apparently this gives a slight performance boost to the compiled
813         java script.
814
815         * src/main/java/org/glom/web/client/LayoutListDataProvider.java: Use ArrayList
816         instead of Array.
817         * src/main/java/org/glom/web/client/LibGlomService.java: Use ArrayList instead
818         of Array.
819
820 2011-02-14  Ben Konrath  <ben@bagu.org>
821
822         Access data from a postgres db rather than the example glom file.
823
824         * .settings/com.google.gwt.eclipse.core.prefs: Change GWT setting to
825         compile down to obfuscated javascript.
826         * pom.xml: Add c3p0 and postgres JDBC libraries.
827         * src/main/java/org/glom/web/server/LibGlomServiceImpl.java: Return data
828         using a postgres db accessed through the c3p0 connection pooling library.
829
830 2011-02-14  Ben Konrath  <ben@bagu.org>
831
832         Update Java formatter settings.
833
834         * .settings/org.eclipse.jdt.core.prefs: Change comment length to 120.
835
836 2011-02-02  Ben Konrath  <ben@bagu.org>
837
838         Update Eclipse and Maven configs to in preparation for the postgres JDBC jar.
839
840         * .classpath: Change JRE to Java 1.6, remove GWT configuration as we're now
841         using Maven.
842         * .settings/com.google.gwt.eclipse.core.prefs: Don't copy gwt-servlet.jar to
843         the compiled webapp directory that Eclipse uses as we're using Maven now.
844         * .settings/org.eclipse.jdt.core.prefs: Change target platform to Java 1.6.
845         * .settings/org.eclipse.wst.common.project.facet.core.xml: Change Java version
846         to 1.6.
847         * pom.xml: Format file, change target Java version to 1.6.
848
849 2011-02-02  Ben Konrath  <ben@bagu.org>
850
851         Add information about a deployment related issue.
852
853         * README: Add Notes section with the problem outlined.
854
855 2011-02-02  Ben Konrath  <ben@bagu.org>
856
857         Call Glom.libglom_deinit() when the servlet is shutdown.
858
859         * src/main/java/org/glom/web/server/LibGlomServiceImpl.java: Add
860         Glom.libglom_deinit() to destroy() method.
861
862 2011-01-28  Ben Konrath  <ben@bagu.org>
863
864         Use generated Util class to get the RPC Async interface.
865
866         * .settings/com.google.gwt.eclipse.core.prefs: Update generated Eclipse config
867         file.
868         * src/main/java/org/glom/web/client/LayoutListDataProvider.java: Use generated
869         getInstance() method to get a reference to the RPC Async interface.
870         * src/main/java/org/glom/web/client/OnlineGlom.java: Use generated
871         getInstance() method to get a reference to the RPC Async interface, remove
872         the now unused getLibGlomServiceProxy() method.
873
874 2011-01-27  Ben Konrath  <ben@bagu.org>
875
876         Cleanup ChangeLog entry from previous commit.
877
878         * ChangeLog: Group logical changes together and add comments.
879
880 2011-01-25  Ben Konrath  <ben@bagu.org>
881
882         Convert to gwt-maven project.
883
884         * .gitignore: Update for new project structure.
885         * README: New file with a link to the online documentation.
886         * pom.xml: The generated maven configuration file with some tweaks.
887
888         Add / update Eclipse settings. These files are a merge of the files that
889         were generated with the gwt-maven plugin and the files we were previously
890         using.
891         * .classpath:
892         * .project:
893         * .settings/.jsdtscope:
894         * .settings/com.google.gdt.eclipse.core.prefs:
895         * .settings/com.google.gwt.eclipse.core.prefs:
896         * .settings/org.eclipse.jdt.core.prefs:
897         * .settings/org.eclipse.wst.common.component:
898         * .settings/org.eclipse.wst.common.project.facet.core.xml:
899         * .settings/org.eclipse.wst.jsdt.ui.superType.container:
900         * .settings/org.maven.ide.eclipse.prefs:
901         * OnlineGlomTest-dev.launch:
902         * OnlineGlomTest-prod.launch:
903
904         Java source files moved from the 'src' directory to the directory structure
905         required by maven.
906         * src/main/java/org/glom/web/client/GlomDocument.java:
907         * src/main/java/org/glom/web/client/GlomTable.java:
908         * src/main/java/org/glom/web/client/LayoutList.java:
909         * src/main/java/org/glom/web/client/LayoutListDataProvider.java:
910         * src/main/java/org/glom/web/client/LibGlomService.java:
911         * src/main/java/org/glom/web/client/OnlineGlom.java:
912         * src/main/java/org/glom/web/server/LibGlomServiceImpl.java:
913
914         Non-functional property file used for translations. I included this as
915         reminder that it's something I need to sort out.
916         * src/main/resources/org/glom/web/client/Messages.properties:
917
918         The OnlineGlom GWT config file moved from the 'src/org/glom/web' directory.
919         * src/main/resources/org/glom/web/OnlineGlom.gwt.xml:
920
921         The servlet configuration files moved from the 'war' directory.
922         * src/main/webapp/OnlineGlom.css:
923         * src/main/webapp/OnlineGlom.html:
924         * src/main/webapp/WEB-INF/web.xml:
925
926         Generated test files with most of the code commented out. I included these
927         so that it's easy to add tests when we're ready for them.
928         * src/test/java/org/glom/web/tests/GwtTestOnlineGlom.java:
929         * src/test/resources/org/glom/web/OnlineGlomJUnit.gwt.xml:
930
931 2011-01-25  Ben Konrath  <ben@bagu.org>
932
933         Remove unused println.
934
935         * src/org/glom/web/server/LibGlomServiceImpl.java:
936
937 2011-01-25  Ben Konrath  <ben@bagu.org>
938
939         Add project specific JDT settings.
940
941         * .settings/org.eclipse.jdt.core.prefs: Generated by Eclipse.
942         * .settings/org.eclipse.jdt.ui.prefs: Generated by Eclipse.
943
944 2011-01-25  Ben Konrath  <ben@bagu.org>
945
946         Populate celltable with example data.
947
948         * src/org/glom/web/client/GlomDocument.java: Correct formatting.
949         * src/org/glom/web/client/GlomTable.java: Correct formatting.
950         * src/org/glom/web/client/LayoutList.java: Renamed from ListLayoutTable.java,
951         add LayoutListDataProvider to CellTable, add simpler pager (not working yet).
952         * src/org/glom/web/client/LayoutListDataProvider.java: New file,
953         asynchronously gets the example data.
954         * src/org/glom/web/client/LibGlomService.java: Add getTableData() method.
955         * src/org/glom/web/client/LibGlomServiceAsync.java: Add getTableData() method.
956         * src/org/glom/web/client/OnlineGlom.java: Allow service proxy object and
957         curently selected table to be retrieved by other widgets.
958         * src/org/glom/web/server/LibGlomServiceImpl.java: Correct formatting,
959         implement getTableData() in a hacky way. This method needs to be updated
960         to grab information from the database when database creating is
961         implemented.
962
963 2011-01-20  Ben Konrath  <ben@bagu.org>
964
965         Set table headers when table dropBox changes.
966
967         * src/org/glom/web/client/GlomDocument.java: Correct some method
968         names.
969         * src/org/glom/web/client/LibGlomService.java: Add method
970         to get list layout field names.
971         * src/org/glom/web/client/LibGlomServiceAsync.java: Add method
972         to get list layout field names.
973         * src/org/glom/web/client/ListLayoutTable.java: New file - composite
974         widget for list layout table.
975         * src/org/glom/web/client/OnlineGlom.java: Add a change handler for
976         the table drop box and add new updateTable() method to asynchronously
977         get the layout list field names for the currently selected table.
978         * src/org/glom/web/server/LibGlomServiceImpl.java: Add server side
979         implementation of getLayoutListHeaders() method.
980         * war/OnlineGlom.html: Remove GlomWebApp div tag as it is not required.
981
982 2011-01-18  Ben Konrath  <ben@bagu.org>
983
984         Make a listBox with table titles instead of the flexTable demo.
985
986         This is the start of something more useful.
987
988         * .classpath: Exclude a bunch of packages from the JVM that are
989         getting in the way of the Eclipse content assist.
990         * src/org/glom/web/client/GlomDocument.java:
991         * src/org/glom/web/client/GlomTable.java:
992         * src/org/glom/web/client/LibGlomService.java:
993         * src/org/glom/web/client/LibGlomServiceAsync.java:
994         * src/org/glom/web/client/OnlineGlom.java:
995         * src/org/glom/web/server/LibGlomServiceImpl.java:
996         * war/OnlineGlom.html:
997         * war/WEB-INF/web.xml:
998
999 211-01-13  Ben Konrath  <ben@bagu.org>
1000
1001         Update to new java-libglom API.
1002
1003         * .gitignore: Ignore OnlineGlom.war.
1004         * src/org/glom/web/server/TableNamesServiceImpl.java: Update to new java-libglom API.
1005
1006 2010-12-20  Ben Konrath  <ben@bagu.org>
1007
1008         Add some basic style to the table listing.
1009
1010         * src/org/glom/web/client/OnlineGlom.java: Add style to the table
1011         header, print useful error message on async callback failure.
1012         * war/OnlineGlom.css: Add style for table header, remove defaults
1013         provided by the Eclipse project wizard.
1014
1015 2010-12-20  Ben Konrath  <ben@bagu.org>
1016
1017         Load example file from installed glom dir.
1018
1019         * src/org/glom/web/server/TableNamesServiceImpl.java: Use the Java API
1020         provided by java-libglom to find the example file.
1021
1022 2010-12-20  Ben Konrath  <ben@bagu.org>
1023
1024         Update Eclipse settings.
1025
1026         * .classpath:
1027         * .settings/com.google.gdt.eclipse.core.prefs:
1028         * .settings/com.google.gwt.eclipse.core.prefs:
1029
1030 2010-12-17  Ben Konrath  <ben@bagu.org>
1031
1032         Initial commit.
1033
1034         * .classpath: New file.
1035         * .gitignore: New file.
1036         * .project: New file.
1037         * .settings/com.google.gdt.eclipse.core.prefs: New file.
1038         * .settings/com.google.gwt.eclipse.core.prefs: New file.
1039         * src/org/glom/web/OnlineGlom.gwt.xml: New file.
1040         * src/org/glom/web/client/GlomTable.java: New file.
1041         * src/org/glom/web/client/OnlineGlom.java: New file.
1042         * src/org/glom/web/client/TableNameService.java: New file.
1043         * src/org/glom/web/client/TableNameServiceAsync.java: New file.
1044         * src/org/glom/web/server/TableNamesServiceImpl.java: New file.
1045         * war/OnlineGlom.css: New file.
1046         * war/OnlineGlom.html: New file.
1047         * war/WEB-INF/web.xml: New file.
1048         * war/images/glom.png: New file.