1 2012-07-20 Murray Cumming <murrayc@murrayc.com>
3 tests: SelfHoster: createConnection(): Do not warn about expected failures.
5 Let the caller say if the connection is expected to fail, to avoid
6 irrelevant error output.
8 2012-07-20 Murray Cumming <murrayc@murrayc.com>
10 tests: SelfHoster: createAndSelfHostNewEmpty(): Sleep after starting server.
12 * src/test/java/org/glom/web/server/SelfHoster.java:
13 createAndSelfHostNewEmpty(): Sleep initially, to avoid distracting errors
14 due to the inevitable need to retry the connection while the database server
17 2012-07-20 Murray Cumming <murrayc@murray.com>
19 tests: SelfHoster: createConnection(): Set a timeout.
21 * src/test/java/org/glom/web/server/SelfHoster.java:
22 createConnection(): Use setLoginTimeout() because it otherwise seems to take
23 ages to actually return when it fails.
25 2012-07-20 Murray Cumming <murrayc@murrayc.com>
27 tests: SelfHoster: selfHost(): Close the test connection.
29 * src/test/java/org/glom/web/server/SelfHoster.java: selfHost():
30 When we check that the connection works, close the connection. This seems
31 to not be closed automatically otherwise.
33 2012-07-20 Murray Cumming <murrayc@murrayc.com>
35 Use slf4j-simple to see JDBC errors.
37 * pom.xml: Depend on slf4j-simple so we can see errors from JDBC.
39 2012-07-19 Murray Cumming <murrayc@murrayc.com>
41 SelfHoster.discoverFirstFreePort(): Close the socket.
43 * src/test/java/org/glom/web/server/SelfHoster.java:
44 discoverFirstFreePort(): Close the socket. Eclipse Juno warns about this.
46 2012-07-19 Murray Cumming <murrayc@murrayc.com>
48 Avoid another code warning in Eclipse Juno.
50 * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java:
51 Do instanceof checks on the FileUtils.listFiles() result and its
54 2012-07-13 Murray Cumming <murrayc@murrayc.com>
56 Avoid some code warnings in Eclipse Juno
58 * src/main/java/org/glom/web/server/libglom/Document.java:
59 getNodeTextChildAsValue(), setNodeTextChildAsValue(): Handle the invalid type.
60 * src/test/java/org/glom/web/server/SelfHoster.java
61 createTextFile(): Make sure that the FileOutputStream is closed.
63 2012-06-22 Murray Cumming <murrayc@murrayc.com>
65 Added OnlineGlomPropertiesTest.
67 * src/main/java/org/glom/web/server/OnlineGlomProperties.java:
68 Make sure we never return a null string.
69 * src/test/java/org/glom/web/server/OnlineGlomPropertiesTest.java:
70 Added tests of the OnlineGlomProperties API, using our sample file.
72 2012-06-20 Murray Cumming <murrayc@murrayc.com>
74 Make OnlineGlomProperties be a normal class.
76 * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java:
77 Move OnlineGlomProperties into its own file to be a regular class:
78 * src/main/java/org/glom/web/server/OnlineGlomProperties.java:
79 This makes testing simpler.
81 2012-06-15 Murray Cumming <murrayc@murrayc.com>
83 OnlineGlomServiceImpl.init(): Move some code into a new method.
85 * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java:
88 2012-06-15 Murray Cumming <murrayc@murrayc.com>
90 OnlineGlomServiceImpl.OnlineGlomProperties: Improve getKey().
92 * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java:
93 OnlineGlomProperties.getKey(): Make this more robust by moving the
94 check for *.*.filename to here.
96 2012-06-15 Murray Cumming <murrayc@murrayc.com>
98 OnlineGlomServiceImpl: Improve the OnlineGlomProperties class.
100 * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java
101 init(): Move knowledge of the config file format into the
102 OnlineGlomProperties inner class.
104 2012-06-15 Murray Cumming <murrayc@murrayc.com>
106 SelfHostExampleTest: Make sure we cleanup on failure.
108 * src/test/java/org/glom/web/server/SelfHostExampleTest.java: Move
109 the use of cleanup() to a tearDown() JUnit method.
111 2012-06-12 Murray Cumming <murrayc@murrayc.com>
113 ConfiguredDocument: Add a primary key to portals at least once.
115 * src/main/java/org/glom/web/server/ConfiguredDocument.java
116 updatePortalsExtras): Fix a typo so that we add the primary key
117 column at least once.
118 This is a fix for the previous commit:
119 ConfiguredDocument: Do not add a primary key to portals each time.
121 2012-06-08 Murray Cumming <murrayc@murrayc.com>
123 SelfHoster: Avoid some compiler warnings.
125 * src/test/java/org/glom/web/server/SelfHoster.java
126 executeCommandLineAndWait():
127 executeCommandLineAndWaitUntilSecondCommandReturnsSuccess(): Comment out
128 the now-unused streams for stdout and stderr from the command Processes.
129 These are not used because readln() hangs while waiting for a new line,
130 where there may be no next line. The commented out code is still there
131 to help us figure out how to do this properly.
133 2012-06-08 Murray Cumming <murrayc@murrayc.com>
135 LayoutItemPortalDeepCloneTest: Test something to avoid warnings.
137 * src/test/java/org/glom/web/server/libglom/LayoutItemPortalDeepCloneTest.java:
138 Make this actually test the cloning again, though it is not very useful
139 now that we do not use the part that had a problem with cloning before.
141 2012-06-08 Murray Cumming <murrayc@murrayc.com>
143 SelfHoster: Keep trying pg_ctl after starting postgres.
145 * src/test/java/org/glom/web/server/SelfHoster.java
146 executeCommandLineAndWaitUntilSecondCommandReturnsSuccess():
147 Try pg_ctl repeatedly (for ever) until it succeeds, as we do in
148 regular Glom. This seems mad but it seems to work because the first
149 command would fail if pg_ctl would eventually fail.
151 2012-06-08 Murray Cumming <murrayc@murrayc.com>
153 SelfHoster: Wait until the server is really ready.
155 * src/test/java/org/glom/web/server/SelfHoster.java
156 selfHost(): Attempt the connection after starting the server, retrying
157 a few times if necessary, so that the server is really ready already when
158 we return from this method.
159 The regular Glom code does this too because pg_ctl reports success too soon.
161 2012-06-08 Murray Cumming <murrayc@murrayc.com>
163 ConfiguredDocument: Do not add a primary key to portals each time.
165 * src/main/java/org/glom/web/server/ConfiguredDocument.java
166 updatePortalsExtras(): Only add an extra primary key field if there is
167 none, to avoid adding one each time we retrieve the details layout from the
169 This should fix bug #676986 (Ben Konrath)
171 2012-05-25 Murray Cumming <murrayc@murrayc.com>
173 Document.load(): Support version 7 documents.
175 * src/main/java/org/glom/web/server/libglom/Document.java: Load the
176 database_title attribute if the title attribute is not there.
179 2012-05-24 Ben Konrath <ben@bagu.org>
181 Add configuration for auto-generating mvn:i18n from with Eclipse.
183 * pom.xml: Add PluginExecution configuration for gwt-maven-plugin.
185 2012-05-24 Murray Cumming <murrayc@murrayc.com>
187 Update translations, adding French.
189 * src/main/java/org/glom/web/OnlineGlom.gwt.xml:
190 * src/main/resources/org/glom/web/client/ui/OnlineGlomConstants_fr.properties:
191 Add a French translation, using the translation from Glom.
193 * src/main/resources/org/glom/web/client/ui/OnlineGlomConstants_cs.properties:
194 * src/main/resources/org/glom/web/client/ui/OnlineGlomConstants_es.properties:
195 * src/main/resources/org/glom/web/client/ui/OnlineGlomConstants_sl.properties:
196 Update these based on the translations from Glom.
198 2012-05-24 Murray Cumming <murrayc@murrayc.com>
200 SelfHoster: Add some debug println messages to help when things fail.
202 * src/test/java/org/glom/web/server/SelfHoster.java: Add several
203 System.out.println() lines.
205 2012-05-23 Murray Cumming <murrayc@murrayc.com>
207 Tests: SelfHoster: Check other paths for PostgreSQL command-line tools.
209 * src/test/java/org/glom/web/server/SelfHoster.java:
210 getPathToPostgresExecutable(): Try some common paths (as on Ubuntu, for
211 instance) instead of just /usr/bin (as on Fedora). Check the result when
214 2012-05-23 Murray Cumming <murrayc@murrayc.com>
216 Remove LayoutItemPortal.get/setNavigationTable().
218 * src/main/java/org/glom/web/shared/libglom/layout/LayoutItemPortal.java:
219 Remove get/setNavigationTable(), which is only a cache, because it is not
220 used, and does not need to be used, because that decision should be made on
222 * src/main/java/org/glom/web/server/ConfiguredDocument.java:
223 updatePortalsExtras():
224 * src/main/java/org/glom/web/server/database/RelatedListNavigation.java:
225 getNavigationRecord():
226 * src/test/java/org/glom/web/server/libglom/LayoutItemPortalDeepCloneTest.java:
229 2012-05-21 Murray Cumming <murrayc@murrayc.com>
231 Initial self-hosting for tests.
233 * pom.xml: Change the scope for log4j, to hopefully make it
234 available to the test code which uses it indirectly via jOOQ.
235 * src/main/java/org/glom/web/server/ConfiguredDocument.java: Allow
236 self-hosting, though we only use it for testing.
238 * src/main/java/org/glom/web/server/libglom/Document.java:
239 example rows: Use a map instead of a list for each row of values,
240 so we know what field they are for, instead of relying on the sequence
241 being correct. This is not very efficient, but it does not really need
243 * src/test/java/org/glom/web/server/libglom/DocumentTest.java
244 testReadTableExampleRows(): Adapted.
246 * src/main/java/org/glom/web/shared/DataItem.java: Added getValue()
247 that returns an Object, for generic use. Note that Object seems to be
248 the implicit base even of double.
249 * src/main/java/org/glom/web/shared/libglom/Field.java: Add getSqlType(),
250 for use in CREATE TABLE SQL queries.
251 * src/test/java/org/glom/web/server/SelfHoster.java: Add this class
252 to do self-hosting of PostgreSQL databases via its command-line
253 utilities, based on Glom's C++ code in test_selfhosting_utils.cc and
254 backends/postgres_self.cc. This is incomplete - it needs more
255 warnings about failures and it needs to clean up properly when things
257 * src/test/java/org/glom/web/server/SelfHostExampleTest.java: A simple
258 test of this new class.
260 2012-05-21 Murray Cumming <murrayc@murrayc.com>
262 Document: loading example data: Handle exceptions.
264 * src/main/java/org/glom/web/server/libglom/Document.java:
265 DateFormat.parse() and Double.valueOf() can throw exceptions, though
266 Eclipse did not warn about that.
268 2012-05-20 Murray Cumming <murrayc@murrayc.com>
270 Document: load(), save(): Handle the example rows.
272 * src/main/java/org/glom/web/shared/DataItem.java: Add get/setDate()
274 * src/main/java/org/glom/web/server/libglom/Document.java:
275 load(), save(): Load and save the example rows, though the date, time
276 and image types are not handled properly yet.
277 * src/test/java/org/glom/web/server/libglom/DocumentTest.java:
278 Add testReadTableExampleRows() just to check that something is read.
280 2012-05-20 Murray Cumming <murrayc@murrayc.com>
282 Document: Add save().
284 * src/main/java/org/glom/web/shared/libglom/Translatable.java:
285 Added getTranslationsMap() for use while saving.
286 * src/main/java/org/glom/web/shared/libglom/layout/LayoutItemField.java:
287 Adedd getUseDefaultFormatting() for use while saving.
288 * src/main/java/org/glom/web/server/libglom/Document.java: Added save()
289 and several private methods that it uses.
291 This will be useful while testing via self-hosting.
292 It is not complete, but should be complete enough for testing.
294 2012-05-17 Murray Cumming <murrayc@murrayc.com>
296 OnlineGlomService: Simplify the getList/RelatedViewData() methods.
298 * src/main/java/org/glom/web/client/OnlineGlomService.java
299 * src/main/java/org/glom/web/client/OnlineGlomServiceAsync.java
300 * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java
301 Remove getSortedListViewData() and getSortedRelatedListData(), adding
302 the sort column index and ascending bool to the regular method.
303 Instead, a sort column index of -1 now means no sort.
304 This is less explicit, but it's fairly simple, reduces the amount of
305 code, and makes the OnlineGlomService API slightly smaller.
306 * src/main/java/org/glom/web/client/ui/details/RelatedListTable.java:
307 * src/main/java/org/glom/web/client/ui/list/ListViewTable.java:
309 * src/main/java/org/glom/web/server/ConfiguredDocument.java:
310 getListViewData(), getRelatedListData():
311 * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java:
312 getListViewData(), getRelatedListData():
313 * src/main/java/org/glom/web/server/database/ListDBAccess.java:
315 * src/main/java/org/glom/web/server/database/ListViewDBAccess.java:
317 * src/main/java/org/glom/web/server/database/RelatedListDBAccess.java:
322 2012-05-16 Murray Cumming <murrayc@murrayc.com>
324 Use translations for top-level groups too.
326 * src/main/java/org/glom/web/server/ConfiguredDocument.java:
327 updateTitlesForLocale(): Use the translation for the group
328 as well as for child items.
332 Just recompiled to fix a problem in the released .tar.gz file.
336 2012-05-15 Murray Cumming <murrayc@murrayc.com>
338 Corrections to navigation to related records.
340 * src/main/java/org/glom/web/client/OnlineGlomService.java:
341 * src/main/java/org/glom/web/client/OnlineGlomServiceAsync.java:
342 * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java:
343 getRelatedListData(), getSortedRelatedListData)(), getRelatedListRowCount(),
344 getSuitableRecordToViewDetails(): Take a LayoutItemPortal instead of a
345 relationship name, because the relationship name is not necessarily unique
347 TOOD: This is inefficient, because it passes the whole list of
348 child field items back to the server, but it is more correct, and happens
349 to fix a bug with the primary key being lost after a few navigations.
350 There is probably a chance to make this more efficient anyway in some
353 * src/main/java/org/glom/web/client/activity/DetailsActivity.java
354 * src/main/java/org/glom/web/client/ui/details/RelatedListTable.jav
355 * src/main/java/org/glom/web/server/ConfiguredDocument.java
356 * src/main/java/org/glom/web/server/database/DBAccess.java
357 * src/main/java/org/glom/web/server/database/RelatedListDBAccess.java:
358 * src/main/java/org/glom/web/server/database/RelatedListNavigation.java:
361 2012-05-15 Murray Cumming <murrayc@murrayc.com>
363 Fix the use of translations.
365 * src/main/java/org/glom/web/server/ConfiguredDocument.java:
366 Add updateTitlesForLocale().
367 getValidListViewLayoutGroup(), getDetailsLayoutGroup():
368 Call it to discard unwanted translations and to make getTitle() return
369 the wanted translation wihout the need for the client code to specify a locale.
370 * src/main/java/org/glom/web/shared/libglom/Translatable.java:
371 getTitle(): Fallback to the original title, as libglom does.
373 2012-05-15 Murray Cumming <murrayc@murrayc.com>
375 Document: Correctly report the number of available translation locales.
377 * src/main/java/org/glom/web/server/libglom/Document.java: Fill
378 the available locale IDs list.
379 * src/test/java/org/glom/web/server/libglom/DocumentTest.java:
380 testLocales: Test this.
382 2012-05-15 Murray Cumming <murrayc@murrayc.com>
384 SqlUtils: Use camelCase.
386 * src/main/java/org/glom/web/server/SqlUtils.java: Use camelCase.
387 * src/main/java/org/glom/web/server/database/DetailsDBAccess.java:
388 * src/main/java/org/glom/web/server/database/ListViewDBAccess.java:
389 * src/main/java/org/glom/web/server/database/RelatedListDBAccess.java:
390 * src/main/java/org/glom/web/server/database/RelatedListNavigation.java:
391 * src/main/java/org/glom/web/server/ReportGenerator.java: Adapt.
393 2012-05-15 Murray Cumming <murrayc@murrayc.com>
395 Use jOOQ's tableByName() and fieldByName.
397 * pom.xml: Use jOOQ 2.3.1 to get the new API.
398 * src/main/java/org/glom/web/server/SqlUtils.java:
399 build_sql_select_step_with_where_clause(), .createField(),
400 builder_add_join(): Use Factory.tableByName() and Factory.fieldByName()
401 so we can get correct quoting and escaping. Thanks to Lukas Eder for
402 adding this, and other things, to jOOQ.
404 2012-05-15 Murray Cumming <murrayc@murrayc.com>
406 SqlUtils: Remove the Connection parameters.
408 * src/main/java/org/glom/web/server/SqlUtils.java:
409 build_sql_select_with_key(), build_sql_select_with_where_clause(),
410 createSelect(), build_sql_select_step_with_where_clause(),
411 build_sql_count_select_with_where_clause(),
412 build_sql_select_count_rows(): Remove the Connection parameter because
413 jOOQ does not actually need a connectionwhen it is just used to build
415 https://groups.google.com/forum/#!topic/jooq-user/tIwobFOR2iM
417 * src/main/java/org/glom/web/server/ReportGenerator.java:
419 * src/main/java/org/glom/web/server/database/DetailsDBAccess.java:
421 * src/main/java/org/glom/web/server/database/ListDBAccess.java:
422 Constructor, getListData(), getResultSizeOfSQLQuery():
423 * src/main/java/org/glom/web/server/database/ListViewDBAccess.java:
424 getSelectQuery(), getCountQuery():
425 * src/main/java/org/glom/web/server/database/RelatedListDBAccess.java:
426 getSelectQuery(), getCountQuery():
427 * src/main/java/org/glom/web/server/database/RelatedListNavigation.java:
428 getNavigationRecord(): Adapted.
430 2012-05-14 Murray Cumming <murrayc@murrayc.com>
434 * src/main/java/org/glom/web/server/SqlUtils.java:
435 get_find_where_clause_quick(): Use a comparison of
436 lowercase values, instead of a simple equals. Regular Glom
437 uses the PostgreSQL ILIKE operator but jOOQ does not
438 support that just yet, though it will soon.
440 2012-05-14 Murray Cumming <murrayc@murrayc.com>
442 TableToViewDetails: Use a real serialization ID.
444 * src/main/java/org/glom/web/shared/libglom/layout/TableToViewDetails.java:
445 Though this does not fix the serialization problem.
447 2012-05-12 Murray Cumming <murrayc@murrayc.com>
449 Added LayoutItemPortalDeepCloneTest.
451 2012-05-11 Murray Cumming <murrayc@murrayc.com>
453 Make navigation work again.
455 * src/main/java/org/glom/web/server/libglom/Document.java:
456 Add getLayoutItemFieldShouldHaveNavigation().
457 * src/main/java/org/glom/web/shared/libglom/layout/LayoutItemField.java:
458 Replace get/setAddNavigation() with the partly-existing
459 get/setNavigationTableName(), with an empty string being no navigation,
460 because this is simpler. Use the new
461 Document.getLayoutItemFieldShouldHaveNavigation() method to set this.
463 * src/main/java/org/glom/web/server/ConfiguredDocument.java:
464 Add updateFieldsExtras() and call setNavigationTableName in it.
465 getDetailsLayoutGroup(),
466 * src/main/java/org/glom/web/client/activity/DetailsActivity.java
467 createLayout(): Adapted.
468 * src/main/java/org/glom/web/client/ui/details/DetailsCell.java
469 Constructor: Adapted.
471 * src/main/java/org/glom/web/shared/libglom/layout/LayoutItemPortal.java:
472 Replace get/setAddNavigation() with get/setNavigation(), returning a
473 TableToViewDetails class with both the table name and UsesRelationship,
474 because both are need. The previous code used java-libglom's output
475 variable (strangely, via sharedptr) to return both, but we cannot really
477 * src/main/java/org/glom/web/server/database/RelatedListNavigation.java:
478 getNavigationRecord(): Adapt. However, we cannot actually use the cache
479 here because it somehow gets set to null during deepCopy(). I must test this.
480 * src/test/java/org/glom/web/server/libglom/DocumentTest.java
481 testGetSuitableTableToViewDetails(): Adapted.
483 TODO: Find out why deepClone() is not quite working.
485 2012-05-11 Murray Cumming <murrayc@murrayc.com>
487 DBAccess: Simplify the retrievel of full field details.
489 * src/main/java/org/glom/web/server/database/DBAccess.java
490 getFieldsToShowForSQLQueryAddGroup(). This might be unnecessary anyway,
491 because the Document loading should have done this.
493 2012-05-11 Murray Cumming <murrayc@murrayc.com>
495 Document: Correct loading of doubly-related layout fields.
497 * src/main/java/org/glom/web/server/libglom/Document.java:
498 loadUsesRelationship(): Actually set the related relationship, instead
499 of only setting it if it's not found.
501 2012-05-09 Murray Cumming <murrayc@murrayc.com>
503 Replace all appearances of Colour with color.
505 Because US English is dominant.
507 2012-05-09 Murray Cumming <murrayc@murrayc.com>
509 Use colors in HTML format, solving a warning about an unused function.
511 * src/main/java/org/glom/web/shared/libglom/NumericFormat.java
512 * src/main/java/org/glom/web/shared/libglom/layout/Formatting.java:
513 Add *asHTMLColor() versions of methods.
514 TODO: However, we should create and cache the results on the server.
515 * src/main/java/org/glom/web/client/ui/details/DetailsCell.java
516 * src/main/java/org/glom/web/client/ui/list/ListTable.java
517 * src/main/java/org/glom/web/server/ConfiguredDocument.java
518 * src/test/java/org/glom/web/server/libglom/DocumentTest.java:
519 Use the asHTMLcolor() versions.
521 2012-05-09 Murray Cumming <murrayc@murrayc.com>
523 ListViewTable: Constructor: Take the table name as a parameter.
525 * src/main/java/org/glom/web/client/ui/list/ListViewTable.java:
526 Constructor: Take the tableName, and set the member variable, because
528 * src/main/java/org/glom/web/client/ui/ListViewImpl.java:
529 setCellTable(): Pass the table name.
530 This makes navigation to non-default tables work again. I don't know
531 why it worked before in the master branch.
533 2012-05-07 Murray Cumming <murrayc@murrayc.com>
535 ConfiguredDocument: Restore correct addition of hidden primary key items.
537 * src/main/java/org/glom/web/client/ui/list/ListTable.java
538 (ListTable.createCellTable): Uncomment out the check for the hidden
540 * src/main/java/org/glom/web/server/ConfiguredDocument.java: Only
541 add primary key items for top-level lists and portals, as before,
542 instead of adding them to each group.
543 * src/main/java/org/glom/web/shared/libglom/layout/LayoutGroup.java:
544 Actually implement the extra methods such as setHiddenPrimaryKey() and
545 comment that these are used only for top-level list groups and in portals.
546 This strangeness suggests even more that this should not be squeezed
547 into the LayoutGroup class.
549 2012-05-07 Murray Cumming <murrayc@murrayc.com>
551 Fix Formatting loading.
553 * src/main/java/org/glom/web/shared/libglom/layout/LayoutItemField.java:
554 getFormattingUsed(): Remove the duplicate Formatting member variable
555 in favour of the one from the base class.
556 * src/main/java/org/glom/web/shared/libglom/layout/LayoutItemWithFormatting.java:
557 Initialize a new Formatting instead of using null by default, so we
558 have some defaults, instead of having to initialize one later just to
559 get the same defaults. This also makes loading of formatting from the
560 document work, because that expected a non-null.
562 2012-05-07 Murray Cumming <murrayc@murrayc.com>
564 RelatedListTable: Make sure that the tableName is set.
566 * src/main/java/org/glom/web/client/ui/details/RelatedListTable.java:
567 Constructor: Take the tableName so it is available later. Otherwise,
568 the server assumes that we mean the default table and cannot find the
570 * src/main/java/org/glom/web/client/activity/DetailsActivity.java
571 setData(): Pass the tableName to the RelatedListTable constructor.
573 2012-05-07 Murray Cumming <murrayc@murrayc.com>
577 * src/main/java/org/glom/web/client/activity/DetailsActivity.java:
578 RelatedListNavigationButtonCell.onEnterKeyDown(), setData():
579 * src/main/java/org/glom/web/client/ui/details/RelatedListTable.java:
581 * src/main/java/org/glom/web/client/ui/list/ListTable.java:
583 * src/main/java/org/glom/web/server/database/DBAccess.java:
584 convertResultSetToDTO(), getPortal():
585 * src/main/java/org/glom/web/server/database/ListDBAccess.java
587 * src/main/java/org/glom/web/server/database/RelatedListDBAccess.java:
588 Add checks for null objects and out of range access, with log messages to
589 give hints so we can fix these properly.
591 2012-05-07 Murray Cumming <murrayc@murrayc.com>
593 Portals: some corrections.
595 * src/main/java/org/glom/web/client/activity/DetailsActivity.java
597 * src/main/java/org/glom/web/client/ui/details/RelatedListTable.java:
598 constructor: Use getRelationshipNameUsed() instead of getName(), because
599 that is what is meant.
600 * src/main/java/org/glom/web/shared/libglom/layout/LayoutItemPortal.java:
601 getFromField(): Fix a typo, to get the field name, not the table name.
602 * src/main/java/org/glom/web/server/database/DBAccess.java:
603 getPortal(): Fix a typo that stopped this from working.
605 2012-05-07 Murray Cumming <murrayc@murrayc.com>
607 LayoutItemPortal: Also override getTitleOriginal().
609 * src/main/java/org/glom/web/shared/libglom/layout/LayoutItemPortal.java:
610 This lets the base getTitle() with no parameters work.
611 TODO: Test this properly.
613 2012-05-06 Murray Cumming <murrayc@murrayc.com>
615 LayoutItemPortal: getTitle*(): Use the relationship title.
617 2012-05-06 Murray Cumming <murrayc@murrayc.com>
619 LayoutItemField: Fix loading of custom titles.
621 * src/main/java/org/glom/web/server/libglom/Document.java
622 loadDataLayoutItemField(): The title, if any, instead of the field
623 title, is stored in a title_custom node. Load it from there.
624 * src/main/java/org/glom/web/shared/libglom/CustomTitle.java: Add this
626 * src/main/java/org/glom/web/shared/libglom/layout/LayoutItemField:
627 Add getCustomTitle() and use it, instead of super.getTitle*(), in the
628 getTitle*() overrides.
629 * src/test/java/org/glom/web/server/libglom/LayoutItemFieldTest.java:
632 2012-05-06 Murray Cumming <murrayc@murrayc.com>
634 LayoutItemField: Fall back to field titles, so some are really shown.
636 * src/main/java/org/glom/web/shared/libglom/layout/LayoutItemField.java:
637 Override getTitleOriginal() and getTitle(), as in java-libglom.
638 * src/test/java/org/glom/web/server/libglom/LayoutItemFieldTest.java:
641 2012-05-06 Murray Cumming <murrayc@murrayc.com>
643 Correct use of setExpectedResultSize().
645 * src/main/java/org/glom/web/server/ConfiguredDocument.java
646 getValidListViewLayoutGroup(), getDetailsLayoutGroup():
647 Use setExpectedResultSize only on top-level groups (for instance, the
648 list layout) or on child portals (in details views).
649 Use the correct table name for portals to avoid SQL errors.
650 Update the expected counts when returning cached layouts.
652 2012-05-06 Murray Cumming <murrayc@murrayc.com>
654 Document: Interpret no group column count as 1.
656 * src/main/java/org/glom/web/server/libglom/Document.java: Use a sane
657 default, though we now check for this in the UI code anyway.
659 2012-05-06 Murray Cumming <murrayc@murrayc.com>
663 2012-05-06 Murray Cumming <murrayc@murrayc.com>
665 Translatable: Use Hashmap instead of Treemap because GWT supports it.
667 * src/main/java/org/glom/web/shared/libglom/Translatable.java:
668 The use of Treemap lead to this error from async methods, with no
670 "The response could not be deserialized"
672 2012-05-06 Murray Cumming <murrayc@murrayc.com>
674 OnlineGlom.gwt.xml: Add exludes to fix explicit gwt compilation in Eclipse.
676 * src/main/java/org/glom/web/OnlineGlom.gwt.xml: This is necessary
677 when using the Google -> GWT Compile, or
678 g toolbar button -> GWT Compile Project... feature in Eclipse.
680 2012-05-06 Murray Cumming <murrayc@murrayc.com>
682 ListTable.addColumn(): Protect against a null Formatting.
684 * src/main/java/org/glom/web/client/ui/list/ListTable.java: addColumn():
685 Create a default Formatting if it is null, because that is the simplest
688 2012-05-06 Murray Cumming <murrayc@murrayc.com>
690 ConfiguredDocument.updateLayoutGroup(): Protect against a null dereference.
692 * src/main/java/org/glom/web/server/ConfiguredDocument.java
693 updateLayoutGroup(): Check that the field is not null.
695 2012-05-06 Murray Cumming <murrayc@murrayc.com>
697 ListViewImpl: Protected against a bad cast error.
699 * src/main/java/org/glom/web/client/ui/ListViewImpl.java:
700 onEnterKeyDown(): Do not cast without an instanceof check.
702 2012-05-06 Murray Cumming <murrayc@murrayc.com>
704 ListTable: Protect against an out of range error.
706 * src/main/java/org/glom/web/client/ui/list/ListTable.java
707 createCellTable(): This is unlikely, but can happen while debugging.
709 2012-05-06 Murray Cumming <murrayc@murrayc.com>
711 AsyncMessage onFailure() callbacks: Log the exception message.
713 * src/main/java/org/glom/web/client/activity/DetailsActivity.java
714 * src/main/java/org/glom/web/client/activity/DocumentSelectionActivity.java:
715 * src/main/java/org/glom/web/client/activity/ListActivity.java:
716 * src/main/java/org/glom/web/client/activity/ReportActivity.java:
717 * src/main/java/org/glom/web/client/activity/TableSelectionActivity:
718 * src/main/java/org/glom/web/client/ui/details/RelatedListTable.java:
719 * src/main/java/org/glom/web/client/ui/list/ListViewTable.java:
720 These are useful clues when something is wrong.
722 2012-05-06 Murray Cumming <murrayc@murrayc.com>
724 ConfiguredDocument: Avoid a null dereference.
726 * src/main/java/org/glom/web/server/ConfiguredDocument.java
727 TableLayoutsForLocale.getMapWithAdd(): Make sure that the list and
728 details maps are created.
730 2012-05-06 Murray Cumming <murrayc@murrayc.com>
732 Document: Correct the port number parsing.
734 * src/main/java/org/glom/web/server/libglom/Document.java:
735 This lets us actually connect to the database and show the document.
737 2012-05-05 Murray Cumming <murrayc@murrayc.com>
741 * pom.xml: Use htmlunit mode for gwt:test, because the default demands
742 user-interaction, asking us to load a temporary URL in a browser.s
743 * src/main/java/org/glom/web/OnlineGlom.gwt.xml: Add a servlet node,
744 which is apparently necessary for testing the service. See the comment.
745 * src/test/java/org/glom/web/client/GwtTestOnlineGlomService.java:
746 Show the exception, if any. This is how I saw the 404 in the HTML in
749 2012-05-05 Murray Cumming <murrayc@murrayc.com>
751 DocumentTest: Move the .glom files into the resources directory.
753 * src/test/java/org/glom/web/server/libglom/DocumentTest: And get the
754 URI via getResource().
756 2012-05-05 Murray Cumming <murrayc@murrayc.com>
758 Document: Remove the FieldIdentifies inner class.
760 * src/main/java/org/glom/web/server/libglom/Document.java: We only
761 use the Relationship (though the same function in libglom is maybe
762 used in other ways) and so this removes a compiler warning.
764 2012-05-05 Murray Cumming <murrayc@murrayc.com>
766 Document.load() Remove the error code parameter.
768 * src/main/java/org/glom/web/server/libglom/Document.java: load():
769 Remove the parameter. We do not set it yet and it could never have
770 worked as an output parameter (though maybe it did in java-libglom).
771 We could use an exception if we really want the failure reason.
772 * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java:
774 * src/test/java/org/glom/web/server/libglom/DocumentTest.java:
775 setUp(), testGetSuitableTableToViewDetails(): Adapt.
777 2012-05-05 Murray Cumming <murrayc@murrayc.com>
779 Make some inner classes static.
781 * src/main/java/org/glom/web/server/ConfiguredDocument.java
782 * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java
783 * src/main/java/org/glom/web/server/ReportGenerator.java
784 * src/main/java/org/glom/web/server/libglom/Document.java
785 Make all inner classes static that can be static.
787 2012-05-05 Murray Cumming <murrayc@murrayc.com>
789 OnlineGlomServiceImpl: Do not load and check for java-libglom.
791 * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java
792 init(): We do not use java-libglom any more.
794 2012-05-05 Murray Cumming <murrayc@murrayc.com>
796 Remove mentions of java-libglom.
798 * README: Remove mention of java-libglom, because it no longer needed.
799 * utils/build-onlineglom-war.sh:
800 * utils/check-and-recover-tomcat.py:
801 * utils/install-onlineglom-war.sh: Remove these as they are no longer
802 useful. Building is now far easier, with no need for jhbuild.
804 2012-05-05 Murray Cumming <murrayc@murrayc.com>
806 Fix the build (mvn package)
808 * src/main/java/org/glom/web/shared/libglom/layout/LayoutGroup.java
809 (LayoutGroup): Make the LayoutItemList inner class static and protected.
810 Otherwise the GWT Java->Javascript compilation fails with just this
811 error, during mvn package or when attempting to view in a browser,
812 in the GWT developer mode in Eclipse.
814 [INFO] --- gwt-maven-plugin:2.4.0:compile (default) @ gwt-glom ---
815 [INFO] auto discovered modules [org.glom.web.OnlineGlom]
816 [INFO] Compiling module org.glom.web.OnlineGlom
817 [INFO] [ERROR] Errors in 'file:/home/murrayc/checkouts/gnome/gwt-glom/src/main/java/org/glom/web/client/OnlineGlomServiceAsync.java'
818 [INFO] [ERROR] Line 46: Failed to resolve 'org.glom.web.client.OnlineGlomService' via deferred binding
819 [INFO] Scanning for additional dependencies: file:/home/murrayc/checkouts/gnome/gwt-glom/src/main/java/org/glom/web/client/ui/details/DetailsCell.java
820 [INFO] [WARN] For the following type(s), generated source was never committed (did you forget to call commit()?)
821 [INFO] [WARN] org.glom.web.client.OnlineGlomService_Proxy
822 [INFO] [ERROR] Cannot proceed due to previous errors
824 It has taken me 2 days to find out what was causing that. After reducing
825 the code, the compiler eventually showed me the full error message.
827 2012-05-04 Murray Cumming <murrayc@murrayc.com>
829 ConfiguredDocument: Cache the cloned and stripped layouts.
831 * src/main/java/org/glom/web/server/ConfiguredDocument.java:
832 getValidListViewLayoutGroup(), .getDetailsLayoutGroup(): Store the cloned
833 layout in a map, so we can retrieve it again without rebuilding it.
835 2012-05-04 Murray Cumming <murrayc@murrayc.com>
837 UsesRelationshipImpl: Complete the relationshipEquals() implementation.
839 2012-05-04 Murray Cumming <murrayc@murrayc.com>
841 libglom classes: Implement some auto-generated emthods.
843 2012-05-04 Murray Cumming <murrayc@murrayc.com>
845 Add GwtTestOnlineGlomService.
847 * src/test/java/org/glom/web/client/GwtTestOnlineGlomService.java:
848 However, this (and the other GwtTest*) does not seem to run during
851 2012-05-04 Murray Cumming <murrayc@murrayc.com>
853 Remove use of unsupported features from client code.
855 * src/main/java/org/glom/web/client/StringUtils.java: Add equals().
856 * src/main/java/org/glom/web/shared/libglom/layout/UsesRelationshipImpl.java:
857 * src/main/java/org/glom/web/shared/libglom/layout/reportparts/LayoutItemGroupBy.java:
858 Use our client version of StringUtils instead of the apache commons one.
860 However, the GWT Javascript compliation still fails.
862 2012-04-25 Murray Cumming <murrayc@murrayc.com>
864 Add a Field class and implement some loading of it in Document.
866 2012-04-25 Murray Cumming <murrayc@murrayc.com>
868 Initial Document loading implementation, instead of libglom.
870 * src/test/java/org/glom/web/shared/libglom/: Add Document, Report,
871 and Translatable classes, and adapt the rest of the code to use them.
872 However, this is still missing Layout and Field classes and loading.
874 2012-04-24 Murray Cumming <murrayc@murrayc.com>
876 Use of jOOQ: Move Field creation into a utility method.
878 * src/main/java/org/glom/web/server/SqlUtils.java:
879 This lets us improve it more easily.
881 2012-04-24 Murray Cumming <murrayc@murrayc.com>
883 Use of jOOQ: Improve the code to COUNT a sub-select.
885 * src/main/java/org/glom/web/server/SqlUtils.java:
886 Move initial query creation into
887 build_sql_select_step_with_where_clause().
888 build_sql_select_count_rows(): Use the jOOQ API instead of
889 concatentating text, because a jOOQ Select*Step is a TableLike,
890 which is what from() takes.
892 2012-04-23 Murray Cumming <murrayc@murrayc.com>
894 Use jOOQ instead of Glom.build_sql*(), to avoid native calls.
896 * pom.xml: Depend on jooq.
897 * src/main/java/org/glom/web/server/SqlUtils.java: Reimplement the
898 methods with jOOQ, based on the C++ implementations in libglom,
899 with some changes to the logic required by jooQ.
900 Take a jOOQ Condition rather than a Glom.SqlExpr (GdaSqlExpr) for the
902 * src/main/java/org/glom/web/client/ui/TableSelectionViewImpl.java:
903 * src/main/java/org/glom/web/server/ReportGenerator.java:
904 * src/main/java/org/glom/web/server/SqlUtils.java:
905 * src/main/java/org/glom/web/server/database/DetailsDBAccess.java:
906 * src/main/java/org/glom/web/server/database/ListDBAccess.java:
907 * src/main/java/org/glom/web/server/database/ListViewDBAccess.java:
908 * src/main/java/org/glom/web/server/database/RelatedListDBAccess.java:
909 * src/main/java/org/glom/web/server/database/RelatedListNavigation:
910 Adapt. In particular, the SqlUtils methods now need to take a Connection,
911 because jOOQ needs that, though it seems unnecessary.
913 This is not quite finished. Ideally jOOQ would help us to build
914 table_name.field_name names, quoting and escaping them properly.
915 See http://stackoverflow.com/questions/10264001/instantiating-a-jooq-field-by-name
917 2012-04-21 Murray Cumming <murrayc@murrayc.com>
919 Move use of Glom.build_sql*() into a new SqlUtils class.
921 * src/main/java/org/glom/web/server/SqlUtils.java: Add static methods
922 to wrap Glom.build_sql*(). The parameter types are still Glom one,
923 but this will make it easier to start using something other than
924 libglom or SqlBuilder.
926 2012-04-21 Murray Cumming <murrayc@murrayc.com>
928 Update the project URL.
930 * pom.xml: Use an OnlineGlom-specific URL for the project URL.
932 2012-04-21 Murray Cumming <murrayc@murrayc.com>
934 Main layout: Use a FlowTable instead of absolute positioning.
936 * src/main/java/org/glom/web/client/OnlineGlom.java: onModuleLoad():
937 The RootLayoutPanel is a (extends) AbsolutePanel, so each of its
938 child panels/widgets must have an absolute position. But that is annoying, so
939 this adds a FlowTable and puts the child panels in there.
941 2012-04-21 Murray Cumming <murrayc@murrayc.com>
943 GwtTestOnlineGlom: Comment out unused code.
945 * src/test/java/org/glom/web/client/GwtTestOnlineGlom.java:
946 Eclipse has started to say that some code is unused.
948 2012-04-21 Murray Cumming <murrayc@murrayc.com>
950 Update to the latest versions of dependencies.
952 * pom.xml: Update version numbers of dependencies to the latest
954 * src/main/java/org/glom/web/server/ConfiguredDocument.java:
955 * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java:
956 * src/main/java/org/glom/web/server/ReportGenerator.java:
957 * src/main/java/org/glom/web/server/database/ListViewDBAccess.java:
958 * src/main/java/org/glom/web/server/database/RelatedListDBAccess.java:
959 * src/main/java/org/glom/web/server/database/RelatedListNavigation.
961 * src/test/java/org/glom/web/client/GwtTestOnlineGlom.java:
962 Modify the imports where necessary.
964 2012-04-17 Murray Cumming <murrayc@murrayc.com>
966 Style: Remove overflow:hidden from searchbox
968 * src/main/webapp/style.css: Because this pushes the Back To Link
969 label/link on to the next row, which is then hidden due to the
970 hard-coded (in ems) height.
972 2012-04-20 Murray Cumming <murrayc@murrayc.com>
974 Remove some duplicate code.
976 * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java
977 getDocumentInfo(): This must have been duplicated during the merge from the
982 2012-04-19 Murray Cumming <murrayc@murrayc.com>
984 Reports: Localize the waiting for report message.
986 * src/main/java/org/glom/web/client/activity/ReportActivity.java
987 start(): Get the message from the contants.
988 * src/main/resources/org/glom/web/client/ui/OnlineGlomConstants.properties:
990 * src/main/resources/org/glom/web/client/ui/OnlineGlomConstants_cs.properties:
991 * src/main/resources/org/glom/web/client/ui/OnlineGlomConstants_de.properties:
992 * src/main/resources/org/glom/web/client/ui/OnlineGlomConstants_es.properties:
993 * src/main/resources/org/glom/web/client/ui/OnlineGlomConstants_sl.properties:
994 * src/main/resources/org/glom/web/client/ui/OnlineGlomConstants_zh_CN.properties:
995 Update these files with the English text for newer strings for now.
997 2012-04-19 Murray Cumming <murrayc@murrayc.com>
999 Reports: Show a message while waiting for the report.
1001 * src/main/java/org/glom/web/client/ui/ReportView.java
1002 * src/main/java/org/glom/web/client/ui/ReportViewImpl.java:
1003 Add setWaitingText(), to show a message saying that we are
1004 waiting for the report to be ready.
1005 * src/main/java/org/glom/web/client/activity/ReportActivity.java
1006 start(): Call setWaitingText() before calling the async
1009 2012-04-19 Murray Cumming <murrayc@murrayc.com>
1011 ReportGenerator: Specify date and time formats.
1013 * src/main/java/org/glom/web/server/ReportGenerator.java:
1014 createFieldValueElement(): Use the default (and localized)
1015 short formats, though we still need a way to show 4-digit
1016 years without providing the format for every locale.
1017 * src/main/java/org/glom/web/server/database/DBAccess.java:
1018 convertResultSetToDTO(): Use the short formats here too.
1020 2012-04-18 Murray Cumming <murrayc@murrayc.com>
1022 ReportGenerator: Use the correct numeric formatting.
1024 * src/main/java/org/glom/web/server/ReportGenerator.java
1025 createFieldExpression(), createFieldValueElement(): Take the
1026 whole LayoutItem_Field instead of just the field name, so
1027 we have access to the formatting.
1028 createFieldValueElement(): Use JRTextField.setPattern() to
1029 specify the numeric formatting, with the help of a
1030 regular DecimalFormat.
1032 2012-04-18 Murray Cumming <murrayc@murrayc.com>
1034 ReportGenerator: Avoid showing null for group by titles.
1036 * src/main/java/org/glom/web/server/ReportGenerator.java
1037 generateReport(): Use setBlankWhenNull() on the field title
1038 style too, because this is used for values in group by
1041 2012-04-18 Murray Cumming <murrayc@murrayc.com>
1043 ReportGenerator: Add a colon to titles in vertical groups.
1045 * src/main/java/org/glom/web/server/ReportGenerator.java
1046 addFieldToDetailBandVertical(): Pass true for the withColon
1049 2012-04-18 Murray Cumming <murrayc@murrayc.com>
1051 ReportGenerator: Simplify the code by using Position more.
1053 2012-04-18 Murray Cumming <murrayc@murrayc.com>
1055 Reports: Support vertical groups, roughly.
1057 * src/main/java/org/glom/web/server/ReportGenerator.java:
1058 addToReport(): Rename to addGroupToReport() and, if necessary,
1059 call the new addVerticalGroupToReport() method.
1060 createFieldValueElement(): Let the caller specify the Y position
1063 2012-04-17 Murray Cumming <murrayc@murrayc.com>
1065 Reports: Allow a second report to be shown.
1067 * src/main/java/org/glom/web/client/ui/ReportViewImpl.java:
1068 clear(): Do not remove the HTML widget, which broke the whole layout.
1070 2012-04-17 Murray Cumming <murrayc@murrayc.com>
1072 Locales drop-down: Show that we use English by default.
1074 * src/main/java/org/glom/web/client/activity/TableSelectionActivity.java:
1075 fillView(): When we use English, just because that is the default, when
1076 no locale is specified, show that in the Locales drop-down instead of
1077 just showing the first item.
1079 2012-04-17 Murray Cumming <murrayc@murrayc.com>
1081 Unselect the Report/Locale/Table combo item when appropriate.
1083 * src/main/java/org/glom/web/client/activity/TableSelectionActivity.java:
1084 setPlace(): clear reportName if this is not a ReportPlace.
1085 * src/main/java/org/glom/web/client/ui/TableSelectionViewImpl.java:
1086 setSelectedTableName(), setSelectedLocale(), setSelectedReport():
1087 When the provided name is empty, unselect all items, so that none are
1088 indicated. This uses a for loop because I cannot find a single method
1091 2012-04-17 Murray Cumming <murrayc@murrayc.com>
1093 Report: Give the user a way to get back to the list.
1095 * src/main/java/org/glom/web/client/activity/TableSelectionActivity.java:
1096 start(), setPlace(): Show the Back To List link on reports, and also
1097 interpret selecting the empty report item as back to list.
1099 2012-04-13 Murray Cumming <murrayc@murrayc.com>
1101 Really show the selected Report name.
1103 * src/main/java/org/glom/web/client/activity/TableSelectionActivity:
1104 setPlace(): Store the reportName here, if it is that kind of Place.
1105 fillView(): Set the selected Report after filling the list of reports.
1106 * src/main/java/org/glom/web/client/ui/TableSelectionViewImpl.java:
1107 setSelectedLocale(), setSelectedReport(): Avoid possible uses of
1108 null Strings, though we need some way to unselect all ListBox items
1111 2012-04-13 Murray Cumming <murrayc@murrayc.com>
1113 ReportGenerator: Try to avoid some problems.
1115 * src/main/java/org/glom/web/server/ReportGenerator.java
1116 addField(): Try to avoid duplicates, and avoid using a null
1119 2012-04-13 Murray Cumming <murrayc@murrayc.com>
1121 Reports: Use quickFind.
1123 * src/main/java/org/glom/web/client/OnlineGlomService.java;
1124 * src/main/java/org/glom/web/client/OnlineGlomServiceAsync.java:
1125 * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java:
1126 getReportHTML(): Add a quickFind parameter.
1127 * src/main/java/org/glom/web/client/activity/ReportActivity.java
1128 start(): Pass the quickFind parameter.
1129 * src/main/java/org/glom/web/server/ReportGenerator.java
1130 generateReport(): Take a quickFind parameter.
1132 2012-04-13 Murray Cumming <murrayc@murrayc.com>
1134 ReportPlace: Actually use the report name.
1136 * src/main/java/org/glom/web/client/place/ReportPlace.java
1137 getPlace(): Do not assign the report name to the quickfind.
1139 2012-04-13 Murray Cumming <murrayc@murrayc.com>
1141 Show java.library.path when complaining.
1143 * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java
1144 init(): When telling us to check java.library.path, show the
1147 2012-03-06 Murray Cumming <murrayc@murrayc.com>
1149 ReportGenerator: Do not show nulls.
1151 2012-03-06 Murray Cumming <murrayc@murrayc.com>
1153 ReportGenerator: Make the title font larger.
1155 2012-03-06 Murray Cumming <murrayc@murrayc.com>
1157 ReportGenerator: Put field titles inside groups, if there are groups.
1159 2012-03-06 Murray Cumming <murrayc@murrayc.com>
1161 ReportGenerator: Take the Report itself instead of the name and group.
1163 * src/main/java/org/glom/web/server/ConfiguredDocument.java
1164 Remove getReportLayoutGroup().
1165 * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java
1166 getReportHTML(): Pass the report instead
1167 of its name and layout group.
1168 * src/main/java/org/glom/web/server/ReportGenerator.java
1169 generateReport(): Use the report object to use the title
1170 instead of the name.
1172 2012-03-06 Murray Cumming <murrayc@murrayc.com>
1174 ReportGenerator: Remove designBand parameters.
1176 * src/main/java/org/glom/web/server/ReportGenerator.java:
1177 Make designBand a class member instead of passing it to all
1180 2012-03-06 Murray Cumming <murrayc@murrayc.com>
1182 ReportGenerator: Add lines, a bit like in the desktop version.
1184 * src/main/java/org/glom/web/server/ReportGenerator.java
1185 addToReport(): Use JRDesignLine.
1187 2012-03-06 Murray Cumming <murrayc@murrayc.com>
1189 ReportGenerator: Correct the title positions and use some bold style.
1191 * src/main/java/org/glom/web/server/ReportGenerator.java:
1192 Break the code up into reusable functions, correct the placement of
1193 titles, and use normal/bold styles as in the reports in the desktop
1196 2012-03-06 Murray Cumming <murrayc@murrayc.com>
1198 ReportGenerator: Add a header band to show the field titles.
1200 * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java
1201 getReportHTML(): Pass the localeId to the ReportGenerator
1203 * src/main/java/org/glom/web/server/ReportGenerator.java
1204 constructor: Take the localeID so we can get translated field
1206 generateReport(), addToReport(), addFieldToBand(): Add field
1207 titles in a column header band.
1209 2012-03-05 Murray Cumming <murrayc@murrayc.com>
1211 Reports drop-down list: Some improvement.
1213 * src/main/java/org/glom/web/client/ui/TableSelectionView.java
1214 * src/main/java/org/glom/web/client/ui/TableSelectionViewImpl.java:
1215 Adedd setSelectedReport(),
1216 setReportList(): Add a blank line so that the user can select the
1218 * src/main/java/org/glom/web/client/activity/ReportActivity.java
1219 start(): Show the current report by calling setSelectedReport().
1220 This does not seem to work yet.
1222 2012-03-05 Murray Cumming <murrayc@murrayc.com>
1224 DetailsActivity, ListActivity: Move some variables into a base class.
1226 * src/main/java/org/glom/web/client/activity/DetailsActivity.java:
1227 * src/main/java/org/glom/web/client/activity/HasTableActivity.java:
1228 * src/main/java/org/glom/web/client/activity/ListActivity.java: Move
1229 the clientFactory, documentID, tableName and authenticationPopup into
1230 a base class, to avoid duplication.
1232 2012-03-05 Murray Cumming <murrayc@murrayc.com>
1234 Translate the Reports label.
1236 * src/main/java/org/glom/web/client/ui/TableSelectionViewImpl.java
1237 Get the "Reports" label string from the constants.
1238 * src/main/resources/org/glom/web/client/ui/OnlineGlomConstants.pro
1239 perties: Add Reports to the constants.
1241 2012-03-05 Murray Cumming <murrayc@murrayc.com>
1243 Reports: Implement grouping.
1245 * src/main/java/org/glom/web/server/ReportGenerator.java:
1246 Handle LayoutItem_GroupBy items and try to do the right thing
1247 with JRDesignGroup. It seems to work.
1249 2012-03-04 Murray Cumming <murrayc@murrayc.com>
1251 Actually show some data with JasperReports.
1253 * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java:
1254 getReportHTML(): Move most code into a ReportGenerator class.
1255 * src/main/java/org/glom/web/server/ReportGenerator.java:
1256 Recurse into sub-groups, adding fields to the JasperDesign's details
1257 band. Note that we must set an arbitrary width and height, or it just
1258 will not show any data.
1260 2012-03-04 Murray Cumming <murrayc@murrayc.com>
1262 Reports Chooser: Show the titles, not the names.
1264 * src/main/java/org/glom/web/client/ui/TableSelectionViewImpl.java
1265 (TableSelectionViewImpl.setReportList): Show the titles in the UI,
1266 and the names as the values.
1267 * src/main/java/org/glom/web/server/ConfiguredDocument.java
1268 (ConfiguredDocument.getReportLayoutGroup): Do not return a default
1269 group now that we provide the report name, so it should always
1272 2012-02-15 Murray Cumming <murrayc@murrayc.com>
1274 Depend on jasperreports.
1276 * pom.xml: Add the dependency. My plan is to use this on the
1279 2012-01-31 Murray Cumming <murrayc@murrayc.com>
1281 Implement navigation to report places.
1283 * src/main/java/org/glom/web/client/activity/ReportActivity.java
1284 start(): Do not bother to handle all events here.
1285 * src/main/java/org/glom/web/client/ui/TableSelectionView.java
1286 * src/main/java/org/glom/web/client/ui/TableSelectionViewImpl.java:
1287 Added getSelectedReport().
1288 * src/main/java/org/glom/web/client/activity/TableSelectionActivity
1289 .java: start(): When handling a change to the reports chooser,
1290 call getSelectedReport() and goTo() its ReportPlace.
1291 * src/main/java/org/glom/web/client/ui/ReportView.java
1292 * src/main/java/org/glom/web/client/ui/ReportViewImpl.java:
1293 Added setReportHTML() which puts the html in a gwt HTML widget.
1294 * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java
1295 getReportHTML(): Return "TODO" just to show that this works.
1297 2012-01-31 Murray Cumming <murrayc@murrayc.com>
1299 Make ReportPlace usable.
1301 * src/main/java/org/glom/web/client/mvp/AppPlaceHistoryMapper.java:
1302 Mention ReportPlace.
1303 * src/main/java/org/glom/web/client/place/ReportPlace.java:
1304 Correct the @prefix annotation.
1306 2012-01-31 Murray Cumming <murrayc@murrayc.com>
1308 OnlineGlomService: Return report HTML rather than the LayoutGroup.
1310 * src/main/java/org/glom/web/client/OnlineGlomService.java:
1311 * src/main/java/org/glom/web/client/OnlineGlomServiceAsync.java:
1312 * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java:
1313 Change getReportLayout() to getReportHMTL() because we will not need to
1314 parse or render the report layout on the client side.
1315 * src/main/java/org/glom/web/server/ConfiguredDocument.java:
1316 getReportLayout(): Return the libglom LayoutGroup type because we will
1317 not need to convert to a shared type, because this will not be used on
1319 * src/main/java/org/glom/web/client/activity/ReportActivity.java:
1322 Note that there is still no implementation for this.
1325 2012-01-27 Murray Cumming <murrayc@murrayc.com>
1327 Add a (empty) Report Place, View, and Activity.
1329 * src/main/java/org/glom/web/client/place/HasSelectableTablePlace.java:
1331 * src/main/java/org/glom/web/client/place/HasTablePlace.java
1332 * src/main/java/org/glom/web/client/place/ListPlace.java: Move some of
1333 this into a superclass:
1334 * src/main/java/org/glom/web/client/place/HasRecordsPlace.java
1335 and also use it as the base of this new ReportPlace:
1336 * src/main/java/org/glom/web/client/place/ReportPlace.java
1338 * src/main/java/org/glom/web/client/ui/ReportView.java
1339 * src/main/java/org/glom/web/client/ui/ReportViewImpl.java
1340 * src/main/java/org/glom/web/client/activity/ReportActivity.java:
1341 Add these, containing mostly boiler-plate for now.
1343 * src/main/java/org/glom/web/client/OnlineGlomService.java
1344 * src/main/java/org/glom/web/client/OnlineGlomServiceAsync.java
1345 * src/main/java/org/glom/web/server/ConfiguredDocument.java
1346 * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java:
1347 Add API to get the LayoutGroup for the report.
1349 2012-01-23 Murray Cumming <murrayc@murrayc.com>
1351 Add and fill a Reports drop-down list box.
1353 * src/main/java/org/glom/web/server/ConfiguredDocument.java:
1355 * src/main/java/org/glom/web/client/OnlineGlomService.java:
1356 * src/main/java/org/glom/web/client/OnlineGlomServiceAsync.java:
1357 * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java:
1358 Added getReports(document, table, localeID), calling
1359 ConfiguredDocument.getReports().
1360 * src/main/java/org/glom/web/client/ui/TableSelectionView.java:
1361 * src/main/java/org/glom/web/client/ui/TableSelectionViewImpl.java:
1362 Added setReportsList() and a list widget.
1363 * src/main/java/org/glom/web/client/activity/TableSelectionActivity
1364 .java (TableSelectionActivity.fillView(): Fill the view's reports list.
1369 2012-04-12 Murray Cumming <murrayc@murrayc.com>
1371 Translations: Add Esperanto.
1373 * src/main/java/org/glom/web/OnlineGlom.gwt.xml
1374 * src/main/resources/org/glom/web/client/ui/OnlineGlomConstants_eo.
1375 properties: Add this translation because someone took the time to make it.
1377 2012-03-15 Murray Cumming <murrayc@murrayc.com>
1379 Adapt to the java-libglom 1.21.7 API.
1381 * src/main/java/org/glom/web/server/ReportGenerator.java:
1382 addToReport(): get_group_secondary_fields() is now
1383 get_secondary_fields().
1386 2012-03-15 Murray Cumming <murrayc@murrayc.com>
1388 Use the latest java-libglom version.
1390 * pom.xml: Use java-libglom 1.21.7.
1392 2012-03-03 Ben Konrath <ben@bagu.org>
1394 Display date and time in details view.
1396 https://bugzilla.gnome.org/show_bug.cgi?id=671257
1398 * src/main/java/org/glom/web/client/ui/details/DetailsCell.java:
1400 2012-03-05 Murray Cumming <murrayc@murrayc.com>
1402 Require the latest java-libglom.
1404 * pom.xml: java-libglom 1.21.5 has LayoutItem_GroupBy.
1406 2012-03-04 Murray Cumming <murrayc@murrayc.com>
1408 ListViewDbAccess.getSelectQuery(): Avoid using empty quickfind strings.
1410 * src/main/java/org/glom/web/server/database/ListViewDBAccess.java
1411 ListViewDBAccess.getSelectQuery(): Do not create a where clause for
1412 an empty quickfind string. I also corrected libglom to create only
1413 empty where clauses for empty quickfind strings, but this avoids the
1416 2012-02-24 Ben Konrath <ben@bagu.org>
1418 Improve the tabs in the Notebook widget.
1422 2012-01-30 Murray Cumming <murrayc@murrayc.com>
1424 Translations: Try to translate the strings.
1426 * src/main/resources/org/glom/web/client/ui/OnlineGlomConstants_cs.properties:
1427 * src/main/resources/org/glom/web/client/ui/OnlineGlomConstants_de.properties:
1428 * src/main/resources/org/glom/web/client/ui/OnlineGlomConstants_es.properties:
1429 * src/main/resources/org/glom/web/client/ui/OnlineGlomConstants_sl.properties:
1430 * src/main/resources/org/glom/web/client/ui/OnlineGlomConstants_zh_CN.properties:
1431 Take the Open translation from GTK+'s .po files.
1432 Take the Details translation from Glom's po files.
1433 I have added the other strings to Glom so we can get translations that way:
1434 http://git.gnome.org/browse/glom/commit/?id=c3cefe607428a84bdf8de1b04e8bef6f70b04564
1436 2012-01-27 Murray Cumming <murrayc@murrayc.com>
1438 TableSelectionViewImpl: Put the search label and entry in a div.
1440 * src/main/java/org/glom/web/client/ui/TableSelectionViewImpl.java:
1441 Put the search widgets in a FlowTable so that the CSS can be used to
1442 style them while keeping them together.
1443 * src/main/webapp/style.css: Mention the new div.
1445 2012-01-27 Murray Cumming <murrayc@murrayc.com>
1447 Translate more strings in more locales.
1449 * src/main/resources/org/glom/web/client/ui/OnlineGlomConstants.properties:
1450 * src/main/java/org/glom/web/client/ui/details/DetailsCell.java:
1451 * src/main/java/org/glom/web/client/ui/details/RelatedListTable.java:
1452 * src/main/java/org/glom/web/client/ui/list/ListViewTable.java:
1453 Translate the "Details" and "Open" string too.
1455 * src/main/java/org/glom/web/OnlineGlom.gwt.xml:
1456 * src/main/resources/org/glom/web/client/ui/OnlineGlomConstants.properties:
1457 * src/main/resources/org/glom/web/client/ui/OnlineGlomConstants_cs.properties:
1458 * src/main/resources/org/glom/web/client/ui/OnlineGlomConstants_es.properties:
1459 * src/main/resources/org/glom/web/client/ui/OnlineGlomConstants_sl.properties:
1460 * src/main/resources/org/glom/web/client/ui/OnlineGlomConstants_zh_CN.properties:
1461 Add these new locales as placeholders though they currently contain English.
1463 2012-01-27 Murray Cumming <murrayc@murrayc.com>
1465 OnlineGlomServiceImpl: Avoid (unlikely) null object dereferences.
1467 * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java: get*():
1468 Check the ConfiguredDocument* for null before using it.
1470 2012-01-26 Murray Cumming <murrayc@murrayc.com>
1472 Tell Eclipse about the generated java files.
1474 * .classpath: This lets it find OnlineGlomConstants.java.
1475 It would be nice if Eclipse just used the maven build files.
1477 2012-01-26 Murray Cumming <murrayc@murrayc.com>
1479 Prevent a crash when no locale is specified in the URL.
1481 * src/main/java/org/glom/web/client/Utils.java: getCurrentLocaleID():
1482 Avoid returning a null string, obtained from
1483 Window.Location.getParameter(). This caused a crash when it was
1484 later passed to libglom's API.
1485 * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java:
1486 init(), getDocumentInfo(), getListViewLayout(), getDocuments(),
1487 getDetailsLayoutAndData(): Use StringUtils.defaultString() to
1488 guard against future null strings.
1490 2012-01-26 Murray Cumming <murrayc@murrayc.com>
1492 Use the ?locale= query param instead of the &lang= token param.
1494 * src/main/java/org/glom/web/client/place/ListPlace.java
1495 * src/main/java/org/glom/web/client/place/DetailsPlace.java
1496 * src/main/java/org/glom/web/client/place/HasSelectableTablePlace.java
1497 Remove the lang token key and value.
1499 * src/main/java/org/glom/web/client/ui/TableSelectionView.java
1500 * src/main/java/org/glom/web/client/ui/TableSelectionViewImpl.java:
1501 When the user selects a different locale from the chooser, use
1502 Window.Location.assign() to change the URL, which then causes a reload.
1504 * src/main/java/org/glom/web/client/Utils.java: Added getCurrentLocaleID().
1505 * src/main/java/org/glom/web/client/activity/DetailsActivity.java
1506 * src/main/java/org/glom/web/client/activity/DocumentSelectionActivity.java
1507 * src/main/java/org/glom/web/client/activity/ListActivity.java
1508 * src/main/java/org/glom/web/client/activity/TableSelectionActivity
1509 * src/main/java/org/glom/web/client/ui/DocumentSelectionView.java
1510 * src/main/java/org/glom/web/client/ui/DocumentSelectionViewImpl.java:
1511 * src/main/java/org/glom/web/client/ui/ListView.java:
1512 * src/main/java/org/glom/web/client/ui/ListViewImpl.java:
1514 Remove localeID member variables and method/constructor parameters, instead
1515 using Utils.getCurrentLocaleID() when we need a localID to pass to
1518 2012-01-26 Murray Cumming <murrayc@murrayc.com>
1520 Internationalize the UI strings.
1522 * pom.xml: gwt-maven-plugin: Add the i18n goal and specify a
1523 <i18nConstantsBundle>, removing the unused <i18nMessagesBundle>.
1524 * src/main/resources/org/glom/web/client/Messages.properties: Remove this
1525 because it is unused. Messages are apparently strings that can have
1526 parameters, but we do not need that yet, so Contants will be enough for now.
1527 * src/main/java/org/glom/web/OnlineGlom.gwt.xml: Add extend-property lines
1528 to say that we support the en and de locales.
1529 * src/main/resources/org/glom/web/client/ui/OnlineGlomConstants.properties:
1530 The original English strings.
1531 * src/main/resources/org/glom/web/client/ui/OnlineGlomConstants_de.properties:
1532 Some German translations of the English strings.
1533 The i18n goal then uses the .properties file to generate an
1534 OnlineGlomConstants.java file in target/ and somehow GWT.create() magically
1535 returns an implementation that returns the translated strings.
1536 The documentation suggests putting these in src/java/*/client/, but it seems
1537 best to put it in src/resources/*/client/.
1538 * src/main/java/org/glom/web/client/ui/TableSelectionViewImpl.java:
1539 Instantiate OnlineGlomConstants via GWT.create() and use it to get the strings
1540 instead of hard-coding them.
1541 Note that we cannot import OnlineGlomConstants because it does not exist yet,
1542 but that does not seem to stop the build, though it confuses Eclipse.
1544 You can see the translated string by adding ?locale=de to the URL, like so:
1545 http://127.0.0.1:8888/OnlineGlom.html?gwt.codesvr=127.0.0.1:9997?locale=de#list:document=film_manager
1547 2012-01-24 Murray Cumming <murrayc@murrayc.com>
1549 Improve null/empty String checks.
1551 * pom.xml: Add a dependency on commons-lang, to use
1552 org.apache.commons.lang.StringUtils.
1553 * src/main/java/org/glom/web/server/ConfiguredDocument.java
1554 * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java
1555 * src/main/java/org/glom/web/server/database/RelatedListDBAccess.java
1556 * src/main/java/org/glom/web/server/database/RelatedListNavigation.java:
1557 Use StringUtils.isEmpty().
1559 * src/main/java/org/glom/web/client/StringUtils.java: Add a tiny
1560 StringUtils class with a static isEmpty() function because we
1561 cannot use org.apache.commons.lang.StringUtils in client-side
1562 GWT code because it (apparently) cannot be compiled to javascript.
1563 * src/main/java/org/glom/web/client/activity/DetailsActivity.java
1564 * src/main/java/org/glom/web/client/activity/ListActivity.java
1565 * src/main/java/org/glom/web/client/activity/TableSelectionActivity.java
1566 * src/main/java/org/glom/web/client/place/DetailsPlace.java
1567 * src/main/java/org/glom/web/client/place/HasSelectableTablePlace.java
1568 * src/main/java/org/glom/web/client/place/ListPlace.java
1569 * src/main/java/org/glom/web/client/ui/cell/NumericCell.java
1570 * src/main/java/org/glom/web/client/ui/cell/TextCell.java
1571 * src/main/java/org/glom/web/client/ui/details/DetailsCell.java
1572 * src/main/java/org/glom/web/client/ui/details/Group.java
1573 * src/main/java/org/glom/web/client/ui/details/Notebook.java: Use
1574 our StringUtils.isEmpty() function.
1576 2012-01-24 Murray Cumming <murrayc@murrayc.com>
1578 Update to the latest java-libglom API.
1580 * pom.xml: Require java-libglom 1.21.4.
1581 * src/main/java/org/glom/web/server/ConfiguredDocument.java
1582 getDocumentInfo(), getListViewLayoutGroup():
1583 * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java
1585 * src/main/java/org/glom/web/server/database/DBAccess.java
1586 getFieldsToShowForSQLQueryAddGroup(),
1587 getPrimaryKeyLayoutItemField(): Replace get_database_title()
1588 with either get_database_title_original() or
1589 get_database_title(localeID).
1591 2012-01-24 Murray Cumming <murrayc@murrayc.com>
1593 ConfiguredDocument: Avoid a null pointer exception.
1595 * src/main/java/org/glom/web/server/ConfiguredDocument.java
1596 Initialize localeID to "" to avoid returning a null String which
1597 causes a crash in java-libglom's swing-generated code.
1599 2012-01-23 Murray Cumming <murrayc@murrayc.com>
1601 Some simple renaming.
1603 * src/main/java/org/glom/web/client/ui/TableSelectionViewImpl.java
1604 * src/main/webapp/style.css: Rename, tableChooser to tablesChooser. Likewise
1605 for localeChooser. This seems more appropriate and is less ambiguous
1606 particularly in the .css file.
1608 2012-01-23 Murray Cumming <murrayc@murrayc.com>
1610 ConfiguredDocument: Rename the localedID private member variable.
1612 2012-01-23 Murray Cumming <murrayc@murrayc.com>
1614 Adapt to the latest java-libglom API from git master.
1616 * src/main/java/org/glom/web/server/database/ListDBAccess.java:
1617 libglom now uses only Vector instead of List, which uses add() instead of
1620 2012-01-22 Murray Cumming <murrayc@murrayc.com>
1622 ConfiguredDocument: Rename the localedID private member variable.
1624 2012-01-20 Murray Cumming <murrayc@murrayc.com>
1626 Build a source tarball with mvn assembly:single
1628 * assembly.xml: Add this file.
1629 * pom.xml: Use the maven-assembly-plugin and tell it to use
1630 our assembly.xml file.
1632 2012-01-19 Murray Cumming <murrayc@murrayc.com>
1634 OnlineGlomServiceImpl: Get .glom files recursively.
1636 * pom.xml: Depend on commons-io from org.apache.commons.
1637 * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java
1638 init(): Use org.apache.commons.io.FileUtils.listFiles() to get the
1639 files recursively, and with the easier filter for the extension.
1640 Use org.apache.commons.io.FilenameUtils.removeExtension() to
1641 simplify that code too.
1643 2012-01-19 Murray Cumming <murrayc@murrayc.com>
1645 README: Mention that you must install java-libglom packages separately.
1647 But then it works, because java-libglom is now in the central maven
1650 2012-01-18 Murray Cumming <murrayc@murrayc.com>
1652 locales drop-down: Show the correct selected locale when the URL changes.
1654 * src/main/java/org/glom/web/client/activity/TableSelectionActivity
1655 .java: setPlace(): Move some code into fillView().
1657 2012-01-18 Murray Cumming <murrayc@murrayc.com>
1659 locales drop-down: Do not lose the primary key.
1661 * src/main/java/org/glom/web/client/activity/DetailsActivity.java
1662 start(): onLocaleChange(): Pass the current primary key value,
1663 instead of an empty value.
1665 2012-01-18 Murray Cumming <murrayc@murrayc.com>
1667 locales drop-down: Do not lose the drop-down selection.
1669 * src/main/java/org/glom/web/client/activity/TableSelectionActivity
1670 .java (TableSelectionActivity.fillView): Set the selected locale
1671 after changing the drop-down items (though we do not really need
1672 to change them just because the locale changes.)
1674 2012-01-18 Murray Cumming <murrayc@murrayc.com>
1676 locales drop-down: Change the tables list when this changes.
1678 * src/main/java/org/glom/web/client/activity/TableSelectionActivity
1679 .java: TableSelectionActivity.start(): Move the async table titles
1680 retrieval into a private fillView() method and also call this when
1681 the chosen locale changes.
1682 Note that the document title is not actually translatable yet, but
1683 that is a problem that I should fix soon in libglom.
1685 2012-01-18 Murray Cumming <murrayc@murrayc.com>
1687 Improve the placement of the locales drop-down.
1689 * src/main/java/org/glom/web/client/ui/TableSelectionViewImpl.java
1690 Put the title and locales drop-down in a div (gwt.FlowTable).
1691 * src/main/webapp/style.css: Add magic css properties to make this work.
1692 Also remove the left margin from the title so that it lines up with the
1695 2012-01-18 Murray Cumming <murrayc@murrayc.com>
1697 locales selector: Show human-readable locale titles.
1699 * src/main/java/org/glom/web/server/ConfiguredDocument.java
1700 getDocumentInfo(): Use java.util.Locale to show a real title of
1701 each locale, in the locale's own language.
1703 2012-01-17 Murray Cumming <murrayc@murrayc.com>
1705 Add a language/locale selector drop-down.
1707 * src/main/java/org/glom/web/shared/DocumentInfo.java:
1708 Add getLocaleIDs(), setLocaleIDs(), getLocaleTitles(), setLocaleTitles().
1709 * /src/main/java/org/glom/web/server/ConfiguredDocument.java:
1710 getDocumentInfo(): Store the available Locales in the DocumentInfo.
1711 * src/main/java/org/glom/web/client/ui/TableSelectionView.java:
1712 * src/main/java/org/glom/web/client/ui/TableSelectionViewImpl.java:
1713 Add a ListBox to show the available locales. Add getLocaleSelector(),
1714 setLocaleList(), getSelectedLocale(), setSelectedLocale().
1715 * src/main/java/org/glom/web/client/event/LocaleChangeEvent.java
1716 * src/main/java/org/glom/web/client/event/LocaleChangeEventHandler.
1717 java: Add these classes.
1718 * src/main/java/org/glom/web/client/activity/TableSelectionActivity.java:
1719 start(): Fill the locales ListBox. Handle its change event, firing a
1721 setPlace(): Show the selected locale as specified by the URL token.
1722 * src/main/java/org/glom/web/client/activity/DetailsActivity.java:
1723 * src/main/java/org/glom/web/client/activity/ListActivity.java:
1724 Handle LocaleChangeEvent, going to a new *Place with that locale.
1726 The placement of the ListBox is not pretty, and it currently uses the ID
1727 as a title, instead of "English", "Deutsch", "Espanola", etc, but it
1731 2012-01-17 Murray Cumming <murrayc@murrayc.com>
1733 Search box: Show the search text from the URL token.
1735 * src/main/java/org/glom/web/client/ui/TableSelectionView.java:
1736 * src/main/java/org/glom/web/client/ui/TableSelectionViewImpl.java:
1737 Add setQuickFindText().
1738 * src/main/java/org/glom/web/client/activity/TableSelectionActivity
1739 .java: setPlace(): Store the queryText if the place is a ListPlace,
1740 and call TableSelectionView.setQuickFindText().
1742 2012-01-17 Murray Cumming <murrayc@murrayc.com>
1744 Allow use of translations via, for instance, &lang=de in the URL.
1746 * pom.xml: Use the unstable java-libglom 1.21 version.
1748 * src/main/java/org/glom/web/client/OnlineGlomService.java:
1749 * src/main/java/org/glom/web/client/OnlineGlomServiceAsync.java
1750 * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java:
1751 init(): Instead of calling TranslatableItem.set_current_locale()
1752 (now removed), call ConfiguredDocument.setDefaultLocaleID().
1753 However, this is only for default locales, which are not needed to
1754 change the locale in the URL.
1755 getDocumentInfo(), getListViewLayout(), getSortedListViewData(),
1756 getDetailsData(), getDetailsLayoutAndData(), getRelatedListData(),
1757 getSortedRelatedListData(): Add a localeID parameter, so we can get the
1758 layout for a particular locale.
1759 * src/main/java/org/glom/web/server/ConfiguredDocument.java:
1760 Add get/setDefaultLocaleID().
1761 getDocumentInfo(), getListViewData(), getRelatedListData(),
1762 getDetailsLayoutGroup(), getListViewLayoutGroup(),
1763 createLayoutItemPortalDTO(), convertToGWTGlomLayoutItemField(): Add a
1764 localeID parameter, so we can get the layout for a particular locale.
1766 * src/main/java/org/glom/web/client/place/HasSelectableTablePlace.java:
1767 * src/main/java/org/glom/web/client/place/DetailsPlace.java:
1768 * src/main/java/org/glom/web/client/place/ListPlace.java:
1769 Parse and construct a lang parameter too.
1771 * src/main/java/org/glom/web/client/activity/DocumentSelectionActivity.java:
1772 start(): Pass the defaultLocaleID to addDocumentLink(). It is then
1773 passed to subsequent methods and constructors.
1774 * src/main/java/org/glom/web/client/activity/DetailsActivity.java:
1775 * src/main/java/org/glom/web/client/activity/ListActivity.java:
1776 Store the localeID from the *Place and pass it to other constructors
1777 and methods, such as OnlineGlomServiceAsync.getDetailsLayoutAndData().
1779 * src/main/java/org/glom/web/client/ui/DocumentSelectionView.java:
1780 * src/main/java/org/glom/web/client/ui/DocumentSelectionViewImpl.java:
1781 * src/main/java/org/glom/web/client/ui/TableSelectionView.java
1782 * src/main/java/org/glom/web/client/ui/TableSelectionViewImpl.java
1783 * src/main/java/org/glom/web/client/ui/ListView.java:
1784 * src/main/java/org/glom/web/client/ui/ListViewImpl.java:
1785 Take localeID parameters and pass them to subsequent constructors and
1786 methods, so that the layout is always retrieved for that locale.
1788 This is rather repetitive.
1790 Note that "" means the original (default) locale of the Glom document,
1791 which is usually English.
1793 2012-01-17 Murray Cumming <murrayc@murrayc.com>
1795 Documents: Remove final keyword to fix startup configuration.
1797 * src/main/java/org/glom/web/shared/Documents.java: Remove the
1798 final keywords on the private member variables because that breaks
1799 the startup, apparently (there are warnings) because it stops them
1800 from being serialized. I added these in the previous commit.
1802 2012-01-13 Murray Cumming <murrayc@murrayc.com>
1804 Documents: Add some final keywords.
1806 * src/main/java/org/glom/web/shared/Documents.java: Eclipse suggested
1809 2012-01-13 Murray Cumming <murrayc@murrayc.com>
1811 OnlineGlomServiceImpl: Add to overview comments.
1813 * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java:
1814 Note that this is where all the document are loaded. They are not
1815 loaded freshly for each page.
1817 2012-01-12 Murray Cumming <murrayc@murrayc.com>
1821 * src/main/java/org/glom/web/client/ui/TableSelectionViewImpl.java:
1822 Add a TextBox for the text of a quick find.
1823 Add getQuickFindBox(), to get the widget, and getQuickFindText() to
1825 setBackLink(): Add a String quickFind parameter.
1826 * src/main/java/org/glom/web/client/ui/TableSelectionView.java
1827 (TableSelectionView): Add getQuickFindBox() and getQuickFindText()
1828 to the base interface, because that is how TableSelectionViewImpl is used.
1829 * src/main/webapp/style.css: Add style for the search box and its label.
1831 * src/main/java/org/glom/web/client/event/QuickFindChangeEvent.java:
1832 * src/main/java/org/glom/web/client/event/QuickFindChangeEventHandler.java:
1833 Add these files, based on the existing TableChangeEvent and
1834 TableChangeEventHandlers.
1835 * src/main/java/org/glom/web/client/activity/DetailsActivity.java
1836 start(): Handle QuickFindChangeEvent, passing its quickFind text to
1837 a ListPlace() that the user should be taken to.
1838 * src/main/java/org/glom/web/client/activity/ListActivity.java
1839 start(): Handle it here too and adapt the TableChangeEvent handler to
1840 pass the extra "" quickFind parameter to ListPlace.
1841 * src/main/java/org/glom/web/client/place/ListPlace.java:
1842 Constructor: Take an extra String quickFind parameter and store it,
1843 returning it from a new getQuickFind() method.
1844 getToken(): Put the quickFind text in the URL token.
1845 getPlace(): Parse the quickFind text from the URL token.
1846 * src/main/java/org/glom/web/client/ui/DocumentSelectionViewImpl.ja
1847 va: addDocumentLink(): Pass an extra "" quickFind parameter to the
1848 ListPlace constructor.
1849 * src/main/java/org/glom/web/client/activity/TableSelectionActivity
1850 .java: start(): Add a Change handler for the TableSelectionView's
1851 TextBox (via its base HasChangeHandlers interface), firing the new
1852 QuickFindChangeEvent.
1853 setPlace(): Adapt the call to TableSelectionView.setbackLink(), to
1854 pass the extra "" quickFind parameter.
1856 * src/main/java/org/glom/web/client/ui/ListViewImpl.java:
1857 setCellTable(): Add a String quickFind parameter and pass it to
1858 the ListViewTable() constructor.
1859 * src/main/java/org/glom/web/client/ui/ListView.java: Change
1860 setCellTable() in the base interface, because that is how ListViewImpl
1863 * src/main/java/org/glom/web/client/ui/list/ListTable.java:
1864 Add a String quickFind member variable.
1865 * src/main/java/org/glom/web/client/ui/list/ListViewTable.java:
1866 Constructor: Add a String quickFind parameter, storing it in the
1867 base ListTable's member variable.
1868 onRangeChanged(): Pass quickFind to the
1869 OnlineGlomServiceAsync.getSortedListViewData() and
1870 OnlineGlomServiceAsync.getListViewData() methods.
1872 * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java:
1873 getListViewData(), getSortedListViewData(): Add a String quickFind
1874 parameter, passing it to ConfiguredDocument.getListViewData().
1875 * src/main/java/org/glom/web/client/OnlineGlomService.java:
1876 Change getListViewData(), getSortedListViewData() in the base interface,
1877 because that is how OnlineGlomServiceImpl is used, via this:
1878 * src/main/java/org/glom/web/client/OnlineGlomServiceAsync.java:
1879 Change getListViewData(), getSortedListViewData() here too.
1880 This class can apparently be used to asynchronously call methods on
1881 OnlineGlomService, and GWT seems to implement that after recognizing
1882 just the *Async name convention and the extra AsyncCallback parameters.
1884 * src/main/java/org/glom/web/server/ConfiguredDocument.java
1885 getListViewData(): Add a String quickFind parameter, and pass it to
1886 ListViewDBAccess.getData().
1887 * src/main/java/org/glom/web/server/database/ListDBAccess.java
1888 getListData(): Add a String quickFind parameter and pass it to
1890 getSelectQuery(): Add a String quickFind parameter.
1891 * src/main/java/org/glom/web/server/database/ListViewDBAccess.java
1892 getSelectQuery(): Add a String quickFind parameter and use it with
1893 Glom.get_find_where_clause_quick() to pass a where_clause to
1894 Glom.build_sql_select_with_where_clause(), to actually filter the
1896 getData(): Add a String quickFind parameter, passing it to getListData().
1897 * src/main/java/org/glom/web/server/database/RelatedListDBAccess.ja
1898 va: getData(): Pass an empty string to getListData() for the
1899 quickFind parameter.
1901 2012-01-12 Murray Cumming <murrayc@murrayc.com>
1903 ListTable: Minor change.
1905 * src/main/java/org/glom/web/client/ui/list/ListTable.java
1906 createCellTable(): Make this protected instead of public.
1908 2012-01-12 Murray Cumming <murrayc@murrayc.com>
1910 Many files: Use final for the parameters and use the @override attribute.
1912 2012-01-22 Ben Konrath <ben@bagu.org>
1914 Add anchor links for single line text that starts with http, ftp and www.
1918 2012-01-22 Ben Konrath <ben@bagu.org>
1920 Add ellipsis to single line text in details view.
1924 2012-01-04 Murray Cumming <murrayc@murrayc.com>
1926 Remove all javadoc author tags.
1928 Because they are awkward and meaningless when many people touch
1930 See https://gitorious.org/online-glom/gwt-glom/commit/7628b732cb90cbc6d5635420a75568504e8b3655#comment_81164
1932 2012-01-04 Murray Cumming <murrayc@murrayc.com>
1934 Revert the COPYING.LESSER to COPYING rename.
1936 Apparently both should be there if it is LGPL.
1938 2012-01-03 Murray Cumming <murrayc@murrayc.com>
1940 *View: Remove unused imports.
1942 * src/main/java/org/glom/web/client/ui/DetailsView.java:
1943 * src/main/java/org/glom/web/client/ui/DocumentSelectionView.java
1944 * src/main/java/org/glom/web/client/ui/ListView.java:
1945 * src/main/java/org/glom/web/client/ui/TableSelectionView.java:
1946 Remove unused imports, as suggested by Eclipse.
1948 2012-01-02 Murray Cumming <murrayc@murrayc.com>
1950 Move the *View::Presenter types, and some API into one base View.
1952 * src/main/java/org/glom/web/client/ui/DetailsView.java:
1953 * src/main/java/org/glom/web/client/ui/DocumentSelectionView.java:
1954 * src/main/java/org/glom/web/client/ui/ListView.java:
1955 * src/main/java/org/glom/web/client/ui/TableSelectionView.java: Move
1956 Presenter, setPresenter() and clear() into a shared base interface,
1957 to avoid the unnecessary duplicate Presenter types and to more clearly
1958 show how the *Views share the same structure, even if they are not
1959 used polymorphically.
1961 * src/main/java/org/glom/web/client/ui/DetailsViewImpl.java:
1962 * src/main/java/org/glom/web/client/ui/DocumentSelectionViewImpl.ja
1964 * src/main/java/org/glom/web/client/activity/DetailsActivity.java:
1965 * src/main/java/org/glom/web/client/activity/ListActivity.java:
1966 * src/main/java/org/glom/web/client/activity/DocumentSelectionActiv
1968 * src/main/java/org/glom/web/client/activity/TableSelectionActivity
1971 Feel free to revert this if there is a good reason for the duplicate
1974 2012-01-02 Murray Cumming <murrayc@murrayc.com>
1976 OnlineGlom: Make clientFactory a (protected) member, and test it a bit.
1978 * src/main/java/org/glom/web/client/OnlineGlom.java: Make clientFactory
1979 a class member instead of a local variable in the method.
1980 This lets us use it to get the view instances, for use in tests.
1981 * src/test/java/org/glom/web/client/GwtTestOnlineGlom.java:
1982 beforeOnlineGlom(): Test some more details of the initial view.
1983 Again, this is not very useful.
1985 To really test gwt-glom we will need to start a local postgresql
1986 instance with local data, like the Glom tests in C++.
1988 2012-01-02 Murray Cumming <murrayc@murrayc.com>
1990 pom.xml: Mention the LGPL license.
1992 * pom.xml: Add a licenses section.
1993 * COPYING.LESSER: Move this to COPYING, which
1994 previously contained the GPL. But gwt-glom is all LGPL.
1996 2012-01-02 Murray Cumming <murrayc@murrayc.com>
1998 Add project information to README and pom.xml.
2000 * README: Add a brief description and mention some mvn
2002 * pom.xml: This extra information shows up in mvn site
2005 2011-01-02 Murray Cumming <murrayc@murrayc.com>
2007 Use the latest java-libglom version.
2009 * pom.xml: Use java-libglom 1.19.2 instead of 1.19.1.
2011 2012-01-01 Murray Cumming <murrayc@murrayc.com>
2013 GwtTestOnlineGlom: Test a little more.
2015 * src/main/java/org/glom/web/client/OnlineGlom.java: Make the panels
2016 protected rather than private, as suggested by the gwt-test-utils
2018 http://stackoverflow.com/questions/7931724/gwt-testcase-simulating-clicking-a-button-on-my-page
2019 * src/test/java/org/glom/web/client/GwtTestOnlineGlom.java
2020 Test the initial visibility of the panels.
2022 However, this is not a very useful test.
2023 And I wonder how we should generally test using this idea for an
2024 activity/places app like ours where the real changes happen implicitly
2025 based on the history token/URL.
2027 2012-01-01 Murray Cumming <murrayc@murrayc.com>
2029 Slight modification to *Mapper comments.
2031 * src/main/java/org/glom/web/client/mvp/DataActivityMapper.java
2032 (DataActivityMapper)
2033 * src/main/java/org/glom/web/client/mvp/DocumentSelectionActivityMa
2035 * src/main/java/org/glom/web/client/mvp/TableSelectionActivityMappe
2037 Remove comments mentioning GIN because they are just copied from
2038 the example code and are apparently not helpful:
2039 http://groups.google.com/group/google-web-toolkit/msg/82f0098b20669a73
2040 Also change the mention of a class that is only in the example code.
2042 2012-01-01 Murray Cumming <murrayc@murrayc.com>
2044 GwtTestOnlineGlom test: Minor changes.
2046 * src/test/java/org/glom/web/client/GwtTestOnlineGlom.java:
2047 Avoid the long qualified class name and modify the comment
2048 because it is now obvious to me that the mocked class is the only
2049 custom one created via GWT.create().
2051 2012-01-01 Murray Cumming <murrayc@murrayc.com>
2053 Tests: Added the beginnings of a test using gwt-test-utils.
2055 * pom.xml: Add dependencies on gwt-test-utils and easymock.
2056 * src/test/resources/META-INF/gwt-test-utils.properties: Add this file
2057 which tells gwt-test-utils what class will be tested.
2058 * src/test/java/org/glom/web/client/GwtTestOnlineGlom.java:
2059 Add a simple (but empty) test case. One class, used by the OnlineGlom
2060 class, is mocked so that it can be created. However, I am not sure
2061 why only this class needs to be mocked.
2063 Note that mockito seems more popular, and clearer, than easymock,
2064 but I have not got that working yet. It might be a matter of the
2067 This test is run during mvn integration-test.
2069 2011-12-31 Murray Cumming <murrayc@murrayc.com>
2071 Tests: Use junit4-style syntax instead of junit3-style.
2073 * src/test/java/org/glom/web/client/place/DetailsPlaceTest.java:
2074 * src/test/java/org/glom/web/client/place/ListPlaceTest.java:
2075 * src/test/java/org/glom/web/shared/DataItemTest.java:
2076 Use the @Test annotation rather than relying on the test*() prefix.
2077 Also no longer implement TestCase, to avoid triggering support for
2078 the junit3-way, which stops the annotations from working.
2079 Change the imports from import junit.framework.* to
2080 import org.junit.*, which is apparently the new way.
2082 2011-12-31 Murray Cumming <murrayc@murrayc.com>
2084 Added a test for ListPlace token parsing and creation.
2086 * src/test/java/org/glom/web/client/place/ListPlaceTest.java:
2087 This is much the same as DetailsPlaceTest.
2089 I wonder how we could test the other parts of the *Place API.
2091 2011-12-30 Murray Cumming <murrayc@murrayc.com>
2093 DetailsPlace test: Also test getToken() and recreation via getPlace().
2095 * src/test/java/org/glom/web/client/place/DetailsPlaceTest.java:
2096 testGetPlaceParameters(): Get the tokens from the DetailsPlace and
2097 recreate it, testing the recreated DetailsPlace for the same parameter
2100 2011-12-30 Murray Cumming <murrayc@murrayc.com>
2102 Use the surefire-report plugin.
2104 * pom.xml: This generates a HTML report about the tests in
2105 target/site/surefire-report.html
2106 when you do mvn surefire-report:report. It seems to be popular/normal.
2108 2011-12-30 Murray Cumming <murrayc@murrayc.com>
2110 Added a test for DetailsPlace.
2112 * src/test/java/org/glom/web/client/place/DetailsPlaceTest.java:
2113 Test the getPlace() token parsing.
2115 2011-12-30 Murray Cumming <murrayc@murrayc.com>
2117 Added a first unit test.
2119 * pom.xml: Add a test goal, and a dependency on junit in that scope.
2120 * src/test/java/org/glom/web/shared/DataItemTest.java:
2121 This is a silly test but it is just to get things started. Note that
2122 maven/junit finds the test because it looks in src/test by default.
2124 2011-12-22 Ben Konrath <ben@bagu.org>
2126 Change charsetName to "UTF-8" when replacing line breaks.
2128 JavaScript requires the charsetName to be "UTF-8". CharsetName values
2129 that work in Java (such as "UTF8") will not work when compiled to
2132 This fixes a problem with multi-line details view fields that have hard
2133 line breaks. The "License Text" field on this page demonstrates the
2136 http://onlineglom.openismus.com/OnlineGlom/#details:document=debian_repository_analyzer&table=licenses&value=197
2138 * src/main/java/org/glom/web/client/ui/details/DetailsCell.java:
2140 2011-12-22 Ben Konrath <ben@bagu.org>
2142 Fix another bug with related list navigation.
2144 I've tested all the navigation buttons in all of the related lists
2145 so things should be good now.
2147 * src/main/java/org/glom/web/server/ConfiguredDocument.java:
2149 2011-12-22 Ben Konrath <ben@bagu.org>
2151 Fix a crasher when refreshing the list view with the default table.
2153 This crash will also happen when loading the list view with the default
2154 table from a link or bookmark.
2156 * src/main/java/org/glom/web/client/activity/DetailsActivity.java: Go
2157 to the main document selection page when the document id hasn't been
2159 * src/main/java/org/glom/web/client/activity/ListActivity.java: Go to
2160 the main document selection page when the document id hasn't been
2162 * src/main/java/org/glom/web/client/place/DetailsPlace.java: Use empty
2163 values for the details place when the document id hasn't been set.
2164 * src/main/java/org/glom/web/client/place/ListPlace.java: Use empty
2165 values for the list place when the document id hasn't been set.
2167 2011-12-21 Ben Konrath <ben@bagu.org>
2169 Protect against NPE when glom.document.locale is not in config.
2171 This patch protects against an NPE when glom.document.locale is not in
2172 the config file. This NPE will also happen if glom.document.locale is
2175 The patch also updates the error message to display the class name when
2176 the getMessage() returns null. This was happening when the NPE was
2177 thrown and I had "Configuration Error: null". If an NPE is encountered
2178 with this patch, "Configuration Error: NullPointerException " will be
2181 This commit closes this bug:
2183 https://bugzilla.gnome.org/show_bug.cgi?id=666669
2185 * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java:
2187 2011-12-20 Murray Cumming <murrayc@murrayc.com>
2189 Rename onlineglom.properties to onlineglom.properties.sample.
2191 * src/main/resources/onlineglom.properties: Rename to:
2192 * src/main/resources/onlineglom.properties.sample:
2193 * src/main/resources/README: And add this file explaining that people
2194 should rename it back when deploying.
2196 2011-12-20 Murray Cumming <murrayc@murrayc.com>
2198 Allow choosing the translation in the .properties file.
2200 * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java
2201 init(): Read a glom.document.locale value from the configuration file
2202 and call Glom's TransatableItem::set_current_locale() method.
2203 * src/main/resources/onlineglom.properties: Add a commented-out
2204 example of this new setting.
2206 It would be better to add &lang=de_DE to the URL, but the current
2207 libglom API does not allow us to do this easily. I am working on that.
2209 2011-12-19 Murray Cumming <murrayc@murrayc.com>
2211 Avoid a crash in parsing of token parameters.
2213 * src/main/java/org/glom/web/client/place/HasSelectableTablePlace.j
2214 ava: getTokenParams(): Do not crash if a parameter has a key but no
2215 value, and ignore parameters with neither.
2217 2011-12-17 Murray Cumming <murrayc@murayc.com>
2219 History token building/handling: Improve use of token parameters.
2221 * src/main/java/org/glom/web/client/place/HasSelectableTablePlace.java
2222 (HasSelectableTablePlace.Tokenizer): Add getTokenParams(String)
2223 and buildParamsToken(HashMap), for use by derived classes.
2224 Make the separator private because it is no longer be needed.
2225 * src/main/java/org/glom/web/client/place/DetailsPlace.java
2226 (DetailsPlace.Tokenizer.getToken): Use buildParamsToken()
2227 instead of manual string concatenation.
2228 (DetailsPlace.Tokenizer.getPlace): Use getTokenParams() instead
2229 of hardcoded indices and awkward splitting code.
2230 * src/main/java/org/glom/web/client/place/ListPlace.java
2231 (ListPlace.Tokenizer.getToken): Use buildParamsToken()
2232 instead of manual string concatenation.
2233 (ListPlace.Tokenizer.getPlace): Use getTokenParams() instead
2234 of hardcoded indices and awkward splitting code.
2235 This should fix bug #666420
2237 2011-12-16 Murray Cumming <murrayc@murrayc.com>
2239 Fix a Navgiation->Navigation typo in the code.
2241 * src/main/java/org/glom/web/client/activity/DetailsActivity.java
2242 Rename processNavgiation() to processNavigation().
2244 2011-12-16 Murray Cumming <murrayc@murrayc.com>
2246 Fix a seperator->separator typo in the code.
2248 * src/main/java/org/glom/web/client/place/DetailsPlace.java
2249 * src/main/java/org/glom/web/client/place/HasSelectableTablePlace.java
2250 * src/main/java/org/glom/web/client/place/ListPlace.java: Just a
2253 2011-12-15 Ben Konrath <ben@bagu.org>
2255 Cleanup some comments.
2257 * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java:
2259 2011-12-14 Ben Konrath <ben@bagu.org>
2261 Replace \n with <br/> for multiline text in the details view.
2263 Vertical scrollbars are added when needed as well.
2265 * src/main/java/org/glom/web/client/ui/details/DetailsCell.java:
2267 2011-12-14 Ben Konrath <ben@bagu.org>
2269 Specify the font for document selection links.
2271 * src/main/webapp/style.css:
2273 2011-12-14 Ben Konrath <ben@bagu.org>
2275 Fix bouncy CellTable while paging.
2277 This doesn't currently work with related list tables in unselected
2280 * src/main/java/org/glom/web/client/ui/list/ListTable.java
2282 2011-12-14 Ben Konrath <ben@bagu.org>
2284 Revamp the appearance of the document selection page.
2286 * src/main/java/org/glom/web/client/ui/DocumentSelectionViewImpl.java:
2287 * src/main/java/org/glom/web/client/ui/DocumentSelectionViewImpl.ui.xml:
2288 * src/main/webapp/style.css:
2290 2011-12-13 Ben Konrath <ben@bagu.org>
2292 Set navigation button column to the smallest size possible.
2294 * src/main/java/org/glom/web/client/ui/list/ListTable.java:
2296 2011-12-13 Ben Konrath <ben@bagu.org>
2298 Change OpenButton nomenclature to NavigationButton.
2300 Using NavigtionButton makes things more generic. Classes, methods and
2301 variables have been changed.
2303 This is a rename-only refactor.
2305 * src/main/java/org/glom/web/client/activity/DetailsActivity.java:
2306 * src/main/java/org/glom/web/client/ui/ListViewImpl.java:
2307 * src/main/java/org/glom/web/client/ui/cell/NavigationButtonCell.java:
2308 Renamed from OpenButtonCell.
2309 * src/main/java/org/glom/web/client/ui/details/RelatedListTable.java:
2310 * src/main/java/org/glom/web/client/ui/list/ListTable.java:
2311 * src/main/java/org/glom/web/client/ui/list/ListViewTable.java:
2313 2011-12-12 Ben Konrath <ben@bagu.org>
2315 Remove unnecessary String argument in RelatedListTable and ListViewTable.
2317 * src/main/java/org/glom/web/client/activity/DetailsActivity.java:
2318 * src/main/java/org/glom/web/client/ui/ListViewImpl.java:
2319 * src/main/java/org/glom/web/client/ui/details/RelatedListTable.java:
2320 * src/main/java/org/glom/web/client/ui/list/ListViewTable.java:
2322 2011-12-12 Ben Konrath <ben@bagu.org>
2324 Update variable names and comments.
2326 * src/main/java/org/glom/web/client/ui/details/RelatedListTable.java:
2327 * src/main/java/org/glom/web/client/ui/list/ListViewTable.java:
2329 2011-12-12 Ben Konrath <ben@bagu.org>
2331 Properly initialize numNonEmptyRows variable to zero.
2333 * src/main/java/org/glom/web/client/ui/details/RelatedListTable.java:
2334 * src/main/java/org/glom/web/client/ui/list/ListViewTable.java:
2336 2011-12-05 Ben Konrath <ben@bagu.org>
2338 Add latest mockup with HTML tables.
2340 Features of this mockup:
2342 -> HTML table for flowtable
2343 -> HTML table for flowtable column
2344 -> Example of how related lists would look
2345 -> Not using text entries for data items
2347 The current version of Online Glom doesn't use HTML tables for the
2350 This mockup has been sent to the glom-devel mailing list but it's good
2351 to have it here as well.
2353 * mockups/details-view-html-tables.html:
2355 2011-12-05 Ben Konrath <ben@bagu.org>
2357 Remove unnecessary getPrimaryKeyField() method.
2359 getPrimaryKeyFieldForTable(String) has been renamed to
2360 getPrimaryKeyField(String).
2362 * src/main/java/org/glom/web/server/database/DBAccess.java:
2363 * src/main/java/org/glom/web/server/database/DetailsDBAccess.java:
2364 * src/main/java/org/glom/web/server/database/RelatedListNavigation.java:
2366 2011-12-05 Ben Konrath <ben@bagu.org>
2368 Add string representation of TypedDataItem value to conversion error message.
2370 * src/main/java/org/glom/web/server/Utils.java: Logging the error
2371 message was extracted into its own method to avoid duplication.
2373 2011-12-05 Ben Konrath <ben@bagu.org>
2375 Add type checking to navigation primary key value creation.
2377 Create navigation primary key only if the expected type from the Glom
2378 document matches the type returned by the SQL query.
2380 * src/main/java/org/glom/web/server/database/RelatedListNavigation.java:
2382 2011-12-05 Ben Konrath <ben@bagu.org>
2384 Rename a couple of variables in RelatedListNavigation.
2386 This is a rename-only refactor.
2388 * src/main/java/org/glom/web/server/database/RelatedListNavigation.java:
2390 2011-12-05 Ben Konrath <ben@bagu.org>
2392 Move getListLayoutGroup() into getListViewLayoutGroup().
2394 This removes getListLayoutGroup(). It was only being called by
2395 getListViewLayoutGroup().
2397 * src/main/java/org/glom/web/server/ConfiguredDocument.java:
2399 2011-12-05 Ben Konrath <ben@bagu.org>
2401 Remove check for LayoutItem_Portal in list table method.
2403 This check is no longer necessary because the method isn't being used
2404 to create the LayoutItemPortal DTO.
2406 * src/main/java/org/glom/web/server/ConfiguredDocument.java:
2408 2011-12-05 Ben Konrath <ben@bagu.org>
2410 Properly support related list navigation.
2412 Navigation from the "Repository Analyzer -> Package Scans ->
2413 Dependencies" related table wasn't working because the primary key for
2414 related tables wasn't being set properly. This commit fixes the
2417 * src/main/java/org/glom/web/server/ConfiguredDocument.java: Don't use
2418 getListLayoutGroup() to create the LayoutItemPortal DTO. This method
2419 doesn't set the primary key properly for related list tables.
2420 * src/main/java/org/glom/web/server/database/DBAccess.java: Add table
2421 name parameter to getPrimaryKeyLayoutItemField(). This makes the method
2422 useful for getting the primary key for list view tables and for related
2424 * src/main/java/org/glom/web/server/database/ListDBAccess.java:
2425 * src/main/java/org/glom/web/server/database/ListViewDBAccess.java:
2426 Move code to set the primary key for the table from the abstract
2427 ListDBAccess class to ListViewDBAccess as it's only correct for list
2429 * src/main/java/org/glom/web/server/database/RelatedListDBAccess.java:
2430 Properly add primary key to related list tables.
2432 2011-12-02 Ben Konrath <ben@bagu.org>
2434 Properly set the horizontal alignment of fields.
2436 This fix is for both the list tables and the details view.
2438 * src/main/java/org/glom/web/server/ConfiguredDocument.java: Use
2439 LayoutItem_WithFormatting.get_formatting_used_horizontal_alignment(boolean)
2440 to set the horizontal alignment of fields.
2442 2011-12-02 Ben Konrath <ben@bagu.org>
2444 Display currency codes in the details view.
2446 * src/main/java/org/glom/web/client/ui/details/DetailsCell.java:
2448 2011-12-02 Ben Konrath <ben@bagu.org>
2450 Avoid duplicate JNI call.
2452 JNI is not as efficient as pure Java and this is an easy (and small)
2455 * src/main/java/org/glom/web/server/database/RelatedListDBAccess.java:
2456 Use previously retrieved value for whereClauseToTableName instead of
2459 2011-12-02 Ben Konrath <ben@bagu.org>
2461 Rename a couple of variables in RelatedListNavigation.
2463 This is a rename-only refactor.
2465 * src/main/java/org/glom/web/server/database/RelatedListNavigation.java:
2467 2011-12-02 Ben Konrath <ben@bagu.org>
2469 Indicate clearly that a mismatched primary key type is a bug.
2471 * src/main/java/org/glom/web/server/Utils.java: Change log level from
2472 warning to error. Add 'This is a bug.' to message.
2474 2011-12-02 Ben Konrath <ben@bagu.org>
2476 Update / fix some comments.
2478 * src/main/java/org/glom/web/client/OnlineGlomService.java: Remove old
2480 * src/main/java/org/glom/web/client/ui/details/DetailsCell.java: Fix
2482 * src/main/java/org/glom/web/server/database/RelatedListDBAccess.java:
2483 Fix comments. Add some TODOs.
2485 2011-12-02 Ben Konrath <ben@bagu.org>
2487 Enable navigation to details view with string primary key from related list.
2489 * src/main/java/org/glom/web/server/database/RelatedListNavigation.java:
2490 Create a text primary key value when return type of result is
2491 java.sql.Types.VARCHAR.
2493 2011-12-02 Ben Konrath <ben@bagu.org>
2495 Use checkboxes for booleans in the details view.
2497 * src/main/java/org/glom/web/client/ui/details/DetailsCell.java:
2499 2011-12-01 Ben Konrath <ben@bagu.org>
2501 Improve performance of related list height calculation.
2503 * src/main/java/org/glom/web/client/ui/details/RelatedListTable.java:
2504 Put code to calculate the expected height in a static initializer so
2505 that that it's only called once.
2507 2011-12-01 Ben Konrath <ben@bagu.org>
2509 Show related list tables in notebooks (again).
2511 Calculate the height of the related list tables so the Notebook can be
2512 set the correct height. The height of the related list table is also needed by
2513 FlowTable to be able decide how to create the layout.
2515 * src/main/java/org/glom/web/client/ui/details/Portal.java: Calculate
2516 and set the Portal height based on the height of the related list
2517 table and the Portal container.
2518 * src/main/java/org/glom/web/client/ui/details/RelatedListTable.java:
2519 Add method to calculate the height of the related list tables.
2520 * src/main/java/org/glom/web/client/ui/list/ListTable.java:
2521 * src/main/webapp/style.css: Add css class for Pager. This is needed to
2522 calculate the height of the Pager widget.
2524 2011-12-01 Ben Konrath <ben@bagu.org>
2526 Use CellTable API for table property instead of setting style on Element.
2528 * src/main/java/org/glom/web/client/ui/details/RelatedListTable.java:
2530 2011-12-01 Ben Konrath <ben@bagu.org>
2532 Make ListViewTable and RelatedListTable a consistent height.
2534 The tables are now a consistent height regardless of the contents of
2535 the table. A hidden button is added to empty rows to ensure that the
2536 height of these rows will match the height of rows with data.
2538 A navigation button column is now added to every table. The width of
2539 the navigation column is set to 0px when a RelatedListTable shouldn't
2540 have navigation buttons. This maintains the a consistent row height in
2541 tables that don't show the navigation buttons.
2543 * src/main/java/org/glom/web/client/activity/DetailsActivity.java: Hide
2544 navigation column when not needed.
2545 * src/main/java/org/glom/web/client/ui/ListViewImpl.java: Move method
2546 arguments for navigation button to constructor of ListViewTable.
2547 * src/main/java/org/glom/web/client/ui/cell/OpenButtonCell.java: Render
2548 hidden button for empty data rows.
2549 * src/main/java/org/glom/web/client/ui/details/RelatedListTable.java: Add method
2550 arguments for navigation button to constructor.
2551 * src/main/java/org/glom/web/client/ui/list/ListTable.java: Always
2552 create navigation buttons. Add hideNavigationButtons() method.
2553 * src/main/java/org/glom/web/client/ui/list/ListViewTable.java: Add method
2554 arguments for navigation button to constructor.
2556 2011-12-01 Ben Konrath <ben@bagu.org>
2558 Use 'visibility: hidden' in Utils.getWidgetHeight().
2560 This is better choice because hidden elements are invisible, don't
2561 respond to events and are not part of the tab order. They will,