1 2012-06-22 Murray Cumming <murrayc@murrayc.com>
3 Added OnlineGlomPropertiesTest.
5 * src/main/java/org/glom/web/server/OnlineGlomProperties.java:
6 Make sure we never return a null string.
7 * src/test/java/org/glom/web/server/OnlineGlomPropertiesTest.java:
8 Added tests of the OnlineGlomProperties API, using our sample file.
10 2012-06-20 Murray Cumming <murrayc@murrayc.com>
12 Make OnlineGlomProperties be a normal class.
14 * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java:
15 Move OnlineGlomProperties into its own file to be a regular class:
16 * src/main/java/org/glom/web/server/OnlineGlomProperties.java:
17 This makes testing simpler.
19 2012-06-15 Murray Cumming <murrayc@murrayc.com>
21 OnlineGlomServiceImpl.init(): Move some code into a new method.
23 * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java:
26 2012-06-15 Murray Cumming <murrayc@murrayc.com>
28 OnlineGlomServiceImpl.OnlineGlomProperties: Improve getKey().
30 * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java:
31 OnlineGlomProperties.getKey(): Make this more robust by moving the
32 check for *.*.filename to here.
34 2012-06-15 Murray Cumming <murrayc@murrayc.com>
36 OnlineGlomServiceImpl: Improve the OnlineGlomProperties class.
38 * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java
39 init(): Move knowledge of the config file format into the
40 OnlineGlomProperties inner class.
42 2012-06-15 Murray Cumming <murrayc@murrayc.com>
44 SelfHostExampleTest: Make sure we cleanup on failure.
46 * src/test/java/org/glom/web/server/SelfHostExampleTest.java: Move
47 the use of cleanup() to a tearDown() JUnit method.
49 2012-06-12 Murray Cumming <murrayc@murrayc.com>
51 ConfiguredDocument: Add a primary key to portals at least once.
53 * src/main/java/org/glom/web/server/ConfiguredDocument.java
54 updatePortalsExtras): Fix a typo so that we add the primary key
56 This is a fix for the previous commit:
57 ConfiguredDocument: Do not add a primary key to portals each time.
59 2012-06-08 Murray Cumming <murrayc@murrayc.com>
61 SelfHoster: Avoid some compiler warnings.
63 * src/test/java/org/glom/web/server/SelfHoster.java
64 executeCommandLineAndWait():
65 executeCommandLineAndWaitUntilSecondCommandReturnsSuccess(): Comment out
66 the now-unused streams for stdout and stderr from the command Processes.
67 These are not used because readln() hangs while waiting for a new line,
68 where there may be no next line. The commented out code is still there
69 to help us figure out how to do this properly.
71 2012-06-08 Murray Cumming <murrayc@murrayc.com>
73 LayoutItemPortalDeepCloneTest: Test something to avoid warnings.
75 * src/test/java/org/glom/web/server/libglom/LayoutItemPortalDeepCloneTest.java:
76 Make this actually test the cloning again, though it is not very useful
77 now that we do not use the part that had a problem with cloning before.
79 2012-06-08 Murray Cumming <murrayc@murrayc.com>
81 SelfHoster: Keep trying pg_ctl after starting postgres.
83 * src/test/java/org/glom/web/server/SelfHoster.java
84 executeCommandLineAndWaitUntilSecondCommandReturnsSuccess():
85 Try pg_ctl repeatedly (for ever) until it succeeds, as we do in
86 regular Glom. This seems mad but it seems to work because the first
87 command would fail if pg_ctl would eventually fail.
89 2012-06-08 Murray Cumming <murrayc@murrayc.com>
91 SelfHoster: Wait until the server is really ready.
93 * src/test/java/org/glom/web/server/SelfHoster.java
94 selfHost(): Attempt the connection after starting the server, retrying
95 a few times if necessary, so that the server is really ready already when
96 we return from this method.
97 The regular Glom code does this too because pg_ctl reports success too soon.
99 2012-06-08 Murray Cumming <murrayc@murrayc.com>
101 ConfiguredDocument: Do not add a primary key to portals each time.
103 * src/main/java/org/glom/web/server/ConfiguredDocument.java
104 updatePortalsExtras(): Only add an extra primary key field if there is
105 none, to avoid adding one each time we retrieve the details layout from the
107 This should fix bug #676986 (Ben Konrath)
109 2012-05-25 Murray Cumming <murrayc@murrayc.com>
111 Document.load(): Support version 7 documents.
113 * src/main/java/org/glom/web/server/libglom/Document.java: Load the
114 database_title attribute if the title attribute is not there.
117 2012-05-24 Ben Konrath <ben@bagu.org>
119 Add configuration for auto-generating mvn:i18n from with Eclipse.
121 * pom.xml: Add PluginExecution configuration for gwt-maven-plugin.
123 2012-05-24 Murray Cumming <murrayc@murrayc.com>
125 Update translations, adding French.
127 * src/main/java/org/glom/web/OnlineGlom.gwt.xml:
128 * src/main/resources/org/glom/web/client/ui/OnlineGlomConstants_fr.properties:
129 Add a French translation, using the translation from Glom.
131 * src/main/resources/org/glom/web/client/ui/OnlineGlomConstants_cs.properties:
132 * src/main/resources/org/glom/web/client/ui/OnlineGlomConstants_es.properties:
133 * src/main/resources/org/glom/web/client/ui/OnlineGlomConstants_sl.properties:
134 Update these based on the translations from Glom.
136 2012-05-24 Murray Cumming <murrayc@murrayc.com>
138 SelfHoster: Add some debug println messages to help when things fail.
140 * src/test/java/org/glom/web/server/SelfHoster.java: Add several
141 System.out.println() lines.
143 2012-05-23 Murray Cumming <murrayc@murrayc.com>
145 Tests: SelfHoster: Check other paths for PostgreSQL command-line tools.
147 * src/test/java/org/glom/web/server/SelfHoster.java:
148 getPathToPostgresExecutable(): Try some common paths (as on Ubuntu, for
149 instance) instead of just /usr/bin (as on Fedora). Check the result when
152 2012-05-23 Murray Cumming <murrayc@murrayc.com>
154 Remove LayoutItemPortal.get/setNavigationTable().
156 * src/main/java/org/glom/web/shared/libglom/layout/LayoutItemPortal.java:
157 Remove get/setNavigationTable(), which is only a cache, because it is not
158 used, and does not need to be used, because that decision should be made on
160 * src/main/java/org/glom/web/server/ConfiguredDocument.java:
161 updatePortalsExtras():
162 * src/main/java/org/glom/web/server/database/RelatedListNavigation.java:
163 getNavigationRecord():
164 * src/test/java/org/glom/web/server/libglom/LayoutItemPortalDeepCloneTest.java:
167 2012-05-21 Murray Cumming <murrayc@murrayc.com>
169 Initial self-hosting for tests.
171 * pom.xml: Change the scope for log4j, to hopefully make it
172 available to the test code which uses it indirectly via jOOQ.
173 * src/main/java/org/glom/web/server/ConfiguredDocument.java: Allow
174 self-hosting, though we only use it for testing.
176 * src/main/java/org/glom/web/server/libglom/Document.java:
177 example rows: Use a map instead of a list for each row of values,
178 so we know what field they are for, instead of relying on the sequence
179 being correct. This is not very efficient, but it does not really need
181 * src/test/java/org/glom/web/server/libglom/DocumentTest.java
182 testReadTableExampleRows(): Adapted.
184 * src/main/java/org/glom/web/shared/DataItem.java: Added getValue()
185 that returns an Object, for generic use. Note that Object seems to be
186 the implicit base even of double.
187 * src/main/java/org/glom/web/shared/libglom/Field.java: Add getSqlType(),
188 for use in CREATE TABLE SQL queries.
189 * src/test/java/org/glom/web/server/SelfHoster.java: Add this class
190 to do self-hosting of PostgreSQL databases via its command-line
191 utilities, based on Glom's C++ code in test_selfhosting_utils.cc and
192 backends/postgres_self.cc. This is incomplete - it needs more
193 warnings about failures and it needs to clean up properly when things
195 * src/test/java/org/glom/web/server/SelfHostExampleTest.java: A simple
196 test of this new class.
198 2012-05-21 Murray Cumming <murrayc@murrayc.com>
200 Document: loading example data: Handle exceptions.
202 * src/main/java/org/glom/web/server/libglom/Document.java:
203 DateFormat.parse() and Double.valueOf() can throw exceptions, though
204 Eclipse did not warn about that.
206 2012-05-20 Murray Cumming <murrayc@murrayc.com>
208 Document: load(), save(): Handle the example rows.
210 * src/main/java/org/glom/web/shared/DataItem.java: Add get/setDate()
212 * src/main/java/org/glom/web/server/libglom/Document.java:
213 load(), save(): Load and save the example rows, though the date, time
214 and image types are not handled properly yet.
215 * src/test/java/org/glom/web/server/libglom/DocumentTest.java:
216 Add testReadTableExampleRows() just to check that something is read.
218 2012-05-20 Murray Cumming <murrayc@murrayc.com>
220 Document: Add save().
222 * src/main/java/org/glom/web/shared/libglom/Translatable.java:
223 Added getTranslationsMap() for use while saving.
224 * src/main/java/org/glom/web/shared/libglom/layout/LayoutItemField.java:
225 Adedd getUseDefaultFormatting() for use while saving.
226 * src/main/java/org/glom/web/server/libglom/Document.java: Added save()
227 and several private methods that it uses.
229 This will be useful while testing via self-hosting.
230 It is not complete, but should be complete enough for testing.
232 2012-05-17 Murray Cumming <murrayc@murrayc.com>
234 OnlineGlomService: Simplify the getList/RelatedViewData() methods.
236 * src/main/java/org/glom/web/client/OnlineGlomService.java
237 * src/main/java/org/glom/web/client/OnlineGlomServiceAsync.java
238 * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java
239 Remove getSortedListViewData() and getSortedRelatedListData(), adding
240 the sort column index and ascending bool to the regular method.
241 Instead, a sort column index of -1 now means no sort.
242 This is less explicit, but it's fairly simple, reduces the amount of
243 code, and makes the OnlineGlomService API slightly smaller.
244 * src/main/java/org/glom/web/client/ui/details/RelatedListTable.java:
245 * src/main/java/org/glom/web/client/ui/list/ListViewTable.java:
247 * src/main/java/org/glom/web/server/ConfiguredDocument.java:
248 getListViewData(), getRelatedListData():
249 * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java:
250 getListViewData(), getRelatedListData():
251 * src/main/java/org/glom/web/server/database/ListDBAccess.java:
253 * src/main/java/org/glom/web/server/database/ListViewDBAccess.java:
255 * src/main/java/org/glom/web/server/database/RelatedListDBAccess.java:
260 2012-05-16 Murray Cumming <murrayc@murrayc.com>
262 Use translations for top-level groups too.
264 * src/main/java/org/glom/web/server/ConfiguredDocument.java:
265 updateTitlesForLocale(): Use the translation for the group
266 as well as for child items.
270 Just recompiled to fix a problem in the released .tar.gz file.
274 2012-05-15 Murray Cumming <murrayc@murrayc.com>
276 Corrections to navigation to related records.
278 * src/main/java/org/glom/web/client/OnlineGlomService.java:
279 * src/main/java/org/glom/web/client/OnlineGlomServiceAsync.java:
280 * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java:
281 getRelatedListData(), getSortedRelatedListData)(), getRelatedListRowCount(),
282 getSuitableRecordToViewDetails(): Take a LayoutItemPortal instead of a
283 relationship name, because the relationship name is not necessarily unique
285 TOOD: This is inefficient, because it passes the whole list of
286 child field items back to the server, but it is more correct, and happens
287 to fix a bug with the primary key being lost after a few navigations.
288 There is probably a chance to make this more efficient anyway in some
291 * src/main/java/org/glom/web/client/activity/DetailsActivity.java
292 * src/main/java/org/glom/web/client/ui/details/RelatedListTable.jav
293 * src/main/java/org/glom/web/server/ConfiguredDocument.java
294 * src/main/java/org/glom/web/server/database/DBAccess.java
295 * src/main/java/org/glom/web/server/database/RelatedListDBAccess.java:
296 * src/main/java/org/glom/web/server/database/RelatedListNavigation.java:
299 2012-05-15 Murray Cumming <murrayc@murrayc.com>
301 Fix the use of translations.
303 * src/main/java/org/glom/web/server/ConfiguredDocument.java:
304 Add updateTitlesForLocale().
305 getValidListViewLayoutGroup(), getDetailsLayoutGroup():
306 Call it to discard unwanted translations and to make getTitle() return
307 the wanted translation wihout the need for the client code to specify a locale.
308 * src/main/java/org/glom/web/shared/libglom/Translatable.java:
309 getTitle(): Fallback to the original title, as libglom does.
311 2012-05-15 Murray Cumming <murrayc@murrayc.com>
313 Document: Correctly report the number of available translation locales.
315 * src/main/java/org/glom/web/server/libglom/Document.java: Fill
316 the available locale IDs list.
317 * src/test/java/org/glom/web/server/libglom/DocumentTest.java:
318 testLocales: Test this.
320 2012-05-15 Murray Cumming <murrayc@murrayc.com>
322 SqlUtils: Use camelCase.
324 * src/main/java/org/glom/web/server/SqlUtils.java: Use camelCase.
325 * src/main/java/org/glom/web/server/database/DetailsDBAccess.java:
326 * src/main/java/org/glom/web/server/database/ListViewDBAccess.java:
327 * src/main/java/org/glom/web/server/database/RelatedListDBAccess.java:
328 * src/main/java/org/glom/web/server/database/RelatedListNavigation.java:
329 * src/main/java/org/glom/web/server/ReportGenerator.java: Adapt.
331 2012-05-15 Murray Cumming <murrayc@murrayc.com>
333 Use jOOQ's tableByName() and fieldByName.
335 * pom.xml: Use jOOQ 2.3.1 to get the new API.
336 * src/main/java/org/glom/web/server/SqlUtils.java:
337 build_sql_select_step_with_where_clause(), .createField(),
338 builder_add_join(): Use Factory.tableByName() and Factory.fieldByName()
339 so we can get correct quoting and escaping. Thanks to Lukas Eder for
340 adding this, and other things, to jOOQ.
342 2012-05-15 Murray Cumming <murrayc@murrayc.com>
344 SqlUtils: Remove the Connection parameters.
346 * src/main/java/org/glom/web/server/SqlUtils.java:
347 build_sql_select_with_key(), build_sql_select_with_where_clause(),
348 createSelect(), build_sql_select_step_with_where_clause(),
349 build_sql_count_select_with_where_clause(),
350 build_sql_select_count_rows(): Remove the Connection parameter because
351 jOOQ does not actually need a connectionwhen it is just used to build
353 https://groups.google.com/forum/#!topic/jooq-user/tIwobFOR2iM
355 * src/main/java/org/glom/web/server/ReportGenerator.java:
357 * src/main/java/org/glom/web/server/database/DetailsDBAccess.java:
359 * src/main/java/org/glom/web/server/database/ListDBAccess.java:
360 Constructor, getListData(), getResultSizeOfSQLQuery():
361 * src/main/java/org/glom/web/server/database/ListViewDBAccess.java:
362 getSelectQuery(), getCountQuery():
363 * src/main/java/org/glom/web/server/database/RelatedListDBAccess.java:
364 getSelectQuery(), getCountQuery():
365 * src/main/java/org/glom/web/server/database/RelatedListNavigation.java:
366 getNavigationRecord(): Adapted.
368 2012-05-14 Murray Cumming <murrayc@murrayc.com>
372 * src/main/java/org/glom/web/server/SqlUtils.java:
373 get_find_where_clause_quick(): Use a comparison of
374 lowercase values, instead of a simple equals. Regular Glom
375 uses the PostgreSQL ILIKE operator but jOOQ does not
376 support that just yet, though it will soon.
378 2012-05-14 Murray Cumming <murrayc@murrayc.com>
380 TableToViewDetails: Use a real serialization ID.
382 * src/main/java/org/glom/web/shared/libglom/layout/TableToViewDetails.java:
383 Though this does not fix the serialization problem.
385 2012-05-12 Murray Cumming <murrayc@murrayc.com>
387 Added LayoutItemPortalDeepCloneTest.
389 2012-05-11 Murray Cumming <murrayc@murrayc.com>
391 Make navigation work again.
393 * src/main/java/org/glom/web/server/libglom/Document.java:
394 Add getLayoutItemFieldShouldHaveNavigation().
395 * src/main/java/org/glom/web/shared/libglom/layout/LayoutItemField.java:
396 Replace get/setAddNavigation() with the partly-existing
397 get/setNavigationTableName(), with an empty string being no navigation,
398 because this is simpler. Use the new
399 Document.getLayoutItemFieldShouldHaveNavigation() method to set this.
401 * src/main/java/org/glom/web/server/ConfiguredDocument.java:
402 Add updateFieldsExtras() and call setNavigationTableName in it.
403 getDetailsLayoutGroup(),
404 * src/main/java/org/glom/web/client/activity/DetailsActivity.java
405 createLayout(): Adapted.
406 * src/main/java/org/glom/web/client/ui/details/DetailsCell.java
407 Constructor: Adapted.
409 * src/main/java/org/glom/web/shared/libglom/layout/LayoutItemPortal.java:
410 Replace get/setAddNavigation() with get/setNavigation(), returning a
411 TableToViewDetails class with both the table name and UsesRelationship,
412 because both are need. The previous code used java-libglom's output
413 variable (strangely, via sharedptr) to return both, but we cannot really
415 * src/main/java/org/glom/web/server/database/RelatedListNavigation.java:
416 getNavigationRecord(): Adapt. However, we cannot actually use the cache
417 here because it somehow gets set to null during deepCopy(). I must test this.
418 * src/test/java/org/glom/web/server/libglom/DocumentTest.java
419 testGetSuitableTableToViewDetails(): Adapted.
421 TODO: Find out why deepClone() is not quite working.
423 2012-05-11 Murray Cumming <murrayc@murrayc.com>
425 DBAccess: Simplify the retrievel of full field details.
427 * src/main/java/org/glom/web/server/database/DBAccess.java
428 getFieldsToShowForSQLQueryAddGroup(). This might be unnecessary anyway,
429 because the Document loading should have done this.
431 2012-05-11 Murray Cumming <murrayc@murrayc.com>
433 Document: Correct loading of doubly-related layout fields.
435 * src/main/java/org/glom/web/server/libglom/Document.java:
436 loadUsesRelationship(): Actually set the related relationship, instead
437 of only setting it if it's not found.
439 2012-05-09 Murray Cumming <murrayc@murrayc.com>
441 Replace all appearances of Colour with color.
443 Because US English is dominant.
445 2012-05-09 Murray Cumming <murrayc@murrayc.com>
447 Use colors in HTML format, solving a warning about an unused function.
449 * src/main/java/org/glom/web/shared/libglom/NumericFormat.java
450 * src/main/java/org/glom/web/shared/libglom/layout/Formatting.java:
451 Add *asHTMLColor() versions of methods.
452 TODO: However, we should create and cache the results on the server.
453 * src/main/java/org/glom/web/client/ui/details/DetailsCell.java
454 * src/main/java/org/glom/web/client/ui/list/ListTable.java
455 * src/main/java/org/glom/web/server/ConfiguredDocument.java
456 * src/test/java/org/glom/web/server/libglom/DocumentTest.java:
457 Use the asHTMLcolor() versions.
459 2012-05-09 Murray Cumming <murrayc@murrayc.com>
461 ListViewTable: Constructor: Take the table name as a parameter.
463 * src/main/java/org/glom/web/client/ui/list/ListViewTable.java:
464 Constructor: Take the tableName, and set the member variable, because
466 * src/main/java/org/glom/web/client/ui/ListViewImpl.java:
467 setCellTable(): Pass the table name.
468 This makes navigation to non-default tables work again. I don't know
469 why it worked before in the master branch.
471 2012-05-07 Murray Cumming <murrayc@murrayc.com>
473 ConfiguredDocument: Restore correct addition of hidden primary key items.
475 * src/main/java/org/glom/web/client/ui/list/ListTable.java
476 (ListTable.createCellTable): Uncomment out the check for the hidden
478 * src/main/java/org/glom/web/server/ConfiguredDocument.java: Only
479 add primary key items for top-level lists and portals, as before,
480 instead of adding them to each group.
481 * src/main/java/org/glom/web/shared/libglom/layout/LayoutGroup.java:
482 Actually implement the extra methods such as setHiddenPrimaryKey() and
483 comment that these are used only for top-level list groups and in portals.
484 This strangeness suggests even more that this should not be squeezed
485 into the LayoutGroup class.
487 2012-05-07 Murray Cumming <murrayc@murrayc.com>
489 Fix Formatting loading.
491 * src/main/java/org/glom/web/shared/libglom/layout/LayoutItemField.java:
492 getFormattingUsed(): Remove the duplicate Formatting member variable
493 in favour of the one from the base class.
494 * src/main/java/org/glom/web/shared/libglom/layout/LayoutItemWithFormatting.java:
495 Initialize a new Formatting instead of using null by default, so we
496 have some defaults, instead of having to initialize one later just to
497 get the same defaults. This also makes loading of formatting from the
498 document work, because that expected a non-null.
500 2012-05-07 Murray Cumming <murrayc@murrayc.com>
502 RelatedListTable: Make sure that the tableName is set.
504 * src/main/java/org/glom/web/client/ui/details/RelatedListTable.java:
505 Constructor: Take the tableName so it is available later. Otherwise,
506 the server assumes that we mean the default table and cannot find the
508 * src/main/java/org/glom/web/client/activity/DetailsActivity.java
509 setData(): Pass the tableName to the RelatedListTable constructor.
511 2012-05-07 Murray Cumming <murrayc@murrayc.com>
515 * src/main/java/org/glom/web/client/activity/DetailsActivity.java:
516 RelatedListNavigationButtonCell.onEnterKeyDown(), setData():
517 * src/main/java/org/glom/web/client/ui/details/RelatedListTable.java:
519 * src/main/java/org/glom/web/client/ui/list/ListTable.java:
521 * src/main/java/org/glom/web/server/database/DBAccess.java:
522 convertResultSetToDTO(), getPortal():
523 * src/main/java/org/glom/web/server/database/ListDBAccess.java
525 * src/main/java/org/glom/web/server/database/RelatedListDBAccess.java:
526 Add checks for null objects and out of range access, with log messages to
527 give hints so we can fix these properly.
529 2012-05-07 Murray Cumming <murrayc@murrayc.com>
531 Portals: some corrections.
533 * src/main/java/org/glom/web/client/activity/DetailsActivity.java
535 * src/main/java/org/glom/web/client/ui/details/RelatedListTable.java:
536 constructor: Use getRelationshipNameUsed() instead of getName(), because
537 that is what is meant.
538 * src/main/java/org/glom/web/shared/libglom/layout/LayoutItemPortal.java:
539 getFromField(): Fix a typo, to get the field name, not the table name.
540 * src/main/java/org/glom/web/server/database/DBAccess.java:
541 getPortal(): Fix a typo that stopped this from working.
543 2012-05-07 Murray Cumming <murrayc@murrayc.com>
545 LayoutItemPortal: Also override getTitleOriginal().
547 * src/main/java/org/glom/web/shared/libglom/layout/LayoutItemPortal.java:
548 This lets the base getTitle() with no parameters work.
549 TODO: Test this properly.
551 2012-05-06 Murray Cumming <murrayc@murrayc.com>
553 LayoutItemPortal: getTitle*(): Use the relationship title.
555 2012-05-06 Murray Cumming <murrayc@murrayc.com>
557 LayoutItemField: Fix loading of custom titles.
559 * src/main/java/org/glom/web/server/libglom/Document.java
560 loadDataLayoutItemField(): The title, if any, instead of the field
561 title, is stored in a title_custom node. Load it from there.
562 * src/main/java/org/glom/web/shared/libglom/CustomTitle.java: Add this
564 * src/main/java/org/glom/web/shared/libglom/layout/LayoutItemField:
565 Add getCustomTitle() and use it, instead of super.getTitle*(), in the
566 getTitle*() overrides.
567 * src/test/java/org/glom/web/server/libglom/LayoutItemFieldTest.java:
570 2012-05-06 Murray Cumming <murrayc@murrayc.com>
572 LayoutItemField: Fall back to field titles, so some are really shown.
574 * src/main/java/org/glom/web/shared/libglom/layout/LayoutItemField.java:
575 Override getTitleOriginal() and getTitle(), as in java-libglom.
576 * src/test/java/org/glom/web/server/libglom/LayoutItemFieldTest.java:
579 2012-05-06 Murray Cumming <murrayc@murrayc.com>
581 Correct use of setExpectedResultSize().
583 * src/main/java/org/glom/web/server/ConfiguredDocument.java
584 getValidListViewLayoutGroup(), getDetailsLayoutGroup():
585 Use setExpectedResultSize only on top-level groups (for instance, the
586 list layout) or on child portals (in details views).
587 Use the correct table name for portals to avoid SQL errors.
588 Update the expected counts when returning cached layouts.
590 2012-05-06 Murray Cumming <murrayc@murrayc.com>
592 Document: Interpret no group column count as 1.
594 * src/main/java/org/glom/web/server/libglom/Document.java: Use a sane
595 default, though we now check for this in the UI code anyway.
597 2012-05-06 Murray Cumming <murrayc@murrayc.com>
601 2012-05-06 Murray Cumming <murrayc@murrayc.com>
603 Translatable: Use Hashmap instead of Treemap because GWT supports it.
605 * src/main/java/org/glom/web/shared/libglom/Translatable.java:
606 The use of Treemap lead to this error from async methods, with no
608 "The response could not be deserialized"
610 2012-05-06 Murray Cumming <murrayc@murrayc.com>
612 OnlineGlom.gwt.xml: Add exludes to fix explicit gwt compilation in Eclipse.
614 * src/main/java/org/glom/web/OnlineGlom.gwt.xml: This is necessary
615 when using the Google -> GWT Compile, or
616 g toolbar button -> GWT Compile Project... feature in Eclipse.
618 2012-05-06 Murray Cumming <murrayc@murrayc.com>
620 ListTable.addColumn(): Protect against a null Formatting.
622 * src/main/java/org/glom/web/client/ui/list/ListTable.java: addColumn():
623 Create a default Formatting if it is null, because that is the simplest
626 2012-05-06 Murray Cumming <murrayc@murrayc.com>
628 ConfiguredDocument.updateLayoutGroup(): Protect against a null dereference.
630 * src/main/java/org/glom/web/server/ConfiguredDocument.java
631 updateLayoutGroup(): Check that the field is not null.
633 2012-05-06 Murray Cumming <murrayc@murrayc.com>
635 ListViewImpl: Protected against a bad cast error.
637 * src/main/java/org/glom/web/client/ui/ListViewImpl.java:
638 onEnterKeyDown(): Do not cast without an instanceof check.
640 2012-05-06 Murray Cumming <murrayc@murrayc.com>
642 ListTable: Protect against an out of range error.
644 * src/main/java/org/glom/web/client/ui/list/ListTable.java
645 createCellTable(): This is unlikely, but can happen while debugging.
647 2012-05-06 Murray Cumming <murrayc@murrayc.com>
649 AsyncMessage onFailure() callbacks: Log the exception message.
651 * src/main/java/org/glom/web/client/activity/DetailsActivity.java
652 * src/main/java/org/glom/web/client/activity/DocumentSelectionActivity.java:
653 * src/main/java/org/glom/web/client/activity/ListActivity.java:
654 * src/main/java/org/glom/web/client/activity/ReportActivity.java:
655 * src/main/java/org/glom/web/client/activity/TableSelectionActivity:
656 * src/main/java/org/glom/web/client/ui/details/RelatedListTable.java:
657 * src/main/java/org/glom/web/client/ui/list/ListViewTable.java:
658 These are useful clues when something is wrong.
660 2012-05-06 Murray Cumming <murrayc@murrayc.com>
662 ConfiguredDocument: Avoid a null dereference.
664 * src/main/java/org/glom/web/server/ConfiguredDocument.java
665 TableLayoutsForLocale.getMapWithAdd(): Make sure that the list and
666 details maps are created.
668 2012-05-06 Murray Cumming <murrayc@murrayc.com>
670 Document: Correct the port number parsing.
672 * src/main/java/org/glom/web/server/libglom/Document.java:
673 This lets us actually connect to the database and show the document.
675 2012-05-05 Murray Cumming <murrayc@murrayc.com>
679 * pom.xml: Use htmlunit mode for gwt:test, because the default demands
680 user-interaction, asking us to load a temporary URL in a browser.s
681 * src/main/java/org/glom/web/OnlineGlom.gwt.xml: Add a servlet node,
682 which is apparently necessary for testing the service. See the comment.
683 * src/test/java/org/glom/web/client/GwtTestOnlineGlomService.java:
684 Show the exception, if any. This is how I saw the 404 in the HTML in
687 2012-05-05 Murray Cumming <murrayc@murrayc.com>
689 DocumentTest: Move the .glom files into the resources directory.
691 * src/test/java/org/glom/web/server/libglom/DocumentTest: And get the
692 URI via getResource().
694 2012-05-05 Murray Cumming <murrayc@murrayc.com>
696 Document: Remove the FieldIdentifies inner class.
698 * src/main/java/org/glom/web/server/libglom/Document.java: We only
699 use the Relationship (though the same function in libglom is maybe
700 used in other ways) and so this removes a compiler warning.
702 2012-05-05 Murray Cumming <murrayc@murrayc.com>
704 Document.load() Remove the error code parameter.
706 * src/main/java/org/glom/web/server/libglom/Document.java: load():
707 Remove the parameter. We do not set it yet and it could never have
708 worked as an output parameter (though maybe it did in java-libglom).
709 We could use an exception if we really want the failure reason.
710 * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java:
712 * src/test/java/org/glom/web/server/libglom/DocumentTest.java:
713 setUp(), testGetSuitableTableToViewDetails(): Adapt.
715 2012-05-05 Murray Cumming <murrayc@murrayc.com>
717 Make some inner classes static.
719 * src/main/java/org/glom/web/server/ConfiguredDocument.java
720 * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java
721 * src/main/java/org/glom/web/server/ReportGenerator.java
722 * src/main/java/org/glom/web/server/libglom/Document.java
723 Make all inner classes static that can be static.
725 2012-05-05 Murray Cumming <murrayc@murrayc.com>
727 OnlineGlomServiceImpl: Do not load and check for java-libglom.
729 * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java
730 init(): We do not use java-libglom any more.
732 2012-05-05 Murray Cumming <murrayc@murrayc.com>
734 Remove mentions of java-libglom.
736 * README: Remove mention of java-libglom, because it no longer needed.
737 * utils/build-onlineglom-war.sh:
738 * utils/check-and-recover-tomcat.py:
739 * utils/install-onlineglom-war.sh: Remove these as they are no longer
740 useful. Building is now far easier, with no need for jhbuild.
742 2012-05-05 Murray Cumming <murrayc@murrayc.com>
744 Fix the build (mvn package)
746 * src/main/java/org/glom/web/shared/libglom/layout/LayoutGroup.java
747 (LayoutGroup): Make the LayoutItemList inner class static and protected.
748 Otherwise the GWT Java->Javascript compilation fails with just this
749 error, during mvn package or when attempting to view in a browser,
750 in the GWT developer mode in Eclipse.
752 [INFO] --- gwt-maven-plugin:2.4.0:compile (default) @ gwt-glom ---
753 [INFO] auto discovered modules [org.glom.web.OnlineGlom]
754 [INFO] Compiling module org.glom.web.OnlineGlom
755 [INFO] [ERROR] Errors in 'file:/home/murrayc/checkouts/gnome/gwt-glom/src/main/java/org/glom/web/client/OnlineGlomServiceAsync.java'
756 [INFO] [ERROR] Line 46: Failed to resolve 'org.glom.web.client.OnlineGlomService' via deferred binding
757 [INFO] Scanning for additional dependencies: file:/home/murrayc/checkouts/gnome/gwt-glom/src/main/java/org/glom/web/client/ui/details/DetailsCell.java
758 [INFO] [WARN] For the following type(s), generated source was never committed (did you forget to call commit()?)
759 [INFO] [WARN] org.glom.web.client.OnlineGlomService_Proxy
760 [INFO] [ERROR] Cannot proceed due to previous errors
762 It has taken me 2 days to find out what was causing that. After reducing
763 the code, the compiler eventually showed me the full error message.
765 2012-05-04 Murray Cumming <murrayc@murrayc.com>
767 ConfiguredDocument: Cache the cloned and stripped layouts.
769 * src/main/java/org/glom/web/server/ConfiguredDocument.java:
770 getValidListViewLayoutGroup(), .getDetailsLayoutGroup(): Store the cloned
771 layout in a map, so we can retrieve it again without rebuilding it.
773 2012-05-04 Murray Cumming <murrayc@murrayc.com>
775 UsesRelationshipImpl: Complete the relationshipEquals() implementation.
777 2012-05-04 Murray Cumming <murrayc@murrayc.com>
779 libglom classes: Implement some auto-generated emthods.
781 2012-05-04 Murray Cumming <murrayc@murrayc.com>
783 Add GwtTestOnlineGlomService.
785 * src/test/java/org/glom/web/client/GwtTestOnlineGlomService.java:
786 However, this (and the other GwtTest*) does not seem to run during
789 2012-05-04 Murray Cumming <murrayc@murrayc.com>
791 Remove use of unsupported features from client code.
793 * src/main/java/org/glom/web/client/StringUtils.java: Add equals().
794 * src/main/java/org/glom/web/shared/libglom/layout/UsesRelationshipImpl.java:
795 * src/main/java/org/glom/web/shared/libglom/layout/reportparts/LayoutItemGroupBy.java:
796 Use our client version of StringUtils instead of the apache commons one.
798 However, the GWT Javascript compliation still fails.
800 2012-04-25 Murray Cumming <murrayc@murrayc.com>
802 Add a Field class and implement some loading of it in Document.
804 2012-04-25 Murray Cumming <murrayc@murrayc.com>
806 Initial Document loading implementation, instead of libglom.
808 * src/test/java/org/glom/web/shared/libglom/: Add Document, Report,
809 and Translatable classes, and adapt the rest of the code to use them.
810 However, this is still missing Layout and Field classes and loading.
812 2012-04-24 Murray Cumming <murrayc@murrayc.com>
814 Use of jOOQ: Move Field creation into a utility method.
816 * src/main/java/org/glom/web/server/SqlUtils.java:
817 This lets us improve it more easily.
819 2012-04-24 Murray Cumming <murrayc@murrayc.com>
821 Use of jOOQ: Improve the code to COUNT a sub-select.
823 * src/main/java/org/glom/web/server/SqlUtils.java:
824 Move initial query creation into
825 build_sql_select_step_with_where_clause().
826 build_sql_select_count_rows(): Use the jOOQ API instead of
827 concatentating text, because a jOOQ Select*Step is a TableLike,
828 which is what from() takes.
830 2012-04-23 Murray Cumming <murrayc@murrayc.com>
832 Use jOOQ instead of Glom.build_sql*(), to avoid native calls.
834 * pom.xml: Depend on jooq.
835 * src/main/java/org/glom/web/server/SqlUtils.java: Reimplement the
836 methods with jOOQ, based on the C++ implementations in libglom,
837 with some changes to the logic required by jooQ.
838 Take a jOOQ Condition rather than a Glom.SqlExpr (GdaSqlExpr) for the
840 * src/main/java/org/glom/web/client/ui/TableSelectionViewImpl.java:
841 * src/main/java/org/glom/web/server/ReportGenerator.java:
842 * src/main/java/org/glom/web/server/SqlUtils.java:
843 * src/main/java/org/glom/web/server/database/DetailsDBAccess.java:
844 * src/main/java/org/glom/web/server/database/ListDBAccess.java:
845 * src/main/java/org/glom/web/server/database/ListViewDBAccess.java:
846 * src/main/java/org/glom/web/server/database/RelatedListDBAccess.java:
847 * src/main/java/org/glom/web/server/database/RelatedListNavigation:
848 Adapt. In particular, the SqlUtils methods now need to take a Connection,
849 because jOOQ needs that, though it seems unnecessary.
851 This is not quite finished. Ideally jOOQ would help us to build
852 table_name.field_name names, quoting and escaping them properly.
853 See http://stackoverflow.com/questions/10264001/instantiating-a-jooq-field-by-name
855 2012-04-21 Murray Cumming <murrayc@murrayc.com>
857 Move use of Glom.build_sql*() into a new SqlUtils class.
859 * src/main/java/org/glom/web/server/SqlUtils.java: Add static methods
860 to wrap Glom.build_sql*(). The parameter types are still Glom one,
861 but this will make it easier to start using something other than
862 libglom or SqlBuilder.
864 2012-04-21 Murray Cumming <murrayc@murrayc.com>
866 Update the project URL.
868 * pom.xml: Use an OnlineGlom-specific URL for the project URL.
870 2012-04-21 Murray Cumming <murrayc@murrayc.com>
872 Main layout: Use a FlowTable instead of absolute positioning.
874 * src/main/java/org/glom/web/client/OnlineGlom.java: onModuleLoad():
875 The RootLayoutPanel is a (extends) AbsolutePanel, so each of its
876 child panels/widgets must have an absolute position. But that is annoying, so
877 this adds a FlowTable and puts the child panels in there.
879 2012-04-21 Murray Cumming <murrayc@murrayc.com>
881 GwtTestOnlineGlom: Comment out unused code.
883 * src/test/java/org/glom/web/client/GwtTestOnlineGlom.java:
884 Eclipse has started to say that some code is unused.
886 2012-04-21 Murray Cumming <murrayc@murrayc.com>
888 Update to the latest versions of dependencies.
890 * pom.xml: Update version numbers of dependencies to the latest
892 * src/main/java/org/glom/web/server/ConfiguredDocument.java:
893 * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java:
894 * src/main/java/org/glom/web/server/ReportGenerator.java:
895 * src/main/java/org/glom/web/server/database/ListViewDBAccess.java:
896 * src/main/java/org/glom/web/server/database/RelatedListDBAccess.java:
897 * src/main/java/org/glom/web/server/database/RelatedListNavigation.
899 * src/test/java/org/glom/web/client/GwtTestOnlineGlom.java:
900 Modify the imports where necessary.
902 2012-04-17 Murray Cumming <murrayc@murrayc.com>
904 Style: Remove overflow:hidden from searchbox
906 * src/main/webapp/style.css: Because this pushes the Back To Link
907 label/link on to the next row, which is then hidden due to the
908 hard-coded (in ems) height.
910 2012-04-20 Murray Cumming <murrayc@murrayc.com>
912 Remove some duplicate code.
914 * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java
915 getDocumentInfo(): This must have been duplicated during the merge from the
920 2012-04-19 Murray Cumming <murrayc@murrayc.com>
922 Reports: Localize the waiting for report message.
924 * src/main/java/org/glom/web/client/activity/ReportActivity.java
925 start(): Get the message from the contants.
926 * src/main/resources/org/glom/web/client/ui/OnlineGlomConstants.properties:
928 * src/main/resources/org/glom/web/client/ui/OnlineGlomConstants_cs.properties:
929 * src/main/resources/org/glom/web/client/ui/OnlineGlomConstants_de.properties:
930 * src/main/resources/org/glom/web/client/ui/OnlineGlomConstants_es.properties:
931 * src/main/resources/org/glom/web/client/ui/OnlineGlomConstants_sl.properties:
932 * src/main/resources/org/glom/web/client/ui/OnlineGlomConstants_zh_CN.properties:
933 Update these files with the English text for newer strings for now.
935 2012-04-19 Murray Cumming <murrayc@murrayc.com>
937 Reports: Show a message while waiting for the report.
939 * src/main/java/org/glom/web/client/ui/ReportView.java
940 * src/main/java/org/glom/web/client/ui/ReportViewImpl.java:
941 Add setWaitingText(), to show a message saying that we are
942 waiting for the report to be ready.
943 * src/main/java/org/glom/web/client/activity/ReportActivity.java
944 start(): Call setWaitingText() before calling the async
947 2012-04-19 Murray Cumming <murrayc@murrayc.com>
949 ReportGenerator: Specify date and time formats.
951 * src/main/java/org/glom/web/server/ReportGenerator.java:
952 createFieldValueElement(): Use the default (and localized)
953 short formats, though we still need a way to show 4-digit
954 years without providing the format for every locale.
955 * src/main/java/org/glom/web/server/database/DBAccess.java:
956 convertResultSetToDTO(): Use the short formats here too.
958 2012-04-18 Murray Cumming <murrayc@murrayc.com>
960 ReportGenerator: Use the correct numeric formatting.
962 * src/main/java/org/glom/web/server/ReportGenerator.java
963 createFieldExpression(), createFieldValueElement(): Take the
964 whole LayoutItem_Field instead of just the field name, so
965 we have access to the formatting.
966 createFieldValueElement(): Use JRTextField.setPattern() to
967 specify the numeric formatting, with the help of a
968 regular DecimalFormat.
970 2012-04-18 Murray Cumming <murrayc@murrayc.com>
972 ReportGenerator: Avoid showing null for group by titles.
974 * src/main/java/org/glom/web/server/ReportGenerator.java
975 generateReport(): Use setBlankWhenNull() on the field title
976 style too, because this is used for values in group by
979 2012-04-18 Murray Cumming <murrayc@murrayc.com>
981 ReportGenerator: Add a colon to titles in vertical groups.
983 * src/main/java/org/glom/web/server/ReportGenerator.java
984 addFieldToDetailBandVertical(): Pass true for the withColon
987 2012-04-18 Murray Cumming <murrayc@murrayc.com>
989 ReportGenerator: Simplify the code by using Position more.
991 2012-04-18 Murray Cumming <murrayc@murrayc.com>
993 Reports: Support vertical groups, roughly.
995 * src/main/java/org/glom/web/server/ReportGenerator.java:
996 addToReport(): Rename to addGroupToReport() and, if necessary,
997 call the new addVerticalGroupToReport() method.
998 createFieldValueElement(): Let the caller specify the Y position
1001 2012-04-17 Murray Cumming <murrayc@murrayc.com>
1003 Reports: Allow a second report to be shown.
1005 * src/main/java/org/glom/web/client/ui/ReportViewImpl.java:
1006 clear(): Do not remove the HTML widget, which broke the whole layout.
1008 2012-04-17 Murray Cumming <murrayc@murrayc.com>
1010 Locales drop-down: Show that we use English by default.
1012 * src/main/java/org/glom/web/client/activity/TableSelectionActivity.java:
1013 fillView(): When we use English, just because that is the default, when
1014 no locale is specified, show that in the Locales drop-down instead of
1015 just showing the first item.
1017 2012-04-17 Murray Cumming <murrayc@murrayc.com>
1019 Unselect the Report/Locale/Table combo item when appropriate.
1021 * src/main/java/org/glom/web/client/activity/TableSelectionActivity.java:
1022 setPlace(): clear reportName if this is not a ReportPlace.
1023 * src/main/java/org/glom/web/client/ui/TableSelectionViewImpl.java:
1024 setSelectedTableName(), setSelectedLocale(), setSelectedReport():
1025 When the provided name is empty, unselect all items, so that none are
1026 indicated. This uses a for loop because I cannot find a single method
1029 2012-04-17 Murray Cumming <murrayc@murrayc.com>
1031 Report: Give the user a way to get back to the list.
1033 * src/main/java/org/glom/web/client/activity/TableSelectionActivity.java:
1034 start(), setPlace(): Show the Back To List link on reports, and also
1035 interpret selecting the empty report item as back to list.
1037 2012-04-13 Murray Cumming <murrayc@murrayc.com>
1039 Really show the selected Report name.
1041 * src/main/java/org/glom/web/client/activity/TableSelectionActivity:
1042 setPlace(): Store the reportName here, if it is that kind of Place.
1043 fillView(): Set the selected Report after filling the list of reports.
1044 * src/main/java/org/glom/web/client/ui/TableSelectionViewImpl.java:
1045 setSelectedLocale(), setSelectedReport(): Avoid possible uses of
1046 null Strings, though we need some way to unselect all ListBox items
1049 2012-04-13 Murray Cumming <murrayc@murrayc.com>
1051 ReportGenerator: Try to avoid some problems.
1053 * src/main/java/org/glom/web/server/ReportGenerator.java
1054 addField(): Try to avoid duplicates, and avoid using a null
1057 2012-04-13 Murray Cumming <murrayc@murrayc.com>
1059 Reports: Use quickFind.
1061 * src/main/java/org/glom/web/client/OnlineGlomService.java;
1062 * src/main/java/org/glom/web/client/OnlineGlomServiceAsync.java:
1063 * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java:
1064 getReportHTML(): Add a quickFind parameter.
1065 * src/main/java/org/glom/web/client/activity/ReportActivity.java
1066 start(): Pass the quickFind parameter.
1067 * src/main/java/org/glom/web/server/ReportGenerator.java
1068 generateReport(): Take a quickFind parameter.
1070 2012-04-13 Murray Cumming <murrayc@murrayc.com>
1072 ReportPlace: Actually use the report name.
1074 * src/main/java/org/glom/web/client/place/ReportPlace.java
1075 getPlace(): Do not assign the report name to the quickfind.
1077 2012-04-13 Murray Cumming <murrayc@murrayc.com>
1079 Show java.library.path when complaining.
1081 * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java
1082 init(): When telling us to check java.library.path, show the
1085 2012-03-06 Murray Cumming <murrayc@murrayc.com>
1087 ReportGenerator: Do not show nulls.
1089 2012-03-06 Murray Cumming <murrayc@murrayc.com>
1091 ReportGenerator: Make the title font larger.
1093 2012-03-06 Murray Cumming <murrayc@murrayc.com>
1095 ReportGenerator: Put field titles inside groups, if there are groups.
1097 2012-03-06 Murray Cumming <murrayc@murrayc.com>
1099 ReportGenerator: Take the Report itself instead of the name and group.
1101 * src/main/java/org/glom/web/server/ConfiguredDocument.java
1102 Remove getReportLayoutGroup().
1103 * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java
1104 getReportHTML(): Pass the report instead
1105 of its name and layout group.
1106 * src/main/java/org/glom/web/server/ReportGenerator.java
1107 generateReport(): Use the report object to use the title
1108 instead of the name.
1110 2012-03-06 Murray Cumming <murrayc@murrayc.com>
1112 ReportGenerator: Remove designBand parameters.
1114 * src/main/java/org/glom/web/server/ReportGenerator.java:
1115 Make designBand a class member instead of passing it to all
1118 2012-03-06 Murray Cumming <murrayc@murrayc.com>
1120 ReportGenerator: Add lines, a bit like in the desktop version.
1122 * src/main/java/org/glom/web/server/ReportGenerator.java
1123 addToReport(): Use JRDesignLine.
1125 2012-03-06 Murray Cumming <murrayc@murrayc.com>
1127 ReportGenerator: Correct the title positions and use some bold style.
1129 * src/main/java/org/glom/web/server/ReportGenerator.java:
1130 Break the code up into reusable functions, correct the placement of
1131 titles, and use normal/bold styles as in the reports in the desktop
1134 2012-03-06 Murray Cumming <murrayc@murrayc.com>
1136 ReportGenerator: Add a header band to show the field titles.
1138 * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java
1139 getReportHTML(): Pass the localeId to the ReportGenerator
1141 * src/main/java/org/glom/web/server/ReportGenerator.java
1142 constructor: Take the localeID so we can get translated field
1144 generateReport(), addToReport(), addFieldToBand(): Add field
1145 titles in a column header band.
1147 2012-03-05 Murray Cumming <murrayc@murrayc.com>
1149 Reports drop-down list: Some improvement.
1151 * src/main/java/org/glom/web/client/ui/TableSelectionView.java
1152 * src/main/java/org/glom/web/client/ui/TableSelectionViewImpl.java:
1153 Adedd setSelectedReport(),
1154 setReportList(): Add a blank line so that the user can select the
1156 * src/main/java/org/glom/web/client/activity/ReportActivity.java
1157 start(): Show the current report by calling setSelectedReport().
1158 This does not seem to work yet.
1160 2012-03-05 Murray Cumming <murrayc@murrayc.com>
1162 DetailsActivity, ListActivity: Move some variables into a base class.
1164 * src/main/java/org/glom/web/client/activity/DetailsActivity.java:
1165 * src/main/java/org/glom/web/client/activity/HasTableActivity.java:
1166 * src/main/java/org/glom/web/client/activity/ListActivity.java: Move
1167 the clientFactory, documentID, tableName and authenticationPopup into
1168 a base class, to avoid duplication.
1170 2012-03-05 Murray Cumming <murrayc@murrayc.com>
1172 Translate the Reports label.
1174 * src/main/java/org/glom/web/client/ui/TableSelectionViewImpl.java
1175 Get the "Reports" label string from the constants.
1176 * src/main/resources/org/glom/web/client/ui/OnlineGlomConstants.pro
1177 perties: Add Reports to the constants.
1179 2012-03-05 Murray Cumming <murrayc@murrayc.com>
1181 Reports: Implement grouping.
1183 * src/main/java/org/glom/web/server/ReportGenerator.java:
1184 Handle LayoutItem_GroupBy items and try to do the right thing
1185 with JRDesignGroup. It seems to work.
1187 2012-03-04 Murray Cumming <murrayc@murrayc.com>
1189 Actually show some data with JasperReports.
1191 * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java:
1192 getReportHTML(): Move most code into a ReportGenerator class.
1193 * src/main/java/org/glom/web/server/ReportGenerator.java:
1194 Recurse into sub-groups, adding fields to the JasperDesign's details
1195 band. Note that we must set an arbitrary width and height, or it just
1196 will not show any data.
1198 2012-03-04 Murray Cumming <murrayc@murrayc.com>
1200 Reports Chooser: Show the titles, not the names.
1202 * src/main/java/org/glom/web/client/ui/TableSelectionViewImpl.java
1203 (TableSelectionViewImpl.setReportList): Show the titles in the UI,
1204 and the names as the values.
1205 * src/main/java/org/glom/web/server/ConfiguredDocument.java
1206 (ConfiguredDocument.getReportLayoutGroup): Do not return a default
1207 group now that we provide the report name, so it should always
1210 2012-02-15 Murray Cumming <murrayc@murrayc.com>
1212 Depend on jasperreports.
1214 * pom.xml: Add the dependency. My plan is to use this on the
1217 2012-01-31 Murray Cumming <murrayc@murrayc.com>
1219 Implement navigation to report places.
1221 * src/main/java/org/glom/web/client/activity/ReportActivity.java
1222 start(): Do not bother to handle all events here.
1223 * src/main/java/org/glom/web/client/ui/TableSelectionView.java
1224 * src/main/java/org/glom/web/client/ui/TableSelectionViewImpl.java:
1225 Added getSelectedReport().
1226 * src/main/java/org/glom/web/client/activity/TableSelectionActivity
1227 .java: start(): When handling a change to the reports chooser,
1228 call getSelectedReport() and goTo() its ReportPlace.
1229 * src/main/java/org/glom/web/client/ui/ReportView.java
1230 * src/main/java/org/glom/web/client/ui/ReportViewImpl.java:
1231 Added setReportHTML() which puts the html in a gwt HTML widget.
1232 * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java
1233 getReportHTML(): Return "TODO" just to show that this works.
1235 2012-01-31 Murray Cumming <murrayc@murrayc.com>
1237 Make ReportPlace usable.
1239 * src/main/java/org/glom/web/client/mvp/AppPlaceHistoryMapper.java:
1240 Mention ReportPlace.
1241 * src/main/java/org/glom/web/client/place/ReportPlace.java:
1242 Correct the @prefix annotation.
1244 2012-01-31 Murray Cumming <murrayc@murrayc.com>
1246 OnlineGlomService: Return report HTML rather than the LayoutGroup.
1248 * src/main/java/org/glom/web/client/OnlineGlomService.java:
1249 * src/main/java/org/glom/web/client/OnlineGlomServiceAsync.java:
1250 * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java:
1251 Change getReportLayout() to getReportHMTL() because we will not need to
1252 parse or render the report layout on the client side.
1253 * src/main/java/org/glom/web/server/ConfiguredDocument.java:
1254 getReportLayout(): Return the libglom LayoutGroup type because we will
1255 not need to convert to a shared type, because this will not be used on
1257 * src/main/java/org/glom/web/client/activity/ReportActivity.java:
1260 Note that there is still no implementation for this.
1263 2012-01-27 Murray Cumming <murrayc@murrayc.com>
1265 Add a (empty) Report Place, View, and Activity.
1267 * src/main/java/org/glom/web/client/place/HasSelectableTablePlace.java:
1269 * src/main/java/org/glom/web/client/place/HasTablePlace.java
1270 * src/main/java/org/glom/web/client/place/ListPlace.java: Move some of
1271 this into a superclass:
1272 * src/main/java/org/glom/web/client/place/HasRecordsPlace.java
1273 and also use it as the base of this new ReportPlace:
1274 * src/main/java/org/glom/web/client/place/ReportPlace.java
1276 * src/main/java/org/glom/web/client/ui/ReportView.java
1277 * src/main/java/org/glom/web/client/ui/ReportViewImpl.java
1278 * src/main/java/org/glom/web/client/activity/ReportActivity.java:
1279 Add these, containing mostly boiler-plate for now.
1281 * src/main/java/org/glom/web/client/OnlineGlomService.java
1282 * src/main/java/org/glom/web/client/OnlineGlomServiceAsync.java
1283 * src/main/java/org/glom/web/server/ConfiguredDocument.java
1284 * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java:
1285 Add API to get the LayoutGroup for the report.
1287 2012-01-23 Murray Cumming <murrayc@murrayc.com>
1289 Add and fill a Reports drop-down list box.
1291 * src/main/java/org/glom/web/server/ConfiguredDocument.java:
1293 * src/main/java/org/glom/web/client/OnlineGlomService.java:
1294 * src/main/java/org/glom/web/client/OnlineGlomServiceAsync.java:
1295 * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java:
1296 Added getReports(document, table, localeID), calling
1297 ConfiguredDocument.getReports().
1298 * src/main/java/org/glom/web/client/ui/TableSelectionView.java:
1299 * src/main/java/org/glom/web/client/ui/TableSelectionViewImpl.java:
1300 Added setReportsList() and a list widget.
1301 * src/main/java/org/glom/web/client/activity/TableSelectionActivity
1302 .java (TableSelectionActivity.fillView(): Fill the view's reports list.
1307 2012-04-12 Murray Cumming <murrayc@murrayc.com>
1309 Translations: Add Esperanto.
1311 * src/main/java/org/glom/web/OnlineGlom.gwt.xml
1312 * src/main/resources/org/glom/web/client/ui/OnlineGlomConstants_eo.
1313 properties: Add this translation because someone took the time to make it.
1315 2012-03-15 Murray Cumming <murrayc@murrayc.com>
1317 Adapt to the java-libglom 1.21.7 API.
1319 * src/main/java/org/glom/web/server/ReportGenerator.java:
1320 addToReport(): get_group_secondary_fields() is now
1321 get_secondary_fields().
1324 2012-03-15 Murray Cumming <murrayc@murrayc.com>
1326 Use the latest java-libglom version.
1328 * pom.xml: Use java-libglom 1.21.7.
1330 2012-03-03 Ben Konrath <ben@bagu.org>
1332 Display date and time in details view.
1334 https://bugzilla.gnome.org/show_bug.cgi?id=671257
1336 * src/main/java/org/glom/web/client/ui/details/DetailsCell.java:
1338 2012-03-05 Murray Cumming <murrayc@murrayc.com>
1340 Require the latest java-libglom.
1342 * pom.xml: java-libglom 1.21.5 has LayoutItem_GroupBy.
1344 2012-03-04 Murray Cumming <murrayc@murrayc.com>
1346 ListViewDbAccess.getSelectQuery(): Avoid using empty quickfind strings.
1348 * src/main/java/org/glom/web/server/database/ListViewDBAccess.java
1349 ListViewDBAccess.getSelectQuery(): Do not create a where clause for
1350 an empty quickfind string. I also corrected libglom to create only
1351 empty where clauses for empty quickfind strings, but this avoids the
1354 2012-02-24 Ben Konrath <ben@bagu.org>
1356 Improve the tabs in the Notebook widget.
1360 2012-01-30 Murray Cumming <murrayc@murrayc.com>
1362 Translations: Try to translate the strings.
1364 * src/main/resources/org/glom/web/client/ui/OnlineGlomConstants_cs.properties:
1365 * src/main/resources/org/glom/web/client/ui/OnlineGlomConstants_de.properties:
1366 * src/main/resources/org/glom/web/client/ui/OnlineGlomConstants_es.properties:
1367 * src/main/resources/org/glom/web/client/ui/OnlineGlomConstants_sl.properties:
1368 * src/main/resources/org/glom/web/client/ui/OnlineGlomConstants_zh_CN.properties:
1369 Take the Open translation from GTK+'s .po files.
1370 Take the Details translation from Glom's po files.
1371 I have added the other strings to Glom so we can get translations that way:
1372 http://git.gnome.org/browse/glom/commit/?id=c3cefe607428a84bdf8de1b04e8bef6f70b04564
1374 2012-01-27 Murray Cumming <murrayc@murrayc.com>
1376 TableSelectionViewImpl: Put the search label and entry in a div.
1378 * src/main/java/org/glom/web/client/ui/TableSelectionViewImpl.java:
1379 Put the search widgets in a FlowTable so that the CSS can be used to
1380 style them while keeping them together.
1381 * src/main/webapp/style.css: Mention the new div.
1383 2012-01-27 Murray Cumming <murrayc@murrayc.com>
1385 Translate more strings in more locales.
1387 * src/main/resources/org/glom/web/client/ui/OnlineGlomConstants.properties:
1388 * src/main/java/org/glom/web/client/ui/details/DetailsCell.java:
1389 * src/main/java/org/glom/web/client/ui/details/RelatedListTable.java:
1390 * src/main/java/org/glom/web/client/ui/list/ListViewTable.java:
1391 Translate the "Details" and "Open" string too.
1393 * src/main/java/org/glom/web/OnlineGlom.gwt.xml:
1394 * src/main/resources/org/glom/web/client/ui/OnlineGlomConstants.properties:
1395 * src/main/resources/org/glom/web/client/ui/OnlineGlomConstants_cs.properties:
1396 * src/main/resources/org/glom/web/client/ui/OnlineGlomConstants_es.properties:
1397 * src/main/resources/org/glom/web/client/ui/OnlineGlomConstants_sl.properties:
1398 * src/main/resources/org/glom/web/client/ui/OnlineGlomConstants_zh_CN.properties:
1399 Add these new locales as placeholders though they currently contain English.
1401 2012-01-27 Murray Cumming <murrayc@murrayc.com>
1403 OnlineGlomServiceImpl: Avoid (unlikely) null object dereferences.
1405 * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java: get*():
1406 Check the ConfiguredDocument* for null before using it.
1408 2012-01-26 Murray Cumming <murrayc@murrayc.com>
1410 Tell Eclipse about the generated java files.
1412 * .classpath: This lets it find OnlineGlomConstants.java.
1413 It would be nice if Eclipse just used the maven build files.
1415 2012-01-26 Murray Cumming <murrayc@murrayc.com>
1417 Prevent a crash when no locale is specified in the URL.
1419 * src/main/java/org/glom/web/client/Utils.java: getCurrentLocaleID():
1420 Avoid returning a null string, obtained from
1421 Window.Location.getParameter(). This caused a crash when it was
1422 later passed to libglom's API.
1423 * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java:
1424 init(), getDocumentInfo(), getListViewLayout(), getDocuments(),
1425 getDetailsLayoutAndData(): Use StringUtils.defaultString() to
1426 guard against future null strings.
1428 2012-01-26 Murray Cumming <murrayc@murrayc.com>
1430 Use the ?locale= query param instead of the &lang= token param.
1432 * src/main/java/org/glom/web/client/place/ListPlace.java
1433 * src/main/java/org/glom/web/client/place/DetailsPlace.java
1434 * src/main/java/org/glom/web/client/place/HasSelectableTablePlace.java
1435 Remove the lang token key and value.
1437 * src/main/java/org/glom/web/client/ui/TableSelectionView.java
1438 * src/main/java/org/glom/web/client/ui/TableSelectionViewImpl.java:
1439 When the user selects a different locale from the chooser, use
1440 Window.Location.assign() to change the URL, which then causes a reload.
1442 * src/main/java/org/glom/web/client/Utils.java: Added getCurrentLocaleID().
1443 * src/main/java/org/glom/web/client/activity/DetailsActivity.java
1444 * src/main/java/org/glom/web/client/activity/DocumentSelectionActivity.java
1445 * src/main/java/org/glom/web/client/activity/ListActivity.java
1446 * src/main/java/org/glom/web/client/activity/TableSelectionActivity
1447 * src/main/java/org/glom/web/client/ui/DocumentSelectionView.java
1448 * src/main/java/org/glom/web/client/ui/DocumentSelectionViewImpl.java:
1449 * src/main/java/org/glom/web/client/ui/ListView.java:
1450 * src/main/java/org/glom/web/client/ui/ListViewImpl.java:
1452 Remove localeID member variables and method/constructor parameters, instead
1453 using Utils.getCurrentLocaleID() when we need a localID to pass to
1456 2012-01-26 Murray Cumming <murrayc@murrayc.com>
1458 Internationalize the UI strings.
1460 * pom.xml: gwt-maven-plugin: Add the i18n goal and specify a
1461 <i18nConstantsBundle>, removing the unused <i18nMessagesBundle>.
1462 * src/main/resources/org/glom/web/client/Messages.properties: Remove this
1463 because it is unused. Messages are apparently strings that can have
1464 parameters, but we do not need that yet, so Contants will be enough for now.
1465 * src/main/java/org/glom/web/OnlineGlom.gwt.xml: Add extend-property lines
1466 to say that we support the en and de locales.
1467 * src/main/resources/org/glom/web/client/ui/OnlineGlomConstants.properties:
1468 The original English strings.
1469 * src/main/resources/org/glom/web/client/ui/OnlineGlomConstants_de.properties:
1470 Some German translations of the English strings.
1471 The i18n goal then uses the .properties file to generate an
1472 OnlineGlomConstants.java file in target/ and somehow GWT.create() magically
1473 returns an implementation that returns the translated strings.
1474 The documentation suggests putting these in src/java/*/client/, but it seems
1475 best to put it in src/resources/*/client/.
1476 * src/main/java/org/glom/web/client/ui/TableSelectionViewImpl.java:
1477 Instantiate OnlineGlomConstants via GWT.create() and use it to get the strings
1478 instead of hard-coding them.
1479 Note that we cannot import OnlineGlomConstants because it does not exist yet,
1480 but that does not seem to stop the build, though it confuses Eclipse.
1482 You can see the translated string by adding ?locale=de to the URL, like so:
1483 http://127.0.0.1:8888/OnlineGlom.html?gwt.codesvr=127.0.0.1:9997?locale=de#list:document=film_manager
1485 2012-01-24 Murray Cumming <murrayc@murrayc.com>
1487 Improve null/empty String checks.
1489 * pom.xml: Add a dependency on commons-lang, to use
1490 org.apache.commons.lang.StringUtils.
1491 * src/main/java/org/glom/web/server/ConfiguredDocument.java
1492 * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java
1493 * src/main/java/org/glom/web/server/database/RelatedListDBAccess.java
1494 * src/main/java/org/glom/web/server/database/RelatedListNavigation.java:
1495 Use StringUtils.isEmpty().
1497 * src/main/java/org/glom/web/client/StringUtils.java: Add a tiny
1498 StringUtils class with a static isEmpty() function because we
1499 cannot use org.apache.commons.lang.StringUtils in client-side
1500 GWT code because it (apparently) cannot be compiled to javascript.
1501 * src/main/java/org/glom/web/client/activity/DetailsActivity.java
1502 * src/main/java/org/glom/web/client/activity/ListActivity.java
1503 * src/main/java/org/glom/web/client/activity/TableSelectionActivity.java
1504 * src/main/java/org/glom/web/client/place/DetailsPlace.java
1505 * src/main/java/org/glom/web/client/place/HasSelectableTablePlace.java
1506 * src/main/java/org/glom/web/client/place/ListPlace.java
1507 * src/main/java/org/glom/web/client/ui/cell/NumericCell.java
1508 * src/main/java/org/glom/web/client/ui/cell/TextCell.java
1509 * src/main/java/org/glom/web/client/ui/details/DetailsCell.java
1510 * src/main/java/org/glom/web/client/ui/details/Group.java
1511 * src/main/java/org/glom/web/client/ui/details/Notebook.java: Use
1512 our StringUtils.isEmpty() function.
1514 2012-01-24 Murray Cumming <murrayc@murrayc.com>
1516 Update to the latest java-libglom API.
1518 * pom.xml: Require java-libglom 1.21.4.
1519 * src/main/java/org/glom/web/server/ConfiguredDocument.java
1520 getDocumentInfo(), getListViewLayoutGroup():
1521 * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java
1523 * src/main/java/org/glom/web/server/database/DBAccess.java
1524 getFieldsToShowForSQLQueryAddGroup(),
1525 getPrimaryKeyLayoutItemField(): Replace get_database_title()
1526 with either get_database_title_original() or
1527 get_database_title(localeID).
1529 2012-01-24 Murray Cumming <murrayc@murrayc.com>
1531 ConfiguredDocument: Avoid a null pointer exception.
1533 * src/main/java/org/glom/web/server/ConfiguredDocument.java
1534 Initialize localeID to "" to avoid returning a null String which
1535 causes a crash in java-libglom's swing-generated code.
1537 2012-01-23 Murray Cumming <murrayc@murrayc.com>
1539 Some simple renaming.
1541 * src/main/java/org/glom/web/client/ui/TableSelectionViewImpl.java
1542 * src/main/webapp/style.css: Rename, tableChooser to tablesChooser. Likewise
1543 for localeChooser. This seems more appropriate and is less ambiguous
1544 particularly in the .css file.
1546 2012-01-23 Murray Cumming <murrayc@murrayc.com>
1548 ConfiguredDocument: Rename the localedID private member variable.
1550 2012-01-23 Murray Cumming <murrayc@murrayc.com>
1552 Adapt to the latest java-libglom API from git master.
1554 * src/main/java/org/glom/web/server/database/ListDBAccess.java:
1555 libglom now uses only Vector instead of List, which uses add() instead of
1558 2012-01-22 Murray Cumming <murrayc@murrayc.com>
1560 ConfiguredDocument: Rename the localedID private member variable.
1562 2012-01-20 Murray Cumming <murrayc@murrayc.com>
1564 Build a source tarball with mvn assembly:single
1566 * assembly.xml: Add this file.
1567 * pom.xml: Use the maven-assembly-plugin and tell it to use
1568 our assembly.xml file.
1570 2012-01-19 Murray Cumming <murrayc@murrayc.com>
1572 OnlineGlomServiceImpl: Get .glom files recursively.
1574 * pom.xml: Depend on commons-io from org.apache.commons.
1575 * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java
1576 init(): Use org.apache.commons.io.FileUtils.listFiles() to get the
1577 files recursively, and with the easier filter for the extension.
1578 Use org.apache.commons.io.FilenameUtils.removeExtension() to
1579 simplify that code too.
1581 2012-01-19 Murray Cumming <murrayc@murrayc.com>
1583 README: Mention that you must install java-libglom packages separately.
1585 But then it works, because java-libglom is now in the central maven
1588 2012-01-18 Murray Cumming <murrayc@murrayc.com>
1590 locales drop-down: Show the correct selected locale when the URL changes.
1592 * src/main/java/org/glom/web/client/activity/TableSelectionActivity
1593 .java: setPlace(): Move some code into fillView().
1595 2012-01-18 Murray Cumming <murrayc@murrayc.com>
1597 locales drop-down: Do not lose the primary key.
1599 * src/main/java/org/glom/web/client/activity/DetailsActivity.java
1600 start(): onLocaleChange(): Pass the current primary key value,
1601 instead of an empty value.
1603 2012-01-18 Murray Cumming <murrayc@murrayc.com>
1605 locales drop-down: Do not lose the drop-down selection.
1607 * src/main/java/org/glom/web/client/activity/TableSelectionActivity
1608 .java (TableSelectionActivity.fillView): Set the selected locale
1609 after changing the drop-down items (though we do not really need
1610 to change them just because the locale changes.)
1612 2012-01-18 Murray Cumming <murrayc@murrayc.com>
1614 locales drop-down: Change the tables list when this changes.
1616 * src/main/java/org/glom/web/client/activity/TableSelectionActivity
1617 .java: TableSelectionActivity.start(): Move the async table titles
1618 retrieval into a private fillView() method and also call this when
1619 the chosen locale changes.
1620 Note that the document title is not actually translatable yet, but
1621 that is a problem that I should fix soon in libglom.
1623 2012-01-18 Murray Cumming <murrayc@murrayc.com>
1625 Improve the placement of the locales drop-down.
1627 * src/main/java/org/glom/web/client/ui/TableSelectionViewImpl.java
1628 Put the title and locales drop-down in a div (gwt.FlowTable).
1629 * src/main/webapp/style.css: Add magic css properties to make this work.
1630 Also remove the left margin from the title so that it lines up with the
1633 2012-01-18 Murray Cumming <murrayc@murrayc.com>
1635 locales selector: Show human-readable locale titles.
1637 * src/main/java/org/glom/web/server/ConfiguredDocument.java
1638 getDocumentInfo(): Use java.util.Locale to show a real title of
1639 each locale, in the locale's own language.
1641 2012-01-17 Murray Cumming <murrayc@murrayc.com>
1643 Add a language/locale selector drop-down.
1645 * src/main/java/org/glom/web/shared/DocumentInfo.java:
1646 Add getLocaleIDs(), setLocaleIDs(), getLocaleTitles(), setLocaleTitles().
1647 * /src/main/java/org/glom/web/server/ConfiguredDocument.java:
1648 getDocumentInfo(): Store the available Locales in the DocumentInfo.
1649 * src/main/java/org/glom/web/client/ui/TableSelectionView.java:
1650 * src/main/java/org/glom/web/client/ui/TableSelectionViewImpl.java:
1651 Add a ListBox to show the available locales. Add getLocaleSelector(),
1652 setLocaleList(), getSelectedLocale(), setSelectedLocale().
1653 * src/main/java/org/glom/web/client/event/LocaleChangeEvent.java
1654 * src/main/java/org/glom/web/client/event/LocaleChangeEventHandler.
1655 java: Add these classes.
1656 * src/main/java/org/glom/web/client/activity/TableSelectionActivity.java:
1657 start(): Fill the locales ListBox. Handle its change event, firing a
1659 setPlace(): Show the selected locale as specified by the URL token.
1660 * src/main/java/org/glom/web/client/activity/DetailsActivity.java:
1661 * src/main/java/org/glom/web/client/activity/ListActivity.java:
1662 Handle LocaleChangeEvent, going to a new *Place with that locale.
1664 The placement of the ListBox is not pretty, and it currently uses the ID
1665 as a title, instead of "English", "Deutsch", "Espanola", etc, but it
1669 2012-01-17 Murray Cumming <murrayc@murrayc.com>
1671 Search box: Show the search text from the URL token.
1673 * src/main/java/org/glom/web/client/ui/TableSelectionView.java:
1674 * src/main/java/org/glom/web/client/ui/TableSelectionViewImpl.java:
1675 Add setQuickFindText().
1676 * src/main/java/org/glom/web/client/activity/TableSelectionActivity
1677 .java: setPlace(): Store the queryText if the place is a ListPlace,
1678 and call TableSelectionView.setQuickFindText().
1680 2012-01-17 Murray Cumming <murrayc@murrayc.com>
1682 Allow use of translations via, for instance, &lang=de in the URL.
1684 * pom.xml: Use the unstable java-libglom 1.21 version.
1686 * src/main/java/org/glom/web/client/OnlineGlomService.java:
1687 * src/main/java/org/glom/web/client/OnlineGlomServiceAsync.java
1688 * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java:
1689 init(): Instead of calling TranslatableItem.set_current_locale()
1690 (now removed), call ConfiguredDocument.setDefaultLocaleID().
1691 However, this is only for default locales, which are not needed to
1692 change the locale in the URL.
1693 getDocumentInfo(), getListViewLayout(), getSortedListViewData(),
1694 getDetailsData(), getDetailsLayoutAndData(), getRelatedListData(),
1695 getSortedRelatedListData(): Add a localeID parameter, so we can get the
1696 layout for a particular locale.
1697 * src/main/java/org/glom/web/server/ConfiguredDocument.java:
1698 Add get/setDefaultLocaleID().
1699 getDocumentInfo(), getListViewData(), getRelatedListData(),
1700 getDetailsLayoutGroup(), getListViewLayoutGroup(),
1701 createLayoutItemPortalDTO(), convertToGWTGlomLayoutItemField(): Add a
1702 localeID parameter, so we can get the layout for a particular locale.
1704 * src/main/java/org/glom/web/client/place/HasSelectableTablePlace.java:
1705 * src/main/java/org/glom/web/client/place/DetailsPlace.java:
1706 * src/main/java/org/glom/web/client/place/ListPlace.java:
1707 Parse and construct a lang parameter too.
1709 * src/main/java/org/glom/web/client/activity/DocumentSelectionActivity.java:
1710 start(): Pass the defaultLocaleID to addDocumentLink(). It is then
1711 passed to subsequent methods and constructors.
1712 * src/main/java/org/glom/web/client/activity/DetailsActivity.java:
1713 * src/main/java/org/glom/web/client/activity/ListActivity.java:
1714 Store the localeID from the *Place and pass it to other constructors
1715 and methods, such as OnlineGlomServiceAsync.getDetailsLayoutAndData().
1717 * src/main/java/org/glom/web/client/ui/DocumentSelectionView.java:
1718 * src/main/java/org/glom/web/client/ui/DocumentSelectionViewImpl.java:
1719 * src/main/java/org/glom/web/client/ui/TableSelectionView.java
1720 * src/main/java/org/glom/web/client/ui/TableSelectionViewImpl.java
1721 * src/main/java/org/glom/web/client/ui/ListView.java:
1722 * src/main/java/org/glom/web/client/ui/ListViewImpl.java:
1723 Take localeID parameters and pass them to subsequent constructors and
1724 methods, so that the layout is always retrieved for that locale.
1726 This is rather repetitive.
1728 Note that "" means the original (default) locale of the Glom document,
1729 which is usually English.
1731 2012-01-17 Murray Cumming <murrayc@murrayc.com>
1733 Documents: Remove final keyword to fix startup configuration.
1735 * src/main/java/org/glom/web/shared/Documents.java: Remove the
1736 final keywords on the private member variables because that breaks
1737 the startup, apparently (there are warnings) because it stops them
1738 from being serialized. I added these in the previous commit.
1740 2012-01-13 Murray Cumming <murrayc@murrayc.com>
1742 Documents: Add some final keywords.
1744 * src/main/java/org/glom/web/shared/Documents.java: Eclipse suggested
1747 2012-01-13 Murray Cumming <murrayc@murrayc.com>
1749 OnlineGlomServiceImpl: Add to overview comments.
1751 * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java:
1752 Note that this is where all the document are loaded. They are not
1753 loaded freshly for each page.
1755 2012-01-12 Murray Cumming <murrayc@murrayc.com>
1759 * src/main/java/org/glom/web/client/ui/TableSelectionViewImpl.java:
1760 Add a TextBox for the text of a quick find.
1761 Add getQuickFindBox(), to get the widget, and getQuickFindText() to
1763 setBackLink(): Add a String quickFind parameter.
1764 * src/main/java/org/glom/web/client/ui/TableSelectionView.java
1765 (TableSelectionView): Add getQuickFindBox() and getQuickFindText()
1766 to the base interface, because that is how TableSelectionViewImpl is used.
1767 * src/main/webapp/style.css: Add style for the search box and its label.
1769 * src/main/java/org/glom/web/client/event/QuickFindChangeEvent.java:
1770 * src/main/java/org/glom/web/client/event/QuickFindChangeEventHandler.java:
1771 Add these files, based on the existing TableChangeEvent and
1772 TableChangeEventHandlers.
1773 * src/main/java/org/glom/web/client/activity/DetailsActivity.java
1774 start(): Handle QuickFindChangeEvent, passing its quickFind text to
1775 a ListPlace() that the user should be taken to.
1776 * src/main/java/org/glom/web/client/activity/ListActivity.java
1777 start(): Handle it here too and adapt the TableChangeEvent handler to
1778 pass the extra "" quickFind parameter to ListPlace.
1779 * src/main/java/org/glom/web/client/place/ListPlace.java:
1780 Constructor: Take an extra String quickFind parameter and store it,
1781 returning it from a new getQuickFind() method.
1782 getToken(): Put the quickFind text in the URL token.
1783 getPlace(): Parse the quickFind text from the URL token.
1784 * src/main/java/org/glom/web/client/ui/DocumentSelectionViewImpl.ja
1785 va: addDocumentLink(): Pass an extra "" quickFind parameter to the
1786 ListPlace constructor.
1787 * src/main/java/org/glom/web/client/activity/TableSelectionActivity
1788 .java: start(): Add a Change handler for the TableSelectionView's
1789 TextBox (via its base HasChangeHandlers interface), firing the new
1790 QuickFindChangeEvent.
1791 setPlace(): Adapt the call to TableSelectionView.setbackLink(), to
1792 pass the extra "" quickFind parameter.
1794 * src/main/java/org/glom/web/client/ui/ListViewImpl.java:
1795 setCellTable(): Add a String quickFind parameter and pass it to
1796 the ListViewTable() constructor.
1797 * src/main/java/org/glom/web/client/ui/ListView.java: Change
1798 setCellTable() in the base interface, because that is how ListViewImpl
1801 * src/main/java/org/glom/web/client/ui/list/ListTable.java:
1802 Add a String quickFind member variable.
1803 * src/main/java/org/glom/web/client/ui/list/ListViewTable.java:
1804 Constructor: Add a String quickFind parameter, storing it in the
1805 base ListTable's member variable.
1806 onRangeChanged(): Pass quickFind to the
1807 OnlineGlomServiceAsync.getSortedListViewData() and
1808 OnlineGlomServiceAsync.getListViewData() methods.
1810 * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java:
1811 getListViewData(), getSortedListViewData(): Add a String quickFind
1812 parameter, passing it to ConfiguredDocument.getListViewData().
1813 * src/main/java/org/glom/web/client/OnlineGlomService.java:
1814 Change getListViewData(), getSortedListViewData() in the base interface,
1815 because that is how OnlineGlomServiceImpl is used, via this:
1816 * src/main/java/org/glom/web/client/OnlineGlomServiceAsync.java:
1817 Change getListViewData(), getSortedListViewData() here too.
1818 This class can apparently be used to asynchronously call methods on
1819 OnlineGlomService, and GWT seems to implement that after recognizing
1820 just the *Async name convention and the extra AsyncCallback parameters.
1822 * src/main/java/org/glom/web/server/ConfiguredDocument.java
1823 getListViewData(): Add a String quickFind parameter, and pass it to
1824 ListViewDBAccess.getData().
1825 * src/main/java/org/glom/web/server/database/ListDBAccess.java
1826 getListData(): Add a String quickFind parameter and pass it to
1828 getSelectQuery(): Add a String quickFind parameter.
1829 * src/main/java/org/glom/web/server/database/ListViewDBAccess.java
1830 getSelectQuery(): Add a String quickFind parameter and use it with
1831 Glom.get_find_where_clause_quick() to pass a where_clause to
1832 Glom.build_sql_select_with_where_clause(), to actually filter the
1834 getData(): Add a String quickFind parameter, passing it to getListData().
1835 * src/main/java/org/glom/web/server/database/RelatedListDBAccess.ja
1836 va: getData(): Pass an empty string to getListData() for the
1837 quickFind parameter.
1839 2012-01-12 Murray Cumming <murrayc@murrayc.com>
1841 ListTable: Minor change.
1843 * src/main/java/org/glom/web/client/ui/list/ListTable.java
1844 createCellTable(): Make this protected instead of public.
1846 2012-01-12 Murray Cumming <murrayc@murrayc.com>
1848 Many files: Use final for the parameters and use the @override attribute.
1850 2012-01-22 Ben Konrath <ben@bagu.org>
1852 Add anchor links for single line text that starts with http, ftp and www.
1856 2012-01-22 Ben Konrath <ben@bagu.org>
1858 Add ellipsis to single line text in details view.
1862 2012-01-04 Murray Cumming <murrayc@murrayc.com>
1864 Remove all javadoc author tags.
1866 Because they are awkward and meaningless when many people touch
1868 See https://gitorious.org/online-glom/gwt-glom/commit/7628b732cb90cbc6d5635420a75568504e8b3655#comment_81164
1870 2012-01-04 Murray Cumming <murrayc@murrayc.com>
1872 Revert the COPYING.LESSER to COPYING rename.
1874 Apparently both should be there if it is LGPL.
1876 2012-01-03 Murray Cumming <murrayc@murrayc.com>
1878 *View: Remove unused imports.
1880 * src/main/java/org/glom/web/client/ui/DetailsView.java:
1881 * src/main/java/org/glom/web/client/ui/DocumentSelectionView.java
1882 * src/main/java/org/glom/web/client/ui/ListView.java:
1883 * src/main/java/org/glom/web/client/ui/TableSelectionView.java:
1884 Remove unused imports, as suggested by Eclipse.
1886 2012-01-02 Murray Cumming <murrayc@murrayc.com>
1888 Move the *View::Presenter types, and some API into one base View.
1890 * src/main/java/org/glom/web/client/ui/DetailsView.java:
1891 * src/main/java/org/glom/web/client/ui/DocumentSelectionView.java:
1892 * src/main/java/org/glom/web/client/ui/ListView.java:
1893 * src/main/java/org/glom/web/client/ui/TableSelectionView.java: Move
1894 Presenter, setPresenter() and clear() into a shared base interface,
1895 to avoid the unnecessary duplicate Presenter types and to more clearly
1896 show how the *Views share the same structure, even if they are not
1897 used polymorphically.
1899 * src/main/java/org/glom/web/client/ui/DetailsViewImpl.java:
1900 * src/main/java/org/glom/web/client/ui/DocumentSelectionViewImpl.ja
1902 * src/main/java/org/glom/web/client/activity/DetailsActivity.java:
1903 * src/main/java/org/glom/web/client/activity/ListActivity.java:
1904 * src/main/java/org/glom/web/client/activity/DocumentSelectionActiv
1906 * src/main/java/org/glom/web/client/activity/TableSelectionActivity
1909 Feel free to revert this if there is a good reason for the duplicate
1912 2012-01-02 Murray Cumming <murrayc@murrayc.com>
1914 OnlineGlom: Make clientFactory a (protected) member, and test it a bit.
1916 * src/main/java/org/glom/web/client/OnlineGlom.java: Make clientFactory
1917 a class member instead of a local variable in the method.
1918 This lets us use it to get the view instances, for use in tests.
1919 * src/test/java/org/glom/web/client/GwtTestOnlineGlom.java:
1920 beforeOnlineGlom(): Test some more details of the initial view.
1921 Again, this is not very useful.
1923 To really test gwt-glom we will need to start a local postgresql
1924 instance with local data, like the Glom tests in C++.
1926 2012-01-02 Murray Cumming <murrayc@murrayc.com>
1928 pom.xml: Mention the LGPL license.
1930 * pom.xml: Add a licenses section.
1931 * COPYING.LESSER: Move this to COPYING, which
1932 previously contained the GPL. But gwt-glom is all LGPL.
1934 2012-01-02 Murray Cumming <murrayc@murrayc.com>
1936 Add project information to README and pom.xml.
1938 * README: Add a brief description and mention some mvn
1940 * pom.xml: This extra information shows up in mvn site
1943 2011-01-02 Murray Cumming <murrayc@murrayc.com>
1945 Use the latest java-libglom version.
1947 * pom.xml: Use java-libglom 1.19.2 instead of 1.19.1.
1949 2012-01-01 Murray Cumming <murrayc@murrayc.com>
1951 GwtTestOnlineGlom: Test a little more.
1953 * src/main/java/org/glom/web/client/OnlineGlom.java: Make the panels
1954 protected rather than private, as suggested by the gwt-test-utils
1956 http://stackoverflow.com/questions/7931724/gwt-testcase-simulating-clicking-a-button-on-my-page
1957 * src/test/java/org/glom/web/client/GwtTestOnlineGlom.java
1958 Test the initial visibility of the panels.
1960 However, this is not a very useful test.
1961 And I wonder how we should generally test using this idea for an
1962 activity/places app like ours where the real changes happen implicitly
1963 based on the history token/URL.
1965 2012-01-01 Murray Cumming <murrayc@murrayc.com>
1967 Slight modification to *Mapper comments.
1969 * src/main/java/org/glom/web/client/mvp/DataActivityMapper.java
1970 (DataActivityMapper)
1971 * src/main/java/org/glom/web/client/mvp/DocumentSelectionActivityMa
1973 * src/main/java/org/glom/web/client/mvp/TableSelectionActivityMappe
1975 Remove comments mentioning GIN because they are just copied from
1976 the example code and are apparently not helpful:
1977 http://groups.google.com/group/google-web-toolkit/msg/82f0098b20669a73
1978 Also change the mention of a class that is only in the example code.
1980 2012-01-01 Murray Cumming <murrayc@murrayc.com>
1982 GwtTestOnlineGlom test: Minor changes.
1984 * src/test/java/org/glom/web/client/GwtTestOnlineGlom.java:
1985 Avoid the long qualified class name and modify the comment
1986 because it is now obvious to me that the mocked class is the only
1987 custom one created via GWT.create().
1989 2012-01-01 Murray Cumming <murrayc@murrayc.com>
1991 Tests: Added the beginnings of a test using gwt-test-utils.
1993 * pom.xml: Add dependencies on gwt-test-utils and easymock.
1994 * src/test/resources/META-INF/gwt-test-utils.properties: Add this file
1995 which tells gwt-test-utils what class will be tested.
1996 * src/test/java/org/glom/web/client/GwtTestOnlineGlom.java:
1997 Add a simple (but empty) test case. One class, used by the OnlineGlom
1998 class, is mocked so that it can be created. However, I am not sure
1999 why only this class needs to be mocked.
2001 Note that mockito seems more popular, and clearer, than easymock,
2002 but I have not got that working yet. It might be a matter of the
2005 This test is run during mvn integration-test.
2007 2011-12-31 Murray Cumming <murrayc@murrayc.com>
2009 Tests: Use junit4-style syntax instead of junit3-style.
2011 * src/test/java/org/glom/web/client/place/DetailsPlaceTest.java:
2012 * src/test/java/org/glom/web/client/place/ListPlaceTest.java:
2013 * src/test/java/org/glom/web/shared/DataItemTest.java:
2014 Use the @Test annotation rather than relying on the test*() prefix.
2015 Also no longer implement TestCase, to avoid triggering support for
2016 the junit3-way, which stops the annotations from working.
2017 Change the imports from import junit.framework.* to
2018 import org.junit.*, which is apparently the new way.
2020 2011-12-31 Murray Cumming <murrayc@murrayc.com>
2022 Added a test for ListPlace token parsing and creation.
2024 * src/test/java/org/glom/web/client/place/ListPlaceTest.java:
2025 This is much the same as DetailsPlaceTest.
2027 I wonder how we could test the other parts of the *Place API.
2029 2011-12-30 Murray Cumming <murrayc@murrayc.com>
2031 DetailsPlace test: Also test getToken() and recreation via getPlace().
2033 * src/test/java/org/glom/web/client/place/DetailsPlaceTest.java:
2034 testGetPlaceParameters(): Get the tokens from the DetailsPlace and
2035 recreate it, testing the recreated DetailsPlace for the same parameter
2038 2011-12-30 Murray Cumming <murrayc@murrayc.com>
2040 Use the surefire-report plugin.
2042 * pom.xml: This generates a HTML report about the tests in
2043 target/site/surefire-report.html
2044 when you do mvn surefire-report:report. It seems to be popular/normal.
2046 2011-12-30 Murray Cumming <murrayc@murrayc.com>
2048 Added a test for DetailsPlace.
2050 * src/test/java/org/glom/web/client/place/DetailsPlaceTest.java:
2051 Test the getPlace() token parsing.
2053 2011-12-30 Murray Cumming <murrayc@murrayc.com>
2055 Added a first unit test.
2057 * pom.xml: Add a test goal, and a dependency on junit in that scope.
2058 * src/test/java/org/glom/web/shared/DataItemTest.java:
2059 This is a silly test but it is just to get things started. Note that
2060 maven/junit finds the test because it looks in src/test by default.
2062 2011-12-22 Ben Konrath <ben@bagu.org>
2064 Change charsetName to "UTF-8" when replacing line breaks.
2066 JavaScript requires the charsetName to be "UTF-8". CharsetName values
2067 that work in Java (such as "UTF8") will not work when compiled to
2070 This fixes a problem with multi-line details view fields that have hard
2071 line breaks. The "License Text" field on this page demonstrates the
2074 http://onlineglom.openismus.com/OnlineGlom/#details:document=debian_repository_analyzer&table=licenses&value=197
2076 * src/main/java/org/glom/web/client/ui/details/DetailsCell.java:
2078 2011-12-22 Ben Konrath <ben@bagu.org>
2080 Fix another bug with related list navigation.
2082 I've tested all the navigation buttons in all of the related lists
2083 so things should be good now.
2085 * src/main/java/org/glom/web/server/ConfiguredDocument.java:
2087 2011-12-22 Ben Konrath <ben@bagu.org>
2089 Fix a crasher when refreshing the list view with the default table.
2091 This crash will also happen when loading the list view with the default
2092 table from a link or bookmark.
2094 * src/main/java/org/glom/web/client/activity/DetailsActivity.java: Go
2095 to the main document selection page when the document id hasn't been
2097 * src/main/java/org/glom/web/client/activity/ListActivity.java: Go to
2098 the main document selection page when the document id hasn't been
2100 * src/main/java/org/glom/web/client/place/DetailsPlace.java: Use empty
2101 values for the details place when the document id hasn't been set.
2102 * src/main/java/org/glom/web/client/place/ListPlace.java: Use empty
2103 values for the list place when the document id hasn't been set.
2105 2011-12-21 Ben Konrath <ben@bagu.org>
2107 Protect against NPE when glom.document.locale is not in config.
2109 This patch protects against an NPE when glom.document.locale is not in
2110 the config file. This NPE will also happen if glom.document.locale is
2113 The patch also updates the error message to display the class name when
2114 the getMessage() returns null. This was happening when the NPE was
2115 thrown and I had "Configuration Error: null". If an NPE is encountered
2116 with this patch, "Configuration Error: NullPointerException " will be
2119 This commit closes this bug:
2121 https://bugzilla.gnome.org/show_bug.cgi?id=666669
2123 * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java:
2125 2011-12-20 Murray Cumming <murrayc@murrayc.com>
2127 Rename onlineglom.properties to onlineglom.properties.sample.
2129 * src/main/resources/onlineglom.properties: Rename to:
2130 * src/main/resources/onlineglom.properties.sample:
2131 * src/main/resources/README: And add this file explaining that people
2132 should rename it back when deploying.
2134 2011-12-20 Murray Cumming <murrayc@murrayc.com>
2136 Allow choosing the translation in the .properties file.
2138 * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java
2139 init(): Read a glom.document.locale value from the configuration file
2140 and call Glom's TransatableItem::set_current_locale() method.
2141 * src/main/resources/onlineglom.properties: Add a commented-out
2142 example of this new setting.
2144 It would be better to add &lang=de_DE to the URL, but the current
2145 libglom API does not allow us to do this easily. I am working on that.
2147 2011-12-19 Murray Cumming <murrayc@murrayc.com>
2149 Avoid a crash in parsing of token parameters.
2151 * src/main/java/org/glom/web/client/place/HasSelectableTablePlace.j
2152 ava: getTokenParams(): Do not crash if a parameter has a key but no
2153 value, and ignore parameters with neither.
2155 2011-12-17 Murray Cumming <murrayc@murayc.com>
2157 History token building/handling: Improve use of token parameters.
2159 * src/main/java/org/glom/web/client/place/HasSelectableTablePlace.java
2160 (HasSelectableTablePlace.Tokenizer): Add getTokenParams(String)
2161 and buildParamsToken(HashMap), for use by derived classes.
2162 Make the separator private because it is no longer be needed.
2163 * src/main/java/org/glom/web/client/place/DetailsPlace.java
2164 (DetailsPlace.Tokenizer.getToken): Use buildParamsToken()
2165 instead of manual string concatenation.
2166 (DetailsPlace.Tokenizer.getPlace): Use getTokenParams() instead
2167 of hardcoded indices and awkward splitting code.
2168 * src/main/java/org/glom/web/client/place/ListPlace.java
2169 (ListPlace.Tokenizer.getToken): Use buildParamsToken()
2170 instead of manual string concatenation.
2171 (ListPlace.Tokenizer.getPlace): Use getTokenParams() instead
2172 of hardcoded indices and awkward splitting code.
2173 This should fix bug #666420
2175 2011-12-16 Murray Cumming <murrayc@murrayc.com>
2177 Fix a Navgiation->Navigation typo in the code.
2179 * src/main/java/org/glom/web/client/activity/DetailsActivity.java
2180 Rename processNavgiation() to processNavigation().
2182 2011-12-16 Murray Cumming <murrayc@murrayc.com>
2184 Fix a seperator->separator typo in the code.
2186 * src/main/java/org/glom/web/client/place/DetailsPlace.java
2187 * src/main/java/org/glom/web/client/place/HasSelectableTablePlace.java
2188 * src/main/java/org/glom/web/client/place/ListPlace.java: Just a
2191 2011-12-15 Ben Konrath <ben@bagu.org>
2193 Cleanup some comments.
2195 * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java:
2197 2011-12-14 Ben Konrath <ben@bagu.org>
2199 Replace \n with <br/> for multiline text in the details view.
2201 Vertical scrollbars are added when needed as well.
2203 * src/main/java/org/glom/web/client/ui/details/DetailsCell.java:
2205 2011-12-14 Ben Konrath <ben@bagu.org>
2207 Specify the font for document selection links.
2209 * src/main/webapp/style.css:
2211 2011-12-14 Ben Konrath <ben@bagu.org>
2213 Fix bouncy CellTable while paging.
2215 This doesn't currently work with related list tables in unselected
2218 * src/main/java/org/glom/web/client/ui/list/ListTable.java
2220 2011-12-14 Ben Konrath <ben@bagu.org>
2222 Revamp the appearance of the document selection page.
2224 * src/main/java/org/glom/web/client/ui/DocumentSelectionViewImpl.java:
2225 * src/main/java/org/glom/web/client/ui/DocumentSelectionViewImpl.ui.xml:
2226 * src/main/webapp/style.css:
2228 2011-12-13 Ben Konrath <ben@bagu.org>
2230 Set navigation button column to the smallest size possible.
2232 * src/main/java/org/glom/web/client/ui/list/ListTable.java:
2234 2011-12-13 Ben Konrath <ben@bagu.org>
2236 Change OpenButton nomenclature to NavigationButton.
2238 Using NavigtionButton makes things more generic. Classes, methods and
2239 variables have been changed.
2241 This is a rename-only refactor.
2243 * src/main/java/org/glom/web/client/activity/DetailsActivity.java:
2244 * src/main/java/org/glom/web/client/ui/ListViewImpl.java:
2245 * src/main/java/org/glom/web/client/ui/cell/NavigationButtonCell.java:
2246 Renamed from OpenButtonCell.
2247 * src/main/java/org/glom/web/client/ui/details/RelatedListTable.java:
2248 * src/main/java/org/glom/web/client/ui/list/ListTable.java:
2249 * src/main/java/org/glom/web/client/ui/list/ListViewTable.java:
2251 2011-12-12 Ben Konrath <ben@bagu.org>
2253 Remove unnecessary String argument in RelatedListTable and ListViewTable.
2255 * src/main/java/org/glom/web/client/activity/DetailsActivity.java:
2256 * src/main/java/org/glom/web/client/ui/ListViewImpl.java:
2257 * src/main/java/org/glom/web/client/ui/details/RelatedListTable.java:
2258 * src/main/java/org/glom/web/client/ui/list/ListViewTable.java:
2260 2011-12-12 Ben Konrath <ben@bagu.org>
2262 Update variable names and comments.
2264 * src/main/java/org/glom/web/client/ui/details/RelatedListTable.java:
2265 * src/main/java/org/glom/web/client/ui/list/ListViewTable.java:
2267 2011-12-12 Ben Konrath <ben@bagu.org>
2269 Properly initialize numNonEmptyRows variable to zero.
2271 * src/main/java/org/glom/web/client/ui/details/RelatedListTable.java:
2272 * src/main/java/org/glom/web/client/ui/list/ListViewTable.java:
2274 2011-12-05 Ben Konrath <ben@bagu.org>
2276 Add latest mockup with HTML tables.
2278 Features of this mockup:
2280 -> HTML table for flowtable
2281 -> HTML table for flowtable column
2282 -> Example of how related lists would look
2283 -> Not using text entries for data items
2285 The current version of Online Glom doesn't use HTML tables for the
2288 This mockup has been sent to the glom-devel mailing list but it's good
2289 to have it here as well.
2291 * mockups/details-view-html-tables.html:
2293 2011-12-05 Ben Konrath <ben@bagu.org>
2295 Remove unnecessary getPrimaryKeyField() method.
2297 getPrimaryKeyFieldForTable(String) has been renamed to
2298 getPrimaryKeyField(String).
2300 * src/main/java/org/glom/web/server/database/DBAccess.java:
2301 * src/main/java/org/glom/web/server/database/DetailsDBAccess.java:
2302 * src/main/java/org/glom/web/server/database/RelatedListNavigation.java:
2304 2011-12-05 Ben Konrath <ben@bagu.org>
2306 Add string representation of TypedDataItem value to conversion error message.
2308 * src/main/java/org/glom/web/server/Utils.java: Logging the error
2309 message was extracted into its own method to avoid duplication.
2311 2011-12-05 Ben Konrath <ben@bagu.org>
2313 Add type checking to navigation primary key value creation.
2315 Create navigation primary key only if the expected type from the Glom
2316 document matches the type returned by the SQL query.
2318 * src/main/java/org/glom/web/server/database/RelatedListNavigation.java:
2320 2011-12-05 Ben Konrath <ben@bagu.org>
2322 Rename a couple of variables in RelatedListNavigation.
2324 This is a rename-only refactor.
2326 * src/main/java/org/glom/web/server/database/RelatedListNavigation.java:
2328 2011-12-05 Ben Konrath <ben@bagu.org>
2330 Move getListLayoutGroup() into getListViewLayoutGroup().
2332 This removes getListLayoutGroup(). It was only being called by
2333 getListViewLayoutGroup().
2335 * src/main/java/org/glom/web/server/ConfiguredDocument.java:
2337 2011-12-05 Ben Konrath <ben@bagu.org>
2339 Remove check for LayoutItem_Portal in list table method.
2341 This check is no longer necessary because the method isn't being used
2342 to create the LayoutItemPortal DTO.
2344 * src/main/java/org/glom/web/server/ConfiguredDocument.java:
2346 2011-12-05 Ben Konrath <ben@bagu.org>
2348 Properly support related list navigation.
2350 Navigation from the "Repository Analyzer -> Package Scans ->
2351 Dependencies" related table wasn't working because the primary key for
2352 related tables wasn't being set properly. This commit fixes the
2355 * src/main/java/org/glom/web/server/ConfiguredDocument.java: Don't use
2356 getListLayoutGroup() to create the LayoutItemPortal DTO. This method
2357 doesn't set the primary key properly for related list tables.
2358 * src/main/java/org/glom/web/server/database/DBAccess.java: Add table
2359 name parameter to getPrimaryKeyLayoutItemField(). This makes the method
2360 useful for getting the primary key for list view tables and for related
2362 * src/main/java/org/glom/web/server/database/ListDBAccess.java:
2363 * src/main/java/org/glom/web/server/database/ListViewDBAccess.java:
2364 Move code to set the primary key for the table from the abstract
2365 ListDBAccess class to ListViewDBAccess as it's only correct for list
2367 * src/main/java/org/glom/web/server/database/RelatedListDBAccess.java:
2368 Properly add primary key to related list tables.
2370 2011-12-02 Ben Konrath <ben@bagu.org>
2372 Properly set the horizontal alignment of fields.
2374 This fix is for both the list tables and the details view.
2376 * src/main/java/org/glom/web/server/ConfiguredDocument.java: Use
2377 LayoutItem_WithFormatting.get_formatting_used_horizontal_alignment(boolean)
2378 to set the horizontal alignment of fields.
2380 2011-12-02 Ben Konrath <ben@bagu.org>
2382 Display currency codes in the details view.
2384 * src/main/java/org/glom/web/client/ui/details/DetailsCell.java:
2386 2011-12-02 Ben Konrath <ben@bagu.org>
2388 Avoid duplicate JNI call.
2390 JNI is not as efficient as pure Java and this is an easy (and small)
2393 * src/main/java/org/glom/web/server/database/RelatedListDBAccess.java:
2394 Use previously retrieved value for whereClauseToTableName instead of
2397 2011-12-02 Ben Konrath <ben@bagu.org>
2399 Rename a couple of variables in RelatedListNavigation.
2401 This is a rename-only refactor.
2403 * src/main/java/org/glom/web/server/database/RelatedListNavigation.java:
2405 2011-12-02 Ben Konrath <ben@bagu.org>
2407 Indicate clearly that a mismatched primary key type is a bug.
2409 * src/main/java/org/glom/web/server/Utils.java: Change log level from
2410 warning to error. Add 'This is a bug.' to message.
2412 2011-12-02 Ben Konrath <ben@bagu.org>
2414 Update / fix some comments.
2416 * src/main/java/org/glom/web/client/OnlineGlomService.java: Remove old
2418 * src/main/java/org/glom/web/client/ui/details/DetailsCell.java: Fix
2420 * src/main/java/org/glom/web/server/database/RelatedListDBAccess.java:
2421 Fix comments. Add some TODOs.
2423 2011-12-02 Ben Konrath <ben@bagu.org>
2425 Enable navigation to details view with string primary key from related list.
2427 * src/main/java/org/glom/web/server/database/RelatedListNavigation.java:
2428 Create a text primary key value when return type of result is
2429 java.sql.Types.VARCHAR.
2431 2011-12-02 Ben Konrath <ben@bagu.org>
2433 Use checkboxes for booleans in the details view.
2435 * src/main/java/org/glom/web/client/ui/details/DetailsCell.java:
2437 2011-12-01 Ben Konrath <ben@bagu.org>
2439 Improve performance of related list height calculation.
2441 * src/main/java/org/glom/web/client/ui/details/RelatedListTable.java:
2442 Put code to calculate the expected height in a static initializer so
2443 that that it's only called once.
2445 2011-12-01 Ben Konrath <ben@bagu.org>
2447 Show related list tables in notebooks (again).
2449 Calculate the height of the related list tables so the Notebook can be
2450 set the correct height. The height of the related list table is also needed by
2451 FlowTable to be able decide how to create the layout.
2453 * src/main/java/org/glom/web/client/ui/details/Portal.java: Calculate
2454 and set the Portal height based on the height of the related list
2455 table and the Portal container.
2456 * src/main/java/org/glom/web/client/ui/details/RelatedListTable.java:
2457 Add method to calculate the height of the related list tables.
2458 * src/main/java/org/glom/web/client/ui/list/ListTable.java:
2459 * src/main/webapp/style.css: Add css class for Pager. This is needed to
2460 calculate the height of the Pager widget.
2462 2011-12-01 Ben Konrath <ben@bagu.org>
2464 Use CellTable API for table property instead of setting style on Element.
2466 * src/main/java/org/glom/web/client/ui/details/RelatedListTable.java:
2468 2011-12-01 Ben Konrath <ben@bagu.org>
2470 Make ListViewTable and RelatedListTable a consistent height.
2472 The tables are now a consistent height regardless of the contents of
2473 the table. A hidden button is added to empty rows to ensure that the
2474 height of these rows will match the height of rows with data.
2476 A navigation button column is now added to every table. The width of
2477 the navigation column is set to 0px when a RelatedListTable shouldn't
2478 have navigation buttons. This maintains the a consistent row height in
2479 tables that don't show the navigation buttons.
2481 * src/main/java/org/glom/web/client/activity/DetailsActivity.java: Hide
2482 navigation column when not needed.
2483 * src/main/java/org/glom/web/client/ui/ListViewImpl.java: Move method
2484 arguments for navigation button to constructor of ListViewTable.
2485 * src/main/java/org/glom/web/client/ui/cell/OpenButtonCell.java: Render
2486 hidden button for empty data rows.
2487 * src/main/java/org/glom/web/client/ui/details/RelatedListTable.java: Add method
2488 arguments for navigation button to constructor.
2489 * src/main/java/org/glom/web/client/ui/list/ListTable.java: Always
2490 create navigation buttons. Add hideNavigationButtons() method.
2491 * src/main/java/org/glom/web/client/ui/list/ListViewTable.java: Add method
2492 arguments for navigation button to constructor.
2494 2011-12-01 Ben Konrath <ben@bagu.org>
2496 Use 'visibility: hidden' in Utils.getWidgetHeight().
2498 This is better choice because hidden elements are invisible, don't
2499 respond to events and are not part of the tab order. They will,