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