1 2012-12-05 Murray Cumming <murrayc@murrayc.com>
5 * src/main/java/org/glom/web/client/activity/TableSelectionActivity.java:
7 * src/main/java/org/glom/web/client/ui/TableSelectionViewImpl.java:
8 setLocaleList(), setReportList()):
9 * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java:
10 getReportsList(): Avoid using null objects.
11 * src/main/java/org/glom/web/server/Utils.java:
12 transformUnknownToActualType(): Try to avoid or catch
13 failures to parse the string as a double.
15 2012-12-05 Murray Cumming <murrayc@murrayc.com>
17 Turn the authenication popup into a real Place.
19 * src/main/java/org/glom/web/client/place/HasTablePlace.java:
20 Moved some of this into a base class:
21 * src/main/java/org/glom/web/client/place/HasDocumentPlace.java:
23 * src/main/java/org/glom/web/client/place/DocumentLoginPlace.java
25 * src/main/java/org/glom/web/client/ui/AuthenticationPopup.java:
26 Removed this, moving its UI into:
27 * src/main/java/org/glom/web/client/ui/DocumentLoginView.java
28 * src/main/java/org/glom/web/client/ui/DocumentLoginViewImpl.java
30 * src/main/java/org/glom/web/client/ClientFactory.java:
31 * src/main/java/org/glom/web/client/ClientFactoryImpl.java:
32 Added getDocumentLoginView() to return this view.
34 * src/main/java/org/glom/web/client/activity/HasTableActivity.java:
35 Move some of this into a base class:
36 * src/main/java/org/glom/web/client/activity/HasDocumentActivity.java
37 checkAuthentication(): If the user is not authenticated,
38 instead of showing the popup, go to the login place.
39 * src/main/java/org/glom/web/client/activity/DocumentLoginActivity.java
40 A new activity for the DocumentLoginPlace. This checks if the
41 user is authenticated and either moves to the appropriate page or
42 waits for the user to enter credentials.
44 * src/main/java/org/glom/web/client/activity/ListActivity.java:
45 * src/main/java/org/glom/web/client/activity/ReportActivity.java:
46 Remove mentions of the authentication popup.
48 * src/main/java/org/glom/web/client/mvp/AppPlaceHistoryMapper.java:
49 Tell this about DocumentLoginPlace.
50 * src/main/java/org/glom/web/client/mvp/DocumentSelectionActivityMapper.java:
51 getActivity(): Also handle DocumentLoginPlace, returning DocumentLoginActivity.
53 The login screen is not pretty, and it does not yet attempt to take the use
54 back to the correct place.
56 2012-12-04 Murray Cumming <murrayc@murrayc.com>
58 DetailsActivity: Check for authentication here too.
60 * src/main/java/org/glom/web/client/activity/DetailsActivity.java:
61 Call checkAuthentication to deal with a TODO here.
63 2012-12-04 Murray Cumming <murrayc@murrayc.com>
65 Authentication: Reduce some copy/paste by moving code to base class.
67 * src/main/java/org/glom/web/client/activity/HasTableActivity.java:
68 Add checkAuthentication().
69 * src/main/java/org/glom/web/client/activity/ListActivity.java:
70 * src/main/java/org/glom/web/client/activity/ReportActivity.java:
71 Call it here instead of copy/pasting the code.
73 2012-12-04 Murray Cumming <murrayc@murrayc.com>
75 GwtTestOnlineGlomService: Add some assertions.
77 * src/test/java/org/glom/web/client/GwtTestOnlineGlomService.java:
78 However, these assertions will never be run because we have no
79 way to set up the test conditions (specifying documents and their
80 databases) for the OnlineGlom service.
81 See https://groups.google.com/forum/?hl=en&fromgroups=#!topic/google-web-toolkit/Z6rPWG4kcKQ
83 2012-12-04 Murray Cumming <murrayc@murrayc.com>
85 Add client-side tests for StringUtils and Utils.
87 * src/test/java/org/glom/web/client/GwtTestStringUtils.java: Added.
88 * src/test/java/org/glom/web/client/GwtTestUtils.java: Added.
89 This is mostly just to catch java->javascript compilation problems.
91 2012-12-02 Murray Cumming <murrayc@murrayc.com>
93 Add GwtTestReportPlace.
95 * src/test/java/org/glom/web/client/place/GwtTestReportPlace.java:
96 This is like the existing GwtTest*Place tests.
97 It would be nice if we could just test that all client and shared
98 code can be compiled to Javascript without creating a test for it.
99 Currently, we only discover problems when starting it in a browser.
101 2012-12-02 Murray Cumming <murrayc@murrayc.com>
103 Add GwtTestDetailsPlace to test the same code as client-side.
105 * src/test/java/org/glom/web/client/place/GwtTestDetailsPlace.java:
106 See the comment about the awkward client-side-only Date API.
107 Ignoring this Date API issue, it would be nice if we could test
108 the same code as both Java (server) and generated Javascript (client)
109 without duplicating most of the test code.
111 2012-12-02 Murray Cumming <murrayc@murrayc.com>
113 DataItemTest: Test the date type too, and improve the asserts.
115 * src/test/java/org/glom/web/shared/DataItemTest.java:
116 Add testdate(). See the comment about the awkward server-side-only
119 2012-12-02 Murray Cumming <murrayc@murrayc.com>
121 DetailsPlace: Use a date-formatting API available in GWT client code.
123 * src/main/java/org/glom/web/client/place/DetailsPlace.java:
124 getStringForData(): Use DateTimeFormat.getFormat(), because that works
125 on the client side (but not the server side) instead of String.format()
126 with Date.getYear()/getMonth()/getDate(), because they work only on the
127 server side (but not on the client side). Rather annoying.
128 * src/test/java/org/glom/web/client/place/DetailsPlaceTest.java: Rename to
130 * src/test/java/org/glom/web/client/place/ListPlaceTest.java: Rename to
131 GwtTestListPlaceTest, so we can run these as client-side (generated
132 Javascript) code so we can catch these problems sooner.
133 It is unfortunate that the code cannot run on the server-side as Java,
134 but it does not need to.
136 2012-12-02 Murray Cumming <murrayc@murrayc.com>
138 In the UI, allow primary keys to be any type, and test it.
140 * src/main/java/org/glom/web/shared/TypedDataItem.java:
141 Added isUnknownType() for convenience.
142 * src/main/java/org/glom/web/client/place/DetailsPlace.java:
143 getToken(): Move some code into getStringForData() and handle
145 * src/main/java/org/glom/web/server/Utils.java:
146 Added transformUnknownToActualType(), to parse the unknown string
147 as a particular type of data. This should correspond with
148 getStringForData() above.
149 * src/main/java/org/glom/web/server/ConfiguredDocument.java:
150 Add setDataItemType() to set the type of data for primary
152 getDetailsData(), getSuitableRecordToViewDetails():
153 Call it, to have the correctly-typed primary key value.
154 We do it here, on the server, instead of before, because it
155 is only here that we can know the field type that is in the
157 * src/test/java/org/glom/web/client/place/DetailsPlaceTest.java:
158 Added testGetPlaceParametersNumericPrimaryKey(),
159 testGetPlaceParametersBooleanPrimaryKey() and
160 testGetPlaceParametersDatePrimaryKey).
162 2012-11-30 Murray Cumming <murrayc@murrayc.com>
164 Allow primary keys to be any type, and test it.
166 * src/main/java/org/glom/web/shared/TypedDataItem.java:
167 Add overrides for the other set*() methods, to set the type.
168 Added getValue() which returns a generic Object.
169 * src/main/java/org/glom/web/server/SqlUtils.java:
170 buildSimpleWhereExpression(): Use TypedDataItem.getValue() instead of
172 * src/test/java/org/glom/web/server/SelfHostExampleNonNumericPrimaryKeysTest.java:
173 Added this test, which is much like SelfHostExampleTest, but which uses this
174 test file, take from Glom:
175 * src/test/resources/org/glom/web/server/test_example_music_collection_text_pk_fields.glom:
176 which has all the primary keys changes to text instead of numbers.
178 However, parts of the UI code still assume that primary keys are numbers.
180 2012-11-28 Murray Cumming <murrayc@murrayc.com>
182 SelfHostExampleTest: Move some checks into a utility function.
184 * src/test/java/org/glom/web/server/SelfHostExampleTest.java:
185 Move the data checks into a new file:
186 * src/test/java/org/glom/web/server/SelfHostTestUtils.java:
187 SelfHostTestUtils.java: so we can use it in some other
188 tests, with different documents.
190 2012-11-28 Murray Cumming <murrayc@murrayc.com>
192 SelfHosting test: Also try using a relationship.
194 * src/main/java/org/glom/web/server/database/DBAccess.java:
195 convertResultSetToDTO(): Move some code into a public
197 * src/main/java/org/glom/web/server/SqlUtils.java:
198 fillDataItemFromResultSet(): This takes a DataItem and
199 sets it from a value from a datbase recordset.
200 * src/main/java/org/glom/web/server/libglom/Document.java:
201 Make getDocument() public, so we can use it in a test.
202 * src/test/java/org/glom/web/server/SelfHostExampleTest.java:
203 Add testExampleMusiccollectionDataRelated() and call it from
204 testExampleMusiccollectionData(), to do a basic test of using
207 2012-11-22 Murray Cumming <murrayc@murrayc.com>
209 Build: Specify the source encoding.
211 * pom.xml: Set project.build.sourceEncoding
212 This should fix this build problem on some systems:
213 [ERROR] /var/lib/jenkins/workspace/OnlineGlom/src/test/java/org/glom/web/server/libglom/DocumentTest.java:[139,72] error: unmappable character for encoding ASCII
217 2012-11-20 Murray Cumming <murrayc@murrayc.com>
219 Update the jasperreports version.
221 * pom.xml: This was shown by
222 mvn versions:display-dependency-updates
224 2012-11-20 Murray Cumming <murrayc@murrayc.com>
226 Eclipse: Reorder the Java Build Path to fix the build in Eclipse.
228 * .classpath: This prevents an error saying that getTextContent()
230 See http://mergetag.com/the-method-gettextcontent-is-undefined-for-the-type-node/
232 2012-11-20 Murray Cumming <murrayc@murrayc.com>
234 Explicitly declare some dependencies (and scopes) that we use.
236 * pom.xml: The dependency report showed what we use.
238 2012-11-20 Murray Cumming <murrayc@murrayc.com>
240 Update the gwt-test-utils version.
242 * pom.xml: gwt-test-utils 0.43 uses GWT 2.5.0, not GWT 2.4.0.
243 Using both in the same project was causing gwt-log to fail in GWTBrige,
245 testOutOfBounds(org.glom.web.server.libglom.DocumentLayoutPathTest):
246 (class: com/google/gwt/core/client/GWT, method: setBridge signature: (Lcom/google/gwt/core/client/GWTBridge;)V) Incompatible argument to function
248 2012-11-19 Murray Cumming <murrayc@murrayc.com>
250 DocumentTest: testLocales(): Update for the latest example version.
252 * src/test/java/org/glom/web/server/libglom/DocumentTest.java:
253 The .glom file, updated in the previous commit, now has more translations.
255 2012-11-19 Murray Cumming <murrayc@murrayc.com>
257 Update the .glom files used for tests.
259 * src/test/resources/org/glom/web/server/example_film_manager.glom:
260 * src/test/resources/org/glom/web/server/example_music_collection.glom:
261 * src/test/resources/org/glom/web/server/libglom/example_film_manager.glom:
262 * src/test/resources/org/glom/web/server/libglom/example_music_collection.glom:
263 Copy them from git master of Glom.
265 2012-11-18 Murray Cumming <murrayc@murrayc.com>
267 Update versions of dependencies.
269 * pom.xml: Increase some version numbers based on the output of
270 , using mvn versions:display-dependency-updates.
271 * src/test/java/org/glom/web/client/GwtTestOnlineGlom.java:
272 Use the annotation instead of getModuleName().
273 * src/test/java/org/glom/web/server/SelfHostConfiguredDocumentTest.java:
274 Do not use deprecated assert() classes/methods.
276 2012-11-18 Murray Cumming <murrayc@murrayc.com>
278 Document: Correct an import to use the correct Log API.
280 * src/main/java/org/glom/web/server/libglom/Document.java:
281 Use our Utils.Log API rather than the jfree one that Eclipse
282 must have suggested at some time.
284 2012-11-15 Murray Cumming <murrayc@murrayc.com>
286 Details: Get static image data from our images services.
288 * src/main/java/org/glom/web/client/ui/details/DetailsCell.java:
289 Add constructors for LayoutItemText and LayoutItemImage and
290 deal with their common type instead of just LayoutItemField.
292 * src/main/java/org/glom/web/client/activity/DetailsActivity.java:
294 * src/main/java/org/glom/web/client/ui/details/Group.java:
295 createChildWidget(): Use the other DetailsCell constructors for
296 these layout items, and do not add them to the list of
297 cells with data from the database.
298 * src/main/java/org/glom/web/server/ConfiguredDocument.java:
299 getValidListViewLayoutGroup(), getDetailsLayoutGroup():
300 Remove the image data when cloning the layout and storing it in the
301 cache. Clients will instead get it via the URL, from
303 * src/main/java/org/glom/web/server/OnlineGlomImages.java:
304 doGet(): Depending on the URI parameters, optionally get
305 image data from a layout_item_image in the document,
307 * src/main/java/org/glom/web/server/database/DBAccess.java:
308 convertResultSetToDTO(): Move some URIBuilder code to:
309 * src/main/java/org/glom/web/server/Utils.java:
310 Add buildImageDataUrl() taking the primary key, etc, to
311 get data from the database.
313 2012-11-15 Murray Cumming <murrayc@murrayc.com>
315 Document: Static image items: Store an image URL, using the layout path.
317 * src/main/java/org/glom/web/server/Utils.java: Add buildImageDataUrl().
318 * src/main/java/org/glom/web/server/libglom/Document.java:
319 Add a constructor that takes the documentID, for use in the
321 loadLayoutNode(): Pass a Path object to the helper methods, so we
322 can use it to create a URL for LayoutItemImage items.
323 This seems as good a way as any to specify a layout item in the document.
324 * src/main/java/org/glom/web/server/ConfiguredDocumentSet.java:
325 Pass the documentID to the constructor, for use in the LayoutItemImage
328 2012-11-15 Murray Cumming <murrayc@murrayc.com>
330 Document: Add getLayoutItemByPath().
332 * src/main/java/org/glom/web/server/Utils.java:
333 Add buildLayoutPath() and parseLayoutPath().
334 * src/test/java/org/glom/web/server/LayoutPathTest.java: Test that these
335 utility methods work.
336 * src/main/java/org/glom/web/server/libglom/Document.java:
337 Add Add getLayoutItemByPath().
338 * src/test/java/org/glom/web/server/libglom/DocumentLayoutPathTest.java: Test
341 This will be useful in subsequent commits.
343 2012-11-15 Murray Cumming <murrayc@murrayc.com>
345 Document: Use a better base64 decoder to read static image data.
347 * src/test/java/org/glom/web/server/libglom/DocumentTest.java:
348 getNodeTextChildAsValue(): Use the apache commons base64 decoder
349 instead of the gwt one, because it correctly decodes the strings
350 from g_base64_encode(). It is probably more correct.
351 The newlines might be confusing the gwt decoder.
353 2012-11-14 Murray Cumming <murrayc@murrayc.com>
355 Document: Do not use == to compare strings. Use equals().
357 * src/main/java/org/glom/web/server/libglom/Document.java:
358 == only checks that they are the same object, so it can
361 2012-11-14 Murray Cumming <murrayc@murrayc.com>
363 Document: Add and use public constants for layout names.
365 * src/main/java/org/glom/web/server/libglom/Document.java:
366 Make LAYOUT_NAME_DETAILS and LAYOUT_NAME_LIST public.
367 * src/main/java/org/glom/web/server/ConfiguredDocument.java:
368 * src/main/java/org/glom/web/server/database/DetailsDBAccess.java:
369 * src/test/java/org/glom/web/server/SelfHostConfiguredDocumentTest.java:
370 * src/test/java/org/glom/web/server/libglom/DocumentTest.java: Use
371 them here instead of hard-coded the strings repeatedly.
373 2012-11-13 Murray Cumming <murrayc@murrayc.com>
375 Document: Load static text and image items too.
377 * src/main/java/org/glom/web/shared/libglom/layout/LayoutItemImage.java:
378 * src/main/java/org/glom/web/shared/libglom/layout/LayoutItemText.java:
379 New LayoutItem classes to represent these layout items.
380 * src/main/java/org/glom/web/shared/libglom/layout/StaticText.java: The
381 main text of a LayoutItemText.
382 * src/main/java/org/glom/web/server/libglom/Document.java:
383 load_after_layout_group(): Handle the node types and instantiate the
385 * src/test/java/org/glom/web/server/libglom/DocumentTest.java:
386 Add testLayoutItemText() to check that the text is loaded properly.
388 2012-11-13 Murray Cumming <murrayc@murrayc.com>
390 Do not use client.GWT for shared code.
392 * src/main/java/org/glom/web/shared/libglom/layout/Formatting.java:
393 Import shared.GWT instead of client.GWT, which seems to be appropriate.
395 2012-11-12 Murray Cumming <murrayc@murrayc.com>
397 Use image data when recreating databases for testing.
399 * src/main/java/org/glom/web/shared/DataItem.java: Add get/setImageData(),
400 for use locally (not acrosss the network) when recreating databases
402 getValue(): Use it here instead of getImageDataUrl(), noting that
403 this method is only for use when recreating databases.
404 * src/main/java/org/glom/web/server/libglom/Document.java:
405 getNodeTextChildAsValue(): Use it instead of setImageDataUrl().
407 2012-11-09 Murray Cumming <murrayc@murrayc.com>
409 OnlineGlomImages: Detect the mime-type (content type).
411 * src/main/java/org/glom/web/server/OnlineGlomImages.java:
412 doGet(): Instead of hard-coding image/png.
414 2012-11-09 Murray Cumming <murrayc@murrayc.com>
416 Eclipse project files: Use JDK 1.7 instead of JDK 1.6.
419 * .settings/org.eclipse.jdt.core.prefs: By changing the Eclipse
420 Java Compiler and Java Build path settings in the UI.
422 2012-11-09 Murray Cumming <murrayc@murrayc.com>
424 Use the latest (now stable) version of GWT.
426 * pom.xml: And the latest version of the gwt-maven-plugin.
428 2012-11-08 Murray Cumming <murrayc@murrayc.com>
430 Added an Indonesian translation.
432 * src/main/java/org/glom/web/OnlineGlom.gwt.xml:
433 * src/main/resources/org/glom/web/client/ui/OnlineGlomConstants_id.properties:
434 This is from the new translation in Glom.
436 2012-07-23 Murray Cumming <murrayc@murrayc.com>
438 Details: Show images.
440 * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java:
442 * src/main/java/org/glom/web/server/ConfiguredDocumentSet.java:
443 so it can be used in:
444 * src/main/java/org/glom/web/server/OnlineGlomImages.java: A new servlet just
445 for serving image data.
446 * src/main/webapp/WEB-INF/web.xml: Mention the new servlet.
448 * src/main/java/org/glom/web/shared/DataItem.java: Added get/setImageDataUrl().
449 * src/main/java/org/glom/web/client/ui/details/DetailsCell.java:
450 setData(): For image field types, add a GWT Image widget,
451 with the URL that was set in the DataItem.
453 * pom.xml: Depend on org.apache.httpcomponents for UriBuilder.
454 * src/main/java/org/glom/web/server/database/DBAccess.java:
455 convertResultSetToDTO(): Set the URL for image data, so the client browser
456 can retrieve the image from our new servlet. This uses UriBuilder.
457 Move getPrimaryKeyField to:
458 * src/main/java/org/glom/web/server/libglom/Document.java:
459 Added getTablePrimaryKeyField().
461 * src/main/java/org/glom/web/server/database/DetailsDBAccess.java:
462 * src/main/java/org/glom/web/server/database/ListDBAccess.java:
463 * src/main/java/org/glom/web/server/database/RelatedListNavigation.java:
466 2012-07-22 Murray Cumming <murrayc@murrayc.com>
470 * src/main/java/org/glom/web/OnlineGlom.gwt.xml:
471 * src/main/java/org/glom/web/client/OnlineGlomService.java:
472 * src/main/webapp/WEB-INF/web.xml: Change the servlet-name from libGlom
473 to gwtGlom, which is more appropriate.
474 This servlet name does not seem to be visible to the client side anyway.
476 2012-07-22 Murray Cumming <murrayc@murrayc.com>
478 Tests: Make the imports of assert*() consistent.
480 * src/test/java/org/glom/web/client/GwtTestOnlineGlom.java:
481 * src/test/java/org/glom/web/client/place/DetailsPlaceTest.java:
482 * src/test/java/org/glom/web/client/place/ListPlaceTest.java:
483 * src/test/java/org/glom/web/server/ConfiguredDocumentTest.java:
484 * src/test/java/org/glom/web/server/SelfHostConfiguredDocumentTest.java:
485 * src/test/java/org/glom/web/server/SelfHostExampleTest.java:
486 * src/test/java/org/glom/web/server/libglom/DocumentTest.java:
487 * src/test/java/org/glom/web/server/libglom/LayoutItemFieldTest.java:
488 * src/test/java/org/glom/web/server/libglom/LayoutItemPortalDeepCloneTest.java:
489 * src/test/java/org/glom/web/shared/DataItemTest.java:
491 import static org.junit.Assert.*;
492 which seems fairly common.
496 2012-07-21 Murray Cumming <murrayc@murrayc.com>
498 tests: Move a test that needs a database connection.
500 * src/test/java/org/glom/web/server/ConfiguredDocumentTest.java:
501 Move testGetListViewLayoutGroup() to
502 * src/test/java/org/glom/web/server/SelfHostConfiguredDocumentTest.java:
503 because it needs a database connection.
505 2012-07-21 Murray Cumming <murrayc@murrayc.com>
507 tests: Use @BeforeClass on tearDown().
509 * src/test/java/org/glom/web/server/OnlineGlomPropertiesTest.java:
510 * src/test/java/org/glom/web/server/SelfHostExampleTest.java:
511 This avoids leaking a postgres process in SelfHostExampleTest.
513 2012-07-21 Murray Cumming <murrayc@murrayc.com>
515 tests: Test translations more.
517 * src/test/java/org/glom/web/server/ConfiguredDocumentTest.java:
518 * src/test/java/org/glom/web/server/SelfHostConfiguredDocumentTest.java:
519 Test titles in the non-default locale.
521 2012-07-21 Murray Cumming <murrayc@murrayc.com>
523 tests: Add SelfHostConfiguredDocumentTest
525 * src/test/java/org/glom/web/server/SelfHoster.java: Add getters for the
526 username and password, for use by ConfiguredDocument.
527 * src/test/java/org/glom/web/server/SelfHostConfiguredDocumentTest.java:
528 This tests some of the ConfiguredDocument API that requires a database connection.
530 2012-07-21 Murray Cumming <murrayc@murrayc.com>
532 Document: Load title translations and test them.
534 * src/main/java/org/glom/web/server/libglom/Document.java: Load the translations
535 of titles. I am surprised that we do not do this yet.
536 * src/test/java/org/glom/web/server/ConfiguredDocumentTest.java:
537 * src/test/java/org/glom/web/server/libglom/DocumentTest.java:
538 Test translations more.
540 2012-07-20 Murray Cumming <murrayc@murrayc.com>
544 * src/main/java/org/glom/web/server/ConfiguredDocument.java:
545 * src/main/java/org/glom/web/server/database/ListDBAccess.java:
546 Set the timeout here too.
548 2012-07-20 Murray Cumming <murrayc@murrayc.com>
550 tests: ConfiguredDocumentTest: Make this pass.
552 * src/test/java/org/glom/web/server/ConfiguredDocumentTest.java:
553 Disable tests that need a database connection.
555 2012-07-20 Murray Cumming <murrayc@murrayc.com>
557 Use Java 1.7 instead of Java 1.6.
559 * pom.xml: Specify the 1.7 JDK, though I don't like how we seem to need
560 to do this twice, at least for Eclipse.
561 This seems OK because it is the current version.
563 2012-07-20 Murray Cumming <murrayc@murrayc.com>
567 * src/main/java/org/glom/web/server/Log.java: Avoid using null strings.
568 * src/main/java/org/glom/web/server/database/ListDBAccess.java:
569 Avoid using a null Connection.
571 2012-07-20 Murray Cumming <murrayc@murrayc.com>
573 tests: Add a ConfiguredDocument test.
575 * src/test/java/org/glom/web/server/ConfiguredDocumentTest.java:
578 2012-07-20 Murray Cumming <murrayc@murrayc.com>
580 LayoutItemFIeld: getName(): Use the Field if it is set.
582 * src/main/java/org/glom/web/shared/libglom/layout/LayoutItemField.java:
583 getName(): If the full field details have been set, return its name, so that
584 callers do not need to set the name separately.
585 * src/test/java/org/glom/web/server/SelfHostExampleTest.java:
586 testExampleMusiccollectionData): Do not use a TYPE_FORWARD_ONLY statement,
587 so we can count the rows.
589 2012-07-20 Murray Cumming <murrayc@murrayc.com>
591 tests: SelfHoster: Test SqlUtils too.
593 * src/test/java/org/glom/web/server/SelfHostExampleTest.java:
594 Retrieve some data and check it too, as in the regular Glom
595 test_selfhosting_new_from_example.cc test.
596 * src/test/java/org/glom/web/server/SelfHoster.java:
597 createConnection(): Make this public.
599 2012-07-20 Murray Cumming <murrayc@murrayc.com>
601 tests: SelfHoster: createConnection(): Do not warn about expected failures.
603 Let the caller say if the connection is expected to fail, to avoid
604 irrelevant error output.
606 2012-07-20 Murray Cumming <murrayc@murrayc.com>
608 tests: SelfHoster: createAndSelfHostNewEmpty(): Sleep after starting server.
610 * src/test/java/org/glom/web/server/SelfHoster.java:
611 createAndSelfHostNewEmpty(): Sleep initially, to avoid distracting errors
612 due to the inevitable need to retry the connection while the database server
615 2012-07-20 Murray Cumming <murrayc@murray.com>
617 tests: SelfHoster: createConnection(): Set a timeout.
619 * src/test/java/org/glom/web/server/SelfHoster.java:
620 createConnection(): Use setLoginTimeout() because it otherwise seems to take
621 ages to actually return when it fails.
623 2012-07-20 Murray Cumming <murrayc@murrayc.com>
625 tests: SelfHoster: selfHost(): Close the test connection.
627 * src/test/java/org/glom/web/server/SelfHoster.java: selfHost():
628 When we check that the connection works, close the connection. This seems
629 to not be closed automatically otherwise.
631 2012-07-20 Murray Cumming <murrayc@murrayc.com>
633 Use slf4j-simple to see JDBC errors.
635 * pom.xml: Depend on slf4j-simple so we can see errors from JDBC.
637 2012-07-19 Murray Cumming <murrayc@murrayc.com>
639 SelfHoster.discoverFirstFreePort(): Close the socket.
641 * src/test/java/org/glom/web/server/SelfHoster.java:
642 discoverFirstFreePort(): Close the socket. Eclipse Juno warns about this.
644 2012-07-19 Murray Cumming <murrayc@murrayc.com>
646 Avoid another code warning in Eclipse Juno.
648 * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java:
649 Do instanceof checks on the FileUtils.listFiles() result and its
652 2012-07-13 Murray Cumming <murrayc@murrayc.com>
654 Avoid some code warnings in Eclipse Juno
656 * src/main/java/org/glom/web/server/libglom/Document.java:
657 getNodeTextChildAsValue(), setNodeTextChildAsValue(): Handle the invalid type.
658 * src/test/java/org/glom/web/server/SelfHoster.java
659 createTextFile(): Make sure that the FileOutputStream is closed.
661 2012-06-22 Murray Cumming <murrayc@murrayc.com>
663 Added OnlineGlomPropertiesTest.
665 * src/main/java/org/glom/web/server/OnlineGlomProperties.java:
666 Make sure we never return a null string.
667 * src/test/java/org/glom/web/server/OnlineGlomPropertiesTest.java:
668 Added tests of the OnlineGlomProperties API, using our sample file.
670 2012-06-20 Murray Cumming <murrayc@murrayc.com>
672 Make OnlineGlomProperties be a normal class.
674 * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java:
675 Move OnlineGlomProperties into its own file to be a regular class:
676 * src/main/java/org/glom/web/server/OnlineGlomProperties.java:
677 This makes testing simpler.
679 2012-06-15 Murray Cumming <murrayc@murrayc.com>
681 OnlineGlomServiceImpl.init(): Move some code into a new method.
683 * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java:
684 Create addDocument().
686 2012-06-15 Murray Cumming <murrayc@murrayc.com>
688 OnlineGlomServiceImpl.OnlineGlomProperties: Improve getKey().
690 * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java:
691 OnlineGlomProperties.getKey(): Make this more robust by moving the
692 check for *.*.filename to here.
694 2012-06-15 Murray Cumming <murrayc@murrayc.com>
696 OnlineGlomServiceImpl: Improve the OnlineGlomProperties class.
698 * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java
699 init(): Move knowledge of the config file format into the
700 OnlineGlomProperties inner class.
702 2012-06-15 Murray Cumming <murrayc@murrayc.com>
704 SelfHostExampleTest: Make sure we cleanup on failure.
706 * src/test/java/org/glom/web/server/SelfHostExampleTest.java: Move
707 the use of cleanup() to a tearDown() JUnit method.
711 2012-06-12 Murray Cumming <murrayc@murrayc.com>
713 ConfiguredDocument: Add a primary key to portals at least once.
715 * src/main/java/org/glom/web/server/ConfiguredDocument.java
716 updatePortalsExtras): Fix a typo so that we add the primary key
717 column at least once.
718 This is a fix for the previous commit:
719 ConfiguredDocument: Do not add a primary key to portals each time.
721 2012-06-08 Murray Cumming <murrayc@murrayc.com>
723 SelfHoster: Avoid some compiler warnings.
725 * src/test/java/org/glom/web/server/SelfHoster.java
726 executeCommandLineAndWait():
727 executeCommandLineAndWaitUntilSecondCommandReturnsSuccess(): Comment out
728 the now-unused streams for stdout and stderr from the command Processes.
729 These are not used because readln() hangs while waiting for a new line,
730 where there may be no next line. The commented out code is still there
731 to help us figure out how to do this properly.
733 2012-06-08 Murray Cumming <murrayc@murrayc.com>
735 LayoutItemPortalDeepCloneTest: Test something to avoid warnings.
737 * src/test/java/org/glom/web/server/libglom/LayoutItemPortalDeepCloneTest.java:
738 Make this actually test the cloning again, though it is not very useful
739 now that we do not use the part that had a problem with cloning before.
741 2012-06-08 Murray Cumming <murrayc@murrayc.com>
743 SelfHoster: Keep trying pg_ctl after starting postgres.
745 * src/test/java/org/glom/web/server/SelfHoster.java
746 executeCommandLineAndWaitUntilSecondCommandReturnsSuccess():
747 Try pg_ctl repeatedly (for ever) until it succeeds, as we do in
748 regular Glom. This seems mad but it seems to work because the first
749 command would fail if pg_ctl would eventually fail.
751 2012-06-08 Murray Cumming <murrayc@murrayc.com>
753 SelfHoster: Wait until the server is really ready.
755 * src/test/java/org/glom/web/server/SelfHoster.java
756 selfHost(): Attempt the connection after starting the server, retrying
757 a few times if necessary, so that the server is really ready already when
758 we return from this method.
759 The regular Glom code does this too because pg_ctl reports success too soon.
761 2012-06-08 Murray Cumming <murrayc@murrayc.com>
763 ConfiguredDocument: Do not add a primary key to portals each time.
765 * src/main/java/org/glom/web/server/ConfiguredDocument.java
766 updatePortalsExtras(): Only add an extra primary key field if there is
767 none, to avoid adding one each time we retrieve the details layout from the
769 This should fix bug #676986 (Ben Konrath)
771 2012-05-25 Murray Cumming <murrayc@murrayc.com>
773 Document.load(): Support version 7 documents.
775 * src/main/java/org/glom/web/server/libglom/Document.java: Load the
776 database_title attribute if the title attribute is not there.
779 2012-05-24 Ben Konrath <ben@bagu.org>
781 Add configuration for auto-generating mvn:i18n from with Eclipse.
783 * pom.xml: Add PluginExecution configuration for gwt-maven-plugin.
785 2012-05-24 Murray Cumming <murrayc@murrayc.com>
787 Update translations, adding French.
789 * src/main/java/org/glom/web/OnlineGlom.gwt.xml:
790 * src/main/resources/org/glom/web/client/ui/OnlineGlomConstants_fr.properties:
791 Add a French translation, using the translation from Glom.
793 * src/main/resources/org/glom/web/client/ui/OnlineGlomConstants_cs.properties:
794 * src/main/resources/org/glom/web/client/ui/OnlineGlomConstants_es.properties:
795 * src/main/resources/org/glom/web/client/ui/OnlineGlomConstants_sl.properties:
796 Update these based on the translations from Glom.
798 2012-05-24 Murray Cumming <murrayc@murrayc.com>
800 SelfHoster: Add some debug println messages to help when things fail.
802 * src/test/java/org/glom/web/server/SelfHoster.java: Add several
803 System.out.println() lines.
805 2012-05-23 Murray Cumming <murrayc@murrayc.com>
807 Tests: SelfHoster: Check other paths for PostgreSQL command-line tools.
809 * src/test/java/org/glom/web/server/SelfHoster.java:
810 getPathToPostgresExecutable(): Try some common paths (as on Ubuntu, for
811 instance) instead of just /usr/bin (as on Fedora). Check the result when
814 2012-05-23 Murray Cumming <murrayc@murrayc.com>
816 Remove LayoutItemPortal.get/setNavigationTable().
818 * src/main/java/org/glom/web/shared/libglom/layout/LayoutItemPortal.java:
819 Remove get/setNavigationTable(), which is only a cache, because it is not
820 used, and does not need to be used, because that decision should be made on
822 * src/main/java/org/glom/web/server/ConfiguredDocument.java:
823 updatePortalsExtras():
824 * src/main/java/org/glom/web/server/database/RelatedListNavigation.java:
825 getNavigationRecord():
826 * src/test/java/org/glom/web/server/libglom/LayoutItemPortalDeepCloneTest.java:
829 2012-05-21 Murray Cumming <murrayc@murrayc.com>
831 Initial self-hosting for tests.
833 * pom.xml: Change the scope for log4j, to hopefully make it
834 available to the test code which uses it indirectly via jOOQ.
835 * src/main/java/org/glom/web/server/ConfiguredDocument.java: Allow
836 self-hosting, though we only use it for testing.
838 * src/main/java/org/glom/web/server/libglom/Document.java:
839 example rows: Use a map instead of a list for each row of values,
840 so we know what field they are for, instead of relying on the sequence
841 being correct. This is not very efficient, but it does not really need
843 * src/test/java/org/glom/web/server/libglom/DocumentTest.java
844 testReadTableExampleRows(): Adapted.
846 * src/main/java/org/glom/web/shared/DataItem.java: Added getValue()
847 that returns an Object, for generic use. Note that Object seems to be
848 the implicit base even of double.
849 * src/main/java/org/glom/web/shared/libglom/Field.java: Add getSqlType(),
850 for use in CREATE TABLE SQL queries.
851 * src/test/java/org/glom/web/server/SelfHoster.java: Add this class
852 to do self-hosting of PostgreSQL databases via its command-line
853 utilities, based on Glom's C++ code in test_selfhosting_utils.cc and
854 backends/postgres_self.cc. This is incomplete - it needs more
855 warnings about failures and it needs to clean up properly when things
857 * src/test/java/org/glom/web/server/SelfHostExampleTest.java: A simple
858 test of this new class.
860 2012-05-21 Murray Cumming <murrayc@murrayc.com>
862 Document: loading example data: Handle exceptions.
864 * src/main/java/org/glom/web/server/libglom/Document.java:
865 DateFormat.parse() and Double.valueOf() can throw exceptions, though
866 Eclipse did not warn about that.
868 2012-05-20 Murray Cumming <murrayc@murrayc.com>
870 Document: load(), save(): Handle the example rows.
872 * src/main/java/org/glom/web/shared/DataItem.java: Add get/setDate()
874 * src/main/java/org/glom/web/server/libglom/Document.java:
875 load(), save(): Load and save the example rows, though the date, time
876 and image types are not handled properly yet.
877 * src/test/java/org/glom/web/server/libglom/DocumentTest.java:
878 Add testReadTableExampleRows() just to check that something is read.
880 2012-05-20 Murray Cumming <murrayc@murrayc.com>
882 Document: Add save().
884 * src/main/java/org/glom/web/shared/libglom/Translatable.java:
885 Added getTranslationsMap() for use while saving.
886 * src/main/java/org/glom/web/shared/libglom/layout/LayoutItemField.java:
887 Adedd getUseDefaultFormatting() for use while saving.
888 * src/main/java/org/glom/web/server/libglom/Document.java: Added save()
889 and several private methods that it uses.
891 This will be useful while testing via self-hosting.
892 It is not complete, but should be complete enough for testing.
894 2012-05-17 Murray Cumming <murrayc@murrayc.com>
896 OnlineGlomService: Simplify the getList/RelatedViewData() methods.
898 * src/main/java/org/glom/web/client/OnlineGlomService.java
899 * src/main/java/org/glom/web/client/OnlineGlomServiceAsync.java
900 * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java
901 Remove getSortedListViewData() and getSortedRelatedListData(), adding
902 the sort column index and ascending bool to the regular method.
903 Instead, a sort column index of -1 now means no sort.
904 This is less explicit, but it's fairly simple, reduces the amount of
905 code, and makes the OnlineGlomService API slightly smaller.
906 * src/main/java/org/glom/web/client/ui/details/RelatedListTable.java:
907 * src/main/java/org/glom/web/client/ui/list/ListViewTable.java:
909 * src/main/java/org/glom/web/server/ConfiguredDocument.java:
910 getListViewData(), getRelatedListData():
911 * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java:
912 getListViewData(), getRelatedListData():
913 * src/main/java/org/glom/web/server/database/ListDBAccess.java:
915 * src/main/java/org/glom/web/server/database/ListViewDBAccess.java:
917 * src/main/java/org/glom/web/server/database/RelatedListDBAccess.java:
922 2012-05-16 Murray Cumming <murrayc@murrayc.com>
924 Use translations for top-level groups too.
926 * src/main/java/org/glom/web/server/ConfiguredDocument.java:
927 updateTitlesForLocale(): Use the translation for the group
928 as well as for child items.
932 Just recompiled to fix a problem in the released .tar.gz file.
936 2012-05-15 Murray Cumming <murrayc@murrayc.com>
938 Corrections to navigation to related records.
940 * src/main/java/org/glom/web/client/OnlineGlomService.java:
941 * src/main/java/org/glom/web/client/OnlineGlomServiceAsync.java:
942 * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java:
943 getRelatedListData(), getSortedRelatedListData)(), getRelatedListRowCount(),
944 getSuitableRecordToViewDetails(): Take a LayoutItemPortal instead of a
945 relationship name, because the relationship name is not necessarily unique
947 TOOD: This is inefficient, because it passes the whole list of
948 child field items back to the server, but it is more correct, and happens
949 to fix a bug with the primary key being lost after a few navigations.
950 There is probably a chance to make this more efficient anyway in some
953 * src/main/java/org/glom/web/client/activity/DetailsActivity.java
954 * src/main/java/org/glom/web/client/ui/details/RelatedListTable.jav
955 * src/main/java/org/glom/web/server/ConfiguredDocument.java
956 * src/main/java/org/glom/web/server/database/DBAccess.java
957 * src/main/java/org/glom/web/server/database/RelatedListDBAccess.java:
958 * src/main/java/org/glom/web/server/database/RelatedListNavigation.java:
961 2012-05-15 Murray Cumming <murrayc@murrayc.com>
963 Fix the use of translations.
965 * src/main/java/org/glom/web/server/ConfiguredDocument.java:
966 Add updateTitlesForLocale().
967 getValidListViewLayoutGroup(), getDetailsLayoutGroup():
968 Call it to discard unwanted translations and to make getTitle() return
969 the wanted translation wihout the need for the client code to specify a locale.
970 * src/main/java/org/glom/web/shared/libglom/Translatable.java:
971 getTitle(): Fallback to the original title, as libglom does.
973 2012-05-15 Murray Cumming <murrayc@murrayc.com>
975 Document: Correctly report the number of available translation locales.
977 * src/main/java/org/glom/web/server/libglom/Document.java: Fill
978 the available locale IDs list.
979 * src/test/java/org/glom/web/server/libglom/DocumentTest.java:
980 testLocales: Test this.
982 2012-05-15 Murray Cumming <murrayc@murrayc.com>
984 SqlUtils: Use camelCase.
986 * src/main/java/org/glom/web/server/SqlUtils.java: Use camelCase.
987 * src/main/java/org/glom/web/server/database/DetailsDBAccess.java:
988 * src/main/java/org/glom/web/server/database/ListViewDBAccess.java:
989 * src/main/java/org/glom/web/server/database/RelatedListDBAccess.java:
990 * src/main/java/org/glom/web/server/database/RelatedListNavigation.java:
991 * src/main/java/org/glom/web/server/ReportGenerator.java: Adapt.
993 2012-05-15 Murray Cumming <murrayc@murrayc.com>
995 Use jOOQ's tableByName() and fieldByName.
997 * pom.xml: Use jOOQ 2.3.1 to get the new API.
998 * src/main/java/org/glom/web/server/SqlUtils.java:
999 build_sql_select_step_with_where_clause(), .createField(),
1000 builder_add_join(): Use Factory.tableByName() and Factory.fieldByName()
1001 so we can get correct quoting and escaping. Thanks to Lukas Eder for
1002 adding this, and other things, to jOOQ.
1004 2012-05-15 Murray Cumming <murrayc@murrayc.com>
1006 SqlUtils: Remove the Connection parameters.
1008 * src/main/java/org/glom/web/server/SqlUtils.java:
1009 build_sql_select_with_key(), build_sql_select_with_where_clause(),
1010 createSelect(), build_sql_select_step_with_where_clause(),
1011 build_sql_count_select_with_where_clause(),
1012 build_sql_select_count_rows(): Remove the Connection parameter because
1013 jOOQ does not actually need a connectionwhen it is just used to build
1015 https://groups.google.com/forum/#!topic/jooq-user/tIwobFOR2iM
1017 * src/main/java/org/glom/web/server/ReportGenerator.java:
1019 * src/main/java/org/glom/web/server/database/DetailsDBAccess.java:
1021 * src/main/java/org/glom/web/server/database/ListDBAccess.java:
1022 Constructor, getListData(), getResultSizeOfSQLQuery():
1023 * src/main/java/org/glom/web/server/database/ListViewDBAccess.java:
1024 getSelectQuery(), getCountQuery():
1025 * src/main/java/org/glom/web/server/database/RelatedListDBAccess.java:
1026 getSelectQuery(), getCountQuery():
1027 * src/main/java/org/glom/web/server/database/RelatedListNavigation.java:
1028 getNavigationRecord(): Adapted.
1030 2012-05-14 Murray Cumming <murrayc@murrayc.com>
1034 * src/main/java/org/glom/web/server/SqlUtils.java:
1035 get_find_where_clause_quick(): Use a comparison of
1036 lowercase values, instead of a simple equals. Regular Glom
1037 uses the PostgreSQL ILIKE operator but jOOQ does not
1038 support that just yet, though it will soon.
1040 2012-05-14 Murray Cumming <murrayc@murrayc.com>
1042 TableToViewDetails: Use a real serialization ID.
1044 * src/main/java/org/glom/web/shared/libglom/layout/TableToViewDetails.java:
1045 Though this does not fix the serialization problem.
1047 2012-05-12 Murray Cumming <murrayc@murrayc.com>
1049 Added LayoutItemPortalDeepCloneTest.
1051 2012-05-11 Murray Cumming <murrayc@murrayc.com>
1053 Make navigation work again.
1055 * src/main/java/org/glom/web/server/libglom/Document.java:
1056 Add getLayoutItemFieldShouldHaveNavigation().
1057 * src/main/java/org/glom/web/shared/libglom/layout/LayoutItemField.java:
1058 Replace get/setAddNavigation() with the partly-existing
1059 get/setNavigationTableName(), with an empty string being no navigation,
1060 because this is simpler. Use the new
1061 Document.getLayoutItemFieldShouldHaveNavigation() method to set this.
1063 * src/main/java/org/glom/web/server/ConfiguredDocument.java:
1064 Add updateFieldsExtras() and call setNavigationTableName in it.
1065 getDetailsLayoutGroup(),
1066 * src/main/java/org/glom/web/client/activity/DetailsActivity.java
1067 createLayout(): Adapted.
1068 * src/main/java/org/glom/web/client/ui/details/DetailsCell.java
1069 Constructor: Adapted.
1071 * src/main/java/org/glom/web/shared/libglom/layout/LayoutItemPortal.java:
1072 Replace get/setAddNavigation() with get/setNavigation(), returning a
1073 TableToViewDetails class with both the table name and UsesRelationship,
1074 because both are need. The previous code used java-libglom's output
1075 variable (strangely, via sharedptr) to return both, but we cannot really
1077 * src/main/java/org/glom/web/server/database/RelatedListNavigation.java:
1078 getNavigationRecord(): Adapt. However, we cannot actually use the cache
1079 here because it somehow gets set to null during deepCopy(). I must test this.
1080 * src/test/java/org/glom/web/server/libglom/DocumentTest.java
1081 testGetSuitableTableToViewDetails(): Adapted.
1083 TODO: Find out why deepClone() is not quite working.
1085 2012-05-11 Murray Cumming <murrayc@murrayc.com>
1087 DBAccess: Simplify the retrievel of full field details.
1089 * src/main/java/org/glom/web/server/database/DBAccess.java
1090 getFieldsToShowForSQLQueryAddGroup(). This might be unnecessary anyway,
1091 because the Document loading should have done this.
1093 2012-05-11 Murray Cumming <murrayc@murrayc.com>
1095 Document: Correct loading of doubly-related layout fields.
1097 * src/main/java/org/glom/web/server/libglom/Document.java:
1098 loadUsesRelationship(): Actually set the related relationship, instead
1099 of only setting it if it's not found.
1101 2012-05-09 Murray Cumming <murrayc@murrayc.com>
1103 Replace all appearances of Colour with color.
1105 Because US English is dominant.
1107 2012-05-09 Murray Cumming <murrayc@murrayc.com>
1109 Use colors in HTML format, solving a warning about an unused function.
1111 * src/main/java/org/glom/web/shared/libglom/NumericFormat.java
1112 * src/main/java/org/glom/web/shared/libglom/layout/Formatting.java:
1113 Add *asHTMLColor() versions of methods.
1114 TODO: However, we should create and cache the results on the server.
1115 * src/main/java/org/glom/web/client/ui/details/DetailsCell.java
1116 * src/main/java/org/glom/web/client/ui/list/ListTable.java
1117 * src/main/java/org/glom/web/server/ConfiguredDocument.java
1118 * src/test/java/org/glom/web/server/libglom/DocumentTest.java:
1119 Use the asHTMLcolor() versions.
1121 2012-05-09 Murray Cumming <murrayc@murrayc.com>
1123 ListViewTable: Constructor: Take the table name as a parameter.
1125 * src/main/java/org/glom/web/client/ui/list/ListViewTable.java:
1126 Constructor: Take the tableName, and set the member variable, because
1128 * src/main/java/org/glom/web/client/ui/ListViewImpl.java:
1129 setCellTable(): Pass the table name.
1130 This makes navigation to non-default tables work again. I don't know
1131 why it worked before in the master branch.
1133 2012-05-07 Murray Cumming <murrayc@murrayc.com>
1135 ConfiguredDocument: Restore correct addition of hidden primary key items.
1137 * src/main/java/org/glom/web/client/ui/list/ListTable.java
1138 (ListTable.createCellTable): Uncomment out the check for the hidden
1140 * src/main/java/org/glom/web/server/ConfiguredDocument.java: Only
1141 add primary key items for top-level lists and portals, as before,
1142 instead of adding them to each group.
1143 * src/main/java/org/glom/web/shared/libglom/layout/LayoutGroup.java:
1144 Actually implement the extra methods such as setHiddenPrimaryKey() and
1145 comment that these are used only for top-level list groups and in portals.
1146 This strangeness suggests even more that this should not be squeezed
1147 into the LayoutGroup class.
1149 2012-05-07 Murray Cumming <murrayc@murrayc.com>
1151 Fix Formatting loading.
1153 * src/main/java/org/glom/web/shared/libglom/layout/LayoutItemField.java:
1154 getFormattingUsed(): Remove the duplicate Formatting member variable
1155 in favour of the one from the base class.
1156 * src/main/java/org/glom/web/shared/libglom/layout/LayoutItemWithFormatting.java:
1157 Initialize a new Formatting instead of using null by default, so we
1158 have some defaults, instead of having to initialize one later just to
1159 get the same defaults. This also makes loading of formatting from the
1160 document work, because that expected a non-null.
1162 2012-05-07 Murray Cumming <murrayc@murrayc.com>
1164 RelatedListTable: Make sure that the tableName is set.
1166 * src/main/java/org/glom/web/client/ui/details/RelatedListTable.java:
1167 Constructor: Take the tableName so it is available later. Otherwise,
1168 the server assumes that we mean the default table and cannot find the
1170 * src/main/java/org/glom/web/client/activity/DetailsActivity.java
1171 setData(): Pass the tableName to the RelatedListTable constructor.
1173 2012-05-07 Murray Cumming <murrayc@murrayc.com>
1177 * src/main/java/org/glom/web/client/activity/DetailsActivity.java:
1178 RelatedListNavigationButtonCell.onEnterKeyDown(), setData():
1179 * src/main/java/org/glom/web/client/ui/details/RelatedListTable.java:
1181 * src/main/java/org/glom/web/client/ui/list/ListTable.java:
1183 * src/main/java/org/glom/web/server/database/DBAccess.java:
1184 convertResultSetToDTO(), getPortal():
1185 * src/main/java/org/glom/web/server/database/ListDBAccess.java
1187 * src/main/java/org/glom/web/server/database/RelatedListDBAccess.java:
1188 Add checks for null objects and out of range access, with log messages to
1189 give hints so we can fix these properly.
1191 2012-05-07 Murray Cumming <murrayc@murrayc.com>
1193 Portals: some corrections.
1195 * src/main/java/org/glom/web/client/activity/DetailsActivity.java
1197 * src/main/java/org/glom/web/client/ui/details/RelatedListTable.java:
1198 constructor: Use getRelationshipNameUsed() instead of getName(), because
1199 that is what is meant.
1200 * src/main/java/org/glom/web/shared/libglom/layout/LayoutItemPortal.java:
1201 getFromField(): Fix a typo, to get the field name, not the table name.
1202 * src/main/java/org/glom/web/server/database/DBAccess.java:
1203 getPortal(): Fix a typo that stopped this from working.
1205 2012-05-07 Murray Cumming <murrayc@murrayc.com>
1207 LayoutItemPortal: Also override getTitleOriginal().
1209 * src/main/java/org/glom/web/shared/libglom/layout/LayoutItemPortal.java:
1210 This lets the base getTitle() with no parameters work.
1211 TODO: Test this properly.
1213 2012-05-06 Murray Cumming <murrayc@murrayc.com>
1215 LayoutItemPortal: getTitle*(): Use the relationship title.
1217 2012-05-06 Murray Cumming <murrayc@murrayc.com>
1219 LayoutItemField: Fix loading of custom titles.
1221 * src/main/java/org/glom/web/server/libglom/Document.java
1222 loadDataLayoutItemField(): The title, if any, instead of the field
1223 title, is stored in a title_custom node. Load it from there.
1224 * src/main/java/org/glom/web/shared/libglom/CustomTitle.java: Add this
1226 * src/main/java/org/glom/web/shared/libglom/layout/LayoutItemField:
1227 Add getCustomTitle() and use it, instead of super.getTitle*(), in the
1228 getTitle*() overrides.
1229 * src/test/java/org/glom/web/server/libglom/LayoutItemFieldTest.java:
1232 2012-05-06 Murray Cumming <murrayc@murrayc.com>
1234 LayoutItemField: Fall back to field titles, so some are really shown.
1236 * src/main/java/org/glom/web/shared/libglom/layout/LayoutItemField.java:
1237 Override getTitleOriginal() and getTitle(), as in java-libglom.
1238 * src/test/java/org/glom/web/server/libglom/LayoutItemFieldTest.java:
1239 Test this behaviour.
1241 2012-05-06 Murray Cumming <murrayc@murrayc.com>
1243 Correct use of setExpectedResultSize().
1245 * src/main/java/org/glom/web/server/ConfiguredDocument.java
1246 getValidListViewLayoutGroup(), getDetailsLayoutGroup():
1247 Use setExpectedResultSize only on top-level groups (for instance, the
1248 list layout) or on child portals (in details views).
1249 Use the correct table name for portals to avoid SQL errors.
1250 Update the expected counts when returning cached layouts.
1252 2012-05-06 Murray Cumming <murrayc@murrayc.com>
1254 Document: Interpret no group column count as 1.
1256 * src/main/java/org/glom/web/server/libglom/Document.java: Use a sane
1257 default, though we now check for this in the UI code anyway.
1259 2012-05-06 Murray Cumming <murrayc@murrayc.com>
1263 2012-05-06 Murray Cumming <murrayc@murrayc.com>
1265 Translatable: Use Hashmap instead of Treemap because GWT supports it.
1267 * src/main/java/org/glom/web/shared/libglom/Translatable.java:
1268 The use of Treemap lead to this error from async methods, with no
1270 "The response could not be deserialized"
1272 2012-05-06 Murray Cumming <murrayc@murrayc.com>
1274 OnlineGlom.gwt.xml: Add exludes to fix explicit gwt compilation in Eclipse.
1276 * src/main/java/org/glom/web/OnlineGlom.gwt.xml: This is necessary
1277 when using the Google -> GWT Compile, or
1278 g toolbar button -> GWT Compile Project... feature in Eclipse.
1280 2012-05-06 Murray Cumming <murrayc@murrayc.com>
1282 ListTable.addColumn(): Protect against a null Formatting.
1284 * src/main/java/org/glom/web/client/ui/list/ListTable.java: addColumn():
1285 Create a default Formatting if it is null, because that is the simplest
1288 2012-05-06 Murray Cumming <murrayc@murrayc.com>
1290 ConfiguredDocument.updateLayoutGroup(): Protect against a null dereference.
1292 * src/main/java/org/glom/web/server/ConfiguredDocument.java
1293 updateLayoutGroup(): Check that the field is not null.
1295 2012-05-06 Murray Cumming <murrayc@murrayc.com>
1297 ListViewImpl: Protected against a bad cast error.
1299 * src/main/java/org/glom/web/client/ui/ListViewImpl.java:
1300 onEnterKeyDown(): Do not cast without an instanceof check.
1302 2012-05-06 Murray Cumming <murrayc@murrayc.com>
1304 ListTable: Protect against an out of range error.
1306 * src/main/java/org/glom/web/client/ui/list/ListTable.java
1307 createCellTable(): This is unlikely, but can happen while debugging.
1309 2012-05-06 Murray Cumming <murrayc@murrayc.com>
1311 AsyncMessage onFailure() callbacks: Log the exception message.
1313 * src/main/java/org/glom/web/client/activity/DetailsActivity.java
1314 * src/main/java/org/glom/web/client/activity/DocumentSelectionActivity.java:
1315 * src/main/java/org/glom/web/client/activity/ListActivity.java:
1316 * src/main/java/org/glom/web/client/activity/ReportActivity.java:
1317 * src/main/java/org/glom/web/client/activity/TableSelectionActivity:
1318 * src/main/java/org/glom/web/client/ui/details/RelatedListTable.java:
1319 * src/main/java/org/glom/web/client/ui/list/ListViewTable.java:
1320 These are useful clues when something is wrong.
1322 2012-05-06 Murray Cumming <murrayc@murrayc.com>
1324 ConfiguredDocument: Avoid a null dereference.
1326 * src/main/java/org/glom/web/server/ConfiguredDocument.java
1327 TableLayoutsForLocale.getMapWithAdd(): Make sure that the list and
1328 details maps are created.
1330 2012-05-06 Murray Cumming <murrayc@murrayc.com>
1332 Document: Correct the port number parsing.
1334 * src/main/java/org/glom/web/server/libglom/Document.java:
1335 This lets us actually connect to the database and show the document.
1337 2012-05-05 Murray Cumming <murrayc@murrayc.com>
1341 * pom.xml: Use htmlunit mode for gwt:test, because the default demands
1342 user-interaction, asking us to load a temporary URL in a browser.s
1343 * src/main/java/org/glom/web/OnlineGlom.gwt.xml: Add a servlet node,
1344 which is apparently necessary for testing the service. See the comment.
1345 * src/test/java/org/glom/web/client/GwtTestOnlineGlomService.java:
1346 Show the exception, if any. This is how I saw the 404 in the HTML in
1349 2012-05-05 Murray Cumming <murrayc@murrayc.com>
1351 DocumentTest: Move the .glom files into the resources directory.
1353 * src/test/java/org/glom/web/server/libglom/DocumentTest: And get the
1354 URI via getResource().
1356 2012-05-05 Murray Cumming <murrayc@murrayc.com>
1358 Document: Remove the FieldIdentifies inner class.
1360 * src/main/java/org/glom/web/server/libglom/Document.java: We only
1361 use the Relationship (though the same function in libglom is maybe
1362 used in other ways) and so this removes a compiler warning.
1364 2012-05-05 Murray Cumming <murrayc@murrayc.com>
1366 Document.load() Remove the error code parameter.
1368 * src/main/java/org/glom/web/server/libglom/Document.java: load():
1369 Remove the parameter. We do not set it yet and it could never have
1370 worked as an output parameter (though maybe it did in java-libglom).
1371 We could use an exception if we really want the failure reason.
1372 * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java:
1374 * src/test/java/org/glom/web/server/libglom/DocumentTest.java:
1375 setUp(), testGetSuitableTableToViewDetails(): Adapt.
1377 2012-05-05 Murray Cumming <murrayc@murrayc.com>
1379 Make some inner classes static.
1381 * src/main/java/org/glom/web/server/ConfiguredDocument.java
1382 * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java
1383 * src/main/java/org/glom/web/server/ReportGenerator.java
1384 * src/main/java/org/glom/web/server/libglom/Document.java
1385 Make all inner classes static that can be static.
1387 2012-05-05 Murray Cumming <murrayc@murrayc.com>
1389 OnlineGlomServiceImpl: Do not load and check for java-libglom.
1391 * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java
1392 init(): We do not use java-libglom any more.
1394 2012-05-05 Murray Cumming <murrayc@murrayc.com>
1396 Remove mentions of java-libglom.
1398 * README: Remove mention of java-libglom, because it no longer needed.
1399 * utils/build-onlineglom-war.sh:
1400 * utils/check-and-recover-tomcat.py:
1401 * utils/install-onlineglom-war.sh: Remove these as they are no longer
1402 useful. Building is now far easier, with no need for jhbuild.
1404 2012-05-05 Murray Cumming <murrayc@murrayc.com>
1406 Fix the build (mvn package)
1408 * src/main/java/org/glom/web/shared/libglom/layout/LayoutGroup.java
1409 (LayoutGroup): Make the LayoutItemList inner class static and protected.
1410 Otherwise the GWT Java->Javascript compilation fails with just this
1411 error, during mvn package or when attempting to view in a browser,
1412 in the GWT developer mode in Eclipse.
1414 [INFO] --- gwt-maven-plugin:2.4.0:compile (default) @ gwt-glom ---
1415 [INFO] auto discovered modules [org.glom.web.OnlineGlom]
1416 [INFO] Compiling module org.glom.web.OnlineGlom
1417 [INFO] [ERROR] Errors in 'file:/home/murrayc/checkouts/gnome/gwt-glom/src/main/java/org/glom/web/client/OnlineGlomServiceAsync.java'
1418 [INFO] [ERROR] Line 46: Failed to resolve 'org.glom.web.client.OnlineGlomService' via deferred binding
1419 [INFO] Scanning for additional dependencies: file:/home/murrayc/checkouts/gnome/gwt-glom/src/main/java/org/glom/web/client/ui/details/DetailsCell.java
1420 [INFO] [WARN] For the following type(s), generated source was never committed (did you forget to call commit()?)
1421 [INFO] [WARN] org.glom.web.client.OnlineGlomService_Proxy
1422 [INFO] [ERROR] Cannot proceed due to previous errors
1424 It has taken me 2 days to find out what was causing that. After reducing
1425 the code, the compiler eventually showed me the full error message.
1427 2012-05-04 Murray Cumming <murrayc@murrayc.com>
1429 ConfiguredDocument: Cache the cloned and stripped layouts.
1431 * src/main/java/org/glom/web/server/ConfiguredDocument.java:
1432 getValidListViewLayoutGroup(), .getDetailsLayoutGroup(): Store the cloned
1433 layout in a map, so we can retrieve it again without rebuilding it.
1435 2012-05-04 Murray Cumming <murrayc@murrayc.com>
1437 UsesRelationshipImpl: Complete the relationshipEquals() implementation.
1439 2012-05-04 Murray Cumming <murrayc@murrayc.com>
1441 libglom classes: Implement some auto-generated emthods.
1443 2012-05-04 Murray Cumming <murrayc@murrayc.com>
1445 Add GwtTestOnlineGlomService.
1447 * src/test/java/org/glom/web/client/GwtTestOnlineGlomService.java:
1448 However, this (and the other GwtTest*) does not seem to run during
1451 2012-05-04 Murray Cumming <murrayc@murrayc.com>
1453 Remove use of unsupported features from client code.
1455 * src/main/java/org/glom/web/client/StringUtils.java: Add equals().
1456 * src/main/java/org/glom/web/shared/libglom/layout/UsesRelationshipImpl.java:
1457 * src/main/java/org/glom/web/shared/libglom/layout/reportparts/LayoutItemGroupBy.java:
1458 Use our client version of StringUtils instead of the apache commons one.
1460 However, the GWT Javascript compliation still fails.
1462 2012-04-25 Murray Cumming <murrayc@murrayc.com>
1464 Add a Field class and implement some loading of it in Document.
1466 2012-04-25 Murray Cumming <murrayc@murrayc.com>
1468 Initial Document loading implementation, instead of libglom.
1470 * src/test/java/org/glom/web/shared/libglom/: Add Document, Report,
1471 and Translatable classes, and adapt the rest of the code to use them.
1472 However, this is still missing Layout and Field classes and loading.
1474 2012-04-24 Murray Cumming <murrayc@murrayc.com>
1476 Use of jOOQ: Move Field creation into a utility method.
1478 * src/main/java/org/glom/web/server/SqlUtils.java:
1479 This lets us improve it more easily.
1481 2012-04-24 Murray Cumming <murrayc@murrayc.com>
1483 Use of jOOQ: Improve the code to COUNT a sub-select.
1485 * src/main/java/org/glom/web/server/SqlUtils.java:
1486 Move initial query creation into
1487 build_sql_select_step_with_where_clause().
1488 build_sql_select_count_rows(): Use the jOOQ API instead of
1489 concatentating text, because a jOOQ Select*Step is a TableLike,
1490 which is what from() takes.
1492 2012-04-23 Murray Cumming <murrayc@murrayc.com>
1494 Use jOOQ instead of Glom.build_sql*(), to avoid native calls.
1496 * pom.xml: Depend on jooq.
1497 * src/main/java/org/glom/web/server/SqlUtils.java: Reimplement the
1498 methods with jOOQ, based on the C++ implementations in libglom,
1499 with some changes to the logic required by jooQ.
1500 Take a jOOQ Condition rather than a Glom.SqlExpr (GdaSqlExpr) for the
1502 * src/main/java/org/glom/web/client/ui/TableSelectionViewImpl.java:
1503 * src/main/java/org/glom/web/server/ReportGenerator.java:
1504 * src/main/java/org/glom/web/server/SqlUtils.java:
1505 * src/main/java/org/glom/web/server/database/DetailsDBAccess.java:
1506 * src/main/java/org/glom/web/server/database/ListDBAccess.java:
1507 * src/main/java/org/glom/web/server/database/ListViewDBAccess.java:
1508 * src/main/java/org/glom/web/server/database/RelatedListDBAccess.java:
1509 * src/main/java/org/glom/web/server/database/RelatedListNavigation:
1510 Adapt. In particular, the SqlUtils methods now need to take a Connection,
1511 because jOOQ needs that, though it seems unnecessary.
1513 This is not quite finished. Ideally jOOQ would help us to build
1514 table_name.field_name names, quoting and escaping them properly.
1515 See http://stackoverflow.com/questions/10264001/instantiating-a-jooq-field-by-name
1517 2012-04-21 Murray Cumming <murrayc@murrayc.com>
1519 Move use of Glom.build_sql*() into a new SqlUtils class.
1521 * src/main/java/org/glom/web/server/SqlUtils.java: Add static methods
1522 to wrap Glom.build_sql*(). The parameter types are still Glom one,
1523 but this will make it easier to start using something other than
1524 libglom or SqlBuilder.
1526 2012-04-21 Murray Cumming <murrayc@murrayc.com>
1528 Update the project URL.
1530 * pom.xml: Use an OnlineGlom-specific URL for the project URL.
1532 2012-04-21 Murray Cumming <murrayc@murrayc.com>
1534 Main layout: Use a FlowTable instead of absolute positioning.
1536 * src/main/java/org/glom/web/client/OnlineGlom.java: onModuleLoad():
1537 The RootLayoutPanel is a (extends) AbsolutePanel, so each of its
1538 child panels/widgets must have an absolute position. But that is annoying, so
1539 this adds a FlowTable and puts the child panels in there.
1541 2012-04-21 Murray Cumming <murrayc@murrayc.com>
1543 GwtTestOnlineGlom: Comment out unused code.
1545 * src/test/java/org/glom/web/client/GwtTestOnlineGlom.java:
1546 Eclipse has started to say that some code is unused.
1548 2012-04-21 Murray Cumming <murrayc@murrayc.com>
1550 Update to the latest versions of dependencies.
1552 * pom.xml: Update version numbers of dependencies to the latest
1554 * src/main/java/org/glom/web/server/ConfiguredDocument.java:
1555 * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java:
1556 * src/main/java/org/glom/web/server/ReportGenerator.java:
1557 * src/main/java/org/glom/web/server/database/ListViewDBAccess.java:
1558 * src/main/java/org/glom/web/server/database/RelatedListDBAccess.java:
1559 * src/main/java/org/glom/web/server/database/RelatedListNavigation.
1561 * src/test/java/org/glom/web/client/GwtTestOnlineGlom.java:
1562 Modify the imports where necessary.
1564 2012-04-17 Murray Cumming <murrayc@murrayc.com>
1566 Style: Remove overflow:hidden from searchbox
1568 * src/main/webapp/style.css: Because this pushes the Back To Link
1569 label/link on to the next row, which is then hidden due to the
1570 hard-coded (in ems) height.
1572 2012-04-20 Murray Cumming <murrayc@murrayc.com>
1574 Remove some duplicate code.
1576 * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java
1577 getDocumentInfo(): This must have been duplicated during the merge from the
1582 2012-04-19 Murray Cumming <murrayc@murrayc.com>
1584 Reports: Localize the waiting for report message.
1586 * src/main/java/org/glom/web/client/activity/ReportActivity.java
1587 start(): Get the message from the contants.
1588 * src/main/resources/org/glom/web/client/ui/OnlineGlomConstants.properties:
1589 Add the string here.
1590 * src/main/resources/org/glom/web/client/ui/OnlineGlomConstants_cs.properties:
1591 * src/main/resources/org/glom/web/client/ui/OnlineGlomConstants_de.properties:
1592 * src/main/resources/org/glom/web/client/ui/OnlineGlomConstants_es.properties:
1593 * src/main/resources/org/glom/web/client/ui/OnlineGlomConstants_sl.properties:
1594 * src/main/resources/org/glom/web/client/ui/OnlineGlomConstants_zh_CN.properties:
1595 Update these files with the English text for newer strings for now.
1597 2012-04-19 Murray Cumming <murrayc@murrayc.com>
1599 Reports: Show a message while waiting for the report.
1601 * src/main/java/org/glom/web/client/ui/ReportView.java
1602 * src/main/java/org/glom/web/client/ui/ReportViewImpl.java:
1603 Add setWaitingText(), to show a message saying that we are
1604 waiting for the report to be ready.
1605 * src/main/java/org/glom/web/client/activity/ReportActivity.java
1606 start(): Call setWaitingText() before calling the async
1609 2012-04-19 Murray Cumming <murrayc@murrayc.com>
1611 ReportGenerator: Specify date and time formats.
1613 * src/main/java/org/glom/web/server/ReportGenerator.java:
1614 createFieldValueElement(): Use the default (and localized)
1615 short formats, though we still need a way to show 4-digit
1616 years without providing the format for every locale.
1617 * src/main/java/org/glom/web/server/database/DBAccess.java:
1618 convertResultSetToDTO(): Use the short formats here too.
1620 2012-04-18 Murray Cumming <murrayc@murrayc.com>
1622 ReportGenerator: Use the correct numeric formatting.
1624 * src/main/java/org/glom/web/server/ReportGenerator.java
1625 createFieldExpression(), createFieldValueElement(): Take the
1626 whole LayoutItem_Field instead of just the field name, so
1627 we have access to the formatting.
1628 createFieldValueElement(): Use JRTextField.setPattern() to
1629 specify the numeric formatting, with the help of a
1630 regular DecimalFormat.
1632 2012-04-18 Murray Cumming <murrayc@murrayc.com>
1634 ReportGenerator: Avoid showing null for group by titles.
1636 * src/main/java/org/glom/web/server/ReportGenerator.java
1637 generateReport(): Use setBlankWhenNull() on the field title
1638 style too, because this is used for values in group by
1641 2012-04-18 Murray Cumming <murrayc@murrayc.com>
1643 ReportGenerator: Add a colon to titles in vertical groups.
1645 * src/main/java/org/glom/web/server/ReportGenerator.java
1646 addFieldToDetailBandVertical(): Pass true for the withColon
1649 2012-04-18 Murray Cumming <murrayc@murrayc.com>
1651 ReportGenerator: Simplify the code by using Position more.
1653 2012-04-18 Murray Cumming <murrayc@murrayc.com>
1655 Reports: Support vertical groups, roughly.
1657 * src/main/java/org/glom/web/server/ReportGenerator.java:
1658 addToReport(): Rename to addGroupToReport() and, if necessary,
1659 call the new addVerticalGroupToReport() method.
1660 createFieldValueElement(): Let the caller specify the Y position
1663 2012-04-17 Murray Cumming <murrayc@murrayc.com>
1665 Reports: Allow a second report to be shown.
1667 * src/main/java/org/glom/web/client/ui/ReportViewImpl.java:
1668 clear(): Do not remove the HTML widget, which broke the whole layout.
1670 2012-04-17 Murray Cumming <murrayc@murrayc.com>
1672 Locales drop-down: Show that we use English by default.
1674 * src/main/java/org/glom/web/client/activity/TableSelectionActivity.java:
1675 fillView(): When we use English, just because that is the default, when
1676 no locale is specified, show that in the Locales drop-down instead of
1677 just showing the first item.
1679 2012-04-17 Murray Cumming <murrayc@murrayc.com>
1681 Unselect the Report/Locale/Table combo item when appropriate.
1683 * src/main/java/org/glom/web/client/activity/TableSelectionActivity.java:
1684 setPlace(): clear reportName if this is not a ReportPlace.
1685 * src/main/java/org/glom/web/client/ui/TableSelectionViewImpl.java:
1686 setSelectedTableName(), setSelectedLocale(), setSelectedReport():
1687 When the provided name is empty, unselect all items, so that none are
1688 indicated. This uses a for loop because I cannot find a single method
1691 2012-04-17 Murray Cumming <murrayc@murrayc.com>
1693 Report: Give the user a way to get back to the list.
1695 * src/main/java/org/glom/web/client/activity/TableSelectionActivity.java:
1696 start(), setPlace(): Show the Back To List link on reports, and also
1697 interpret selecting the empty report item as back to list.
1699 2012-04-13 Murray Cumming <murrayc@murrayc.com>
1701 Really show the selected Report name.
1703 * src/main/java/org/glom/web/client/activity/TableSelectionActivity:
1704 setPlace(): Store the reportName here, if it is that kind of Place.
1705 fillView(): Set the selected Report after filling the list of reports.
1706 * src/main/java/org/glom/web/client/ui/TableSelectionViewImpl.java:
1707 setSelectedLocale(), setSelectedReport(): Avoid possible uses of
1708 null Strings, though we need some way to unselect all ListBox items
1711 2012-04-13 Murray Cumming <murrayc@murrayc.com>
1713 ReportGenerator: Try to avoid some problems.
1715 * src/main/java/org/glom/web/server/ReportGenerator.java
1716 addField(): Try to avoid duplicates, and avoid using a null
1719 2012-04-13 Murray Cumming <murrayc@murrayc.com>
1721 Reports: Use quickFind.
1723 * src/main/java/org/glom/web/client/OnlineGlomService.java;
1724 * src/main/java/org/glom/web/client/OnlineGlomServiceAsync.java:
1725 * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java:
1726 getReportHTML(): Add a quickFind parameter.
1727 * src/main/java/org/glom/web/client/activity/ReportActivity.java
1728 start(): Pass the quickFind parameter.
1729 * src/main/java/org/glom/web/server/ReportGenerator.java
1730 generateReport(): Take a quickFind parameter.
1732 2012-04-13 Murray Cumming <murrayc@murrayc.com>
1734 ReportPlace: Actually use the report name.
1736 * src/main/java/org/glom/web/client/place/ReportPlace.java
1737 getPlace(): Do not assign the report name to the quickfind.
1739 2012-04-13 Murray Cumming <murrayc@murrayc.com>
1741 Show java.library.path when complaining.
1743 * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java
1744 init(): When telling us to check java.library.path, show the
1747 2012-03-06 Murray Cumming <murrayc@murrayc.com>
1749 ReportGenerator: Do not show nulls.
1751 2012-03-06 Murray Cumming <murrayc@murrayc.com>
1753 ReportGenerator: Make the title font larger.
1755 2012-03-06 Murray Cumming <murrayc@murrayc.com>
1757 ReportGenerator: Put field titles inside groups, if there are groups.
1759 2012-03-06 Murray Cumming <murrayc@murrayc.com>
1761 ReportGenerator: Take the Report itself instead of the name and group.
1763 * src/main/java/org/glom/web/server/ConfiguredDocument.java
1764 Remove getReportLayoutGroup().
1765 * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java
1766 getReportHTML(): Pass the report instead
1767 of its name and layout group.
1768 * src/main/java/org/glom/web/server/ReportGenerator.java
1769 generateReport(): Use the report object to use the title
1770 instead of the name.
1772 2012-03-06 Murray Cumming <murrayc@murrayc.com>
1774 ReportGenerator: Remove designBand parameters.
1776 * src/main/java/org/glom/web/server/ReportGenerator.java:
1777 Make designBand a class member instead of passing it to all
1780 2012-03-06 Murray Cumming <murrayc@murrayc.com>
1782 ReportGenerator: Add lines, a bit like in the desktop version.
1784 * src/main/java/org/glom/web/server/ReportGenerator.java
1785 addToReport(): Use JRDesignLine.
1787 2012-03-06 Murray Cumming <murrayc@murrayc.com>
1789 ReportGenerator: Correct the title positions and use some bold style.
1791 * src/main/java/org/glom/web/server/ReportGenerator.java:
1792 Break the code up into reusable functions, correct the placement of
1793 titles, and use normal/bold styles as in the reports in the desktop
1796 2012-03-06 Murray Cumming <murrayc@murrayc.com>
1798 ReportGenerator: Add a header band to show the field titles.
1800 * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java
1801 getReportHTML(): Pass the localeId to the ReportGenerator
1803 * src/main/java/org/glom/web/server/ReportGenerator.java
1804 constructor: Take the localeID so we can get translated field
1806 generateReport(), addToReport(), addFieldToBand(): Add field
1807 titles in a column header band.
1809 2012-03-05 Murray Cumming <murrayc@murrayc.com>
1811 Reports drop-down list: Some improvement.
1813 * src/main/java/org/glom/web/client/ui/TableSelectionView.java
1814 * src/main/java/org/glom/web/client/ui/TableSelectionViewImpl.java:
1815 Adedd setSelectedReport(),
1816 setReportList(): Add a blank line so that the user can select the
1818 * src/main/java/org/glom/web/client/activity/ReportActivity.java
1819 start(): Show the current report by calling setSelectedReport().
1820 This does not seem to work yet.
1822 2012-03-05 Murray Cumming <murrayc@murrayc.com>
1824 DetailsActivity, ListActivity: Move some variables into a base class.
1826 * src/main/java/org/glom/web/client/activity/DetailsActivity.java:
1827 * src/main/java/org/glom/web/client/activity/HasTableActivity.java:
1828 * src/main/java/org/glom/web/client/activity/ListActivity.java: Move
1829 the clientFactory, documentID, tableName and authenticationPopup into
1830 a base class, to avoid duplication.
1832 2012-03-05 Murray Cumming <murrayc@murrayc.com>
1834 Translate the Reports label.
1836 * src/main/java/org/glom/web/client/ui/TableSelectionViewImpl.java
1837 Get the "Reports" label string from the constants.
1838 * src/main/resources/org/glom/web/client/ui/OnlineGlomConstants.pro
1839 perties: Add Reports to the constants.
1841 2012-03-05 Murray Cumming <murrayc@murrayc.com>
1843 Reports: Implement grouping.
1845 * src/main/java/org/glom/web/server/ReportGenerator.java:
1846 Handle LayoutItem_GroupBy items and try to do the right thing
1847 with JRDesignGroup. It seems to work.
1849 2012-03-04 Murray Cumming <murrayc@murrayc.com>
1851 Actually show some data with JasperReports.
1853 * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java:
1854 getReportHTML(): Move most code into a ReportGenerator class.
1855 * src/main/java/org/glom/web/server/ReportGenerator.java:
1856 Recurse into sub-groups, adding fields to the JasperDesign's details
1857 band. Note that we must set an arbitrary width and height, or it just
1858 will not show any data.
1860 2012-03-04 Murray Cumming <murrayc@murrayc.com>
1862 Reports Chooser: Show the titles, not the names.
1864 * src/main/java/org/glom/web/client/ui/TableSelectionViewImpl.java
1865 (TableSelectionViewImpl.setReportList): Show the titles in the UI,
1866 and the names as the values.
1867 * src/main/java/org/glom/web/server/ConfiguredDocument.java
1868 (ConfiguredDocument.getReportLayoutGroup): Do not return a default
1869 group now that we provide the report name, so it should always
1872 2012-02-15 Murray Cumming <murrayc@murrayc.com>
1874 Depend on jasperreports.
1876 * pom.xml: Add the dependency. My plan is to use this on the
1879 2012-01-31 Murray Cumming <murrayc@murrayc.com>
1881 Implement navigation to report places.
1883 * src/main/java/org/glom/web/client/activity/ReportActivity.java
1884 start(): Do not bother to handle all events here.
1885 * src/main/java/org/glom/web/client/ui/TableSelectionView.java
1886 * src/main/java/org/glom/web/client/ui/TableSelectionViewImpl.java:
1887 Added getSelectedReport().
1888 * src/main/java/org/glom/web/client/activity/TableSelectionActivity
1889 .java: start(): When handling a change to the reports chooser,
1890 call getSelectedReport() and goTo() its ReportPlace.
1891 * src/main/java/org/glom/web/client/ui/ReportView.java
1892 * src/main/java/org/glom/web/client/ui/ReportViewImpl.java:
1893 Added setReportHTML() which puts the html in a gwt HTML widget.
1894 * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java
1895 getReportHTML(): Return "TODO" just to show that this works.
1897 2012-01-31 Murray Cumming <murrayc@murrayc.com>
1899 Make ReportPlace usable.
1901 * src/main/java/org/glom/web/client/mvp/AppPlaceHistoryMapper.java:
1902 Mention ReportPlace.
1903 * src/main/java/org/glom/web/client/place/ReportPlace.java:
1904 Correct the @prefix annotation.
1906 2012-01-31 Murray Cumming <murrayc@murrayc.com>
1908 OnlineGlomService: Return report HTML rather than the LayoutGroup.
1910 * src/main/java/org/glom/web/client/OnlineGlomService.java:
1911 * src/main/java/org/glom/web/client/OnlineGlomServiceAsync.java:
1912 * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java:
1913 Change getReportLayout() to getReportHMTL() because we will not need to
1914 parse or render the report layout on the client side.
1915 * src/main/java/org/glom/web/server/ConfiguredDocument.java:
1916 getReportLayout(): Return the libglom LayoutGroup type because we will
1917 not need to convert to a shared type, because this will not be used on
1919 * src/main/java/org/glom/web/client/activity/ReportActivity.java:
1922 Note that there is still no implementation for this.
1925 2012-01-27 Murray Cumming <murrayc@murrayc.com>
1927 Add a (empty) Report Place, View, and Activity.
1929 * src/main/java/org/glom/web/client/place/HasSelectableTablePlace.java:
1931 * src/main/java/org/glom/web/client/place/HasTablePlace.java
1932 * src/main/java/org/glom/web/client/place/ListPlace.java: Move some of
1933 this into a superclass:
1934 * src/main/java/org/glom/web/client/place/HasRecordsPlace.java
1935 and also use it as the base of this new ReportPlace:
1936 * src/main/java/org/glom/web/client/place/ReportPlace.java
1938 * src/main/java/org/glom/web/client/ui/ReportView.java
1939 * src/main/java/org/glom/web/client/ui/ReportViewImpl.java
1940 * src/main/java/org/glom/web/client/activity/ReportActivity.java:
1941 Add these, containing mostly boiler-plate for now.
1943 * src/main/java/org/glom/web/client/OnlineGlomService.java
1944 * src/main/java/org/glom/web/client/OnlineGlomServiceAsync.java
1945 * src/main/java/org/glom/web/server/ConfiguredDocument.java
1946 * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java:
1947 Add API to get the LayoutGroup for the report.
1949 2012-01-23 Murray Cumming <murrayc@murrayc.com>
1951 Add and fill a Reports drop-down list box.
1953 * src/main/java/org/glom/web/server/ConfiguredDocument.java:
1955 * src/main/java/org/glom/web/client/OnlineGlomService.java:
1956 * src/main/java/org/glom/web/client/OnlineGlomServiceAsync.java:
1957 * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java:
1958 Added getReports(document, table, localeID), calling
1959 ConfiguredDocument.getReports().
1960 * src/main/java/org/glom/web/client/ui/TableSelectionView.java:
1961 * src/main/java/org/glom/web/client/ui/TableSelectionViewImpl.java:
1962 Added setReportsList() and a list widget.
1963 * src/main/java/org/glom/web/client/activity/TableSelectionActivity
1964 .java (TableSelectionActivity.fillView(): Fill the view's reports list.
1969 2012-04-12 Murray Cumming <murrayc@murrayc.com>
1971 Translations: Add Esperanto.
1973 * src/main/java/org/glom/web/OnlineGlom.gwt.xml
1974 * src/main/resources/org/glom/web/client/ui/OnlineGlomConstants_eo.
1975 properties: Add this translation because someone took the time to make it.
1977 2012-03-15 Murray Cumming <murrayc@murrayc.com>
1979 Adapt to the java-libglom 1.21.7 API.
1981 * src/main/java/org/glom/web/server/ReportGenerator.java:
1982 addToReport(): get_group_secondary_fields() is now
1983 get_secondary_fields().
1986 2012-03-15 Murray Cumming <murrayc@murrayc.com>
1988 Use the latest java-libglom version.
1990 * pom.xml: Use java-libglom 1.21.7.
1992 2012-03-03 Ben Konrath <ben@bagu.org>
1994 Display date and time in details view.
1996 https://bugzilla.gnome.org/show_bug.cgi?id=671257
1998 * src/main/java/org/glom/web/client/ui/details/DetailsCell.java:
2000 2012-03-05 Murray Cumming <murrayc@murrayc.com>
2002 Require the latest java-libglom.
2004 * pom.xml: java-libglom 1.21.5 has LayoutItem_GroupBy.
2006 2012-03-04 Murray Cumming <murrayc@murrayc.com>
2008 ListViewDbAccess.getSelectQuery(): Avoid using empty quickfind strings.
2010 * src/main/java/org/glom/web/server/database/ListViewDBAccess.java
2011 ListViewDBAccess.getSelectQuery(): Do not create a where clause for
2012 an empty quickfind string. I also corrected libglom to create only
2013 empty where clauses for empty quickfind strings, but this avoids the
2016 2012-02-24 Ben Konrath <ben@bagu.org>
2018 Improve the tabs in the Notebook widget.
2022 2012-01-30 Murray Cumming <murrayc@murrayc.com>
2024 Translations: Try to translate the strings.
2026 * src/main/resources/org/glom/web/client/ui/OnlineGlomConstants_cs.properties:
2027 * src/main/resources/org/glom/web/client/ui/OnlineGlomConstants_de.properties:
2028 * src/main/resources/org/glom/web/client/ui/OnlineGlomConstants_es.properties:
2029 * src/main/resources/org/glom/web/client/ui/OnlineGlomConstants_sl.properties:
2030 * src/main/resources/org/glom/web/client/ui/OnlineGlomConstants_zh_CN.properties:
2031 Take the Open translation from GTK+'s .po files.
2032 Take the Details translation from Glom's po files.
2033 I have added the other strings to Glom so we can get translations that way:
2034 http://git.gnome.org/browse/glom/commit/?id=c3cefe607428a84bdf8de1b04e8bef6f70b04564
2036 2012-01-27 Murray Cumming <murrayc@murrayc.com>
2038 TableSelectionViewImpl: Put the search label and entry in a div.
2040 * src/main/java/org/glom/web/client/ui/TableSelectionViewImpl.java:
2041 Put the search widgets in a FlowTable so that the CSS can be used to
2042 style them while keeping them together.
2043 * src/main/webapp/style.css: Mention the new div.
2045 2012-01-27 Murray Cumming <murrayc@murrayc.com>
2047 Translate more strings in more locales.
2049 * src/main/resources/org/glom/web/client/ui/OnlineGlomConstants.properties:
2050 * src/main/java/org/glom/web/client/ui/details/DetailsCell.java:
2051 * src/main/java/org/glom/web/client/ui/details/RelatedListTable.java:
2052 * src/main/java/org/glom/web/client/ui/list/ListViewTable.java:
2053 Translate the "Details" and "Open" string too.
2055 * src/main/java/org/glom/web/OnlineGlom.gwt.xml:
2056 * src/main/resources/org/glom/web/client/ui/OnlineGlomConstants.properties:
2057 * src/main/resources/org/glom/web/client/ui/OnlineGlomConstants_cs.properties:
2058 * src/main/resources/org/glom/web/client/ui/OnlineGlomConstants_es.properties:
2059 * src/main/resources/org/glom/web/client/ui/OnlineGlomConstants_sl.properties:
2060 * src/main/resources/org/glom/web/client/ui/OnlineGlomConstants_zh_CN.properties:
2061 Add these new locales as placeholders though they currently contain English.
2063 2012-01-27 Murray Cumming <murrayc@murrayc.com>
2065 OnlineGlomServiceImpl: Avoid (unlikely) null object dereferences.
2067 * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java: get*():
2068 Check the ConfiguredDocument* for null before using it.
2070 2012-01-26 Murray Cumming <murrayc@murrayc.com>
2072 Tell Eclipse about the generated java files.
2074 * .classpath: This lets it find OnlineGlomConstants.java.
2075 It would be nice if Eclipse just used the maven build files.
2077 2012-01-26 Murray Cumming <murrayc@murrayc.com>
2079 Prevent a crash when no locale is specified in the URL.
2081 * src/main/java/org/glom/web/client/Utils.java: getCurrentLocaleID():
2082 Avoid returning a null string, obtained from
2083 Window.Location.getParameter(). This caused a crash when it was
2084 later passed to libglom's API.
2085 * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java:
2086 init(), getDocumentInfo(), getListViewLayout(), getDocuments(),
2087 getDetailsLayoutAndData(): Use StringUtils.defaultString() to
2088 guard against future null strings.
2090 2012-01-26 Murray Cumming <murrayc@murrayc.com>
2092 Use the ?locale= query param instead of the &lang= token param.
2094 * src/main/java/org/glom/web/client/place/ListPlace.java
2095 * src/main/java/org/glom/web/client/place/DetailsPlace.java
2096 * src/main/java/org/glom/web/client/place/HasSelectableTablePlace.java
2097 Remove the lang token key and value.
2099 * src/main/java/org/glom/web/client/ui/TableSelectionView.java
2100 * src/main/java/org/glom/web/client/ui/TableSelectionViewImpl.java:
2101 When the user selects a different locale from the chooser, use
2102 Window.Location.assign() to change the URL, which then causes a reload.
2104 * src/main/java/org/glom/web/client/Utils.java: Added getCurrentLocaleID().
2105 * src/main/java/org/glom/web/client/activity/DetailsActivity.java
2106 * src/main/java/org/glom/web/client/activity/DocumentSelectionActivity.java
2107 * src/main/java/org/glom/web/client/activity/ListActivity.java
2108 * src/main/java/org/glom/web/client/activity/TableSelectionActivity
2109 * src/main/java/org/glom/web/client/ui/DocumentSelectionView.java
2110 * src/main/java/org/glom/web/client/ui/DocumentSelectionViewImpl.java:
2111 * src/main/java/org/glom/web/client/ui/ListView.java:
2112 * src/main/java/org/glom/web/client/ui/ListViewImpl.java:
2114 Remove localeID member variables and method/constructor parameters, instead
2115 using Utils.getCurrentLocaleID() when we need a localID to pass to
2118 2012-01-26 Murray Cumming <murrayc@murrayc.com>
2120 Internationalize the UI strings.
2122 * pom.xml: gwt-maven-plugin: Add the i18n goal and specify a
2123 <i18nConstantsBundle>, removing the unused <i18nMessagesBundle>.
2124 * src/main/resources/org/glom/web/client/Messages.properties: Remove this
2125 because it is unused. Messages are apparently strings that can have
2126 parameters, but we do not need that yet, so Contants will be enough for now.
2127 * src/main/java/org/glom/web/OnlineGlom.gwt.xml: Add extend-property lines
2128 to say that we support the en and de locales.
2129 * src/main/resources/org/glom/web/client/ui/OnlineGlomConstants.properties:
2130 The original English strings.
2131 * src/main/resources/org/glom/web/client/ui/OnlineGlomConstants_de.properties:
2132 Some German translations of the English strings.
2133 The i18n goal then uses the .properties file to generate an
2134 OnlineGlomConstants.java file in target/ and somehow GWT.create() magically
2135 returns an implementation that returns the translated strings.
2136 The documentation suggests putting these in src/java/*/client/, but it seems
2137 best to put it in src/resources/*/client/.
2138 * src/main/java/org/glom/web/client/ui/TableSelectionViewImpl.java:
2139 Instantiate OnlineGlomConstants via GWT.create() and use it to get the strings
2140 instead of hard-coding them.
2141 Note that we cannot import OnlineGlomConstants because it does not exist yet,
2142 but that does not seem to stop the build, though it confuses Eclipse.
2144 You can see the translated string by adding ?locale=de to the URL, like so:
2145 http://127.0.0.1:8888/OnlineGlom.html?gwt.codesvr=127.0.0.1:9997?locale=de#list:document=film_manager
2147 2012-01-24 Murray Cumming <murrayc@murrayc.com>
2149 Improve null/empty String checks.
2151 * pom.xml: Add a dependency on commons-lang, to use
2152 org.apache.commons.lang.StringUtils.
2153 * src/main/java/org/glom/web/server/ConfiguredDocument.java
2154 * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java
2155 * src/main/java/org/glom/web/server/database/RelatedListDBAccess.java
2156 * src/main/java/org/glom/web/server/database/RelatedListNavigation.java:
2157 Use StringUtils.isEmpty().
2159 * src/main/java/org/glom/web/client/StringUtils.java: Add a tiny
2160 StringUtils class with a static isEmpty() function because we
2161 cannot use org.apache.commons.lang.StringUtils in client-side
2162 GWT code because it (apparently) cannot be compiled to javascript.
2163 * src/main/java/org/glom/web/client/activity/DetailsActivity.java
2164 * src/main/java/org/glom/web/client/activity/ListActivity.java
2165 * src/main/java/org/glom/web/client/activity/TableSelectionActivity.java
2166 * src/main/java/org/glom/web/client/place/DetailsPlace.java
2167 * src/main/java/org/glom/web/client/place/HasSelectableTablePlace.java
2168 * src/main/java/org/glom/web/client/place/ListPlace.java
2169 * src/main/java/org/glom/web/client/ui/cell/NumericCell.java
2170 * src/main/java/org/glom/web/client/ui/cell/TextCell.java
2171 * src/main/java/org/glom/web/client/ui/details/DetailsCell.java
2172 * src/main/java/org/glom/web/client/ui/details/Group.java
2173 * src/main/java/org/glom/web/client/ui/details/Notebook.java: Use
2174 our StringUtils.isEmpty() function.
2176 2012-01-24 Murray Cumming <murrayc@murrayc.com>
2178 Update to the latest java-libglom API.
2180 * pom.xml: Require java-libglom 1.21.4.
2181 * src/main/java/org/glom/web/server/ConfiguredDocument.java
2182 getDocumentInfo(), getListViewLayoutGroup():
2183 * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java
2185 * src/main/java/org/glom/web/server/database/DBAccess.java
2186 getFieldsToShowForSQLQueryAddGroup(),
2187 getPrimaryKeyLayoutItemField(): Replace get_database_title()
2188 with either get_database_title_original() or
2189 get_database_title(localeID).
2191 2012-01-24 Murray Cumming <murrayc@murrayc.com>
2193 ConfiguredDocument: Avoid a null pointer exception.
2195 * src/main/java/org/glom/web/server/ConfiguredDocument.java
2196 Initialize localeID to "" to avoid returning a null String which
2197 causes a crash in java-libglom's swing-generated code.
2199 2012-01-23 Murray Cumming <murrayc@murrayc.com>
2201 Some simple renaming.
2203 * src/main/java/org/glom/web/client/ui/TableSelectionViewImpl.java
2204 * src/main/webapp/style.css: Rename, tableChooser to tablesChooser. Likewise
2205 for localeChooser. This seems more appropriate and is less ambiguous
2206 particularly in the .css file.
2208 2012-01-23 Murray Cumming <murrayc@murrayc.com>
2210 ConfiguredDocument: Rename the localedID private member variable.
2212 2012-01-23 Murray Cumming <murrayc@murrayc.com>
2214 Adapt to the latest java-libglom API from git master.
2216 * src/main/java/org/glom/web/server/database/ListDBAccess.java:
2217 libglom now uses only Vector instead of List, which uses add() instead of
2220 2012-01-22 Murray Cumming <murrayc@murrayc.com>
2222 ConfiguredDocument: Rename the localedID private member variable.
2224 2012-01-20 Murray Cumming <murrayc@murrayc.com>
2226 Build a source tarball with mvn assembly:single
2228 * assembly.xml: Add this file.
2229 * pom.xml: Use the maven-assembly-plugin and tell it to use
2230 our assembly.xml file.
2232 2012-01-19 Murray Cumming <murrayc@murrayc.com>
2234 OnlineGlomServiceImpl: Get .glom files recursively.
2236 * pom.xml: Depend on commons-io from org.apache.commons.
2237 * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java
2238 init(): Use org.apache.commons.io.FileUtils.listFiles() to get the
2239 files recursively, and with the easier filter for the extension.
2240 Use org.apache.commons.io.FilenameUtils.removeExtension() to
2241 simplify that code too.
2243 2012-01-19 Murray Cumming <murrayc@murrayc.com>
2245 README: Mention that you must install java-libglom packages separately.
2247 But then it works, because java-libglom is now in the central maven
2250 2012-01-18 Murray Cumming <murrayc@murrayc.com>
2252 locales drop-down: Show the correct selected locale when the URL changes.
2254 * src/main/java/org/glom/web/client/activity/TableSelectionActivity
2255 .java: setPlace(): Move some code into fillView().
2257 2012-01-18 Murray Cumming <murrayc@murrayc.com>
2259 locales drop-down: Do not lose the primary key.
2261 * src/main/java/org/glom/web/client/activity/DetailsActivity.java
2262 start(): onLocaleChange(): Pass the current primary key value,
2263 instead of an empty value.
2265 2012-01-18 Murray Cumming <murrayc@murrayc.com>
2267 locales drop-down: Do not lose the drop-down selection.
2269 * src/main/java/org/glom/web/client/activity/TableSelectionActivity
2270 .java (TableSelectionActivity.fillView): Set the selected locale
2271 after changing the drop-down items (though we do not really need
2272 to change them just because the locale changes.)
2274 2012-01-18 Murray Cumming <murrayc@murrayc.com>
2276 locales drop-down: Change the tables list when this changes.
2278 * src/main/java/org/glom/web/client/activity/TableSelectionActivity
2279 .java: TableSelectionActivity.start(): Move the async table titles
2280 retrieval into a private fillView() method and also call this when
2281 the chosen locale changes.
2282 Note that the document title is not actually translatable yet, but
2283 that is a problem that I should fix soon in libglom.
2285 2012-01-18 Murray Cumming <murrayc@murrayc.com>
2287 Improve the placement of the locales drop-down.
2289 * src/main/java/org/glom/web/client/ui/TableSelectionViewImpl.java
2290 Put the title and locales drop-down in a div (gwt.FlowTable).
2291 * src/main/webapp/style.css: Add magic css properties to make this work.
2292 Also remove the left margin from the title so that it lines up with the
2295 2012-01-18 Murray Cumming <murrayc@murrayc.com>
2297 locales selector: Show human-readable locale titles.
2299 * src/main/java/org/glom/web/server/ConfiguredDocument.java
2300 getDocumentInfo(): Use java.util.Locale to show a real title of
2301 each locale, in the locale's own language.
2303 2012-01-17 Murray Cumming <murrayc@murrayc.com>
2305 Add a language/locale selector drop-down.
2307 * src/main/java/org/glom/web/shared/DocumentInfo.java:
2308 Add getLocaleIDs(), setLocaleIDs(), getLocaleTitles(), setLocaleTitles().
2309 * /src/main/java/org/glom/web/server/ConfiguredDocument.java:
2310 getDocumentInfo(): Store the available Locales in the DocumentInfo.
2311 * src/main/java/org/glom/web/client/ui/TableSelectionView.java:
2312 * src/main/java/org/glom/web/client/ui/TableSelectionViewImpl.java:
2313 Add a ListBox to show the available locales. Add getLocaleSelector(),
2314 setLocaleList(), getSelectedLocale(), setSelectedLocale().
2315 * src/main/java/org/glom/web/client/event/LocaleChangeEvent.java
2316 * src/main/java/org/glom/web/client/event/LocaleChangeEventHandler.
2317 java: Add these classes.
2318 * src/main/java/org/glom/web/client/activity/TableSelectionActivity.java:
2319 start(): Fill the locales ListBox. Handle its change event, firing a
2321 setPlace(): Show the selected locale as specified by the URL token.
2322 * src/main/java/org/glom/web/client/activity/DetailsActivity.java:
2323 * src/main/java/org/glom/web/client/activity/ListActivity.java:
2324 Handle LocaleChangeEvent, going to a new *Place with that locale.
2326 The placement of the ListBox is not pretty, and it currently uses the ID
2327 as a title, instead of "English", "Deutsch", "Espanola", etc, but it
2331 2012-01-17 Murray Cumming <murrayc@murrayc.com>
2333 Search box: Show the search text from the URL token.
2335 * src/main/java/org/glom/web/client/ui/TableSelectionView.java:
2336 * src/main/java/org/glom/web/client/ui/TableSelectionViewImpl.java:
2337 Add setQuickFindText().
2338 * src/main/java/org/glom/web/client/activity/TableSelectionActivity
2339 .java: setPlace(): Store the queryText if the place is a ListPlace,
2340 and call TableSelectionView.setQuickFindText().
2342 2012-01-17 Murray Cumming <murrayc@murrayc.com>
2344 Allow use of translations via, for instance, &lang=de in the URL.
2346 * pom.xml: Use the unstable java-libglom 1.21 version.
2348 * src/main/java/org/glom/web/client/OnlineGlomService.java:
2349 * src/main/java/org/glom/web/client/OnlineGlomServiceAsync.java
2350 * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java:
2351 init(): Instead of calling TranslatableItem.set_current_locale()
2352 (now removed), call ConfiguredDocument.setDefaultLocaleID().
2353 However, this is only for default locales, which are not needed to
2354 change the locale in the URL.
2355 getDocumentInfo(), getListViewLayout(), getSortedListViewData(),
2356 getDetailsData(), getDetailsLayoutAndData(), getRelatedListData(),
2357 getSortedRelatedListData(): Add a localeID parameter, so we can get the
2358 layout for a particular locale.
2359 * src/main/java/org/glom/web/server/ConfiguredDocument.java:
2360 Add get/setDefaultLocaleID().
2361 getDocumentInfo(), getListViewData(), getRelatedListData(),
2362 getDetailsLayoutGroup(), getListViewLayoutGroup(),
2363 createLayoutItemPortalDTO(), convertToGWTGlomLayoutItemField(): Add a
2364 localeID parameter, so we can get the layout for a particular locale.
2366 * src/main/java/org/glom/web/client/place/HasSelectableTablePlace.java:
2367 * src/main/java/org/glom/web/client/place/DetailsPlace.java:
2368 * src/main/java/org/glom/web/client/place/ListPlace.java:
2369 Parse and construct a lang parameter too.
2371 * src/main/java/org/glom/web/client/activity/DocumentSelectionActivity.java:
2372 start(): Pass the defaultLocaleID to addDocumentLink(). It is then
2373 passed to subsequent methods and constructors.
2374 * src/main/java/org/glom/web/client/activity/DetailsActivity.java:
2375 * src/main/java/org/glom/web/client/activity/ListActivity.java:
2376 Store the localeID from the *Place and pass it to other constructors
2377 and methods, such as OnlineGlomServiceAsync.getDetailsLayoutAndData().
2379 * src/main/java/org/glom/web/client/ui/DocumentSelectionView.java:
2380 * src/main/java/org/glom/web/client/ui/DocumentSelectionViewImpl.java:
2381 * src/main/java/org/glom/web/client/ui/TableSelectionView.java
2382 * src/main/java/org/glom/web/client/ui/TableSelectionViewImpl.java
2383 * src/main/java/org/glom/web/client/ui/ListView.java:
2384 * src/main/java/org/glom/web/client/ui/ListViewImpl.java:
2385 Take localeID parameters and pass them to subsequent constructors and
2386 methods, so that the layout is always retrieved for that locale.
2388 This is rather repetitive.
2390 Note that "" means the original (default) locale of the Glom document,
2391 which is usually English.
2393 2012-01-17 Murray Cumming <murrayc@murrayc.com>
2395 Documents: Remove final keyword to fix startup configuration.
2397 * src/main/java/org/glom/web/shared/Documents.java: Remove the
2398 final keywords on the private member variables because that breaks
2399 the startup, apparently (there are warnings) because it stops them
2400 from being serialized. I added these in the previous commit.
2402 2012-01-13 Murray Cumming <murrayc@murrayc.com>
2404 Documents: Add some final keywords.
2406 * src/main/java/org/glom/web/shared/Documents.java: Eclipse suggested
2409 2012-01-13 Murray Cumming <murrayc@murrayc.com>
2411 OnlineGlomServiceImpl: Add to overview comments.
2413 * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java:
2414 Note that this is where all the document are loaded. They are not
2415 loaded freshly for each page.
2417 2012-01-12 Murray Cumming <murrayc@murrayc.com>
2421 * src/main/java/org/glom/web/client/ui/TableSelectionViewImpl.java:
2422 Add a TextBox for the text of a quick find.
2423 Add getQuickFindBox(), to get the widget, and getQuickFindText() to
2425 setBackLink(): Add a String quickFind parameter.
2426 * src/main/java/org/glom/web/client/ui/TableSelectionView.java
2427 (TableSelectionView): Add getQuickFindBox() and getQuickFindText()
2428 to the base interface, because that is how TableSelectionViewImpl is used.
2429 * src/main/webapp/style.css: Add style for the search box and its label.
2431 * src/main/java/org/glom/web/client/event/QuickFindChangeEvent.java:
2432 * src/main/java/org/glom/web/client/event/QuickFindChangeEventHandler.java:
2433 Add these files, based on the existing TableChangeEvent and
2434 TableChangeEventHandlers.
2435 * src/main/java/org/glom/web/client/activity/DetailsActivity.java
2436 start(): Handle QuickFindChangeEvent, passing its quickFind text to
2437 a ListPlace() that the user should be taken to.
2438 * src/main/java/org/glom/web/client/activity/ListActivity.java
2439 start(): Handle it here too and adapt the TableChangeEvent handler to
2440 pass the extra "" quickFind parameter to ListPlace.
2441 * src/main/java/org/glom/web/client/place/ListPlace.java:
2442 Constructor: Take an extra String quickFind parameter and store it,
2443 returning it from a new getQuickFind() method.
2444 getToken(): Put the quickFind text in the URL token.
2445 getPlace(): Parse the quickFind text from the URL token.
2446 * src/main/java/org/glom/web/client/ui/DocumentSelectionViewImpl.ja
2447 va: addDocumentLink(): Pass an extra "" quickFind parameter to the
2448 ListPlace constructor.
2449 * src/main/java/org/glom/web/client/activity/TableSelectionActivity
2450 .java: start(): Add a Change handler for the TableSelectionView's
2451 TextBox (via its base HasChangeHandlers interface), firing the new
2452 QuickFindChangeEvent.
2453 setPlace(): Adapt the call to TableSelectionView.setbackLink(), to
2454 pass the extra "" quickFind parameter.
2456 * src/main/java/org/glom/web/client/ui/ListViewImpl.java:
2457 setCellTable(): Add a String quickFind parameter and pass it to
2458 the ListViewTable() constructor.
2459 * src/main/java/org/glom/web/client/ui/ListView.java: Change
2460 setCellTable() in the base interface, because that is how ListViewImpl
2463 * src/main/java/org/glom/web/client/ui/list/ListTable.java:
2464 Add a String quickFind member variable.
2465 * src/main/java/org/glom/web/client/ui/list/ListViewTable.java:
2466 Constructor: Add a String quickFind parameter, storing it in the
2467 base ListTable's member variable.
2468 onRangeChanged(): Pass quickFind to the
2469 OnlineGlomServiceAsync.getSortedListViewData() and
2470 OnlineGlomServiceAsync.getListViewData() methods.
2472 * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java:
2473 getListViewData(), getSortedListViewData(): Add a String quickFind
2474 parameter, passing it to ConfiguredDocument.getListViewData().
2475 * src/main/java/org/glom/web/client/OnlineGlomService.java:
2476 Change getListViewData(), getSortedListViewData() in the base interface,
2477 because that is how OnlineGlomServiceImpl is used, via this:
2478 * src/main/java/org/glom/web/client/OnlineGlomServiceAsync.java:
2479 Change getListViewData(), getSortedListViewData() here too.
2480 This class can apparently be used to asynchronously call methods on
2481 OnlineGlomService, and GWT seems to implement that after recognizing
2482 just the *Async name convention and the extra AsyncCallback parameters.
2484 * src/main/java/org/glom/web/server/ConfiguredDocument.java
2485 getListViewData(): Add a String quickFind parameter, and pass it to
2486 ListViewDBAccess.getData().
2487 * src/main/java/org/glom/web/server/database/ListDBAccess.java
2488 getListData(): Add a String quickFind parameter and pass it to
2490 getSelectQuery(): Add a String quickFind parameter.
2491 * src/main/java/org/glom/web/server/database/ListViewDBAccess.java
2492 getSelectQuery(): Add a String quickFind parameter and use it with
2493 Glom.get_find_where_clause_quick() to pass a where_clause to
2494 Glom.build_sql_select_with_where_clause(), to actually filter the
2496 getData(): Add a String quickFind parameter, passing it to getListData().
2497 * src/main/java/org/glom/web/server/database/RelatedListDBAccess.ja
2498 va: getData(): Pass an empty string to getListData() for the
2499 quickFind parameter.
2501 2012-01-12 Murray Cumming <murrayc@murrayc.com>
2503 ListTable: Minor change.
2505 * src/main/java/org/glom/web/client/ui/list/ListTable.java
2506 createCellTable(): Make this protected instead of public.
2508 2012-01-12 Murray Cumming <murrayc@murrayc.com>
2510 Many files: Use final for the parameters and use the @override attribute.
2512 2012-01-22 Ben Konrath <ben@bagu.org>
2514 Add anchor links for single line text that starts with http, ftp and www.
2518 2012-01-22 Ben Konrath <ben@bagu.org>
2520 Add ellipsis to single line text in details view.
2524 2012-01-04 Murray Cumming <murrayc@murrayc.com>
2526 Remove all javadoc author tags.
2528 Because they are awkward and meaningless when many people touch
2530 See https://gitorious.org/online-glom/gwt-glom/commit/7628b732cb90cbc6d5635420a75568504e8b3655#comment_81164
2532 2012-01-04 Murray Cumming <murrayc@murrayc.com>
2534 Revert the COPYING.LESSER to COPYING rename.
2536 Apparently both should be there if it is LGPL.
2538 2012-01-03 Murray Cumming <murrayc@murrayc.com>
2540 *View: Remove unused imports.
2542 * src/main/java/org/glom/web/client/ui/DetailsView.java:
2543 * src/main/java/org/glom/web/client/ui/DocumentSelectionView.java
2544 * src/main/java/org/glom/web/client/ui/ListView.java:
2545 * src/main/java/org/glom/web/client/ui/TableSelectionView.java:
2546 Remove unused imports, as suggested by Eclipse.
2548 2012-01-02 Murray Cumming <murrayc@murrayc.com>
2550 Move the *View::Presenter types, and some API into one base View.
2552 * src/main/java/org/glom/web/client/ui/DetailsView.java:
2553 * src/main/java/org/glom/web/client/ui/DocumentSelectionView.java:
2554 * src/main/java/org/glom/web/client/ui/ListView.java:
2555 * src/main/java/org/glom/web/client/ui/TableSelectionView.java: Move
2556 Presenter, setPresenter() and clear() into a shared base interface,
2557 to avoid the unnecessary duplicate Presenter types and to more clearly
2558 show how the *Views share the same structure, even if they are not
2559 used polymorphically.
2561 * src/main/java/org/glom/web/client/ui/DetailsViewImpl.java:
2562 * src/main/java/org/glom/web/client/ui/DocumentSelectionViewImpl.ja
2564 * src/main/java/org/glom/web/client/activity/DetailsActivity.java:
2565 * src/main/java/org/glom/web/client/activity/ListActivity.java:
2566 * src/main/java/org/glom/web/client/activity/DocumentSelectionActiv
2568 * src/main/java/org/glom/web/client/activity/TableSelectionActivity
2571 Feel free to revert this if there is a good reason for the duplicate
2574 2012-01-02 Murray Cumming <murrayc@murrayc.com>
2576 OnlineGlom: Make clientFactory a (protected) member, and test it a bit.
2578 * src/main/java/org/glom/web/client/OnlineGlom.java: Make clientFactory
2579 a class member instead of a local variable in the method.
2580 This lets us use it to get the view instances, for use in tests.
2581 * src/test/java/org/glom/web/client/GwtTestOnlineGlom.java:
2582 beforeOnlineGlom(): Test some more details of the initial view.
2583 Again, this is not very useful.
2585 To really test gwt-glom we will need to start a local postgresql
2586 instance with local data, like the Glom tests in C++.
2588 2012-01-02 Murray Cumming <murrayc@murrayc.com>
2590 pom.xml: Mention the LGPL license.
2592 * pom.xml: Add a licenses section.
2593 * COPYING.LESSER: Move this to COPYING, which
2594 previously contained the GPL. But gwt-glom is all LGPL.
2596 2012-01-02 Murray Cumming <murrayc@murrayc.com>
2598 Add project information to README and pom.xml.
2600 * README: Add a brief description and mention some mvn
2602 * pom.xml: This extra information shows up in mvn site
2605 2011-01-02 Murray Cumming <murrayc@murrayc.com>
2607 Use the latest java-libglom version.
2609 * pom.xml: Use java-libglom 1.19.2 instead of 1.19.1.
2611 2012-01-01 Murray Cumming <murrayc@murrayc.com>
2613 GwtTestOnlineGlom: Test a little more.
2615 * src/main/java/org/glom/web/client/OnlineGlom.java: Make the panels
2616 protected rather than private, as suggested by the gwt-test-utils
2618 http://stackoverflow.com/questions/7931724/gwt-testcase-simulating-clicking-a-button-on-my-page
2619 * src/test/java/org/glom/web/client/GwtTestOnlineGlom.java
2620 Test the initial visibility of the panels.
2622 However, this is not a very useful test.
2623 And I wonder how we should generally test using this idea for an
2624 activity/places app like ours where the real changes happen implicitly
2625 based on the history token/URL.
2627 2012-01-01 Murray Cumming <murrayc@murrayc.com>
2629 Slight modification to *Mapper comments.
2631 * src/main/java/org/glom/web/client/mvp/DataActivityMapper.java
2632 (DataActivityMapper)
2633 * src/main/java/org/glom/web/client/mvp/DocumentSelectionActivityMa
2635 * src/main/java/org/glom/web/client/mvp/TableSelectionActivityMappe
2637 Remove comments mentioning GIN because they are just copied from
2638 the example code and are apparently not helpful:
2639 http://groups.google.com/group/google-web-toolkit/msg/82f0098b20669a73
2640 Also change the mention of a class that is only in the example code.
2642 2012-01-01 Murray Cumming <murrayc@murrayc.com>
2644 GwtTestOnlineGlom test: Minor changes.
2646 * src/test/java/org/glom/web/client/GwtTestOnlineGlom.java:
2647 Avoid the long qualified class name and modify the comment
2648 because it is now obvious to me that the mocked class is the only
2649 custom one created via GWT.create().
2651 2012-01-01 Murray Cumming <murrayc@murrayc.com>
2653 Tests: Added the beginnings of a test using gwt-test-utils.
2655 * pom.xml: Add dependencies on gwt-test-utils and easymock.
2656 * src/test/resources/META-INF/gwt-test-utils.properties: Add this file
2657 which tells gwt-test-utils what class will be tested.
2658 * src/test/java/org/glom/web/client/GwtTestOnlineGlom.java:
2659 Add a simple (but empty) test case. One class, used by the OnlineGlom
2660 class, is mocked so that it can be created. However, I am not sure
2661 why only this class needs to be mocked.
2663 Note that mockito seems more popular, and clearer, than easymock,
2664 but I have not got that working yet. It might be a matter of the
2667 This test is run during mvn integration-test.
2669 2011-12-31 Murray Cumming <murrayc@murrayc.com>
2671 Tests: Use junit4-style syntax instead of junit3-style.
2673 * src/test/java/org/glom/web/client/place/DetailsPlaceTest.java:
2674 * src/test/java/org/glom/web/client/place/ListPlaceTest.java:
2675 * src/test/java/org/glom/web/shared/DataItemTest.java:
2676 Use the @Test annotation rather than relying on the test*() prefix.
2677 Also no longer implement TestCase, to avoid triggering support for
2678 the junit3-way, which stops the annotations from working.
2679 Change the imports from import junit.framework.* to
2680 import org.junit.*, which is apparently the new way.
2682 2011-12-31 Murray Cumming <murrayc@murrayc.com>
2684 Added a test for ListPlace token parsing and creation.
2686 * src/test/java/org/glom/web/client/place/ListPlaceTest.java:
2687 This is much the same as DetailsPlaceTest.
2689 I wonder how we could test the other parts of the *Place API.
2691 2011-12-30 Murray Cumming <murrayc@murrayc.com>
2693 DetailsPlace test: Also test getToken() and recreation via getPlace().
2695 * src/test/java/org/glom/web/client/place/DetailsPlaceTest.java:
2696 testGetPlaceParameters(): Get the tokens from the DetailsPlace and
2697 recreate it, testing the recreated DetailsPlace for the same parameter
2700 2011-12-30 Murray Cumming <murrayc@murrayc.com>
2702 Use the surefire-report plugin.
2704 * pom.xml: This generates a HTML report about the tests in
2705 target/site/surefire-report.html
2706 when you do mvn surefire-report:report. It seems to be popular/normal.
2708 2011-12-30 Murray Cumming <murrayc@murrayc.com>
2710 Added a test for DetailsPlace.
2712 * src/test/java/org/glom/web/client/place/DetailsPlaceTest.java:
2713 Test the getPlace() token parsing.
2715 2011-12-30 Murray Cumming <murrayc@murrayc.com>
2717 Added a first unit test.
2719 * pom.xml: Add a test goal, and a dependency on junit in that scope.
2720 * src/test/java/org/glom/web/shared/DataItemTest.java:
2721 This is a silly test but it is just to get things started. Note that
2722 maven/junit finds the test because it looks in src/test by default.
2724 2011-12-22 Ben Konrath <ben@bagu.org>
2726 Change charsetName to "UTF-8" when replacing line breaks.
2728 JavaScript requires the charsetName to be "UTF-8". CharsetName values
2729 that work in Java (such as "UTF8") will not work when compiled to
2732 This fixes a problem with multi-line details view fields that have hard
2733 line breaks. The "License Text" field on this page demonstrates the
2736 http://onlineglom.openismus.com/OnlineGlom/#details:document=debian_repository_analyzer&table=licenses&value=197
2738 * src/main/java/org/glom/web/client/ui/details/DetailsCell.java:
2740 2011-12-22 Ben Konrath <ben@bagu.org>
2742 Fix another bug with related list navigation.
2744 I've tested all the navigation buttons in all of the related lists
2745 so things should be good now.
2747 * src/main/java/org/glom/web/server/ConfiguredDocument.java:
2749 2011-12-22 Ben Konrath <ben@bagu.org>
2751 Fix a crasher when refreshing the list view with the default table.
2753 This crash will also happen when loading the list view with the default
2754 table from a link or bookmark.
2756 * src/main/java/org/glom/web/client/activity/DetailsActivity.java: Go
2757 to the main document selection page when the document id hasn't been
2759 * src/main/java/org/glom/web/client/activity/ListActivity.java: Go to
2760 the main document selection page when the document id hasn't been
2762 * src/main/java/org/glom/web/client/place/DetailsPlace.java: Use empty
2763 values for the details place when the document id hasn't been set.
2764 * src/main/java/org/glom/web/client/place/ListPlace.java: Use empty
2765 values for the list place when the document id hasn't been set.
2767 2011-12-21 Ben Konrath <ben@bagu.org>
2769 Protect against NPE when glom.document.locale is not in config.
2771 This patch protects against an NPE when glom.document.locale is not in
2772 the config file. This NPE will also happen if glom.document.locale is
2775 The patch also updates the error message to display the class name when
2776 the getMessage() returns null. This was happening when the NPE was
2777 thrown and I had "Configuration Error: null". If an NPE is encountered
2778 with this patch, "Configuration Error: NullPointerException " will be
2781 This commit closes this bug:
2783 https://bugzilla.gnome.org/show_bug.cgi?id=666669
2785 * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java:
2787 2011-12-20 Murray Cumming <murrayc@murrayc.com>
2789 Rename onlineglom.properties to onlineglom.properties.sample.
2791 * src/main/resources/onlineglom.properties: Rename to:
2792 * src/main/resources/onlineglom.properties.sample:
2793 * src/main/resources/README: And add this file explaining that people
2794 should rename it back when deploying.
2796 2011-12-20 Murray Cumming <murrayc@murrayc.com>
2798 Allow choosing the translation in the .properties file.
2800 * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java
2801 init(): Read a glom.document.locale value from the configuration file
2802 and call Glom's TransatableItem::set_current_locale() method.
2803 * src/main/resources/onlineglom.properties: Add a commented-out
2804 example of this new setting.
2806 It would be better to add &lang=de_DE to the URL, but the current
2807 libglom API does not allow us to do this easily. I am working on that.
2809 2011-12-19 Murray Cumming <murrayc@murrayc.com>
2811 Avoid a crash in parsing of token parameters.
2813 * src/main/java/org/glom/web/client/place/HasSelectableTablePlace.j
2814 ava: getTokenParams(): Do not crash if a parameter has a key but no
2815 value, and ignore parameters with neither.
2817 2011-12-17 Murray Cumming <murrayc@murayc.com>
2819 History token building/handling: Improve use of token parameters.
2821 * src/main/java/org/glom/web/client/place/HasSelectableTablePlace.java
2822 (HasSelectableTablePlace.Tokenizer): Add getTokenParams(String)
2823 and buildParamsToken(HashMap), for use by derived classes.
2824 Make the separator private because it is no longer be needed.
2825 * src/main/java/org/glom/web/client/place/DetailsPlace.java
2826 (DetailsPlace.Tokenizer.getToken): Use buildParamsToken()
2827 instead of manual string concatenation.
2828 (DetailsPlace.Tokenizer.getPlace): Use getTokenParams() instead
2829 of hardcoded indices and awkward splitting code.
2830 * src/main/java/org/glom/web/client/place/ListPlace.java
2831 (ListPlace.Tokenizer.getToken): Use buildParamsToken()
2832 instead of manual string concatenation.
2833 (ListPlace.Tokenizer.getPlace): Use getTokenParams() instead
2834 of hardcoded indices and awkward splitting code.
2835 This should fix bug #666420
2837 2011-12-16 Murray Cumming <murrayc@murrayc.com>
2839 Fix a Navgiation->Navigation typo in the code.
2841 * src/main/java/org/glom/web/client/activity/DetailsActivity.java
2842 Rename processNavgiation() to processNavigation().
2844 2011-12-16 Murray Cumming <murrayc@murrayc.com>
2846 Fix a seperator->separator typo in the code.
2848 * src/main/java/org/glom/web/client/place/DetailsPlace.java
2849 * src/main/java/org/glom/web/client/place/HasSelectableTablePlace.java
2850 * src/main/java/org/glom/web/client/place/ListPlace.java: Just a
2853 2011-12-15 Ben Konrath <ben@bagu.org>
2855 Cleanup some comments.
2857 * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java:
2859 2011-12-14 Ben Konrath <ben@bagu.org>
2861 Replace \n with <br/> for multiline text in the details view.
2863 Vertical scrollbars are added when needed as well.
2865 * src/main/java/org/glom/web/client/ui/details/DetailsCell.java:
2867 2011-12-14 Ben Konrath <ben@bagu.org>
2869 Specify the font for document selection links.
2871 * src/main/webapp/style.css:
2873 2011-12-14 Ben Konrath <ben@bagu.org>
2875 Fix bouncy CellTable while paging.
2877 This doesn't currently work with related list tables in unselected