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