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