Add navigation buttons to related list tables.
[online-glom:gwt-glom.git] / ChangeLog
1 2011-10-21  Ben Konrath  <ben@bagu.org>
2
3         Add navigation buttons to related list tables.
4
5         * src/main/java/org/glom/web/client/OnlineGlomService.java:
6         * src/main/java/org/glom/web/client/OnlineGlomServiceAsync.java:
7         * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java: Add new
8         method getSuitableRecordToViewDetails() for getting the table name
9         and primary key value for related list navigation buttons.
10         * src/main/java/org/glom/web/client/activity/DetailsActivity.java: Add
11         private cell renderer class to get the navigation information for
12         related list tables from the server. Extract the navigation
13         processing code from the details cell navigation and use it for the
14         related list navigation as well.
15         * src/main/java/org/glom/web/client/ui/ListViewImpl.java: Add private
16         cell renderer class for the details open buttons. This was needed
17         because the related list navigation buttons and the list view
18         navigation buttons need to react differently when clicked.
19         * src/main/java/org/glom/web/client/ui/cell/OpenButtonCell.java: Remove
20         the onEnterKeyDown() method because it's now overriden in the
21         subclasses that are specific to the related list tables and the list
22         view tables.
23         * src/main/java/org/glom/web/client/ui/details/Portal.java: Increase
24         the vertical size a little because the buttons add a bit of vertical
25         space to table. This is not a perfect solution because the vertical
26         size of with table fewer than 5 rows will be a little smaller.
27         * src/main/java/org/glom/web/client/ui/list/ListTable.java: Update for
28         changes in how navigation buttons are handled.
29         * src/main/java/org/glom/web/server/ConfiguredDocument.java: Implement
30         getSuitableRecordToViewDetails() using the new RelatedListNavigation
31         database access object.
32         * src/main/java/org/glom/web/server/database/DBAccess.java: Move code
33         to find the portal for a given relationship name from
34         RelatedListDBAccess. Add method to find a primary key field for a
35         given table.
36         * src/main/java/org/glom/web/server/database/RelatedListDBAccess.java:
37         Move code to find the portal for a given relationship name to
38         DBAccess.
39         * src/main/java/org/glom/web/server/database/RelatedListNavigation.java:
40         New file: database access object for getting the related list
41         navigation information (the table name and the primary key value).
42         * src/main/java/org/glom/web/shared/NavigationRecord.java: New file:
43         DTO for transferring a table name to navigate to and a primary key
44         value.
45         * src/main/java/org/glom/web/shared/layout/LayoutItemPortal.java: Add
46         boolean and getter/setter to specifies if the related list should add
47         navigation buttons.
48
49 2011-10-11  Ben Konrath  <ben@bagu.org>
50
51         Enable the open navigation button when the data has been set.
52
53         This avoids having active buttons that don't do anything when the data
54         has not been set.
55
56         * src/main/java/org/glom/web/client/ui/details/DetailsCell.java:
57
58 2011-10-11  Ben Konrath  <ben@bagu.org>
59
60         Use IsWidget interface for FlowTableItem.
61
62         * src/main/java/org/glom/web/client/ui/details/FlowTable.java: Change
63         FlowTableItem.getWidget() to asWidget() from the IsWidget interface.
64
65 2011-10-11  Ben Konrath  <ben@bagu.org>
66
67         Remove GWT styling from open button in details view.
68
69         There are still some issues with how the details cell is arranged but
70         this should be made to match Glom 1.20. I'm going to leave fixing this
71         until I have Glom 1.20 up and running.
72
73         * src/main/java/org/glom/web/client/ui/details/DetailsCell.java: Set
74         style name on open button.
75         * src/main/webapp/style.css: Move and edit details-navigation class.
76         Re-arrange some classes to make them appear in the same order as the
77         UI.
78
79 2011-10-07  Ben Konrath  <ben@bagu.org>
80
81         Update to GWT 2.4.0.
82
83         * .gitignore: Ignore new cache directory.
84         * .settings/com.google.gwt.eclipse.core.prefs: Update Eclipse settting.
85         * pom.xml: Change GWT and maven plugin to 2.4.0.
86         * src/main/java/org/glom/web/OnlineGlom.gwt.xml: Update doctype for
87         2.4.0.
88         * src/main/java/org/glom/web/client/ClientFactory.java:
89         * src/main/java/org/glom/web/client/ClientFactoryImpl.java:
90         * src/main/java/org/glom/web/client/OnlineGlom.java:
91         Update source for API changes.
92         * utils/build-onlineglom-war.sh: Remove cache directory before the
93         build.
94
95 2011-10-07  Ben Konrath  <ben@bagu.org>
96
97         Add navigation buttons in the details view.
98
99         This isn't finished but I thought I'd commit what I have as it's a
100         pretty good start. I still need to:
101
102         1. Change the style so that it fits better into the current theme
103         2. Adjust the details cell to expand as much as possible.
104
105         * src/main/java/org/glom/web/client/activity/DetailsActivity.java: Add
106         click handlers to navigation buttons in the DetailsCells. Create a
107         refreshData() method to get just the data from the server without the
108         layout.
109         * src/main/java/org/glom/web/client/activity/TableSelectionActivity.java:
110         Update the tableSelector and browser title when the table name
111         changes without using the tableSelector.
112         * src/main/java/org/glom/web/client/ui/DetailsView.java:
113         * src/main/java/org/glom/web/client/ui/DetailsViewImpl.java: Rename
114         getDetailsCells() to getCells(). Update variable names.
115         * src/main/java/org/glom/web/client/ui/details/DetailsCell.java: Add
116         method to set click handler on navigation button. Rename a few
117         variables. Add navigation buttons where needed.
118         * src/main/java/org/glom/web/client/ui/details/Group.java: Rename a few
119         variables and methods.
120         * src/main/java/org/glom/web/server/ConfiguredDocument.java: Set the
121         navigation boolean and navigation table as required in the
122         LayoutItemField DTO.
123         * src/main/java/org/glom/web/shared/layout/LayoutItemField.java: Add
124         variables for navigation along with getter/setter methods.
125
126 2011-10-07  Ben Konrath  <ben@bagu.org>
127
128         Rename Field to DetailsCell.
129
130         This is a refactor-only commit. No functionality has been added or
131         removed.
132
133         * src/main/java/org/glom/web/client/activity/DetailsActivity.java:
134         Update variable and method names.
135         * src/main/java/org/glom/web/client/ui/DetailsView.java:
136         * src/main/java/org/glom/web/client/ui/DetailsViewImpl.java: Update
137         variable and method names.
138         * src/main/java/org/glom/web/client/ui/details/DetailsCell.java:
139         Renamed from Field.
140         * src/main/java/org/glom/web/client/ui/details/Group.java: Update
141         variable and method names.
142
143 2011-10-07  Ben Konrath  <ben@bagu.org>
144
145         Create separate methods for layout and data the details view.
146
147         This is a refactor-only commit. No functionality has been added or
148         removed.
149
150         * src/main/java/org/glom/web/client/activity/DetailsActivity.java: New
151         private methods: setData(), createLayout().
152
153 2011-10-07  Ben Konrath  <ben@bagu.org>
154
155         Don't use TableSelectorImpl implementation details in TableSelectorActivity.
156
157         This is part of a change to get navigation buttons in the details view
158         but it should have been done this way from the start.
159
160         * src/main/java/org/glom/web/client/activity/ListActivity.java: Update
161         for method name change in TableSelectionView.
162         * src/main/java/org/glom/web/client/activity/TableSelectionActivity.java:
163         Create TableChangeEvent and set the browser title using the
164         TableSelectionView API.
165         * src/main/java/org/glom/web/client/ui/TableSelectionView.java:
166         * src/main/java/org/glom/web/client/ui/TableSelectionViewImpl.java:
167         Change getSelectedTable() to getSelectedTableName(). Add
168         getSelectedTableTitle().
169
170 2011-10-07  Ben Konrath  <ben@bagu.org>
171
172         Use primaryKeyValue naming convention in constructor of DetailsPlace.
173
174         * src/main/java/org/glom/web/client/place/DetailsPlace.java:
175
176 2011-10-07  Ben Konrath  <ben@bagu.org>
177
178         Update TableChangeEvent to use newTableName naming convention.
179
180         This makes the class more consistent with GWT naming conventions.
181
182         * src/main/java/org/glom/web/client/activity/DetailsActivity.java:
183         Update for method name change in TableChangeEvent.
184         * src/main/java/org/glom/web/client/activity/ListActivity.java: Update
185         for method name change in TableChangeEvent.
186         * src/main/java/org/glom/web/client/event/TableChangeEvent.java: Update
187         newTableName variable and getter method. Make toDebugString()
188         actually work.
189
190 2011-09-30  Ben Konrath  <ben@bagu.org>
191
192         Disable the pager in the list tables when the data row count is less than the minimum.
193
194         * src/main/java/org/glom/web/client/activity/DetailsActivity.java:
195         * src/main/java/org/glom/web/client/ui/ListViewImpl.java:
196
197 2011-09-30  Ben Konrath  <ben@bagu.org>
198
199         Add empty rows to the end of related list and list view tables.
200
201         I also extracted the cell rendering classes from the ListTable because
202         the code was becoming a little crazy with all the anonymous inner
203         classes. My plan is to use these cell rendering classes in the details
204         view as well so this refactor will be needed for that change.
205
206         * src/main/java/org/glom/web/client/activity/DetailsActivity.java: Only
207         set the row count in related list tables if the data has more rows
208         than the minimum number of rows visible.
209         * src/main/java/org/glom/web/client/ui/ListViewImpl.java: Only set the
210         row count in list view tables if the data has more rows than the
211         minimum number of rows visible.
212         * src/main/java/org/glom/web/client/ui/cell/BooleanCell.java: New class
213         for rendering TYPE_BOOLEAN cells. The code was extracted from the
214         ListTable class.
215         * src/main/java/org/glom/web/client/ui/cell/NumericCell.java: New class
216         for rendering TYPE_NUMERIC cells. The code was extracted from the
217         ListTable class.
218         * src/main/java/org/glom/web/client/ui/cell/OpenButtonCell.java: New
219         class for rendering cells with buttons in list views. The code was
220         extracted from the ListTable class.
221         * src/main/java/org/glom/web/client/ui/cell/TextCell.java: New class
222         for rendering TYPE_TEXT cells. The code was extracted from the
223         ListTable class.
224         * src/main/java/org/glom/web/client/ui/details/RelatedListTable.java:
225         Add empty rows to the end of the data if required. Implement
226         ListTable.getMinNumVisibleRows().
227         * src/main/java/org/glom/web/client/ui/list/ListTable.java: Extract
228         cell renderer code to public classes. Return null in
229         Column.getValue() for empty rows. Add new abstract method:
230         getMinNumVisibleRows(). Move code to set the row count of the list view
231         table to ListViewImpl.
232         * src/main/java/org/glom/web/client/ui/list/ListViewTable.java: Add
233         empty rows to the end of the data if required. Implement
234         ListTable.getMinNumVisibleRows().
235
236
237 2011-09-27  Ben Konrath  <ben@bagu.org>
238
239         Use GWT.log for client-side debugging statements.
240
241         These are optimized out when deployed so I should have used this method
242         in the first place. These statements will eventually be replaced with some sort
243         of notification in the browser.
244
245         * src/main/java/org/glom/web/client/activity/DetailsActivity.java:
246         * src/main/java/org/glom/web/client/activity/ListActivity.java:
247         * src/main/java/org/glom/web/client/activity/TableSelectionActivity.java:
248         * src/main/java/org/glom/web/client/ui/details/RelatedListTable.java:
249         * src/main/java/org/glom/web/client/ui/list/ListViewTable.java:
250
251 2011-09-27  Ben Konrath  <ben@bagu.org>
252
253         Put tableselector on the right, back to list link on right.
254
255         The idea is that the table selector is acting like a label for the
256         currently displayed table so it should be placed below the document title. This
257         puts the table title in a similar position to where it is in Glom.
258
259         * mockups/details-contacts.html:
260         * mockups/details-projects.html:
261         * mockups/listview-contacts.html:
262         * mockups/listview-projects.html:
263         * mockups/style.css:
264         Update mockups to match how the interfaces currently look.
265         * src/main/webapp/style.css: Swap positions of backlink with the table
266         selector. Add some space on the left side of the table selector to
267         line things up with the document title.
268
269 2011-09-27  Ben Konrath  <ben@bagu.org>
270
271         Add field colouring to details view.
272
273         This change re-works how field colouring works. The colour formatting
274         information is now set to the client with the layout information instead of
275         with the data. This eliminates the need to send the same colour strings for
276         data in list view column when colour information is set.
277
278         In order to set an alternate colour for negative numeric values, the
279         number is now sent to client and formatted with the GWT NumberFormat class.
280
281         This change also fixes:
282
283         https://bugzilla.gnome.org/show_bug.cgi?id=659752
284
285         * src/main/java/org/glom/web/OnlineGlom.gwt.xml: Add the GWT
286         internationalization framework which is needed for client side numeric
287         formatting.
288         * src/main/java/org/glom/web/client/Utils.java: New file for some
289         client static utility methods.
290         * src/main/java/org/glom/web/client/activity/DetailsActivity.java: Pass
291         the DataItem object to the Field class. Use a utility method to
292         create the foreignKeyValue string.
293         * src/main/java/org/glom/web/client/ui/details/Field.java: Set
294         alignment and text colours in the constructor. Add setData(DataItem)
295         method. Remove setText(String) method.
296         * src/main/java/org/glom/web/client/ui/list/ListTable.java: Add the
297         colour information to GlomTextCell. Create and use GlomNumberCell for
298         rendering numbers. Use utility method to get the string for the
299         primary key of the key provider. Re-work how the horizontal alignment
300         is set.
301         * src/main/java/org/glom/web/server/ConfiguredDocument.java: Add
302         formatting to layout information. Methods for converting the libglom
303         formatting information were moved from DBAccess.
304         * src/main/java/org/glom/web/server/database/DBAccess.java: Remove
305         numeric formatting (it's now done on the client side). Don't set text
306         colours in DataItem. Move libglom formatting conversion methods to
307         ConfiguredDocument.
308         * src/main/java/org/glom/web/shared/DataItem.java: Remove fields and
309         getters/setters for text colour information.
310         * src/main/java/org/glom/web/shared/GlomNumericFormat.java: New file
311         for transferring the libglom NumericFormat information to the client.
312         * src/main/java/org/glom/web/shared/layout/Formatting.java: Add fields
313         and getters/setters for: GlomNumericFormat, background colour and
314         foreground colour strings.
315
316 2011-09-26  Ben Konrath  <ben@bagu.org>
317
318         Simplify code that iterates through the LayoutGroup.
319
320         * src/main/java/org/glom/web/client/ui/list/ListTable.java:
321
322 2011-09-26  Ben Konrath  <ben@bagu.org>
323
324         Accept Eclipse formatting for OnlineGlomServiceAsync.
325
326         * src/main/java/org/glom/web/client/OnlineGlomServiceAsync.java:
327
328 2011-09-26  Ben Konrath  <ben@bagu.org>
329
330         Don't use the ListDBAccess classes to get the primary key layout information.
331
332         This was causing a bug where the wrong index for the hidden primary key
333         was being sent to the client.
334
335         * src/main/java/org/glom/web/server/ConfiguredDocument.java: Find the
336         primary key while creating the LayoutGroup DTO. Create a
337         LayoutItemField DTO for hidden primary keys. Don't use the
338         RelatedListDBAccess because it was only used for getting the primary
339         key.
340         * src/main/java/org/glom/web/server/database/DBAccess.java: Change the
341         access modifier from public to protected for getPrimaryKeyField() and
342         getPrimaryKeyLayoutItemField().
343         * src/main/java/org/glom/web/server/database/ListDBAccess.java: Remove
344         abstract method getExpectedResultSize() because RelatedListDBAccess
345         doesn't have enough info to implement it.
346         * src/main/java/org/glom/web/server/database/ListViewDBAccess.java:
347         Remove @Override for getExpectedResultSize().
348         * src/main/java/org/glom/web/server/database/RelatedListDBAccess.java:
349         Remove method getExpectedResultSize().
350
351 2011-09-23  Ben Konrath  <ben@bagu.org>
352
353         Log which layout (list or details) the ignored item is from.
354
355         * src/main/java/org/glom/web/server/ConfiguredDocument.java:
356
357 2011-09-23  Ben Konrath  <ben@bagu.org>
358
359         Remove annotations that turn off code formatting in DataItem.
360
361         * src/main/java/org/glom/web/shared/DataItem.java:
362
363 2011-09-23  Ben Konrath  <ben@bagu.org>
364
365         Rename GlomField to DataItem and update associated methods.
366
367         This is a rename-only refactor. No functionality has been added or
368         removed.
369
370         * src/main/java/org/glom/web/client/OnlineGlomService.java:
371         * src/main/java/org/glom/web/client/OnlineGlomServiceAsync.java:
372         * src/main/java/org/glom/web/client/activity/DetailsActivity.java:
373         * src/main/java/org/glom/web/client/ui/ListViewImpl.java:
374         * src/main/java/org/glom/web/client/ui/details/RelatedListTable.java:
375         * src/main/java/org/glom/web/client/ui/list/ListTable.java:
376         * src/main/java/org/glom/web/client/ui/list/ListViewTable.java:
377         * src/main/java/org/glom/web/server/ConfiguredDocument.java:
378         * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java:
379         * src/main/java/org/glom/web/server/database/DBAccess.java:
380         * src/main/java/org/glom/web/server/database/DetailsDBAccess.java:
381         * src/main/java/org/glom/web/server/database/ListDBAccess.java:
382         * src/main/java/org/glom/web/server/database/ListViewDBAccess.java:
383         * src/main/java/org/glom/web/server/database/RelatedListDBAccess.java:
384         * src/main/java/org/glom/web/shared/DataItem.java:
385         * src/main/java/org/glom/web/shared/DetailsLayoutAndData.java:
386         * src/main/java/org/glom/web/shared/layout/LayoutGroup.java:
387
388 2011-09-23  Ben Konrath  <ben@bagu.org>
389
390         Rename GlomDocument to DocumentInfo and update associated methods.
391
392         This is a rename-only refactor. No functionality has been added or
393         removed.
394
395         * src/main/java/org/glom/web/client/OnlineGlomService.java:
396         * src/main/java/org/glom/web/client/OnlineGlomServiceAsync.java:
397         * src/main/java/org/glom/web/client/activity/ListActivity.java:
398         * src/main/java/org/glom/web/client/activity/TableSelectionActivity.java:
399         * src/main/java/org/glom/web/server/ConfiguredDocument.java:
400         * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java:
401         * src/main/java/org/glom/web/shared/DocumentInfo.java:
402
403 2011-09-20  Ben Konrath  <ben@bagu.org>
404
405         Require java-libglom 1.17.3.
406
407         This picks up the fix for the seg fault problem with the Scenes table
408         in the Openismus Film Manager example.
409
410         * pom.xml:
411
412 2011-09-20  Ben Konrath  <ben@bagu.org>
413
414         Change the way sort clause is added for primary key when no sort clause is requested.
415
416         The primary key is now added to the LayoutFieldVector (fieldsToGet)
417         before the sort clause is created. When a sort clause is not requested, the
418         sort clause is created by finding the primary key in the LayoutFieldVector
419         (fieldsToGet).
420
421         * src/main/java/org/glom/web/server/database/ListDBAccess.java:
422
423 2011-09-20  Ben Konrath  <ben@bagu.org>
424
425         Log error message if no documents are found in the configured directory.
426
427         * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java: Also:
428         Extract the glom file extension string to a private static final class
429         variable (mostly as syntactic sugar). Accept a minor formatting change.
430         * src/main/resources/onlineglom.properties: Add '/glomfile' to end of
431         the example glom.document.directory configuration property to make it
432         more clear that it can any directory, not just the home directory.
433
434 2011-09-18  Ben Konrath  <ben@bagu.org>
435
436         Add related lists to details view.
437
438         The related list table has support for paging and sorting just like the
439         table in the list view.
440
441         * pom.xml: Require java-libglom 1.17.2 for the new methods to build the
442         SQL queries for the related list tables.
443         * src/main/java/org/glom/web/client/OnlineGlomService.java:
444         * src/main/java/org/glom/web/client/OnlineGlomServiceAsync.java:
445         * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java:
446         Rename getList methods to getListView and add comments. Remove
447         getDetailsLayout() as it's not used anymore. Add note to getDetailsData() about
448         it being unused. Add methods: getDetailsLayoutAndData(),
449         getSortedRelatedListData(), getRelatedListData(), getRelatedListRowCount()
450         * src/main/java/org/glom/web/client/activity/DetailsActivity.java:
451         Create the layout and set the data for the fields in one async call
452         instead of two. Create related lists where appropriate.
453         * src/main/java/org/glom/web/client/activity/ListActivity.java: Changes
454         for method name changes in OnlineGlomService.
455         * src/main/java/org/glom/web/client/ui/DetailsView.java:
456         * src/main/java/org/glom/web/client/ui/DetailsViewImpl.java: Rename
457         addLayoutGroup() to addGroup(). Add methods to get the DTOs for the
458         visible UI objects.
459         * src/main/java/org/glom/web/client/ui/ListView.java:
460         * src/main/java/org/glom/web/client/ui/ListViewImpl.java: Remove
461         tableName from setCellTable(). Create a ListViewTable instead of
462         ListTable.
463         * src/main/java/org/glom/web/client/ui/details/Field.java: New class to
464         represent a data field in the details view.
465         * src/main/java/org/glom/web/client/ui/details/Group.java: Move to code
466         from addDetailsCell() to Field class. Keep track of the Fields and
467         Portals in the details view.
468         * src/main/java/org/glom/web/client/ui/details/Portal.java: Make portal
469         a little bigger to match Glom. Keep track of the LayoutItemPortal DTO
470         and add a method to get it. Add method to set the contents of the
471         portal.
472         * src/main/java/org/glom/web/client/ui/details/RelatedListTable.java:
473         New class for related list tables. This class has the data provider
474         for the related list table.
475         * src/main/java/org/glom/web/client/ui/list/ListTable.java: Change to
476         abstract class which is the base class for the ListViewTable and the
477         RelatedListTable.
478         * src/main/java/org/glom/web/client/ui/list/ListViewTable.java:
479         New class for list view tables. This class has the data provider for
480         the list view table.
481         * src/main/java/org/glom/web/server/ConfiguredDocument.java: Add
482         methods for related list tables. Add more information to the
483         LayoutItemField and LayoutItemPortal DTOs.
484         * src/main/java/org/glom/web/server/database/DetailsDBAccess.java:
485         Remove debugging print statement.
486         * src/main/java/org/glom/web/server/database/ListDBAccess.java:
487         Remove debugging print statements. Add primary key field to SQL count
488         query.
489         * src/main/java/org/glom/web/server/database/ListViewDBAccess.java:
490         Remove unnecessary LayoutFieldVector parameter from
491         getResultSizeOfSQLQuery() method.
492         * src/main/java/org/glom/web/server/database/RelatedListDBAccess.java:
493         New class for related list table database access.
494         * src/main/java/org/glom/web/shared/DetailsLayoutAndData.java: New
495         class that is a wrapper DTO for details view layout and data.
496         * src/main/java/org/glom/web/shared/layout/LayoutItemPortal.java: Add
497         new 'fromField' string to this DTO.
498         * src/main/webapp/style.css: Remove bottom margin and override top
499         margin with 0em.
500
501 2011-09-15  Ben Konrath  <ben@bagu.org>
502
503         Breakup the OnlineGlomServiceImpl class to make it more manageable.
504
505         This sets things up to make it easier to add the data retrieval for
506         related lists (portals). No user noticeable changes were made with
507         this commit.
508
509         * src/main/java/org/glom/web/server/ConfiguredDocument.java: This
510         class has the code to retrieve the layouts and access the
511         database using the new database helper classes.
512         * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java:
513         Most of the functionality has been removed from this class. This
514         class now represents the public interface for the client side
515         code. It also deals with configuring the servlet and cleaning
516         things up when the servlet is stopped.
517         * src/main/java/org/glom/web/server/Utils.java: Extract a couple
518         of static methods into this utility class.
519         * src/main/java/org/glom/web/server/database/DBAccess.java:
520         * src/main/java/org/glom/web/server/database/DetailsDBAccess.java:
521         * src/main/java/org/glom/web/server/database/ListDBAccess.java:
522         * src/main/java/org/glom/web/server/database/ListViewDBAccess.java:
523         These classes have the database retrieval code. The class hierarchy
524         has been setup to make it easy to reuse code for similar
525         functionality.
526
527 2011-09-06  Ben Konrath  <ben@bagu.org>
528
529         Create separate classes for list table code and the data provider.
530
531         As part of this refactor, I also split up the code a bit to make it
532         more manageable.
533
534         * src/main/java/org/glom/web/client/ui/ListViewImpl.java: Move list
535         table code to two new classes (below).
536         * src/main/java/org/glom/web/client/ui/list/ListTable.java: New file
537         with code from ListViewImpl.
538         * src/main/java/org/glom/web/client/ui/list/ListTableDataProvider.java:
539         New file with code from ListViewImpl.
540
541 2011-09-06  Ben Konrath  <ben@bagu.org>
542
543         Change the LayoutItemPortal DTO to extend LayoutGroup instead of LayoutItem.
544
545         This fixes the LayoutItemPortal DTO to match the libglom layout object
546         hierarchy.
547
548         * src/main/java/org/glom/web/shared/layout/LayoutItemPortal.java:
549
550 2011-09-01  Ben Konrath  <ben@bagu.org>
551
552         Set title of Portals in the Details View.
553
554         * pom.xml: Bump required version of java-libglom to 1.17.1.
555         * src/main/java/org/glom/web/client/ui/details/Group.java: Move Portal
556         widget creation to its own class. Add comments to constructor.
557         * src/main/java/org/glom/web/client/ui/details/Portal.java: New file.
558         The code is mostly from the Group class with the title now set.
559         * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java: Set
560         title of Portal. Update some comments. Fix some code formatting.
561
562 2011-09-01  Ben Konrath  <ben@bagu.org>
563
564         Remove TODO comment for the flow table column width.
565
566         The flow table column width is working correctly and doesn't need to be
567         changed. See this mailing list post for more info:
568
569         https://mail.gnome.org/archives/glom-devel-list/2011-August/msg00017.html
570
571         * src/main/java/org/glom/web/client/ui/details/FlowTable.java:
572
573 2011-08-27  Ben Konrath  <ben@bagu.org>
574
575         Add document title (database name) to top of the browser page.
576
577         I added the document title to the TableSelecitonView but that will
578         change if / when we add a view that doesn't require table selection.
579
580         * mockups/details-contacts.html:
581         * mockups/details-projects.html:
582         * mockups/listview-contacts.html:
583         * mockups/listview-projects.html:
584         * mockups/style.css: Add document title to mockups to keep things
585         consistent.
586         * src/main/java/org/glom/web/client/OnlineGlom.java: Adjust LayoutPanel
587         sizes to account for the document title.
588         * src/main/java/org/glom/web/client/activity/TableSelectionActivity.java:
589         Set the document title when it has been retrieved from the server.
590         * src/main/java/org/glom/web/client/ui/TableSelectionView.java:
591         * src/main/java/org/glom/web/client/ui/TableSelectionViewImpl.java: Add
592         and implement setDocumentTitle(String) method.
593         * src/main/webapp/style.css: Add ID for document title style.
594
595 2011-08-25  Ben Konrath  <ben@bagu.org>
596
597         Add NavigationType enum to LayoutItemPortal DTO.
598
599         This is the start of adding support for Portals to the Details View.
600
601         * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java: Convert
602         LayoutItem_Portal.navigation_type enum from libglom to
603         LayoutItemPortal.NavigationType enum.
604         * src/main/java/org/glom/web/shared/layout/LayoutItemPortal.java: Add
605         NavigationType enum, field for storing the NavigationType and getter
606         and setter methods.
607
608 2011-08-25  Ben Konrath  <ben@bagu.org>
609
610         Implement the flow table layout in the Details View.
611
612         * src/main/java/org/glom/web/client/ui/DetailsViewImpl.java: Change
613         FlowTable to Group to account for the renamed class.
614         * src/main/java/org/glom/web/client/ui/details/FlowTable.java: New
615         File. This is a container widget that implements the Glom details view
616         flow table behaviour.
617         * src/main/java/org/glom/web/client/ui/details/Group.java: Moved from
618         org/glom/web/client/ui/FlowTable.java.
619         * src/main/webapp/style.css: Adjust bottom margin of the subgroup-title
620         so that the size of the subgroups are a closer match to the size of
621         the Glom subgroups. This makes the flowtable layout match the layout
622         in Glom for the Music Collection example file.
623
624 2011-08-16  Ben Konrath  <ben@bagu.org>
625
626         Create container element for LayoutItemPortal in Details View.
627
628         This will help me develop the layout for the FlowTable.
629
630         * src/main/java/org/glom/web/client/ui/FlowTable.java: Also rename
631         fieldPanel variable to detailsCell.
632
633 2011-08-15  Ben Konrath  <ben@bagu.org>
634
635         Set the height of the data element in the Details View.
636
637         I changed the InlineLabels (text in a span element) to Labels (text in
638         a div element) so that I could set the height of the details-data
639         elements instead of the details-cell parent elements. This allows the
640         the details-data element to display the correct height if style is
641         applied that shows the height.
642
643         This change has the added benefit of allowing the order of the labels
644         and data elements to be changed for right-to-left languages.
645
646         * src/main/java/org/glom/web/client/ui/DetailsViewImpl.java: Change
647         InlineLabels to Labels.
648         * src/main/java/org/glom/web/client/ui/FlowTable.java: Change
649         InlineLabels to Labels. Set the height of the data element.
650         * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java: Set the
651         multiline text height in the Formatting DTO.
652         * src/main/java/org/glom/web/shared/layout/Formatting.java: Add field
653         for multiline height along with getter and setter methods.
654         * src/main/webapp/style.css: Adjust style to account for the change
655         from span elements to div elements in the details cell.
656
657 2011-08-15  Ben Konrath  <ben@bagu.org>
658
659         Make the List View appearance match the mockups.
660
661         It doesn't match exactly but it's much better than it was.
662
663         * mockups/listview-contacts.html: Remove unused css classes.
664         * mockups/listview-projects.html: Remove unused css classes.
665         * src/main/java/org/glom/web/client/ui/ListViewImpl.java: Display 15
666         rows instead of 20. Rename vPanel to mainPanel. Use FlowPanel (div)
667         for mainPanel instead of VerticalPanel (table). Set style name on
668         CellTable. Set style name on Details column. Right-align Details
669         buttons.
670         * src/main/webapp/style.css: Adjust properties to match the mockups.
671
672 2011-08-12  Ben Konrath  <ben@bagu.org>
673
674         Add better support for subgroups in the details view.
675
676         * src/main/java/org/glom/web/client/ui/DetailsViewImpl.java: Update for
677         changed FlowTable constructor.
678         * src/main/java/org/glom/web/client/ui/FlowTable.java: Add better
679         support for subgroups and subgroup-titles.
680         * src/main/webapp/style.css: Add CSS class for subgroups and
681         subgroup-titles.
682
683 2011-08-12  Ben Konrath  <ben@bagu.org>
684
685         Return the top level LayoutGroup title.
686
687         * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java:
688
689 2011-08-11  Ben Konrath  <ben@bagu.org>
690
691         Make the TableSelector header match the mockup.
692
693         * src/main/java/org/glom/web/client/OnlineGlom.java: Add a margin to
694         the layout panel. Properly lineup the table selection header with
695         the list and details view.
696         * src/main/java/org/glom/web/client/ui/DetailsViewImpl.java: Remove the
697         margin around the details view.
698         * src/main/java/org/glom/web/client/ui/TableSelectionViewImpl.java:
699         Rename listBox variable to tableSelector. Set id for the style sheet.
700         Use a FlowPanel instead of a HorizontalPanel.
701         * src/main/webapp/style.css: Add properties to make the TableSelector
702         box match the mockups.
703
704 2011-07-13  Ben Konrath  <ben@bagu.org>
705
706         Update install script for java-libglom version change.
707
708         * utils/install-onlineglom-war.sh: Also exit if 'make check' in
709         java-libglom fails.
710
711 2011-07-13  Ben Konrath  <ben@bagu.org>
712
713         Add support sub-group in the details view.
714
715         I also removed the code that special-cased the default details view
716         layout. See:
717
718         http://mail.gnome.org/archives/glom-devel-list/2011-July/msg00005.html
719
720         I still have to make a proper flowtable.
721
722         * src/main/java/org/glom/web/client/activity/DetailsActivity.java:
723         Don't special-case default details view layout.
724         * src/main/java/org/glom/web/client/ui/DetailsView.java: Remove
725         addLayoutField() as I'm going to use it.
726         * src/main/java/org/glom/web/client/ui/DetailsViewImpl.java: Extract
727         GroupPanel to FlowTable class. Remove unimplemented addLayoutField()
728         method.
729         * src/main/java/org/glom/web/client/ui/FlowTable.java: New class
730         extracted from DetailsViewImpl.GroupPanel. Add support for
731         sub-groups.
732         * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java: Set
733         column count when getting the details layout.
734
735 2011-07-12  Ben Konrath  <ben@bagu.org>
736
737         Set browser title with database and table titles.
738
739         * src/main/java/org/glom/web/client/activity/TableSelectionActivity.java:
740         Set the browser title when the table changes and when the activity
741         first starts.
742         * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java: Set
743         title when retrieving document info (the GlomDocument object).
744         * src/main/java/org/glom/web/shared/GlomDocument.java: Add title field
745         with getter and setter methods. Remove unused convenience constructor.
746         Use default code formatting.
747
748 2011-07-12  Ben Konrath  <ben@bagu.org>
749
750         Ignore LayoutItemPortals in the details view.
751
752         I added a new DTO for the LayoutItemPortal so that I can ignore it in
753         the client code.
754
755         * src/main/java/org/glom/web/client/ui/DetailsViewImpl.java: Ignore
756         LayoutItemPortal layout objects.
757         * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java: Create
758         LayoutItemPortal objects when retrieving the details layout.
759         * src/main/java/org/glom/web/shared/layout/LayoutItemPortal.java: New
760         file. This is an empty class and just used to get type information for
761         now.
762
763 2011-07-12  Ben Konrath  <ben@bagu.org>
764
765         Use java-libglom 1.17.0.
766
767         * pom.xml:
768
769 2011-07-11  Ben Konrath  <ben@bagu.org>
770
771         Remove "Table:" label from table selector.
772
773         This matches a recent change in the Glom UI.
774
775         * mockups/details-contacts.html:
776         * mockups/details-projects.html:
777         * mockups/listview-contacts.html:
778         * mockups/listview-projects.html: Remove the "Table:" label from the
779         mockups as well.
780         * src/main/java/org/glom/web/client/ui/TableSelectionViewImpl.java:
781
782 2011-07-11  Ben Konrath  <ben@bagu.org>
783
784         Add main groups to the details view.
785
786         This makes things look a little nicer in the details view. The next step
787         is to implement the flowtable.
788
789         * src/main/java/org/glom/web/OnlineGlom.gwt.xml: Inherit only the
790         resources from the standard gwt css theme. Standard.css is now
791         included in OnlineGlom.html so that the online glom css rules have
792         precedence over the gwt theme.
793         * src/main/java/org/glom/web/client/activity/DetailsActivity.java: Pass
794         the whole LayoutGroup to the DetailsView instead of just the titles.
795         * src/main/java/org/glom/web/client/ui/DetailsView.java:
796         * src/main/java/org/glom/web/client/ui/DetailsViewImpl.java: Create the
797         details layout with a helper class (GroupPanel). I might extract this
798         class when I make the full flowtable.
799         * src/main/java/org/glom/web/shared/layout/LayoutItem.java: Add empty
800         string as default so I don't have to worry about NPEs when processing
801         the layout objects.
802         * src/main/webapp/OnlineGlom.html: Add the gwt standard css file (see
803         note beside OnlineGlom.gwt.xml above).
804         * src/main/webapp/style.css: Add default font-size to body to override
805         the font-size set by the standard theme. Don't use h2 tags for
806         group-title. Create new details-cell class.
807
808 2011-07-08  Murray Cumming  <murrayc@murrayc.com>
809
810         ConfiguredDocument: Set the port number too.
811
812         * src/main/java/org/glom/web/server/ConfiguredDocument.java
813         (ConfiguredDocument.ConfiguredDocument): Get the port number from the 
814         Glom document. Presumably this worked sometimes so far because there is a 
815         default port number.
816
817 2011-07-08  Murray Cumming  <murrayc@murrayc.com>
818
819         ConfiguredDocument: Warn that sqlite and self-hosting are not supported.
820
821         * src/main/java/org/glom/web/server/ConfiguredDocument.java
822         (ConfiguredDocument.ConfiguredDocument): Check that the hosting mode is 
823         correct, though we should throw an exception too.
824
825 2011-07-08  Murray Cumming  <murrayc@murrayc.com>
826
827         Fix a addDocuemnt typo.
828
829         * src/main/java/org/glom/web/shared/Documents.java
830         (Documents.addDocuemnt): Rename to addDocument().
831         * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java
832         (OnlineGlomServiceImpl.getDocuments): Adapt.
833         
834 2011-07-08  Murray Cumming  <murrayc@murrayc.com>
835
836         Slightly improved log output when connection fails.
837
838         * src/main/java/org/glom/web/server/ConfiguredDocument.java
839         (ConfiguredDocument.setUsernameAndPassword):
840         We don't know for sure if it' the username/password that's wrong, so 
841         rephrase the message.
842         Also ouput the exception message, though it's generic in this case.
843
844 2011-07-08  Ben Konrath  <ben@bagu.org>
845
846         Cleanup comments.
847
848         * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java: Also
849         added braces to a one line if statement because the Eclipse formatter
850         was getting confused.
851
852 2011-07-07  Ben Konrath  <ben@bagu.org>
853
854         Update project config files for Eclipse 3.7 and use GWT 2.3.0.
855
856         These should really be two separate tasks but I counldn't get things to
857         work with GWT 2.2.0 and Eclipse 3.7.
858
859         * .classpath:
860         * .project:
861         * .settings/org.eclipse.jdt.core.prefs:
862         * .settings/org.eclipse.jdt.ui.prefs:
863         * .settings/org.eclipse.ltk.core.refactoring.prefs:
864         * .settings/org.eclipse.m2e.core.prefs:
865         Add new config files. Update current files. Remove references to the
866         webtools plugins as we're not using any of the webtools features.
867         * .gitignore: Add logs directory which is created when running with
868         'mvn gwt:run'.
869         * pom.xml: Update to GWT 2.3.0. Eclipse configuration was automatically added.
870         * src/main/java/org/glom/web/OnlineGlom.gwt.xml: Moved from
871         src/main/resources/org/glom/web/OnlineGlom.gwt.xml as per this known
872         limitation:
873         http://mojo.codehaus.org/gwt-maven-plugin/eclipse/google_plugin.html#Limitations
874
875 2011-07-07  Murray Cumming  <murrayc@murrayc.com>
876
877         onlineglom.properties: Add explanatory comments.
878
879         * src/main/resources/onlineglom.properties: Also change the default user 
880         from ben to someuser, to avoid the risk of people thinking we just 
881         stupidly hard-coded a locale path, when they see that on stderr or in a log.
882
883 2011-06-28  Ben Konrath  <ben@bagu.org>
884
885         Use filename in Log for incorrect passwords.
886
887         * src/main/java/org/glom/web/server/ConfiguredDocument.java: Add
888         getFileName(String) method to get the filename from the URI.
889
890 2011-06-28  Ben Konrath  <ben@bagu.org>
891
892         Add the table name to the URL token for the ListPlace.
893
894         This makes things consistent between the DetailsPlace and the
895         ListPlace. It also allows the the ListPlace to be bookmarked.
896
897         * src/main/java/org/glom/web/client/OnlineGlomService.java:
898         * src/main/java/org/glom/web/client/OnlineGlomServiceAsync.java:
899         * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java:
900         Remove getDefaultListLayout(). The default layout is now returned
901         by the getListLayout() method when the table name is an empty string.
902         * src/main/java/org/glom/web/client/activity/ListActivity.java:
903         Add table name field. Change to a new ListPlace when the table
904         has been changed. Use getListLayout() for getting the default
905         list layout.
906         * src/main/java/org/glom/web/client/activity/TableSelectionActivity.java:
907         Add table name field. Set the correct table name in the list box
908         when loading from bookmark. This corrects a problem for the
909         DetailsPlace too.
910         * src/main/java/org/glom/web/client/place/DetailsPlace.java:
911         Move table name to super-class (HasSelectableTable). Move document
912         and table URL keys to super-class in HasSelectableTable.
913         * src/main/java/org/glom/web/client/place/HasSelectableTablePlace.java:
914         Add table name field. Add Tokenizer class with URL key common to
915         the subclasses (DetailsPlace and ListPlace).
916         * src/main/java/org/glom/web/client/place/ListPlace.java:
917         Add table name. Add code to parse the URL token.
918         * src/main/java/org/glom/web/client/ui/DocumentSelectionViewImpl.java:
919         Update ListPlace construction with empty table name string.
920         * src/main/java/org/glom/web/client/ui/TableSelectionView.java:
921         * src/main/java/org/glom/web/client/ui/TableSelectionViewImpl.java:
922         Change setTableSelectedIndex(int) to setSelectedTableName(String).
923         Update ListPlace construction with table name string.
924         * src/main/java/org/glom/web/shared/layout/LayoutGroup.java:
925         Change defaultTableName field to tableName to reflect how it's now
926         used. Update the getter and setter methods.
927
928 2011-06-28  Ben Konrath  <ben@bagu.org>
929
930         Enable the table selector in the DetailsView.
931
932         * src/main/java/org/glom/web/client/OnlineGlomService.java:
933         * src/main/java/org/glom/web/client/OnlineGlomServiceAsync.java:
934         * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java:
935         Remove getDefaultDetailsLayout(). The default layout is now returned
936         by the getDetailsLayout() method when the table name is an empty
937         string.
938         * src/main/java/org/glom/web/client/activity/DetailsActivity.java: Add
939         event handler for table change event. Change to using
940         getDetailsLayout() for the default details layout.
941         * src/main/java/org/glom/web/client/place/DetailsPlace.java: Add table
942         name to URL token.
943         * src/main/java/org/glom/web/client/ui/ListViewImpl.java: Use table
944         when navigating to the details place.
945
946 2011-06-27  Ben Konrath  <ben@bagu.org>
947
948         Use filename based unique document ID in URL and for RPC.
949
950         The document ID is the glom document name with spaces (' ') replaced
951         with pluses ('+') and without the .glom extension.
952
953         This change is mostly a string substitution of 'documentTitle' for
954         'documentID'. The only code change is the addition of a Documents DTO to get the
955         filename to document title mappings as indicated below.
956
957         * src/main/java/org/glom/web/client/OnlineGlomService.java:
958         * src/main/java/org/glom/web/client/OnlineGlomServiceAsync.java:
959         * src/main/java/org/glom/web/client/activity/DetailsActivity.java:
960         * src/main/java/org/glom/web/client/activity/DocumentSelectionActivity.java:
961         Use Documents DTO to create the document links in the document
962         selection view.
963         * src/main/java/org/glom/web/client/activity/ListActivity.java:
964         * src/main/java/org/glom/web/client/activity/TableSelectionActivity.java:
965         * src/main/java/org/glom/web/client/place/DetailsPlace.java:
966         * src/main/java/org/glom/web/client/place/HasSelectableTablePlace.java:
967         * src/main/java/org/glom/web/client/place/ListPlace.java:
968         * src/main/java/org/glom/web/client/ui/DocumentSelectionView.java:
969         * src/main/java/org/glom/web/client/ui/DocumentSelectionViewImpl.java:
970         * src/main/java/org/glom/web/client/ui/ListView.java:
971         * src/main/java/org/glom/web/client/ui/ListViewImpl.java:
972         * src/main/java/org/glom/web/client/ui/TableSelectionView.java:
973         * src/main/java/org/glom/web/client/ui/TableSelectionViewImpl.java:
974         * src/main/java/org/glom/web/server/Log.java:
975         * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java: Change
976         getDocumentTitles() to getDocuments() and return the Documents DTO.
977         * src/main/java/org/glom/web/shared/Documents.java: New DTO for
978         transferring the filename to document title mappings.
979
980 2011-06-25  Ben Konrath  <ben@bagu.org>
981
982         Make the authentication popup work again.
983
984         This bug was introduced when I extracted ConfiguredDocument to its own class.
985
986         * src/main/java/org/glom/web/server/ConfiguredDocument.java: Return the
987         correct success / fail status in setUsernameAndPassword().
988
989 2011-06-25  Ben Konrath  <ben@bagu.org>
990
991         Use filename as unique key for configuring database usernames and passwords.
992
993         This replaces the use of the Glom document title which could change
994         depending on the locale. Thanks to Murray Cumming for pointing out this
995         problem.
996
997         * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java:
998         * src/main/resources/onlineglom.properties:
999
1000 2011-06-24  Ben Konrath  <ben@bagu.org>
1001
1002         Pass primary key value to DetailsView.
1003
1004         This enables the DetailsView to load the correct data.
1005
1006         * src/main/java/org/glom/web/client/activity/DetailsActivity.java: Add
1007         primary key value field and set in constructor. Pass primary key
1008         value to getDetailsData().
1009         * src/main/java/org/glom/web/client/place/DetailsPlace.java: Add URL
1010         variables for document title and primary key value.
1011         * src/main/java/org/glom/web/client/ui/ListViewImpl.java: Pass primary
1012         key value to the DetailsPlace.
1013
1014 2011-06-24  Ben Konrath  <ben@bagu.org>
1015
1016         Add primary key index to LayoutGroup DTO and add ProvidesKey to CellTable.
1017
1018         This allows the primary key to be retrieved by the Details button. This
1019         functionality has not been implemented yet but it's in the works.
1020
1021         * src/main/java/org/glom/web/client/activity/ListActivity.java: Pass
1022         the LayoutGroup result to ListView.setCellTable instead of all of its
1023         fields individually.
1024         * src/main/java/org/glom/web/client/ui/ListView.java:
1025         * src/main/java/org/glom/web/client/ui/ListViewImpl.java: Use
1026         LayoutGroup as parameter for setCellTable. Add ProvidesKey to CellTable
1027         get the primary key for the table.
1028         * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java: Set the
1029         index of the primary key in the LayoutGroup accounting for hidden
1030         primary keys. Rename getJavaNumberFormat() to
1031         convertToJavaNumberFormat() for consistency. Cleanup / add some
1032         comments.
1033         * src/main/java/org/glom/web/shared/layout/LayoutGroup.java: Add a
1034         field for primary key index and a field to indicate whether the
1035         primary key is hidden or not.
1036
1037 2011-06-23  Ben Konrath  <ben@bagu.org>
1038
1039         Rename getTableData methods to getListData.
1040
1041         This is a rename refactor for consistency with other methods.
1042
1043         * src/main/java/org/glom/web/client/OnlineGlomService.java:
1044         * src/main/java/org/glom/web/client/OnlineGlomServiceAsync.java:
1045         * src/main/java/org/glom/web/client/ui/ListViewImpl.java:
1046         * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java:
1047
1048 2011-06-23  Ben Konrath  <ben@bagu.org>
1049
1050         Extract the ConfiguredDocument innerclass into its own class.
1051
1052         This makes the servlet code more object oriented.
1053
1054         * src/main/java/org/glom/web/server/ConfiguredDocument.java: Extracted
1055         from private ConfiguredDocument class in OnlineGlomServiceImpl.
1056         * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java: Use the
1057         new ConfiguredDocument class.
1058
1059 2011-06-21  Ben Konrath  <ben@bagu.org>
1060
1061         Use the LayoutGroup group for the list layout instead of ColumnInfo and LayoutListTable.
1062
1063         This makes things more inline with how libglom works and reduces code
1064         duplication. This refactor lays the groundwork for adding the primary key to
1065         the LayoutGroup object.
1066
1067         * src/main/java/org/glom/web/client/OnlineGlomService.java:
1068         * src/main/java/org/glom/web/client/OnlineGlomServiceAsync.java:
1069         * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java:
1070         Change method names to getListLayout and getDefaultListLayout for
1071         consistency. Use LayoutGroup as the DTO for the list layout instead of
1072         ColumnInfo and LayoutListTable.
1073         * src/main/java/org/glom/web/client/activity/ListActivity.java: Use the
1074         new method names along with the LayoutGroup object for transferring the
1075         list layout.
1076         * src/main/java/org/glom/web/client/ui/ListView.java:
1077         * src/main/java/org/glom/web/client/ui/ListViewImpl.java:
1078         Use ArrayList<LayoutItem> instead of ColumnInfo[] in setCellTable().
1079         * src/main/java/org/glom/web/shared/ColumnInfo.java: Deleted. Replaced
1080         with LayoutGroup.
1081         * src/main/java/org/glom/web/shared/LayoutListTable.java: Deleted.
1082         Replaced with LayoutGroup.
1083         * src/main/java/org/glom/web/shared/layout/LayoutGroup.java: Add
1084         expectedResultSize and defaultTableName fields which are needed for
1085         the list layout.
1086         * src/main/java/org/glom/web/shared/layout/LayoutItemField.java: Add
1087         type field which is needed for the list layout but will also be
1088         useful for the details layout as things progress.
1089         * src/main/java/org/glom/web/shared/layout/LayoutItemWithFormatting.java:
1090         Make class abstract. Remove the unnecessary
1091         getFormattingHorizontalAlignment method. Add setFormatting method.
1092
1093 2011-06-16  Ben Konrath  <ben@bagu.org>
1094
1095         Add scripts for building and installing war.
1096
1097         These will help when updating OnlineGlom but they're also good
1098         supplemental documentation of the build and deployment proceeding.
1099
1100         * utils/build-onlineglom-war.sh: New file.
1101         * utils/install-onlineglom-war.sh: New file.
1102
1103 2011-06-16  Ben Konrath  <ben@bagu.org>
1104
1105         Create wrapper class to create consistent log messages.
1106
1107         I wrapped methods in the Log class of gwt-log to add the method names
1108         from the servlet and create consistent formatting of the document title
1109         and table names in the log messages.
1110
1111         * src/main/java/org/glom/web/server/Log.java: New file with wrapped methods.
1112         * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java: Convert all
1113         log methods to use methods from wrapped Log class.
1114
1115 2011-06-16  Ben Konrath  <ben@bagu.org>
1116
1117         Remove superfluous conditional return.
1118
1119         Thanks to Murray Cumming for pointing this out!
1120
1121         * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java:
1122
1123 2011-06-15  Ben Konrath  <ben@bagu.org>
1124
1125         Return an ArrayList of LayoutGroups for the Details layout.
1126
1127         This corrects a problem with the details layout as it can have more
1128         than one top level LayoutGroup.
1129
1130         * src/main/java/org/glom/web/client/OnlineGlomService.java:
1131         * src/main/java/org/glom/web/client/OnlineGlomServiceAsync.java: Change
1132         method name from get*DetailsLayoutGroup to get*DetailsLayout. Return
1133         an ArrayList<LayoutGroup> in the get*DetailsLayout methods.
1134         * src/main/java/org/glom/web/client/activity/DetailsActivity.java: Deal
1135         with ArrayList of LayoutGroups for the details view layout.
1136         * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java: Change
1137         method name from get*DetailsLayoutGroup to get*DetailsLayout. Return an
1138         ArrayList<LayoutGroup> in the get*DetailsLayout methods. Inline
1139         getTableFieldsToShowForSequence() into getFieldsToShowForSQLQuery() to simplify
1140         the code a bit. Rename getTableFieldsToShowForSequenceAddGroup() to
1141         getFieldsToShowForSQLQueryAddGroup() to try to keep things more consistent.
1142
1143 2011-06-14  Ben Konrath  <ben@bagu.org>
1144
1145         Use cast_dynamic method to determine the libglom LayoutItem type.
1146
1147         This is better than finding the LayoutItem type by using the string
1148         returned from the get_part_type_name() method.
1149
1150         * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java:
1151
1152 2011-06-14  Ben Konrath  <ben@bagu.org>
1153
1154         Add method names to log entries in the servlet.
1155
1156         This helps when tracking down deployment problems.
1157
1158         * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java:
1159
1160 2011-06-14  Ben Konrath  <ben@bagu.org>
1161
1162         Add data to the DetailsView using a hard-coded primary key value.
1163
1164         The layout and functionality of the DetailsView is not complete. This
1165         is just a checkpoint so the patch doesn't get too big.
1166
1167         * src/main/java/org/glom/web/client/OnlineGlomService.java:
1168         * src/main/java/org/glom/web/client/OnlineGlomServiceAsync.java:
1169         Add getDetailsData() servlet method.
1170         * src/main/java/org/glom/web/client/activity/DetailsActivity.java:
1171         Add RPC to getDetailsData(). Change the way the LayoutGroups and
1172         LayoutFields are added to the DetailsView.
1173         * src/main/java/org/glom/web/client/ui/DetailsView.java:
1174         * src/main/java/org/glom/web/client/ui/DetailsViewImpl.java:
1175         Add setData() method. Change addLayoutGroup() and addLayoutField() to
1176         take the string for the title instead of the object.
1177         * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java:
1178         Add implementation getDetailsData() along with some private helper
1179         methods.
1180         * src/main/webapp/style.css: Add padding to details-data class. Add a
1181         details-label class with the same padding as the details-data class.
1182
1183 2011-06-03  Ben Konrath  <ben@bagu.org>
1184
1185         Use presenter.goTo() to change to the DetailsPlace.
1186
1187         This will make things easier when we need to open the DetailsView with
1188         data specific to the row that was clicked.
1189
1190         * src/main/java/org/glom/web/client/ui/ListViewImpl.java:
1191
1192 2011-06-02  Ben Konrath  <ben@bagu.org>
1193
1194         Add CSS file from mockups.
1195
1196         I'm adding this now because it's going to be useful to have when
1197         developing the DetailsView. The TableSelectionView and ListView aren't
1198         setup properly yet.
1199
1200         * src/main/webapp/OnlineGlom.html:
1201         * src/main/webapp/style.css:
1202
1203 2011-06-02  Ben Konrath  <ben@bagu.org>
1204
1205         Use String.isEmpty() to check for empty string.
1206
1207         * src/main/java/org/glom/web/client/activity/ListActivity.java:
1208
1209 2011-06-02  Ben Konrath  <ben@bagu.org>
1210
1211         Display main layout group titles in the DetailsView.
1212
1213         This is the start of the DetailsActivity/DetailsView implementation.
1214
1215         * src/main/java/org/glom/web/client/OnlineGlomService.java:
1216         * src/main/java/org/glom/web/client/OnlineGlomServiceAsync.java:
1217         Add getDetailsLayoutGroup() and getDefaultDetailsLayoutGroup() methods.
1218         * src/main/java/org/glom/web/client/activity/DetailsActivity.java:
1219         Get the layout information for the details view from the server and set
1220         the main layout group titles.
1221         * src/main/java/org/glom/web/client/ui/DetailsView.java:
1222         * src/main/java/org/glom/web/client/ui/DetailsViewImpl.java:
1223         Add addLayoutGroup() and addLayoutField() methods. This are just
1224         temporary methods for creating the the details view that will change
1225         in the future.
1226         * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java:
1227         Implement getDetailsLayoutGroup() and getDefaultDetailsLayoutGroup()
1228         methods.
1229         * src/main/java/org/glom/web/shared/layout/Formatting.java:
1230         * src/main/java/org/glom/web/shared/layout/LayoutGroup.java:
1231         * src/main/java/org/glom/web/shared/layout/LayoutItem.java:
1232         * src/main/java/org/glom/web/shared/layout/LayoutItemField.java:
1233         * src/main/java/org/glom/web/shared/layout/LayoutItemWithFormatting.java:
1234         Data Transfer Objects that mimic the libglom object structure. These are
1235         used for transferring the details layout but could also be used for
1236         transferring the list layout.
1237
1238 2011-05-27  Ben Konrath  <ben@bagu.org>
1239
1240         Reset the AuthenticationPopup when clearing the ListView.
1241
1242         * src/main/java/org/glom/web/client/activity/ListActivity.java:
1243
1244 2011-05-27  Ben Konrath  <ben@bagu.org>
1245
1246         Fix problem with onlineglom.properties file loading.
1247
1248         The old way worked in Eclipse but not on the server. Loading the
1249         onlineglom.properties file now works in Eclipse and on the server.
1250
1251         * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java:
1252
1253 2011-05-24  Ben Konrath  <ben@bagu.org>
1254
1255         Update gwt-log from 3.1.0 to 3.1.2.
1256
1257         Gwt-log 3.1.0 has been marked as depreciated.
1258
1259         * pom.xml:
1260
1261 2011-05-24  Ben Konrath  <ben@bagu.org>
1262
1263         Add comment to ListActivity.goTo() method.
1264
1265         * src/main/java/org/glom/web/client/activity/ListActivity.java:
1266
1267 2011-05-24  Ben Konrath  <ben@bagu.org>
1268
1269         Remove FIXME in convertGdkColorToHtmlColour()
1270
1271         The Gdk::Color value returned by libglom is 16-bits per channel on both
1272         64 and 32-bit platforms.
1273
1274         * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java:
1275
1276 2011-05-19  Ben Konrath  <ben@bagu.org>
1277
1278         Improve performance of initial ListView load.
1279
1280         I removed a round trip to the server for getting the default table name
1281         and then requesting information about that table. This also removes a potential
1282         problem with the table change handler not being setup in time to receive the
1283         table change event from the ListActivity.
1284
1285         * src/main/java/org/glom/web/client/OnlineGlomService.java:
1286         * src/main/java/org/glom/web/client/OnlineGlomServiceAsync.java: Add
1287         getDefaultLayoutListTable() method. Improve comments.
1288         * src/main/java/org/glom/web/client/activity/ListActivity.java: Use
1289         getDefaultLayoutListTable() method instead of firing a table change
1290         event to get the table to load.
1291         * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java: Add
1292         implementation of getDefaultLayoutListTable() method.
1293         * src/main/java/org/glom/web/shared/LayoutListTable.java: Add field for
1294         table name.
1295
1296 2011-05-19  Ben Konrath  <ben@bagu.org>
1297
1298         Override toDebugString() in TableChangeEvent.
1299
1300         This is useful to have for debugging.
1301
1302         * src/main/java/org/glom/web/client/event/TableChangeEvent.java:
1303
1304 2011-05-19  Ben Konrath  <ben@bagu.org>
1305
1306         Add a "Back to List" link when at the DetailsPlace.
1307
1308         * src/main/java/org/glom/web/client/activity/ListActivity.java:
1309         Populate the CellTable based on the selected table of the ListBox if
1310         it's set otherwise use the default table. This allows the "Back to
1311         List" link to work.
1312         * src/main/java/org/glom/web/client/activity/TableSelectionActivity.java:
1313         Remove Place from constructors. Add a setPlace() method. Add
1314         goToPlace() method. Set class as presenter for TableSelectionView.
1315         * src/main/java/org/glom/web/client/mvp/TableSelectionActivityMapper.java:
1316         Use the same TableSelectionActivity when switching between the List and
1317         Details Places.
1318         * src/main/java/org/glom/web/client/place/DetailsPlace.java:
1319         Subclass the new HasSelectableTablePlace. This removes some duplicate
1320         code.
1321         * src/main/java/org/glom/web/client/place/HasSelectableTablePlace.java:
1322         New class to represent Places that display the TableSelectionView.
1323         * src/main/java/org/glom/web/client/place/ListPlace.java:
1324         Subclass the new HasSelectableTablePlace. This removes some duplicate
1325         code.
1326         * src/main/java/org/glom/web/client/ui/TableSelectionView.java:
1327         * src/main/java/org/glom/web/client/ui/TableSelectionViewImpl.java:
1328         Add Presenter interface. Add setBackLinkVisible() method. Add
1329         setBackLink() method.
1330
1331 2011-05-18  Ben Konrath  <ben@bagu.org>
1332
1333         Enable the "Details" buttons.
1334
1335         Right now only an empty details view is displayed.
1336
1337         * src/main/java/org/glom/web/client/ClientFactory.java:
1338         * src/main/java/org/glom/web/client/ClientFactoryImpl.java:
1339         Add DetailsView to ClientFactory.
1340         * src/main/java/org/glom/web/client/activity/DetailsActivity.java:
1341         A basic activity for the details view.
1342         * src/main/java/org/glom/web/client/activity/TableSelectionActivity.java:
1343         Add a new constructor that takes a DetailsPlace. Rename shutdown() to
1344         clearView().
1345         * src/main/java/org/glom/web/client/mvp/AppPlaceHistoryMapper.java:
1346         Add DetailsPlace.Tokenizer to the list of tokens that are generated by
1347         GWT.
1348         * src/main/java/org/glom/web/client/mvp/DataActivityMapper.java:
1349         Create a new DetailsActivity when a DetailsPlace is requested. Remove
1350         unnecessary super() in constructor.
1351         * src/main/java/org/glom/web/client/mvp/TableSelectionActivityMapper.java:
1352         Create a new TableSelectionActivity when a DetailsPlace is requested. We
1353         really shouldn't create a new TableSelectionActivity for both the ListPlace
1354         and the DetailsPlace so this should be considered a temporary solution.
1355         * src/main/java/org/glom/web/client/place/DetailsPlace.java:
1356         New file. Represents a URL for the details view.
1357         * src/main/java/org/glom/web/client/ui/DetailsView.java:
1358         * src/main/java/org/glom/web/client/ui/DetailsViewImpl.java:
1359         A basic details view interface and implementation.
1360         * src/main/java/org/glom/web/client/ui/ListViewImpl.java:
1361         Enable the "Details" buttons.
1362
1363 2011-05-12  Ben Konrath  <ben@bagu.org>
1364
1365         Use a LayoutPanel with multiple display areas for main layout.
1366
1367         This is mostly a refactor in that there are no changes from the user
1368         point of view. These changes are required so that we can swap out the list view
1369         with the details view when the user clicks the "Details" button.
1370
1371         * src/main/java/org/glom/web/client/ClientFactory.java:
1372         * src/main/java/org/glom/web/client/ClientFactoryImpl.java: Remove
1373         OnlineGlomView. Add TableSelectionView, ListView and
1374         AuthenticationPopup.
1375         * src/main/java/org/glom/web/client/OnlineGlom.java: Use LayoutPanel
1376         for main layout. Add display regions for main activities. Add
1377         activity manager for for main activities.
1378         * src/main/java/org/glom/web/client/activity/ListActivity.java: New
1379         file from parts of the deleted OnlineGlomActivity.
1380         * src/main/java/org/glom/web/client/activity/TableSelectionActivity.java:
1381         New file from parts of the deleted OnlineGlomActivity.
1382         * src/main/java/org/glom/web/client/event/TableChangeEvent.java:
1383         * src/main/java/org/glom/web/client/event/TableChangeEventHandler.java:
1384         New files for app wide table change event.
1385         * src/main/java/org/glom/web/client/mvp/DataActivityMapper.java:
1386         * src/main/java/org/glom/web/client/mvp/DocumentSelectionActivityMapper.java:
1387         * src/main/java/org/glom/web/client/mvp/TableSelectionActivityMapper.java:
1388         Activity mappers for the main activities replace the deleted app-wide
1389         AppActivityMapper.
1390         * src/main/java/org/glom/web/client/ui/AuthenticationPopup.java:
1391         Fix a spelling error in he comment.
1392         * src/main/java/org/glom/web/client/ui/ListView.java:
1393         * src/main/java/org/glom/web/client/ui/ListViewImpl.java:
1394         Renamed from LayoutListView and modified for MVP. This still not a
1395         proper dumb view as prescribed by the MVP pattern but it works for now.
1396         * src/main/java/org/glom/web/client/ui/TableSelectionView.java:
1397         * src/main/java/org/glom/web/client/ui/TableSelectionViewImpl.java:
1398         New widget stripped out of the deleted OnlineGlomView.
1399         * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java:
1400         Remove hack that is fixed by this patch.
1401
1402 2011-05-06  Ben Konrath  <ben@bagu.org>
1403
1404         Rename OnlineGlomPlace to ListPlace.
1405
1406         The only change besides the rename is that url will now display #list
1407         instead of #Document.
1408
1409         * src/main/java/org/glom/web/client/activity/OnlineGlomActivity.java:
1410         * src/main/java/org/glom/web/client/mvp/AppActivityMapper.java:
1411         * src/main/java/org/glom/web/client/mvp/AppPlaceHistoryMapper.java:
1412         * src/main/java/org/glom/web/client/place/ListPlace.java:
1413         * src/main/java/org/glom/web/client/ui/DocumentSelectionViewImpl.java:
1414
1415 2011-05-06  Ben Konrath  <ben@bagu.org>
1416
1417         Use Presenter for app navigation.
1418
1419         This is the proper way to deal with Place (URL) changes with the MVP
1420         framework.
1421
1422         * src/main/java/org/glom/web/client/ClientFactory.java:
1423         * src/main/java/org/glom/web/client/ClientFactoryImpl.java: Remove
1424         PlaceHistoryMapper and PlaceHistoryHandler.
1425         * src/main/java/org/glom/web/client/OnlineGlom.java: Re-add
1426         PlaceHistoryMapper and PlaceHistoryHandler.
1427         * src/main/java/org/glom/web/client/activity/DocumentSelectionActivity.java:
1428         Don't use getHistoryMapper().getToken(place) to create the hyperlinks.
1429         * src/main/java/org/glom/web/client/ui/DocumentSelectionView.java:
1430         * src/main/java/org/glom/web/client/ui/DocumentSelectionViewImpl.java:
1431         Add Presenter interface and setPresenter methods. Rename addHyperLink
1432         to addDocumentLink taking only the document title as a parameter.
1433
1434 2011-04-14  Ben Konrath  <ben@bagu.org>
1435
1436         Prompt for db username/password if they haven't been set.
1437
1438         This is implemented with a popup widget that is contained within the
1439         OnlineGlomView and managed by the OnlineGlomActivity.
1440
1441         * src/main/java/org/glom/web/client/OnlineGlomService.java: Two new
1442         methods for checking and setting the database username and password.
1443         * src/main/java/org/glom/web/client/OnlineGlomServiceAsync.java: Two
1444         new methods for checking and setting the database username and
1445         password.
1446         * src/main/java/org/glom/web/client/activity/OnlineGlomActivity.java:
1447         Display authentication popup if the JDBC connection to the database
1448         has not been authenticated.
1449         * src/main/java/org/glom/web/client/ui/AuthenticationPopup.java: New
1450         file.
1451         * src/main/java/org/glom/web/client/ui/OnlineGlomView.java: Add methods
1452         for dealing with the authentication popup.
1453         * src/main/java/org/glom/web/client/ui/OnlineGlomViewImpl.java:
1454         Implement the methods for dealing with the authentication popup.
1455         * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java: Don't
1456         try to executed queries if the database connection hasn't been
1457         authenticated. Implement methods for checking and setting the
1458         database username and password.
1459
1460 2011-04-12  Ben Konrath  <ben@bagu.org>
1461
1462         Make log messages a little clearer.
1463
1464         Add a dash betweeen the document title and the table name.
1465
1466         * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java:
1467
1468 2011-04-12  Ben Konrath  <ben@bagu.org>
1469
1470         Protect against NPEs when cleaning up database resources.
1471
1472         While this isn't strictly necessary because the exception is caught,
1473         not protecting against the NPEs makes it harder to find the real error
1474         in the log file.
1475
1476         * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java:
1477
1478 2011-04-12  Ben Konrath  <ben@bagu.org>
1479
1480         Move configuration of the servlet to the constructor.
1481
1482         The servlet will be initialized even if the database authentication
1483         information is not set or correct. I still need to add the UI for prompting
1484         the user for the authentication information when it's required.
1485
1486         * src/main/java/org/glom/web/client/OnlineGlomService.java: Add
1487         javadocs for getDocumentTitles() method.
1488         * src/main/java/org/glom/web/client/activity/DocumentSelectionActivity.java:
1489         Set error message when RPC fails.
1490         * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java: Get the
1491         glom files directory from the configuration file. Try to set the
1492         database authentication information for the specific document if it's
1493         set and works otherwise try to use the global authentication
1494         information set for the directory.
1495         * src/main/resources/onlineglom.properties: Moved from
1496         src/main/webapp/WEB-INF/OnlineGlom.properties. Updated with new keys.
1497         Added detailed comments for the new keys.
1498
1499 2011-04-11  Ben Konrath  <ben@bagu.org>
1500
1501         Remove unnecessary @Override in DocumentSelectionViewImpl.
1502
1503         * src/main/java/org/glom/web/client/ui/DocumentSelectionViewImpl.java:
1504
1505 2011-04-11  Ben Konrath  <ben@bagu.org>
1506
1507         Remove center alignment in DocumentSelectionView.
1508
1509         The title element is still centred but the document titles and bottom
1510         sentence are both left-aligned.
1511
1512         * src/main/java/org/glom/web/client/ui/DocumentSelectionViewImpl.ui.xml:
1513
1514 2011-04-11  Ben Konrath  <ben@bagu.org>
1515
1516         Change 'Demo' naming convention to 'Document'.
1517
1518         This is just a rename refactor with no functional changes to the code.
1519
1520         * src/main/java/org/glom/web/client/ClientFactory.java:
1521         * src/main/java/org/glom/web/client/ClientFactoryImpl.java:
1522         * src/main/java/org/glom/web/client/OnlineGlom.java:
1523         * src/main/java/org/glom/web/client/OnlineGlomService.java:
1524         * src/main/java/org/glom/web/client/OnlineGlomServiceAsync.java:
1525         * src/main/java/org/glom/web/client/activity/DocumentSelectionActivity.java:
1526         * src/main/java/org/glom/web/client/mvp/AppActivityMapper.java:
1527         * src/main/java/org/glom/web/client/mvp/AppPlaceHistoryMapper.java:
1528         * src/main/java/org/glom/web/client/place/DocumentSelectionPlace.java:
1529         * src/main/java/org/glom/web/client/ui/DocumentSelectionView.java:
1530         * src/main/java/org/glom/web/client/ui/DocumentSelectionViewImpl.java:
1531         * src/main/java/org/glom/web/client/ui/DocumentSelectionViewImpl.ui.xml:
1532         * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java:
1533
1534 2011-04-08  Ben Konrath  <ben@bagu.org>
1535
1536         Remove FIXME from safeLongToInt() method.
1537
1538         Libglom uses longs on 32-bit and 64-bit platforms so it's ok to use
1539         this method.
1540
1541         * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java:
1542
1543 2011-04-08  Ben Konrath  <ben@bagu.org>
1544
1545         Display an error if no glom documents are found in the specified directory.
1546
1547         * src/main/java/org/glom/web/client/activity/DemoSelectionActivity.java:
1548         * src/main/java/org/glom/web/client/ui/DemoSelectionView.java:
1549         * src/main/java/org/glom/web/client/ui/DemoSelectionViewImpl.java:
1550         * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java:
1551
1552 2011-04-08  Ben Konrath  <ben@bagu.org>
1553
1554         Add copyright header to one more file ... oops.
1555
1556         * src/main/java/org/glom/web/client/OnlineGlomServiceAsync.java:
1557
1558 2011-04-08  Ben Konrath  <ben@bagu.org>
1559
1560         Add copyright header to files without it.
1561
1562         * src/main/java/org/glom/web/client/activity/DemoSelectionActivity.java:
1563         * src/main/java/org/glom/web/client/place/DemoSelectionPlace.java:
1564         * src/main/java/org/glom/web/client/ui/DemoSelectionView.java:
1565         * src/main/java/org/glom/web/client/ui/DemoSelectionViewImpl.java:
1566         * src/main/java/org/glom/web/shared/ColumnInfo.java:
1567         * src/main/java/org/glom/web/shared/GlomField.java:
1568
1569 2011-04-08  Ben Konrath  <ben@bagu.org>
1570
1571         Add support for accessing multiple glom documents in the servlet.
1572
1573         This completes the demo selection functionality.
1574
1575         * src/main/java/org/glom/web/client/OnlineGlomService.java: Add
1576         document title to methods.
1577         * src/main/java/org/glom/web/client/OnlineGlomServiceAsync.java: Add
1578         document title to methods.
1579         * src/main/java/org/glom/web/client/activity/DemoSelectionActivity.java:
1580         Set browser window title when the activity starts. Correct name of
1581         document title variable.
1582         * src/main/java/org/glom/web/client/activity/OnlineGlomActivity.java:
1583         Set browser window title when the activity starts. Set the table
1584         selector change handler after table selector has been set. Clear the
1585         OnlineGlomView when the activity has been stopped.
1586         * src/main/java/org/glom/web/client/place/OnlineGlomPlace.java: Use the
1587         document title as the place token. Use "#Document:" instead of
1588         "#OnlineGlomPlace:" in the URL.
1589         * src/main/java/org/glom/web/client/ui/DemoSelectionViewImpl.ui.xml:
1590         Change heading to "Online Glom"
1591         * src/main/java/org/glom/web/client/ui/LayoutListView.java: Use
1592         document title in RPC methods.
1593         * src/main/java/org/glom/web/client/ui/OnlineGlomView.java: Remove
1594         setDocumentTitle() method. Add clear() method.
1595         * src/main/java/org/glom/web/client/ui/OnlineGlomViewImpl.java: Remove
1596         setDocumentTitle() method. Implement clear() method which removes the
1597         change handler on the ListBox, clears the ListBox and clears the
1598         DataPanel.
1599         * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java:
1600         Implement methods with document title. Keep track for the configured
1601         glom documents and their corresponding JDBC configurations in a hash
1602         table. This information is retrieved using the document title as the
1603         key in the hash table.
1604         * src/main/java/org/glom/web/shared/GlomDocument.java: Remove
1605         document title field as it's no longer needed.
1606
1607 2011-04-08  Ben Konrath  <ben@bagu.org>
1608
1609         Update the Eclipse JDT configuration.
1610
1611         * .settings/org.eclipse.jdt.ui.prefs: Automatically add comments to new
1612         methods. Automatically add the copyright header to new files.
1613
1614 2011-04-05  Ben Konrath  <ben@bagu.org>
1615
1616         Add new page for demo selection.
1617
1618         This patch adds all the components required to view and start an
1619         OnlineGlom demo by clicking on the desired hyperlink. The user is
1620         able to return to the demo selection page with the browser's back
1621         button. I still need to modify the servlet to work with multiple
1622         documents so all demo links will load the file defined in the
1623         OnlineGlom.properties.
1624
1625         * .gitignore: Add .gwt which holds the error log for the GWT UiBuidler.
1626         This is only useful during development so we don't need to save it.
1627         * src/main/java/org/glom/web/client/ClientFactory.java: Add method to
1628         get a reference to the DemoSelectionView.
1629         * src/main/java/org/glom/web/client/ClientFactoryImpl.java: Implement
1630         method to get a reference to the DemoSelectionView.
1631         * src/main/java/org/glom/web/client/OnlineGlom.java: Change the
1632         default view to DemoSelectionView.
1633         * src/main/java/org/glom/web/client/OnlineGlomService.java: Add method
1634         to get glom document titles for glom files in a hard-coded directory.
1635         * src/main/java/org/glom/web/client/OnlineGlomServiceAsync.java: Add
1636         method to get glom document titles for glom files in a hard-coded
1637         directory.
1638         * src/main/java/org/glom/web/client/activity/DemoSelectionActivity.java:
1639         Presenter for DemoSelectionView.
1640         * src/main/java/org/glom/web/client/mvp/AppActivityMapper.java: Update
1641         for DemoSelectionView.
1642         * src/main/java/org/glom/web/client/mvp/AppPlaceHistoryMapper.java:
1643         Update for DemoSelectionView.
1644         * src/main/java/org/glom/web/client/place/DemoSelectionPlace.java:
1645         Basic 'Place' implementation for the DemoSelectionView.
1646         * src/main/java/org/glom/web/client/ui/DemoSelectionView.java:
1647         The interface for the DemoSelectionView.
1648         * src/main/java/org/glom/web/client/ui/DemoSelectionViewImpl.java:
1649         The implementation of the DemoSelectionView.
1650         * src/main/java/org/glom/web/client/ui/DemoSelectionViewImpl.ui.xml:
1651         The GWT UiBuilder xml file used in DemoSelectionViewImpl.
1652         * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java: Add
1653         implementation of method to get glom document titles for glom files
1654         in a hard-coded directory.
1655         * src/main/webapp/OnlineGlom.html: Remove link to CSS file as it's
1656         on longer being used.
1657         * src/main/webapp/glom.png: Glom logo.
1658
1659 2011-04-05  Ben Konrath  <ben@bagu.org>
1660
1661         Move RPC code from OnlineGlomViewImpl to OnlineGlomActivity.
1662
1663         This is the forth and final commit of a refactor that will allow
1664         OnlineGlom to be used with multiple documents.
1665
1666         * src/main/java/org/glom/web/client/activity/OnlineGlomActivity.java:
1667         Move RPC code from OnlineGlomViewImpl to this class.
1668         * src/main/java/org/glom/web/client/ui/OnlineGlomView.java: Add methods
1669         to inferface.
1670         * src/main/java/org/glom/web/client/ui/OnlineGlomViewImpl.java: Move
1671         RPC code to the presenter class (the P in MVP).
1672
1673 2011-04-04  Ben Konrath  <ben@bagu.org>
1674
1675         Start moving the existing OnlineGlom code to MVP.
1676
1677         This work is based on the GWT MVP framework that is documented here:
1678
1679         https://code.google.com/webtoolkit/doc/2.2/DevGuideMvpActivitiesAndPlaces.html
1680
1681         This is the third commit of a refactor that will allow OnlineGlom to
1682         be used with multiple documents.
1683
1684         * src/main/java/org/glom/web/client/ClientFactory.java: New file.
1685         Interface for client factory which is used to get instances of various
1686         classes throughout the app.
1687         * src/main/java/org/glom/web/client/ClientFactoryImpl.java: New file.
1688         Implementation of client factory.
1689         * src/main/java/org/glom/web/client/OnlineGlom.java: Add code to
1690         initialize the MVP framework.
1691         * src/main/java/org/glom/web/client/activity/OnlineGlomActivity.java:
1692         New file. Activity manager for the main container widget. This is the
1693         Presenter in MVP.
1694         * src/main/java/org/glom/web/client/mvp/AppActivityMapper.java: New file.
1695         Maps place (URL) to its corresponding activity.
1696         * src/main/java/org/glom/web/client/mvp/AppPlaceHistoryMapper.java:
1697         New file. This is just a place holder for a generated file.
1698         * src/main/java/org/glom/web/client/place/OnlineGlomPlace.java:
1699         New file. Represents the URL for the main Online Glom app.
1700         * src/main/java/org/glom/web/client/ui/LayoutListView.java: Update
1701         for changes in LayoutListViewImpl.
1702         * src/main/java/org/glom/web/client/ui/OnlineGlomView.java: Create
1703         interface for View. Move code to OnlineGlomViewImpl class.
1704         * src/main/java/org/glom/web/client/ui/OnlineGlomViewImpl.java: New
1705         file. Implementation of OnlineGlomView.
1706         * src/main/resources/org/glom/web/OnlineGlom.gwt.xml: Add Activity and
1707         Place resources. Use ClientFactoryImpl by default.
1708
1709 2011-04-04  Ben Konrath  <ben@bagu.org>
1710
1711         Move View classes to their own package.
1712
1713         This is the second commit of a refactor that will allow OnlineGlom to
1714         be used with multiple documents.
1715
1716         * src/main/java/org/glom/web/client/OnlineGlom.java:
1717         * src/main/java/org/glom/web/client/ui/LayoutListView.java:
1718         * src/main/java/org/glom/web/client/ui/OnlineGlomView.java:
1719
1720 2011-04-02  Ben Konrath  <ben@bagu.org>
1721
1722         Move UI code from the main module to its own class.
1723
1724         This is the first commit of a refactor that will allow OnlineGlom to be
1725         used with multiple documents.
1726
1727         * src/main/java/org/glom/web/client/LayoutListView.java: Update
1728         references to OnlineGlom to OnlineGlomView.
1729         * src/main/java/org/glom/web/client/OnlineGlom.java: Move code to
1730         OnlineGlomView and instantiate it here.
1731         * src/main/java/org/glom/web/client/OnlineGlomView.java: New class that
1732         represents the main OnlineGlomView with one document.
1733
1734 2011-04-01  Ben Konrath  <ben@bagu.org>
1735
1736         Fix formatting of gwt.xml and add DTD.
1737
1738         * src/main/resources/org/glom/web/OnlineGlom.gwt.xml:
1739
1740 2011-03-30  Ben Konrath  <ben@bagu.org>
1741
1742         Propperly convert gdkColor string to html colour string.
1743
1744         * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java:
1745
1746 2011-03-28  Ben Konrath  <ben@bagu.org>
1747
1748         Change implementation of OnlineGlomServiceImpl.getColumnInfoHorizontalAlignment().
1749
1750         This implementation matches
1751         OnlineGlomServiceImpl.getColumnInfoGlomFieldType(), should perform better, is more
1752         readable and is not tied to Swig.
1753
1754         * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java:
1755
1756 2011-03-28  Ben Konrath  <ben@bagu.org>
1757
1758         Use read-only checkboxes for boolean field types.
1759
1760         * src/main/java/org/glom/web/client/LayoutListView.java: Create columns
1761         in the CellTable based on the field type. It currently only
1762         distinguishes between boolean and text columns but I'll need to add
1763         support for more types.
1764         * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java: Set the
1765         column type in the ColumnInfo object. Add method to convert between the
1766         glom field type enum in ColumnInfo and the glom field type in libglom.
1767         * src/main/java/org/glom/web/shared/ColumnInfo.java: Add support for
1768         field type.
1769         * src/main/java/org/glom/web/shared/GlomField.java: Add support for
1770         getting and setting booleans.
1771
1772 2011-03-25  Ben Konrath  <ben@bagu.org>
1773
1774         Don't get the Date twice from the ResultSet.
1775
1776         * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java:
1777
1778 2011-03-25  Ben Konrath  <ben@bagu.org>
1779
1780         Cleanup code in the servlet.
1781
1782         * TODO: Remove item about row count. Add item about testing row count
1783         query with large number of rows.
1784         * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java: Fix
1785         spelling mistakes, change method parameter to be consistent with
1786         other methods.
1787
1788 2011-03-25  Ben Konrath  <ben@bagu.org>
1789
1790         Add server side logging with the gwt-log library.
1791
1792         * .gitignore: Ignore the log file we're now producing.
1793         * TODO: Add a couple TODO item for logging.
1794         * pom.xml: Add gwt-log and log4j as a dependency.
1795         * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java: Add
1796         logging of errors, warnings and some important info.
1797         * src/main/resources/log4j.properties: New file to configure log4j.
1798
1799 2011-03-24  Ben Konrath  <ben@bagu.org>
1800
1801         Add a disable button for the Details view.
1802
1803         * src/main/java/org/glom/web/client/LayoutListView.java:
1804
1805 2011-03-22  Ben Konrath  <ben@bagu.org>
1806
1807         Use a count query to get the number of rows for the list view pager.
1808
1809         * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java:
1810
1811 2011-03-22  Ben Konrath  <ben@bagu.org>
1812
1813         Add more TODO information about CellTable pager positioning. 
1814
1815         * TODO:
1816
1817 2011-03-19  Ben Konrath  <ben@bagu.org>
1818
1819         Add TODO item about CellTable pager positioning.
1820
1821         * TODO:
1822
1823 2011-03-18  Ben Konrath  <ben@bagu.org>
1824
1825         Remove unneeded GlomFieldColumn class.
1826
1827         This is just a small code cleanup.
1828
1829         * src/main/java/org/glom/web/client/LayoutListView.java:
1830
1831 2011-03-18  Ben Konrath  <ben@bagu.org>
1832
1833         Use cursor mode in the query that gets data for the list view.
1834
1835         I still need to fix the potential memory problem when getting the row
1836         count for the list view.
1837
1838         * TODO: Add note about testing memory usage with large data sets. Add
1839         item about fixing row counting with large data sets.
1840         * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java: Put the
1841         PostgreSQL JDBC driver into cursor mode when getting data for the
1842         list view.
1843
1844 2011-03-15  Ben Konrath  <ben@bagu.org>
1845
1846         Remove the GWT Container from the Eclipse build classpath.
1847
1848         The GWT dependencies are set by Maven so this isn't needed.
1849
1850         * .classpath:
1851
1852 2011-03-15  Murray Cumming  <murrayc@murrayc.com>
1853
1854         Added some earlier mockups to git, but not to the tarball dist.
1855
1856         * mockups/: Added some mockups from 2010-02 by Daniel Borgmann for
1857         Openismus. These hopefully show how we might structure the HTML so that
1858         it can be styled easily with CSS. However, we probably need to adapt them
1859         for the CSS structure that GWT dictates for common widgets.
1860
1861 2011-03-14  Ben Konrath  <ben@bagu.org>
1862
1863         Locate OnlineGlom.properties using the ServletContext.
1864
1865         This is required to be able to locate the file in the deployed servlet.
1866
1867         * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java:
1868         Configure the database and glom document in in a helper method so
1869         that the ServletContext can be used to locate OnlineGlom.properties.
1870         * src/main/webapp/WEB-INF/OnlineGlom.properties: Moved from
1871         src/main/webapp. This is the proper location for .properites files.
1872
1873 2011-03-12  Ben Konrath  <ben@bagu.org>
1874
1875         Add note to README about why we're compiling down to obfuscated JavaScript.
1876
1877         * README:
1878
1879 2011-03-11  Ben Konrath  <ben@bagu.org>
1880
1881         Use properties file to configure servlet.
1882
1883         This allows people to change the glom file path, db username and db
1884         password without recompiling the code.
1885
1886         * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java:
1887         * src/main/webapp/OnlineGlom.properties:
1888
1889 2011-03-11  Ben Konrath  <ben@bagu.org>
1890
1891         Use table fields in layout list view if the layout list is not defined.
1892
1893         * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java:
1894         Manually create a LayoutFieldVector for the query builder using the
1895         table fields when a layout list is not defined in the glom file.
1896
1897 2011-03-11  Ben Konrath  <ben@bagu.org>
1898
1899         Only show FIXME string for images when there's an image.
1900
1901         * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java: Also included
1902         in this change are some small code cleanups.
1903
1904 2011-03-11  Ben Konrath  <ben@bagu.org>
1905
1906         Set text for fields with TYPE_IMAGE and TYPE_INVALID to avoid NPEs.
1907
1908         * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java:
1909
1910 2011-03-11  Ben Konrath  <ben@bagu.org>
1911
1912         Correctly set the index of the default table.
1913
1914         * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java:
1915         Correctly set the index of the default table. Add commented out example
1916         file paths.
1917
1918 2011-03-10  Ben Konrath  <ben@bagu.org>
1919
1920         Add comment to pom.xml about the previous change.
1921
1922         * pom.xml: Add comment about the deployment issue so that it's obvious
1923         why java-libglom is set to the provided scope.
1924
1925 2011-03-10  Ben Konrath  <ben@bagu.org>
1926
1927         Change java-libglom dependency from compile to provided in pom.xml.
1928
1929         Since java-libglom uses jni it can only be loaded once and therefore
1930         must be placed in $CATALINA_HOME/lib and not included in each war.
1931         This directory is defined as /usr/share/tomcat6/lib/ on Ubuntu 10.04.
1932         More information about this issue can be found in the Tomcat 6 release
1933         notes in the "JNI Based Applications" section:
1934
1935         http://tomcat.apache.org/tomcat-6.0-doc/RELEASE-NOTES.txt
1936
1937         * README: Remove note about this issue. Deployment info should really
1938         be on the wiki anyway so I'll add it right now.
1939         * pom.xml: Change java-libglom dependency from compile to provided so
1940         that it's copied in to the packaged war.
1941
1942 2011-03-09  Ben Konrath  <ben@bagu.org>
1943
1944         Change to using a neutral locale for currency, date and time formatting.
1945
1946         This solves the problem of currency values being represented without a
1947         space between the currency code and the number (e.g. "EUR5.89" is now
1948         represented as "EUR 5.89"). More work is required when we implement
1949         a locale preference setting.
1950
1951         * TODO: Add note about currency formatting issues with different
1952         locales.
1953         * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java: Change
1954         to using the neutral ROOT locale.
1955
1956 2011-03-09  Ben Konrath  <ben@bagu.org>
1957
1958         Add support for currency codes that are not ISO 4217 codes.
1959
1960         * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java: Use
1961         the currency code defined in the glom file when it's not 3 characters
1962         long or when Java doesn't recognize the string as an ISO 4217 code.
1963
1964 2011-03-08  Ben Konrath  <ben@bagu.org>
1965
1966         Remove test classes, launch configurations and configuration.
1967
1968         The test stuff was getting in the way when creating the war. To make
1969         the war file you can now do 'mvn clean package'. The packaged war file
1970         will be in the target directory.
1971
1972         * .classpath: Remove unused classpathentry for tests and i18n.
1973         * pom.xml: Remove junit.jar dependency. Properly use gwt.version
1974         property. Don't run test or i18n goals when packaging the war.
1975         * src/main/webapp/WEB-INF/web.xml: Add xml name space. Correct
1976         formatting.
1977
1978         Removed files:
1979
1980         * OnlineGlomTest-dev.launch:
1981         * OnlineGlomTest-prod.launch:
1982         * src/test/java/org/glom/web/client/GwtTestOnlineGlom.java:
1983         * src/test/resources/org/glom/web/OnlineGlomJUnit.gwt.xml:
1984
1985 2011-03-07  Ben Konrath  <ben@bagu.org>
1986
1987         Update gwt-maven plugin to 2.2.0 and fix other configuation problems.
1988
1989         These fixes allow me to use 'mvn deploy' to create the war file.
1990
1991         * .classpath: This generated config has been updated by Eclipse. This
1992         change was probably triggered by me updating from Eclipse 3.6.1 to
1993         3.6.2.
1994         * .gitignore: Add entry to ignore the directory
1995         src/main/webapp/WEB-INF/deploy. This directory is generated by Eclipse.
1996         * .project: The generated config has been updated by Eclipse. This
1997         change was probably triggered by me updating from Eclipse 3.6.1 to
1998         3.6.2.
1999         * .settings/com.google.appengine.eclipse.core.prefs: Add empty config
2000         so that Eclipse doesn't complain
2001         * pom.xml: Update to gwt-maven-plugin 2.2.0.
2002         * src/test/java/org/glom/web/client/GwtTestOnlineGlom.java: Move from
2003         'tests' directory to 'client' directory. This is the new
2004         gwt-maven-plugin convension.
2005         * src/test/resources/org/glom/web/OnlineGlomJUnit.gwt.xml: Correctly
2006         refer to org.glom.web.OnlineGlom gwt module and OnlineGlomServiceImpl.
2007
2008 2011-03-07  Ben Konrath  <ben@bagu.org>
2009
2010         Add support for horizontal alignment in the LayoutList columns.
2011
2012         * TODO: Remove item about horizontal alignment. Add item about
2013         improvements to ColumnInfo.
2014         * src/main/java/org/glom/web/client/LayoutListView.java: Set horizontal
2015         alignment on the columns. Use ColumnInfo RPC object get the column
2016         title and horizontal alignment.
2017         * src/main/java/org/glom/web/client/OnlineGlom.java: Update
2018         LayoutListView creation with ColumnInfo RPC object.
2019         * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java: Create
2020         a ColumnInfo object for every LayoutList columnn. Convert the
2021         FieldFormatting.HorizontalAlignment to the correct
2022         ColumnnInfo.HorizontatlAlignment with the new
2023         getColumnInfoHorizontalAlignment helper method.
2024         * src/main/java/org/glom/web/shared/ColumnInfo.java: New RPC object
2025         to encapsulate column information like alignment and title. This
2026         could be used to set the colour instead of on a per cell field basis.
2027         * src/main/java/org/glom/web/shared/LayoutListTable.java: Replace
2028         column title storage and retrieval with ColumnInfo.
2029
2030 2011-03-04  Ben Konrath  <ben@bagu.org>
2031
2032         Add support for column sorting.
2033
2034         * src/main/java/org/glom/web/client/LayoutListView.java: Change
2035         AsynDataProvider to be an anonymous inner class. Use new
2036         getSortedTableData RPC method when column sort is requested. Set all
2037         columns sortable and add an AsyncHandler to activate sorting in the
2038         AsyncDataProvider.
2039         * src/main/java/org/glom/web/client/OnlineGlomService.java: Add new
2040         method getSortedTableData(). Cleanup other method signatures.
2041         * src/main/java/org/glom/web/client/OnlineGlomServiceAsync.java: Add
2042         new method getSortedTableData(). Cleanup other method signatures.
2043         * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java:
2044         Implement getSortedTableData() and getTableData() methods by using a
2045         private helper method with the appropriate parameters filled in. Use
2046         user supplied sort clause when supplied, otherwise fall back to
2047         sorting by the primary key. Move destroy() method to be underneath
2048         constructor for readability.  Cleanup comments.
2049
2050 2011-03-03  Ben Konrath  <ben@bagu.org>
2051
2052         Add support for colour text and colour backgrounds to the layout list cells.
2053
2054         Only the cell backgrounds are coloured which leaves a gap between the
2055         cells that isn't coloured. I need to figure out a way to set
2056         'style=background-colour:' on the whole column rather than just the
2057         cell.
2058
2059         * TODO: Add a note about colouring the background of the whole column.
2060         * src/main/java/org/glom/web/client/LayoutListView.java: Add a custom
2061         column type (GlomFieldColumn) and a custom cell type (GlomFieldCell) to
2062         render the coloured text and backgrounds. Use GlomField[] for the row type.
2063         * src/main/java/org/glom/web/client/OnlineGlomService.java: Use GlomField[]
2064         for the row type.
2065         * src/main/java/org/glom/web/client/OnlineGlomServiceAsync.java: Use
2066         GlomField[] for the row type.
2067         * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java: Use
2068         GlomField[] for the row type. Set the text, text colour and background
2069         colour in the GlomField objects as specified in the glom document. Add
2070         method to convert from Gdk::Color to HTML colour string. Cleanup comments.
2071         * src/main/java/org/glom/web/shared/GlomField.java: New file to encapulate
2072         the glom field text, foreground colour and background colour.
2073
2074 2011-03-02  Ben Konrath  <ben@bagu.org>
2075
2076         Don't display hidden tables in the combo box.
2077
2078         * src/main/java/org/glom/web/client/OnlineGlom.java: Update code to use
2079         ArrayLists.
2080         * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java: Add
2081         code to ignore hidden tables using ArrayLists for the table names and
2082         titles.
2083         * src/main/java/org/glom/web/shared/GlomDocument.java: Change tableTitles and
2084         tableNames to use ArrayLists instead of String[]. Update getter and setter
2085         methods.
2086
2087 2011-03-01  Ben Konrath  <ben@bagu.org>
2088
2089         Add support for Date and Time number types.
2090
2091         * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java:
2092         Implement formatting for Date and Time values. Change the default glom
2093         file to small business example.
2094
2095 2011-03-01  Ben Konrath  <ben@bagu.org>
2096
2097         Add support for formatting glom types as specified in the glom file.
2098
2099         Formatting isn't finished yet - I still need to add support for Date
2100         and Time values.
2101
2102         * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java: Add
2103         formatting support for TYPE_TEXT, TYPE_BOOLEAN and TYPE_NUMERIC. Remove
2104         checks for null values in JDBC cleanup code and catch all exceptions
2105         instead of just SQLExceptions.
2106         * src/main/java/org/glom/web/shared/LayoutListTable.java: Fix incorrect
2107         method name.
2108
2109 2011-03-01  Ben Konrath  <ben@bagu.org>
2110
2111         Use GWT 2.2.0 instead of 2.1.1.
2112
2113         * pom.xml: Change GWT version numbers.
2114
2115 2011-03-01  Ben Konrath  <ben@bagu.org>
2116
2117         A few small code cleanups.
2118
2119         * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java: Remove
2120         duplicate for loop.
2121         * src/main/java/org/glom/web/shared/GlomDocument.java: Remove
2122         unnecessary object creation in constructor.
2123         * src/main/java/org/glom/web/shared/LayoutListTable.java: Remove
2124         unnecessary object creation in constructor.
2125
2126 2011-02-28  Ben Konrath  <ben@bagu.org>
2127
2128         Add file for TODO list.
2129
2130         * TODO: New file.
2131
2132 2011-02-18  Ben Konrath  <ben@bagu.org>
2133
2134         Enable the CellTable Pager when more than 20 rows need to be viewed.
2135
2136         The Pager will automatically become active when the results are larger
2137         than the CellTable size which is currently set to 20 lines.
2138
2139         * src/main/java/org/glom/web/client/LayoutListView.java: Correct class
2140         name on debug statment in RPC call in LayoutListDataProvider, add
2141         numRows parameter to LayoutListView constructor, propperly set rowCount
2142         in CellTable.
2143         * src/main/java/org/glom/web/client/OnlineGlom.java: Correct class
2144         name on debug statment in RPC call, use LayoutListTable object in RPC
2145         calls, pass rowCount to LayoutListView.
2146         * src/main/java/org/glom/web/client/OnlineGlomService.java: Change
2147         getLayoutListHeaders to getLayoutListTable and return LayoutListTable
2148         object.
2149         * src/main/java/org/glom/web/client/OnlineGlomServiceAsync.java: Update
2150         interface for changes in OnlineGlomService.
2151         * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java: Change
2152         getLayoutListHeaders() to getLayoutListTable() and return
2153         LayoutListTable. Using this object allows me to pass other information
2154         about the LayoutList like the expected number of rows in the result set.
2155         The Connection object from the connection pool is now propperly closed.
2156         Only the requested number of lines are returned to the client in
2157         getTableData().
2158         * src/main/java/org/glom/web/shared/LayoutListTable.java: Move from
2159         GlomTable and add columnTitles and numRows.
2160
2161 2011-02-18  Ben Konrath  <ben@bagu.org>
2162
2163         Use String arrays instead of GlomTable objects in GlomDocument GWT-RPC object.
2164
2165         This is a small performance boost. I'll use GlomTable to get the required
2166         layoutlist information.
2167
2168         * src/main/java/org/glom/web/client/OnlineGlom.java:
2169         * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java:
2170         * src/main/java/org/glom/web/shared/GlomDocument.java:
2171
2172 2011-02-18  Ben Konrath  <ben@bagu.org>
2173
2174         Add option to turn off formatting in JDT formatter preferences.
2175
2176         * .settings/org.eclipse.jdt.core.prefs:
2177
2178 2011-02-18  Ben Konrath  <ben@bagu.org>
2179
2180         Rename LayoutList to LayoutListView.
2181
2182         I'm working towards setting things up to easily use MVP when the time
2183         comes.
2184
2185         * src/main/java/org/glom/web/client/LayoutListView.java: Rename from
2186         LayoutList.java.
2187         * src/main/java/org/glom/web/client/OnlineGlom.java: Update
2188         references.
2189
2190 2011-02-17  Ben Konrath  <ben@bagu.org>
2191
2192         Move LayoutListDataProvider class into LayoutList.java.
2193
2194         * src/main/java/org/glom/web/client/LayoutList.java:
2195
2196 2011-02-17  Ben Konrath  <ben@bagu.org>
2197
2198         Rename RPC service classes from LibGlomService* to OnlineGlomService*.
2199
2200         * src/main/java/org/glom/web/client/LayoutListDataProvider.java: Update
2201         references.
2202         * src/main/java/org/glom/web/client/OnlineGlom.java: Update references.
2203         * src/main/java/org/glom/web/client/OnlineGlomService.java: Rename
2204         from LibGlomServer.java.
2205         * src/main/java/org/glom/web/client/OnlineGlomServiceAsync.java:
2206         Rename from LibGlomServiceAsync.java.
2207         * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java:
2208         Rename from LibGlomServiceImpl.java.
2209         * src/main/webapp/WEB-INF/web.xml: Update configuration.
2210
2211 2011-02-17  Ben Konrath  <ben@bagu.org>
2212
2213         Update JDT settings.
2214
2215         * .settings/org.eclipse.jdt.core.prefs:
2216
2217 2011-02-17  Ben Konrath  <ben@bagu.org>
2218
2219         Move GWT-RPC objects to shared package (where they should be).
2220
2221         * src/main/java/org/glom/web/client/LibGlomService.java: Update imports.
2222         * src/main/java/org/glom/web/client/LibGlomServiceAsync.java: Update imports.
2223         * src/main/java/org/glom/web/client/OnlineGlom.java: Update imports.
2224         * src/main/java/org/glom/web/server/LibGlomServiceImpl.java: Update imports.
2225         * src/main/java/org/glom/web/shared/GlomDocument.java: Move to
2226         org.glom.web.shared package.
2227         * src/main/java/org/glom/web/shared/GlomTable.java: Move to
2228         org.glom.web.shared package.
2229         * src/main/resources/org/glom/web/OnlineGlom.gwt.xml: Included shared
2230         directory in compilation to javascript.
2231
2232 2011-02-16  Ben Konrath  <ben@bagu.org>
2233
2234         Add sort clause to the sql query that grabs table information.
2235
2236         * src/main/java/org/glom/web/server/LibGlomServiceImpl.java: Add sort clause
2237         if one of the columns is a primary key.
2238
2239 2011-02-16  Ben Konrath  <ben@bagu.org>
2240
2241         Disable generateAsync feature of gwt-maven.
2242
2243         The generated interface does not correctly match the methods in LibGlomService
2244         and the generated singleton Util inner-class doesn't respect the servlet
2245         mappings.
2246
2247         * pom.xml: Turn off generateAsync feature.
2248         * src/main/java/org/glom/web/client/LibGlomServiceAsync.java: Re-add file
2249         with singleton Util inner-class.
2250
2251 2011-02-14  Ben Konrath  <ben@bagu.org>
2252
2253         Add LGPL v3 licence notices.
2254
2255         Followed directions listed here:
2256         http://www.gnu.org/licenses/gpl-howto.html
2257
2258         * COPYING: This file is a copy of the GPL v3.
2259         * COPYING.LESSER: This file is a copy of the LGPL v3.
2260         * src/main/java/org/glom/web/client/GlomDocument.java: Add licence
2261         notice.
2262         * src/main/java/org/glom/web/client/GlomTable.java: Add licence
2263         notice.
2264         * src/main/java/org/glom/web/client/LayoutList.java: Add licence
2265         notice.
2266         * src/main/java/org/glom/web/client/LayoutListDataProvider.java: Add
2267         licence notice.
2268         * src/main/java/org/glom/web/client/LibGlomService.java: Add licence
2269         notice.
2270         * src/main/java/org/glom/web/client/OnlineGlom.java: Add licence
2271         notice.
2272         * src/main/java/org/glom/web/server/LibGlomServiceImpl.java: Add
2273         licence notice.
2274
2275 2011-02-14  Ben Konrath  <ben@bagu.org>
2276
2277         Use ArrayList instead of Array in GWT-RPC calls.
2278
2279         Apparently this gives a slight performance boost to the compiled
2280         java script.
2281
2282         * src/main/java/org/glom/web/client/LayoutListDataProvider.java: Use ArrayList
2283         instead of Array.
2284         * src/main/java/org/glom/web/client/LibGlomService.java: Use ArrayList instead
2285         of Array.
2286
2287 2011-02-14  Ben Konrath  <ben@bagu.org>
2288
2289         Access data from a postgres db rather than the example glom file.
2290
2291         * .settings/com.google.gwt.eclipse.core.prefs: Change GWT setting to
2292         compile down to obfuscated javascript.
2293         * pom.xml: Add c3p0 and postgres JDBC libraries.
2294         * src/main/java/org/glom/web/server/LibGlomServiceImpl.java: Return data
2295         using a postgres db accessed through the c3p0 connection pooling library.
2296
2297 2011-02-14  Ben Konrath  <ben@bagu.org>
2298
2299         Update Java formatter settings.
2300
2301         * .settings/org.eclipse.jdt.core.prefs: Change comment length to 120.
2302
2303 2011-02-02  Ben Konrath  <ben@bagu.org>
2304
2305         Update Eclipse and Maven configs to in preparation for the postgres JDBC jar.
2306
2307         * .classpath: Change JRE to Java 1.6, remove GWT configuration as we're now
2308         using Maven.
2309         * .settings/com.google.gwt.eclipse.core.prefs: Don't copy gwt-servlet.jar to
2310         the compiled webapp directory that Eclipse uses as we're using Maven now.
2311         * .settings/org.eclipse.jdt.core.prefs: Change target platform to Java 1.6.
2312         * .settings/org.eclipse.wst.common.project.facet.core.xml: Change Java version
2313         to 1.6.
2314         * pom.xml: Format file, change target Java version to 1.6.
2315
2316 2011-02-02  Ben Konrath  <ben@bagu.org>
2317
2318         Add information about a deployment related issue.
2319
2320         * README: Add Notes section with the problem outlined.
2321
2322 2011-02-02  Ben Konrath  <ben@bagu.org>
2323
2324         Call Glom.libglom_deinit() when the servlet is shutdown.
2325
2326         * src/main/java/org/glom/web/server/LibGlomServiceImpl.java: Add
2327         Glom.libglom_deinit() to destroy() method.
2328
2329 2011-01-28  Ben Konrath  <ben@bagu.org>
2330
2331         Use generated Util class to get the RPC Async interface.
2332
2333         * .settings/com.google.gwt.eclipse.core.prefs: Update generated Eclipse config
2334         file.
2335         * src/main/java/org/glom/web/client/LayoutListDataProvider.java: Use generated
2336         getInstance() method to get a reference to the RPC Async interface.
2337         * src/main/java/org/glom/web/client/OnlineGlom.java: Use generated
2338         getInstance() method to get a reference to the RPC Async interface, remove
2339         the now unused getLibGlomServiceProxy() method.
2340
2341 2011-01-27  Ben Konrath  <ben@bagu.org>
2342
2343         Cleanup ChangeLog entry from previous commit.
2344
2345         * ChangeLog: Group logical changes together and add comments.
2346
2347 2011-01-25  Ben Konrath  <ben@bagu.org>
2348
2349         Convert to gwt-maven project.
2350
2351         * .gitignore: Update for new project structure.
2352         * README: New file with a link to the online documentation.
2353         * pom.xml: The generated maven configuration file with some tweaks.
2354
2355         Add / update Eclipse settings. These files are a merge of the files that
2356         were generated with the gwt-maven plugin and the files we were previously
2357         using.
2358         * .classpath:
2359         * .project:
2360         * .settings/.jsdtscope:
2361         * .settings/com.google.gdt.eclipse.core.prefs:
2362         * .settings/com.google.gwt.eclipse.core.prefs:
2363         * .settings/org.eclipse.jdt.core.prefs:
2364         * .settings/org.eclipse.wst.common.component:
2365         * .settings/org.eclipse.wst.common.project.facet.core.xml:
2366         * .settings/org.eclipse.wst.jsdt.ui.superType.container:
2367         * .settings/org.maven.ide.eclipse.prefs:
2368         * OnlineGlomTest-dev.launch:
2369         * OnlineGlomTest-prod.launch:
2370
2371         Java source files moved from the 'src' directory to the directory structure
2372         required by maven.
2373         * src/main/java/org/glom/web/client/GlomDocument.java:
2374         * src/main/java/org/glom/web/client/GlomTable.java:
2375         * src/main/java/org/glom/web/client/LayoutList.java:
2376         * src/main/java/org/glom/web/client/LayoutListDataProvider.java:
2377         * src/main/java/org/glom/web/client/LibGlomService.java:
2378         * src/main/java/org/glom/web/client/OnlineGlom.java:
2379         * src/main/java/org/glom/web/server/LibGlomServiceImpl.java:
2380
2381         Non-functional property file used for translations. I included this as
2382         reminder that it's something I need to sort out.
2383         * src/main/resources/org/glom/web/client/Messages.properties:
2384
2385         The OnlineGlom GWT config file moved from the 'src/org/glom/web' directory.
2386         * src/main/resources/org/glom/web/OnlineGlom.gwt.xml:
2387
2388         The servlet configuration files moved from the 'war' directory.
2389         * src/main/webapp/OnlineGlom.css:
2390         * src/main/webapp/OnlineGlom.html:
2391         * src/main/webapp/WEB-INF/web.xml:
2392
2393         Generated test files with most of the code commented out. I included these
2394         so that it's easy to add tests when we're ready for them.
2395         * src/test/java/org/glom/web/tests/GwtTestOnlineGlom.java:
2396         * src/test/resources/org/glom/web/OnlineGlomJUnit.gwt.xml:
2397
2398 2011-01-25  Ben Konrath  <ben@bagu.org>
2399
2400         Remove unused println.
2401
2402         * src/org/glom/web/server/LibGlomServiceImpl.java:
2403
2404 2011-01-25  Ben Konrath  <ben@bagu.org>
2405
2406         Add project specific JDT settings.
2407
2408         * .settings/org.eclipse.jdt.core.prefs: Generated by Eclipse.
2409         * .settings/org.eclipse.jdt.ui.prefs: Generated by Eclipse.
2410
2411 2011-01-25  Ben Konrath  <ben@bagu.org>
2412
2413         Populate celltable with example data.
2414
2415         * src/org/glom/web/client/GlomDocument.java: Correct formatting.
2416         * src/org/glom/web/client/GlomTable.java: Correct formatting.
2417         * src/org/glom/web/client/LayoutList.java: Renamed from ListLayoutTable.java,
2418         add LayoutListDataProvider to CellTable, add simpler pager (not working yet).
2419         * src/org/glom/web/client/LayoutListDataProvider.java: New file,
2420         asynchronously gets the example data.
2421         * src/org/glom/web/client/LibGlomService.java: Add getTableData() method.
2422         * src/org/glom/web/client/LibGlomServiceAsync.java: Add getTableData() method.
2423         * src/org/glom/web/client/OnlineGlom.java: Allow service proxy object and
2424         curently selected table to be retrieved by other widgets.
2425         * src/org/glom/web/server/LibGlomServiceImpl.java: Correct formatting,
2426         implement getTableData() in a hacky way. This method needs to be updated
2427         to grab information from the database when database creating is
2428         implemented.
2429
2430 2011-01-20  Ben Konrath  <ben@bagu.org>
2431
2432         Set table headers when table dropBox changes.
2433
2434         * src/org/glom/web/client/GlomDocument.java: Correct some method
2435         names.
2436         * src/org/glom/web/client/LibGlomService.java: Add method
2437         to get list layout field names.
2438         * src/org/glom/web/client/LibGlomServiceAsync.java: Add method
2439         to get list layout field names.
2440         * src/org/glom/web/client/ListLayoutTable.java: New file - composite
2441         widget for list layout table.
2442         * src/org/glom/web/client/OnlineGlom.java: Add a change handler for
2443         the table drop box and add new updateTable() method to asynchronously
2444         get the layout list field names for the currently selected table.
2445         * src/org/glom/web/server/LibGlomServiceImpl.java: Add server side
2446         implementation of getLayoutListHeaders() method.
2447         * war/OnlineGlom.html: Remove GlomWebApp div tag as it is not required.
2448
2449 2011-01-18  Ben Konrath  <ben@bagu.org>
2450
2451         Make a listBox with table titles instead of the flexTable demo.
2452
2453         This is the start of something more useful.
2454
2455         * .classpath: Exclude a bunch of packages from the JVM that are
2456         getting in the way of the Eclipse content assist.
2457         * src/org/glom/web/client/GlomDocument.java:
2458         * src/org/glom/web/client/GlomTable.java:
2459         * src/org/glom/web/client/LibGlomService.java:
2460         * src/org/glom/web/client/LibGlomServiceAsync.java:
2461         * src/org/glom/web/client/OnlineGlom.java:
2462         * src/org/glom/web/server/LibGlomServiceImpl.java:
2463         * war/OnlineGlom.html:
2464         * war/WEB-INF/web.xml:
2465
2466 211-01-13  Ben Konrath  <ben@bagu.org>
2467
2468         Update to new java-libglom API.
2469
2470         * .gitignore: Ignore OnlineGlom.war.
2471         * src/org/glom/web/server/TableNamesServiceImpl.java: Update to new java-libglom API.
2472
2473 2010-12-20  Ben Konrath  <ben@bagu.org>
2474
2475         Add some basic style to the table listing.
2476
2477         * src/org/glom/web/client/OnlineGlom.java: Add style to the table
2478         header, print useful error message on async callback failure.
2479         * war/OnlineGlom.css: Add style for table header, remove defaults
2480         provided by the Eclipse project wizard.
2481
2482 2010-12-20  Ben Konrath  <ben@bagu.org>
2483
2484         Load example file from installed glom dir.
2485
2486         * src/org/glom/web/server/TableNamesServiceImpl.java: Use the Java API
2487         provided by java-libglom to find the example file.
2488
2489 2010-12-20  Ben Konrath  <ben@bagu.org>
2490
2491         Update Eclipse settings.
2492
2493         * .classpath:
2494         * .settings/com.google.gdt.eclipse.core.prefs:
2495         * .settings/com.google.gwt.eclipse.core.prefs:
2496
2497 2010-12-17  Ben Konrath  <ben@bagu.org>
2498
2499         Initial commit.
2500
2501         * .classpath: New file.
2502         * .gitignore: New file.
2503         * .project: New file.
2504         * .settings/com.google.gdt.eclipse.core.prefs: New file.
2505         * .settings/com.google.gwt.eclipse.core.prefs: New file.
2506         * src/org/glom/web/OnlineGlom.gwt.xml: New file.
2507         * src/org/glom/web/client/GlomTable.java: New file.
2508         * src/org/glom/web/client/OnlineGlom.java: New file.
2509         * src/org/glom/web/client/TableNameService.java: New file.
2510         * src/org/glom/web/client/TableNameServiceAsync.java: New file.
2511         * src/org/glom/web/server/TableNamesServiceImpl.java: New file.
2512         * war/OnlineGlom.css: New file.
2513         * war/OnlineGlom.html: New file.
2514         * war/WEB-INF/web.xml: New file.
2515         * war/images/glom.png: New file.