1 2012-12-05 Murray Cumming <murrayc@murrayc.com>
3 Turn the authenication popup into a real Place.
5 * src/main/java/org/glom/web/client/place/HasTablePlace.java:
6 Moved some of this into a base class:
7 * src/main/java/org/glom/web/client/place/HasDocumentPlace.java:
9 * src/main/java/org/glom/web/client/place/DocumentLoginPlace.java
11 * src/main/java/org/glom/web/client/ui/AuthenticationPopup.java:
12 Removed this, moving its UI into:
13 * src/main/java/org/glom/web/client/ui/DocumentLoginView.java
14 * src/main/java/org/glom/web/client/ui/DocumentLoginViewImpl.java
16 * src/main/java/org/glom/web/client/ClientFactory.java:
17 * src/main/java/org/glom/web/client/ClientFactoryImpl.java:
18 Added getDocumentLoginView() to return this view.
20 * src/main/java/org/glom/web/client/activity/HasTableActivity.java:
21 Move some of this into a base class:
22 * src/main/java/org/glom/web/client/activity/HasDocumentActivity.java
23 checkAuthentication(): If the user is not authenticated,
24 instead of showing the popup, go to the login place.
25 * src/main/java/org/glom/web/client/activity/DocumentLoginActivity.java
26 A new activity for the DocumentLoginPlace. This checks if the
27 user is authenticated and either moves to the appropriate page or
28 waits for the user to enter credentials.
30 * src/main/java/org/glom/web/client/activity/ListActivity.java:
31 * src/main/java/org/glom/web/client/activity/ReportActivity.java:
32 Remove mentions of the authentication popup.
34 * src/main/java/org/glom/web/client/mvp/AppPlaceHistoryMapper.java:
35 Tell this about DocumentLoginPlace.
36 * src/main/java/org/glom/web/client/mvp/DocumentSelectionActivityMapper.java:
37 getActivity(): Also handle DocumentLoginPlace, returning DocumentLoginActivity.
39 The login screen is not pretty, and it does not yet attempt to take the use
40 back to the correct place.
42 2012-12-04 Murray Cumming <murrayc@murrayc.com>
44 DetailsActivity: Check for authentication here too.
46 * src/main/java/org/glom/web/client/activity/DetailsActivity.java:
47 Call checkAuthentication to deal with a TODO here.
49 2012-12-04 Murray Cumming <murrayc@murrayc.com>
51 Authentication: Reduce some copy/paste by moving code to base class.
53 * src/main/java/org/glom/web/client/activity/HasTableActivity.java:
54 Add checkAuthentication().
55 * src/main/java/org/glom/web/client/activity/ListActivity.java:
56 * src/main/java/org/glom/web/client/activity/ReportActivity.java:
57 Call it here instead of copy/pasting the code.
59 2012-12-04 Murray Cumming <murrayc@murrayc.com>
61 GwtTestOnlineGlomService: Add some assertions.
63 * src/test/java/org/glom/web/client/GwtTestOnlineGlomService.java:
64 However, these assertions will never be run because we have no
65 way to set up the test conditions (specifying documents and their
66 databases) for the OnlineGlom service.
67 See https://groups.google.com/forum/?hl=en&fromgroups=#!topic/google-web-toolkit/Z6rPWG4kcKQ
69 2012-12-04 Murray Cumming <murrayc@murrayc.com>
71 Add client-side tests for StringUtils and Utils.
73 * src/test/java/org/glom/web/client/GwtTestStringUtils.java: Added.
74 * src/test/java/org/glom/web/client/GwtTestUtils.java: Added.
75 This is mostly just to catch java->javascript compilation problems.
77 2012-12-02 Murray Cumming <murrayc@murrayc.com>
79 Add GwtTestReportPlace.
81 * src/test/java/org/glom/web/client/place/GwtTestReportPlace.java:
82 This is like the existing GwtTest*Place tests.
83 It would be nice if we could just test that all client and shared
84 code can be compiled to Javascript without creating a test for it.
85 Currently, we only discover problems when starting it in a browser.
87 2012-12-02 Murray Cumming <murrayc@murrayc.com>
89 Add GwtTestDetailsPlace to test the same code as client-side.
91 * src/test/java/org/glom/web/client/place/GwtTestDetailsPlace.java:
92 See the comment about the awkward client-side-only Date API.
93 Ignoring this Date API issue, it would be nice if we could test
94 the same code as both Java (server) and generated Javascript (client)
95 without duplicating most of the test code.
97 2012-12-02 Murray Cumming <murrayc@murrayc.com>
99 DataItemTest: Test the date type too, and improve the asserts.
101 * src/test/java/org/glom/web/shared/DataItemTest.java:
102 Add testdate(). See the comment about the awkward server-side-only
105 2012-12-02 Murray Cumming <murrayc@murrayc.com>
107 DetailsPlace: Use a date-formatting API available in GWT client code.
109 * src/main/java/org/glom/web/client/place/DetailsPlace.java:
110 getStringForData(): Use DateTimeFormat.getFormat(), because that works
111 on the client side (but not the server side) instead of String.format()
112 with Date.getYear()/getMonth()/getDate(), because they work only on the
113 server side (but not on the client side). Rather annoying.
114 * src/test/java/org/glom/web/client/place/DetailsPlaceTest.java: Rename to
116 * src/test/java/org/glom/web/client/place/ListPlaceTest.java: Rename to
117 GwtTestListPlaceTest, so we can run these as client-side (generated
118 Javascript) code so we can catch these problems sooner.
119 It is unfortunate that the code cannot run on the server-side as Java,
120 but it does not need to.
122 2012-12-02 Murray Cumming <murrayc@murrayc.com>
124 In the UI, allow primary keys to be any type, and test it.
126 * src/main/java/org/glom/web/shared/TypedDataItem.java:
127 Added isUnknownType() for convenience.
128 * src/main/java/org/glom/web/client/place/DetailsPlace.java:
129 getToken(): Move some code into getStringForData() and handle
131 * src/main/java/org/glom/web/server/Utils.java:
132 Added transformUnknownToActualType(), to parse the unknown string
133 as a particular type of data. This should correspond with
134 getStringForData() above.
135 * src/main/java/org/glom/web/server/ConfiguredDocument.java:
136 Add setDataItemType() to set the type of data for primary
138 getDetailsData(), getSuitableRecordToViewDetails():
139 Call it, to have the correctly-typed primary key value.
140 We do it here, on the server, instead of before, because it
141 is only here that we can know the field type that is in the
143 * src/test/java/org/glom/web/client/place/DetailsPlaceTest.java:
144 Added testGetPlaceParametersNumericPrimaryKey(),
145 testGetPlaceParametersBooleanPrimaryKey() and
146 testGetPlaceParametersDatePrimaryKey).
148 2012-11-30 Murray Cumming <murrayc@murrayc.com>
150 Allow primary keys to be any type, and test it.
152 * src/main/java/org/glom/web/shared/TypedDataItem.java:
153 Add overrides for the other set*() methods, to set the type.
154 Added getValue() which returns a generic Object.
155 * src/main/java/org/glom/web/server/SqlUtils.java:
156 buildSimpleWhereExpression(): Use TypedDataItem.getValue() instead of
158 * src/test/java/org/glom/web/server/SelfHostExampleNonNumericPrimaryKeysTest.java:
159 Added this test, which is much like SelfHostExampleTest, but which uses this
160 test file, take from Glom:
161 * src/test/resources/org/glom/web/server/test_example_music_collection_text_pk_fields.glom:
162 which has all the primary keys changes to text instead of numbers.
164 However, parts of the UI code still assume that primary keys are numbers.
166 2012-11-28 Murray Cumming <murrayc@murrayc.com>
168 SelfHostExampleTest: Move some checks into a utility function.
170 * src/test/java/org/glom/web/server/SelfHostExampleTest.java:
171 Move the data checks into a new file:
172 * src/test/java/org/glom/web/server/SelfHostTestUtils.java:
173 SelfHostTestUtils.java: so we can use it in some other
174 tests, with different documents.
176 2012-11-28 Murray Cumming <murrayc@murrayc.com>
178 SelfHosting test: Also try using a relationship.
180 * src/main/java/org/glom/web/server/database/DBAccess.java:
181 convertResultSetToDTO(): Move some code into a public
183 * src/main/java/org/glom/web/server/SqlUtils.java:
184 fillDataItemFromResultSet(): This takes a DataItem and
185 sets it from a value from a datbase recordset.
186 * src/main/java/org/glom/web/server/libglom/Document.java:
187 Make getDocument() public, so we can use it in a test.
188 * src/test/java/org/glom/web/server/SelfHostExampleTest.java:
189 Add testExampleMusiccollectionDataRelated() and call it from
190 testExampleMusiccollectionData(), to do a basic test of using
193 2012-11-22 Murray Cumming <murrayc@murrayc.com>
195 Build: Specify the source encoding.
197 * pom.xml: Set project.build.sourceEncoding
198 This should fix this build problem on some systems:
199 [ERROR] /var/lib/jenkins/workspace/OnlineGlom/src/test/java/org/glom/web/server/libglom/DocumentTest.java:[139,72] error: unmappable character for encoding ASCII
203 2012-11-20 Murray Cumming <murrayc@murrayc.com>
205 Update the jasperreports version.
207 * pom.xml: This was shown by
208 mvn versions:display-dependency-updates
210 2012-11-20 Murray Cumming <murrayc@murrayc.com>
212 Eclipse: Reorder the Java Build Path to fix the build in Eclipse.
214 * .classpath: This prevents an error saying that getTextContent()
216 See http://mergetag.com/the-method-gettextcontent-is-undefined-for-the-type-node/
218 2012-11-20 Murray Cumming <murrayc@murrayc.com>
220 Explicitly declare some dependencies (and scopes) that we use.
222 * pom.xml: The dependency report showed what we use.
224 2012-11-20 Murray Cumming <murrayc@murrayc.com>
226 Update the gwt-test-utils version.
228 * pom.xml: gwt-test-utils 0.43 uses GWT 2.5.0, not GWT 2.4.0.
229 Using both in the same project was causing gwt-log to fail in GWTBrige,
231 testOutOfBounds(org.glom.web.server.libglom.DocumentLayoutPathTest):
232 (class: com/google/gwt/core/client/GWT, method: setBridge signature: (Lcom/google/gwt/core/client/GWTBridge;)V) Incompatible argument to function
234 2012-11-19 Murray Cumming <murrayc@murrayc.com>
236 DocumentTest: testLocales(): Update for the latest example version.
238 * src/test/java/org/glom/web/server/libglom/DocumentTest.java:
239 The .glom file, updated in the previous commit, now has more translations.
241 2012-11-19 Murray Cumming <murrayc@murrayc.com>
243 Update the .glom files used for tests.
245 * src/test/resources/org/glom/web/server/example_film_manager.glom:
246 * src/test/resources/org/glom/web/server/example_music_collection.glom:
247 * src/test/resources/org/glom/web/server/libglom/example_film_manager.glom:
248 * src/test/resources/org/glom/web/server/libglom/example_music_collection.glom:
249 Copy them from git master of Glom.
251 2012-11-18 Murray Cumming <murrayc@murrayc.com>
253 Update versions of dependencies.
255 * pom.xml: Increase some version numbers based on the output of
256 , using mvn versions:display-dependency-updates.
257 * src/test/java/org/glom/web/client/GwtTestOnlineGlom.java:
258 Use the annotation instead of getModuleName().
259 * src/test/java/org/glom/web/server/SelfHostConfiguredDocumentTest.java:
260 Do not use deprecated assert() classes/methods.
262 2012-11-18 Murray Cumming <murrayc@murrayc.com>
264 Document: Correct an import to use the correct Log API.
266 * src/main/java/org/glom/web/server/libglom/Document.java:
267 Use our Utils.Log API rather than the jfree one that Eclipse
268 must have suggested at some time.
270 2012-11-15 Murray Cumming <murrayc@murrayc.com>
272 Details: Get static image data from our images services.
274 * src/main/java/org/glom/web/client/ui/details/DetailsCell.java:
275 Add constructors for LayoutItemText and LayoutItemImage and
276 deal with their common type instead of just LayoutItemField.
278 * src/main/java/org/glom/web/client/activity/DetailsActivity.java:
280 * src/main/java/org/glom/web/client/ui/details/Group.java:
281 createChildWidget(): Use the other DetailsCell constructors for
282 these layout items, and do not add them to the list of
283 cells with data from the database.
284 * src/main/java/org/glom/web/server/ConfiguredDocument.java:
285 getValidListViewLayoutGroup(), getDetailsLayoutGroup():
286 Remove the image data when cloning the layout and storing it in the
287 cache. Clients will instead get it via the URL, from
289 * src/main/java/org/glom/web/server/OnlineGlomImages.java:
290 doGet(): Depending on the URI parameters, optionally get
291 image data from a layout_item_image in the document,
293 * src/main/java/org/glom/web/server/database/DBAccess.java:
294 convertResultSetToDTO(): Move some URIBuilder code to:
295 * src/main/java/org/glom/web/server/Utils.java:
296 Add buildImageDataUrl() taking the primary key, etc, to
297 get data from the database.
299 2012-11-15 Murray Cumming <murrayc@murrayc.com>
301 Document: Static image items: Store an image URL, using the layout path.
303 * src/main/java/org/glom/web/server/Utils.java: Add buildImageDataUrl().
304 * src/main/java/org/glom/web/server/libglom/Document.java:
305 Add a constructor that takes the documentID, for use in the
307 loadLayoutNode(): Pass a Path object to the helper methods, so we
308 can use it to create a URL for LayoutItemImage items.
309 This seems as good a way as any to specify a layout item in the document.
310 * src/main/java/org/glom/web/server/ConfiguredDocumentSet.java:
311 Pass the documentID to the constructor, for use in the LayoutItemImage
314 2012-11-15 Murray Cumming <murrayc@murrayc.com>
316 Document: Add getLayoutItemByPath().
318 * src/main/java/org/glom/web/server/Utils.java:
319 Add buildLayoutPath() and parseLayoutPath().
320 * src/test/java/org/glom/web/server/LayoutPathTest.java: Test that these
321 utility methods work.
322 * src/main/java/org/glom/web/server/libglom/Document.java:
323 Add Add getLayoutItemByPath().
324 * src/test/java/org/glom/web/server/libglom/DocumentLayoutPathTest.java: Test
327 This will be useful in subsequent commits.
329 2012-11-15 Murray Cumming <murrayc@murrayc.com>
331 Document: Use a better base64 decoder to read static image data.
333 * src/test/java/org/glom/web/server/libglom/DocumentTest.java:
334 getNodeTextChildAsValue(): Use the apache commons base64 decoder
335 instead of the gwt one, because it correctly decodes the strings
336 from g_base64_encode(). It is probably more correct.
337 The newlines might be confusing the gwt decoder.
339 2012-11-14 Murray Cumming <murrayc@murrayc.com>
341 Document: Do not use == to compare strings. Use equals().
343 * src/main/java/org/glom/web/server/libglom/Document.java:
344 == only checks that they are the same object, so it can
347 2012-11-14 Murray Cumming <murrayc@murrayc.com>
349 Document: Add and use public constants for layout names.
351 * src/main/java/org/glom/web/server/libglom/Document.java:
352 Make LAYOUT_NAME_DETAILS and LAYOUT_NAME_LIST public.
353 * src/main/java/org/glom/web/server/ConfiguredDocument.java:
354 * src/main/java/org/glom/web/server/database/DetailsDBAccess.java:
355 * src/test/java/org/glom/web/server/SelfHostConfiguredDocumentTest.java:
356 * src/test/java/org/glom/web/server/libglom/DocumentTest.java: Use
357 them here instead of hard-coded the strings repeatedly.
359 2012-11-13 Murray Cumming <murrayc@murrayc.com>
361 Document: Load static text and image items too.
363 * src/main/java/org/glom/web/shared/libglom/layout/LayoutItemImage.java:
364 * src/main/java/org/glom/web/shared/libglom/layout/LayoutItemText.java:
365 New LayoutItem classes to represent these layout items.
366 * src/main/java/org/glom/web/shared/libglom/layout/StaticText.java: The
367 main text of a LayoutItemText.
368 * src/main/java/org/glom/web/server/libglom/Document.java:
369 load_after_layout_group(): Handle the node types and instantiate the
371 * src/test/java/org/glom/web/server/libglom/DocumentTest.java:
372 Add testLayoutItemText() to check that the text is loaded properly.
374 2012-11-13 Murray Cumming <murrayc@murrayc.com>
376 Do not use client.GWT for shared code.
378 * src/main/java/org/glom/web/shared/libglom/layout/Formatting.java:
379 Import shared.GWT instead of client.GWT, which seems to be appropriate.
381 2012-11-12 Murray Cumming <murrayc@murrayc.com>
383 Use image data when recreating databases for testing.
385 * src/main/java/org/glom/web/shared/DataItem.java: Add get/setImageData(),
386 for use locally (not acrosss the network) when recreating databases
388 getValue(): Use it here instead of getImageDataUrl(), noting that
389 this method is only for use when recreating databases.
390 * src/main/java/org/glom/web/server/libglom/Document.java:
391 getNodeTextChildAsValue(): Use it instead of setImageDataUrl().
393 2012-11-09 Murray Cumming <murrayc@murrayc.com>
395 OnlineGlomImages: Detect the mime-type (content type).
397 * src/main/java/org/glom/web/server/OnlineGlomImages.java:
398 doGet(): Instead of hard-coding image/png.
400 2012-11-09 Murray Cumming <murrayc@murrayc.com>
402 Eclipse project files: Use JDK 1.7 instead of JDK 1.6.
405 * .settings/org.eclipse.jdt.core.prefs: By changing the Eclipse
406 Java Compiler and Java Build path settings in the UI.
408 2012-11-09 Murray Cumming <murrayc@murrayc.com>
410 Use the latest (now stable) version of GWT.
412 * pom.xml: And the latest version of the gwt-maven-plugin.
414 2012-11-08 Murray Cumming <murrayc@murrayc.com>
416 Added an Indonesian translation.
418 * src/main/java/org/glom/web/OnlineGlom.gwt.xml:
419 * src/main/resources/org/glom/web/client/ui/OnlineGlomConstants_id.properties:
420 This is from the new translation in Glom.
422 2012-07-23 Murray Cumming <murrayc@murrayc.com>
424 Details: Show images.
426 * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java:
428 * src/main/java/org/glom/web/server/ConfiguredDocumentSet.java:
429 so it can be used in:
430 * src/main/java/org/glom/web/server/OnlineGlomImages.java: A new servlet just
431 for serving image data.
432 * src/main/webapp/WEB-INF/web.xml: Mention the new servlet.
434 * src/main/java/org/glom/web/shared/DataItem.java: Added get/setImageDataUrl().
435 * src/main/java/org/glom/web/client/ui/details/DetailsCell.java:
436 setData(): For image field types, add a GWT Image widget,
437 with the URL that was set in the DataItem.
439 * pom.xml: Depend on org.apache.httpcomponents for UriBuilder.
440 * src/main/java/org/glom/web/server/database/DBAccess.java:
441 convertResultSetToDTO(): Set the URL for image data, so the client browser
442 can retrieve the image from our new servlet. This uses UriBuilder.
443 Move getPrimaryKeyField to:
444 * src/main/java/org/glom/web/server/libglom/Document.java:
445 Added getTablePrimaryKeyField().
447 * src/main/java/org/glom/web/server/database/DetailsDBAccess.java:
448 * src/main/java/org/glom/web/server/database/ListDBAccess.java:
449 * src/main/java/org/glom/web/server/database/RelatedListNavigation.java:
452 2012-07-22 Murray Cumming <murrayc@murrayc.com>
456 * src/main/java/org/glom/web/OnlineGlom.gwt.xml:
457 * src/main/java/org/glom/web/client/OnlineGlomService.java:
458 * src/main/webapp/WEB-INF/web.xml: Change the servlet-name from libGlom
459 to gwtGlom, which is more appropriate.
460 This servlet name does not seem to be visible to the client side anyway.
462 2012-07-22 Murray Cumming <murrayc@murrayc.com>
464 Tests: Make the imports of assert*() consistent.
466 * src/test/java/org/glom/web/client/GwtTestOnlineGlom.java:
467 * src/test/java/org/glom/web/client/place/DetailsPlaceTest.java:
468 * src/test/java/org/glom/web/client/place/ListPlaceTest.java:
469 * src/test/java/org/glom/web/server/ConfiguredDocumentTest.java:
470 * src/test/java/org/glom/web/server/SelfHostConfiguredDocumentTest.java:
471 * src/test/java/org/glom/web/server/SelfHostExampleTest.java:
472 * src/test/java/org/glom/web/server/libglom/DocumentTest.java:
473 * src/test/java/org/glom/web/server/libglom/LayoutItemFieldTest.java:
474 * src/test/java/org/glom/web/server/libglom/LayoutItemPortalDeepCloneTest.java:
475 * src/test/java/org/glom/web/shared/DataItemTest.java:
477 import static org.junit.Assert.*;
478 which seems fairly common.
482 2012-07-21 Murray Cumming <murrayc@murrayc.com>
484 tests: Move a test that needs a database connection.
486 * src/test/java/org/glom/web/server/ConfiguredDocumentTest.java:
487 Move testGetListViewLayoutGroup() to
488 * src/test/java/org/glom/web/server/SelfHostConfiguredDocumentTest.java:
489 because it needs a database connection.
491 2012-07-21 Murray Cumming <murrayc@murrayc.com>
493 tests: Use @BeforeClass on tearDown().
495 * src/test/java/org/glom/web/server/OnlineGlomPropertiesTest.java:
496 * src/test/java/org/glom/web/server/SelfHostExampleTest.java:
497 This avoids leaking a postgres process in SelfHostExampleTest.
499 2012-07-21 Murray Cumming <murrayc@murrayc.com>
501 tests: Test translations more.
503 * src/test/java/org/glom/web/server/ConfiguredDocumentTest.java:
504 * src/test/java/org/glom/web/server/SelfHostConfiguredDocumentTest.java:
505 Test titles in the non-default locale.
507 2012-07-21 Murray Cumming <murrayc@murrayc.com>
509 tests: Add SelfHostConfiguredDocumentTest
511 * src/test/java/org/glom/web/server/SelfHoster.java: Add getters for the
512 username and password, for use by ConfiguredDocument.
513 * src/test/java/org/glom/web/server/SelfHostConfiguredDocumentTest.java:
514 This tests some of the ConfiguredDocument API that requires a database connection.
516 2012-07-21 Murray Cumming <murrayc@murrayc.com>
518 Document: Load title translations and test them.
520 * src/main/java/org/glom/web/server/libglom/Document.java: Load the translations
521 of titles. I am surprised that we do not do this yet.
522 * src/test/java/org/glom/web/server/ConfiguredDocumentTest.java:
523 * src/test/java/org/glom/web/server/libglom/DocumentTest.java:
524 Test translations more.
526 2012-07-20 Murray Cumming <murrayc@murrayc.com>
530 * src/main/java/org/glom/web/server/ConfiguredDocument.java:
531 * src/main/java/org/glom/web/server/database/ListDBAccess.java:
532 Set the timeout here too.
534 2012-07-20 Murray Cumming <murrayc@murrayc.com>
536 tests: ConfiguredDocumentTest: Make this pass.
538 * src/test/java/org/glom/web/server/ConfiguredDocumentTest.java:
539 Disable tests that need a database connection.
541 2012-07-20 Murray Cumming <murrayc@murrayc.com>
543 Use Java 1.7 instead of Java 1.6.
545 * pom.xml: Specify the 1.7 JDK, though I don't like how we seem to need
546 to do this twice, at least for Eclipse.
547 This seems OK because it is the current version.
549 2012-07-20 Murray Cumming <murrayc@murrayc.com>
553 * src/main/java/org/glom/web/server/Log.java: Avoid using null strings.
554 * src/main/java/org/glom/web/server/database/ListDBAccess.java:
555 Avoid using a null Connection.
557 2012-07-20 Murray Cumming <murrayc@murrayc.com>
559 tests: Add a ConfiguredDocument test.
561 * src/test/java/org/glom/web/server/ConfiguredDocumentTest.java:
564 2012-07-20 Murray Cumming <murrayc@murrayc.com>
566 LayoutItemFIeld: getName(): Use the Field if it is set.
568 * src/main/java/org/glom/web/shared/libglom/layout/LayoutItemField.java:
569 getName(): If the full field details have been set, return its name, so that
570 callers do not need to set the name separately.
571 * src/test/java/org/glom/web/server/SelfHostExampleTest.java:
572 testExampleMusiccollectionData): Do not use a TYPE_FORWARD_ONLY statement,
573 so we can count the rows.
575 2012-07-20 Murray Cumming <murrayc@murrayc.com>
577 tests: SelfHoster: Test SqlUtils too.
579 * src/test/java/org/glom/web/server/SelfHostExampleTest.java:
580 Retrieve some data and check it too, as in the regular Glom
581 test_selfhosting_new_from_example.cc test.
582 * src/test/java/org/glom/web/server/SelfHoster.java:
583 createConnection(): Make this public.
585 2012-07-20 Murray Cumming <murrayc@murrayc.com>
587 tests: SelfHoster: createConnection(): Do not warn about expected failures.
589 Let the caller say if the connection is expected to fail, to avoid
590 irrelevant error output.
592 2012-07-20 Murray Cumming <murrayc@murrayc.com>
594 tests: SelfHoster: createAndSelfHostNewEmpty(): Sleep after starting server.
596 * src/test/java/org/glom/web/server/SelfHoster.java:
597 createAndSelfHostNewEmpty(): Sleep initially, to avoid distracting errors
598 due to the inevitable need to retry the connection while the database server
601 2012-07-20 Murray Cumming <murrayc@murray.com>
603 tests: SelfHoster: createConnection(): Set a timeout.
605 * src/test/java/org/glom/web/server/SelfHoster.java:
606 createConnection(): Use setLoginTimeout() because it otherwise seems to take
607 ages to actually return when it fails.
609 2012-07-20 Murray Cumming <murrayc@murrayc.com>
611 tests: SelfHoster: selfHost(): Close the test connection.
613 * src/test/java/org/glom/web/server/SelfHoster.java: selfHost():
614 When we check that the connection works, close the connection. This seems
615 to not be closed automatically otherwise.
617 2012-07-20 Murray Cumming <murrayc@murrayc.com>
619 Use slf4j-simple to see JDBC errors.
621 * pom.xml: Depend on slf4j-simple so we can see errors from JDBC.
623 2012-07-19 Murray Cumming <murrayc@murrayc.com>
625 SelfHoster.discoverFirstFreePort(): Close the socket.
627 * src/test/java/org/glom/web/server/SelfHoster.java:
628 discoverFirstFreePort(): Close the socket. Eclipse Juno warns about this.
630 2012-07-19 Murray Cumming <murrayc@murrayc.com>
632 Avoid another code warning in Eclipse Juno.
634 * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java:
635 Do instanceof checks on the FileUtils.listFiles() result and its
638 2012-07-13 Murray Cumming <murrayc@murrayc.com>
640 Avoid some code warnings in Eclipse Juno
642 * src/main/java/org/glom/web/server/libglom/Document.java:
643 getNodeTextChildAsValue(), setNodeTextChildAsValue(): Handle the invalid type.
644 * src/test/java/org/glom/web/server/SelfHoster.java
645 createTextFile(): Make sure that the FileOutputStream is closed.
647 2012-06-22 Murray Cumming <murrayc@murrayc.com>
649 Added OnlineGlomPropertiesTest.
651 * src/main/java/org/glom/web/server/OnlineGlomProperties.java:
652 Make sure we never return a null string.
653 * src/test/java/org/glom/web/server/OnlineGlomPropertiesTest.java:
654 Added tests of the OnlineGlomProperties API, using our sample file.
656 2012-06-20 Murray Cumming <murrayc@murrayc.com>
658 Make OnlineGlomProperties be a normal class.
660 * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java:
661 Move OnlineGlomProperties into its own file to be a regular class:
662 * src/main/java/org/glom/web/server/OnlineGlomProperties.java:
663 This makes testing simpler.
665 2012-06-15 Murray Cumming <murrayc@murrayc.com>
667 OnlineGlomServiceImpl.init(): Move some code into a new method.
669 * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java:
670 Create addDocument().
672 2012-06-15 Murray Cumming <murrayc@murrayc.com>
674 OnlineGlomServiceImpl.OnlineGlomProperties: Improve getKey().
676 * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java:
677 OnlineGlomProperties.getKey(): Make this more robust by moving the
678 check for *.*.filename to here.
680 2012-06-15 Murray Cumming <murrayc@murrayc.com>
682 OnlineGlomServiceImpl: Improve the OnlineGlomProperties class.
684 * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java
685 init(): Move knowledge of the config file format into the
686 OnlineGlomProperties inner class.
688 2012-06-15 Murray Cumming <murrayc@murrayc.com>
690 SelfHostExampleTest: Make sure we cleanup on failure.
692 * src/test/java/org/glom/web/server/SelfHostExampleTest.java: Move
693 the use of cleanup() to a tearDown() JUnit method.
697 2012-06-12 Murray Cumming <murrayc@murrayc.com>
699 ConfiguredDocument: Add a primary key to portals at least once.
701 * src/main/java/org/glom/web/server/ConfiguredDocument.java
702 updatePortalsExtras): Fix a typo so that we add the primary key
703 column at least once.
704 This is a fix for the previous commit:
705 ConfiguredDocument: Do not add a primary key to portals each time.
707 2012-06-08 Murray Cumming <murrayc@murrayc.com>
709 SelfHoster: Avoid some compiler warnings.
711 * src/test/java/org/glom/web/server/SelfHoster.java
712 executeCommandLineAndWait():
713 executeCommandLineAndWaitUntilSecondCommandReturnsSuccess(): Comment out
714 the now-unused streams for stdout and stderr from the command Processes.
715 These are not used because readln() hangs while waiting for a new line,
716 where there may be no next line. The commented out code is still there
717 to help us figure out how to do this properly.
719 2012-06-08 Murray Cumming <murrayc@murrayc.com>
721 LayoutItemPortalDeepCloneTest: Test something to avoid warnings.
723 * src/test/java/org/glom/web/server/libglom/LayoutItemPortalDeepCloneTest.java:
724 Make this actually test the cloning again, though it is not very useful
725 now that we do not use the part that had a problem with cloning before.
727 2012-06-08 Murray Cumming <murrayc@murrayc.com>
729 SelfHoster: Keep trying pg_ctl after starting postgres.
731 * src/test/java/org/glom/web/server/SelfHoster.java
732 executeCommandLineAndWaitUntilSecondCommandReturnsSuccess():
733 Try pg_ctl repeatedly (for ever) until it succeeds, as we do in
734 regular Glom. This seems mad but it seems to work because the first
735 command would fail if pg_ctl would eventually fail.
737 2012-06-08 Murray Cumming <murrayc@murrayc.com>
739 SelfHoster: Wait until the server is really ready.
741 * src/test/java/org/glom/web/server/SelfHoster.java
742 selfHost(): Attempt the connection after starting the server, retrying
743 a few times if necessary, so that the server is really ready already when
744 we return from this method.
745 The regular Glom code does this too because pg_ctl reports success too soon.
747 2012-06-08 Murray Cumming <murrayc@murrayc.com>
749 ConfiguredDocument: Do not add a primary key to portals each time.
751 * src/main/java/org/glom/web/server/ConfiguredDocument.java
752 updatePortalsExtras(): Only add an extra primary key field if there is
753 none, to avoid adding one each time we retrieve the details layout from the
755 This should fix bug #676986 (Ben Konrath)
757 2012-05-25 Murray Cumming <murrayc@murrayc.com>
759 Document.load(): Support version 7 documents.
761 * src/main/java/org/glom/web/server/libglom/Document.java: Load the
762 database_title attribute if the title attribute is not there.
765 2012-05-24 Ben Konrath <ben@bagu.org>
767 Add configuration for auto-generating mvn:i18n from with Eclipse.
769 * pom.xml: Add PluginExecution configuration for gwt-maven-plugin.
771 2012-05-24 Murray Cumming <murrayc@murrayc.com>
773 Update translations, adding French.
775 * src/main/java/org/glom/web/OnlineGlom.gwt.xml:
776 * src/main/resources/org/glom/web/client/ui/OnlineGlomConstants_fr.properties:
777 Add a French translation, using the translation from Glom.
779 * src/main/resources/org/glom/web/client/ui/OnlineGlomConstants_cs.properties:
780 * src/main/resources/org/glom/web/client/ui/OnlineGlomConstants_es.properties:
781 * src/main/resources/org/glom/web/client/ui/OnlineGlomConstants_sl.properties:
782 Update these based on the translations from Glom.
784 2012-05-24 Murray Cumming <murrayc@murrayc.com>
786 SelfHoster: Add some debug println messages to help when things fail.
788 * src/test/java/org/glom/web/server/SelfHoster.java: Add several
789 System.out.println() lines.
791 2012-05-23 Murray Cumming <murrayc@murrayc.com>
793 Tests: SelfHoster: Check other paths for PostgreSQL command-line tools.
795 * src/test/java/org/glom/web/server/SelfHoster.java:
796 getPathToPostgresExecutable(): Try some common paths (as on Ubuntu, for
797 instance) instead of just /usr/bin (as on Fedora). Check the result when
800 2012-05-23 Murray Cumming <murrayc@murrayc.com>
802 Remove LayoutItemPortal.get/setNavigationTable().
804 * src/main/java/org/glom/web/shared/libglom/layout/LayoutItemPortal.java:
805 Remove get/setNavigationTable(), which is only a cache, because it is not
806 used, and does not need to be used, because that decision should be made on
808 * src/main/java/org/glom/web/server/ConfiguredDocument.java:
809 updatePortalsExtras():
810 * src/main/java/org/glom/web/server/database/RelatedListNavigation.java:
811 getNavigationRecord():
812 * src/test/java/org/glom/web/server/libglom/LayoutItemPortalDeepCloneTest.java:
815 2012-05-21 Murray Cumming <murrayc@murrayc.com>
817 Initial self-hosting for tests.
819 * pom.xml: Change the scope for log4j, to hopefully make it
820 available to the test code which uses it indirectly via jOOQ.
821 * src/main/java/org/glom/web/server/ConfiguredDocument.java: Allow
822 self-hosting, though we only use it for testing.
824 * src/main/java/org/glom/web/server/libglom/Document.java:
825 example rows: Use a map instead of a list for each row of values,
826 so we know what field they are for, instead of relying on the sequence
827 being correct. This is not very efficient, but it does not really need
829 * src/test/java/org/glom/web/server/libglom/DocumentTest.java
830 testReadTableExampleRows(): Adapted.
832 * src/main/java/org/glom/web/shared/DataItem.java: Added getValue()
833 that returns an Object, for generic use. Note that Object seems to be
834 the implicit base even of double.
835 * src/main/java/org/glom/web/shared/libglom/Field.java: Add getSqlType(),
836 for use in CREATE TABLE SQL queries.
837 * src/test/java/org/glom/web/server/SelfHoster.java: Add this class
838 to do self-hosting of PostgreSQL databases via its command-line
839 utilities, based on Glom's C++ code in test_selfhosting_utils.cc and
840 backends/postgres_self.cc. This is incomplete - it needs more
841 warnings about failures and it needs to clean up properly when things
843 * src/test/java/org/glom/web/server/SelfHostExampleTest.java: A simple
844 test of this new class.
846 2012-05-21 Murray Cumming <murrayc@murrayc.com>
848 Document: loading example data: Handle exceptions.
850 * src/main/java/org/glom/web/server/libglom/Document.java:
851 DateFormat.parse() and Double.valueOf() can throw exceptions, though
852 Eclipse did not warn about that.
854 2012-05-20 Murray Cumming <murrayc@murrayc.com>
856 Document: load(), save(): Handle the example rows.
858 * src/main/java/org/glom/web/shared/DataItem.java: Add get/setDate()
860 * src/main/java/org/glom/web/server/libglom/Document.java:
861 load(), save(): Load and save the example rows, though the date, time
862 and image types are not handled properly yet.
863 * src/test/java/org/glom/web/server/libglom/DocumentTest.java:
864 Add testReadTableExampleRows() just to check that something is read.
866 2012-05-20 Murray Cumming <murrayc@murrayc.com>
868 Document: Add save().
870 * src/main/java/org/glom/web/shared/libglom/Translatable.java:
871 Added getTranslationsMap() for use while saving.
872 * src/main/java/org/glom/web/shared/libglom/layout/LayoutItemField.java:
873 Adedd getUseDefaultFormatting() for use while saving.
874 * src/main/java/org/glom/web/server/libglom/Document.java: Added save()
875 and several private methods that it uses.
877 This will be useful while testing via self-hosting.
878 It is not complete, but should be complete enough for testing.
880 2012-05-17 Murray Cumming <murrayc@murrayc.com>
882 OnlineGlomService: Simplify the getList/RelatedViewData() methods.
884 * src/main/java/org/glom/web/client/OnlineGlomService.java
885 * src/main/java/org/glom/web/client/OnlineGlomServiceAsync.java
886 * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java
887 Remove getSortedListViewData() and getSortedRelatedListData(), adding
888 the sort column index and ascending bool to the regular method.
889 Instead, a sort column index of -1 now means no sort.
890 This is less explicit, but it's fairly simple, reduces the amount of
891 code, and makes the OnlineGlomService API slightly smaller.
892 * src/main/java/org/glom/web/client/ui/details/RelatedListTable.java:
893 * src/main/java/org/glom/web/client/ui/list/ListViewTable.java:
895 * src/main/java/org/glom/web/server/ConfiguredDocument.java:
896 getListViewData(), getRelatedListData():
897 * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java:
898 getListViewData(), getRelatedListData():
899 * src/main/java/org/glom/web/server/database/ListDBAccess.java:
901 * src/main/java/org/glom/web/server/database/ListViewDBAccess.java:
903 * src/main/java/org/glom/web/server/database/RelatedListDBAccess.java:
908 2012-05-16 Murray Cumming <murrayc@murrayc.com>
910 Use translations for top-level groups too.
912 * src/main/java/org/glom/web/server/ConfiguredDocument.java:
913 updateTitlesForLocale(): Use the translation for the group
914 as well as for child items.
918 Just recompiled to fix a problem in the released .tar.gz file.
922 2012-05-15 Murray Cumming <murrayc@murrayc.com>
924 Corrections to navigation to related records.
926 * src/main/java/org/glom/web/client/OnlineGlomService.java:
927 * src/main/java/org/glom/web/client/OnlineGlomServiceAsync.java:
928 * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java:
929 getRelatedListData(), getSortedRelatedListData)(), getRelatedListRowCount(),
930 getSuitableRecordToViewDetails(): Take a LayoutItemPortal instead of a
931 relationship name, because the relationship name is not necessarily unique
933 TOOD: This is inefficient, because it passes the whole list of
934 child field items back to the server, but it is more correct, and happens
935 to fix a bug with the primary key being lost after a few navigations.
936 There is probably a chance to make this more efficient anyway in some
939 * src/main/java/org/glom/web/client/activity/DetailsActivity.java
940 * src/main/java/org/glom/web/client/ui/details/RelatedListTable.jav
941 * src/main/java/org/glom/web/server/ConfiguredDocument.java
942 * src/main/java/org/glom/web/server/database/DBAccess.java
943 * src/main/java/org/glom/web/server/database/RelatedListDBAccess.java:
944 * src/main/java/org/glom/web/server/database/RelatedListNavigation.java:
947 2012-05-15 Murray Cumming <murrayc@murrayc.com>
949 Fix the use of translations.
951 * src/main/java/org/glom/web/server/ConfiguredDocument.java:
952 Add updateTitlesForLocale().
953 getValidListViewLayoutGroup(), getDetailsLayoutGroup():
954 Call it to discard unwanted translations and to make getTitle() return
955 the wanted translation wihout the need for the client code to specify a locale.
956 * src/main/java/org/glom/web/shared/libglom/Translatable.java:
957 getTitle(): Fallback to the original title, as libglom does.
959 2012-05-15 Murray Cumming <murrayc@murrayc.com>
961 Document: Correctly report the number of available translation locales.
963 * src/main/java/org/glom/web/server/libglom/Document.java: Fill
964 the available locale IDs list.
965 * src/test/java/org/glom/web/server/libglom/DocumentTest.java:
966 testLocales: Test this.
968 2012-05-15 Murray Cumming <murrayc@murrayc.com>
970 SqlUtils: Use camelCase.
972 * src/main/java/org/glom/web/server/SqlUtils.java: Use camelCase.
973 * src/main/java/org/glom/web/server/database/DetailsDBAccess.java:
974 * src/main/java/org/glom/web/server/database/ListViewDBAccess.java:
975 * src/main/java/org/glom/web/server/database/RelatedListDBAccess.java:
976 * src/main/java/org/glom/web/server/database/RelatedListNavigation.java:
977 * src/main/java/org/glom/web/server/ReportGenerator.java: Adapt.
979 2012-05-15 Murray Cumming <murrayc@murrayc.com>
981 Use jOOQ's tableByName() and fieldByName.
983 * pom.xml: Use jOOQ 2.3.1 to get the new API.
984 * src/main/java/org/glom/web/server/SqlUtils.java:
985 build_sql_select_step_with_where_clause(), .createField(),
986 builder_add_join(): Use Factory.tableByName() and Factory.fieldByName()
987 so we can get correct quoting and escaping. Thanks to Lukas Eder for
988 adding this, and other things, to jOOQ.
990 2012-05-15 Murray Cumming <murrayc@murrayc.com>
992 SqlUtils: Remove the Connection parameters.
994 * src/main/java/org/glom/web/server/SqlUtils.java:
995 build_sql_select_with_key(), build_sql_select_with_where_clause(),
996 createSelect(), build_sql_select_step_with_where_clause(),
997 build_sql_count_select_with_where_clause(),
998 build_sql_select_count_rows(): Remove the Connection parameter because
999 jOOQ does not actually need a connectionwhen it is just used to build
1001 https://groups.google.com/forum/#!topic/jooq-user/tIwobFOR2iM
1003 * src/main/java/org/glom/web/server/ReportGenerator.java:
1005 * src/main/java/org/glom/web/server/database/DetailsDBAccess.java:
1007 * src/main/java/org/glom/web/server/database/ListDBAccess.java:
1008 Constructor, getListData(), getResultSizeOfSQLQuery():
1009 * src/main/java/org/glom/web/server/database/ListViewDBAccess.java:
1010 getSelectQuery(), getCountQuery():
1011 * src/main/java/org/glom/web/server/database/RelatedListDBAccess.java:
1012 getSelectQuery(), getCountQuery():
1013 * src/main/java/org/glom/web/server/database/RelatedListNavigation.java:
1014 getNavigationRecord(): Adapted.
1016 2012-05-14 Murray Cumming <murrayc@murrayc.com>
1020 * src/main/java/org/glom/web/server/SqlUtils.java:
1021 get_find_where_clause_quick(): Use a comparison of
1022 lowercase values, instead of a simple equals. Regular Glom
1023 uses the PostgreSQL ILIKE operator but jOOQ does not
1024 support that just yet, though it will soon.
1026 2012-05-14 Murray Cumming <murrayc@murrayc.com>
1028 TableToViewDetails: Use a real serialization ID.
1030 * src/main/java/org/glom/web/shared/libglom/layout/TableToViewDetails.java:
1031 Though this does not fix the serialization problem.
1033 2012-05-12 Murray Cumming <murrayc@murrayc.com>
1035 Added LayoutItemPortalDeepCloneTest.
1037 2012-05-11 Murray Cumming <murrayc@murrayc.com>
1039 Make navigation work again.
1041 * src/main/java/org/glom/web/server/libglom/Document.java:
1042 Add getLayoutItemFieldShouldHaveNavigation().
1043 * src/main/java/org/glom/web/shared/libglom/layout/LayoutItemField.java:
1044 Replace get/setAddNavigation() with the partly-existing
1045 get/setNavigationTableName(), with an empty string being no navigation,
1046 because this is simpler. Use the new
1047 Document.getLayoutItemFieldShouldHaveNavigation() method to set this.
1049 * src/main/java/org/glom/web/server/ConfiguredDocument.java:
1050 Add updateFieldsExtras() and call setNavigationTableName in it.
1051 getDetailsLayoutGroup(),
1052 * src/main/java/org/glom/web/client/activity/DetailsActivity.java
1053 createLayout(): Adapted.
1054 * src/main/java/org/glom/web/client/ui/details/DetailsCell.java
1055 Constructor: Adapted.
1057 * src/main/java/org/glom/web/shared/libglom/layout/LayoutItemPortal.java:
1058 Replace get/setAddNavigation() with get/setNavigation(), returning a
1059 TableToViewDetails class with both the table name and UsesRelationship,
1060 because both are need. The previous code used java-libglom's output
1061 variable (strangely, via sharedptr) to return both, but we cannot really
1063 * src/main/java/org/glom/web/server/database/RelatedListNavigation.java:
1064 getNavigationRecord(): Adapt. However, we cannot actually use the cache
1065 here because it somehow gets set to null during deepCopy(). I must test this.
1066 * src/test/java/org/glom/web/server/libglom/DocumentTest.java
1067 testGetSuitableTableToViewDetails(): Adapted.
1069 TODO: Find out why deepClone() is not quite working.
1071 2012-05-11 Murray Cumming <murrayc@murrayc.com>
1073 DBAccess: Simplify the retrievel of full field details.
1075 * src/main/java/org/glom/web/server/database/DBAccess.java
1076 getFieldsToShowForSQLQueryAddGroup(). This might be unnecessary anyway,
1077 because the Document loading should have done this.
1079 2012-05-11 Murray Cumming <murrayc@murrayc.com>
1081 Document: Correct loading of doubly-related layout fields.
1083 * src/main/java/org/glom/web/server/libglom/Document.java:
1084 loadUsesRelationship(): Actually set the related relationship, instead
1085 of only setting it if it's not found.
1087 2012-05-09 Murray Cumming <murrayc@murrayc.com>
1089 Replace all appearances of Colour with color.
1091 Because US English is dominant.
1093 2012-05-09 Murray Cumming <murrayc@murrayc.com>
1095 Use colors in HTML format, solving a warning about an unused function.
1097 * src/main/java/org/glom/web/shared/libglom/NumericFormat.java
1098 * src/main/java/org/glom/web/shared/libglom/layout/Formatting.java:
1099 Add *asHTMLColor() versions of methods.
1100 TODO: However, we should create and cache the results on the server.
1101 * src/main/java/org/glom/web/client/ui/details/DetailsCell.java
1102 * src/main/java/org/glom/web/client/ui/list/ListTable.java
1103 * src/main/java/org/glom/web/server/ConfiguredDocument.java
1104 * src/test/java/org/glom/web/server/libglom/DocumentTest.java:
1105 Use the asHTMLcolor() versions.
1107 2012-05-09 Murray Cumming <murrayc@murrayc.com>
1109 ListViewTable: Constructor: Take the table name as a parameter.
1111 * src/main/java/org/glom/web/client/ui/list/ListViewTable.java:
1112 Constructor: Take the tableName, and set the member variable, because
1114 * src/main/java/org/glom/web/client/ui/ListViewImpl.java:
1115 setCellTable(): Pass the table name.
1116 This makes navigation to non-default tables work again. I don't know
1117 why it worked before in the master branch.
1119 2012-05-07 Murray Cumming <murrayc@murrayc.com>
1121 ConfiguredDocument: Restore correct addition of hidden primary key items.
1123 * src/main/java/org/glom/web/client/ui/list/ListTable.java
1124 (ListTable.createCellTable): Uncomment out the check for the hidden
1126 * src/main/java/org/glom/web/server/ConfiguredDocument.java: Only
1127 add primary key items for top-level lists and portals, as before,
1128 instead of adding them to each group.
1129 * src/main/java/org/glom/web/shared/libglom/layout/LayoutGroup.java:
1130 Actually implement the extra methods such as setHiddenPrimaryKey() and
1131 comment that these are used only for top-level list groups and in portals.
1132 This strangeness suggests even more that this should not be squeezed
1133 into the LayoutGroup class.
1135 2012-05-07 Murray Cumming <murrayc@murrayc.com>
1137 Fix Formatting loading.
1139 * src/main/java/org/glom/web/shared/libglom/layout/LayoutItemField.java:
1140 getFormattingUsed(): Remove the duplicate Formatting member variable
1141 in favour of the one from the base class.
1142 * src/main/java/org/glom/web/shared/libglom/layout/LayoutItemWithFormatting.java:
1143 Initialize a new Formatting instead of using null by default, so we
1144 have some defaults, instead of having to initialize one later just to
1145 get the same defaults. This also makes loading of formatting from the
1146 document work, because that expected a non-null.
1148 2012-05-07 Murray Cumming <murrayc@murrayc.com>
1150 RelatedListTable: Make sure that the tableName is set.
1152 * src/main/java/org/glom/web/client/ui/details/RelatedListTable.java:
1153 Constructor: Take the tableName so it is available later. Otherwise,
1154 the server assumes that we mean the default table and cannot find the
1156 * src/main/java/org/glom/web/client/activity/DetailsActivity.java
1157 setData(): Pass the tableName to the RelatedListTable constructor.
1159 2012-05-07 Murray Cumming <murrayc@murrayc.com>
1163 * src/main/java/org/glom/web/client/activity/DetailsActivity.java:
1164 RelatedListNavigationButtonCell.onEnterKeyDown(), setData():
1165 * src/main/java/org/glom/web/client/ui/details/RelatedListTable.java:
1167 * src/main/java/org/glom/web/client/ui/list/ListTable.java:
1169 * src/main/java/org/glom/web/server/database/DBAccess.java:
1170 convertResultSetToDTO(), getPortal():
1171 * src/main/java/org/glom/web/server/database/ListDBAccess.java
1173 * src/main/java/org/glom/web/server/database/RelatedListDBAccess.java:
1174 Add checks for null objects and out of range access, with log messages to
1175 give hints so we can fix these properly.
1177 2012-05-07 Murray Cumming <murrayc@murrayc.com>
1179 Portals: some corrections.
1181 * src/main/java/org/glom/web/client/activity/DetailsActivity.java
1183 * src/main/java/org/glom/web/client/ui/details/RelatedListTable.java:
1184 constructor: Use getRelationshipNameUsed() instead of getName(), because
1185 that is what is meant.
1186 * src/main/java/org/glom/web/shared/libglom/layout/LayoutItemPortal.java:
1187 getFromField(): Fix a typo, to get the field name, not the table name.
1188 * src/main/java/org/glom/web/server/database/DBAccess.java:
1189 getPortal(): Fix a typo that stopped this from working.
1191 2012-05-07 Murray Cumming <murrayc@murrayc.com>
1193 LayoutItemPortal: Also override getTitleOriginal().
1195 * src/main/java/org/glom/web/shared/libglom/layout/LayoutItemPortal.java:
1196 This lets the base getTitle() with no parameters work.
1197 TODO: Test this properly.
1199 2012-05-06 Murray Cumming <murrayc@murrayc.com>
1201 LayoutItemPortal: getTitle*(): Use the relationship title.
1203 2012-05-06 Murray Cumming <murrayc@murrayc.com>
1205 LayoutItemField: Fix loading of custom titles.
1207 * src/main/java/org/glom/web/server/libglom/Document.java
1208 loadDataLayoutItemField(): The title, if any, instead of the field
1209 title, is stored in a title_custom node. Load it from there.
1210 * src/main/java/org/glom/web/shared/libglom/CustomTitle.java: Add this
1212 * src/main/java/org/glom/web/shared/libglom/layout/LayoutItemField:
1213 Add getCustomTitle() and use it, instead of super.getTitle*(), in the
1214 getTitle*() overrides.
1215 * src/test/java/org/glom/web/server/libglom/LayoutItemFieldTest.java:
1218 2012-05-06 Murray Cumming <murrayc@murrayc.com>
1220 LayoutItemField: Fall back to field titles, so some are really shown.
1222 * src/main/java/org/glom/web/shared/libglom/layout/LayoutItemField.java:
1223 Override getTitleOriginal() and getTitle(), as in java-libglom.
1224 * src/test/java/org/glom/web/server/libglom/LayoutItemFieldTest.java:
1225 Test this behaviour.
1227 2012-05-06 Murray Cumming <murrayc@murrayc.com>
1229 Correct use of setExpectedResultSize().
1231 * src/main/java/org/glom/web/server/ConfiguredDocument.java
1232 getValidListViewLayoutGroup(), getDetailsLayoutGroup():
1233 Use setExpectedResultSize only on top-level groups (for instance, the
1234 list layout) or on child portals (in details views).
1235 Use the correct table name for portals to avoid SQL errors.
1236 Update the expected counts when returning cached layouts.
1238 2012-05-06 Murray Cumming <murrayc@murrayc.com>
1240 Document: Interpret no group column count as 1.
1242 * src/main/java/org/glom/web/server/libglom/Document.java: Use a sane
1243 default, though we now check for this in the UI code anyway.
1245 2012-05-06 Murray Cumming <murrayc@murrayc.com>
1249 2012-05-06 Murray Cumming <murrayc@murrayc.com>
1251 Translatable: Use Hashmap instead of Treemap because GWT supports it.
1253 * src/main/java/org/glom/web/shared/libglom/Translatable.java:
1254 The use of Treemap lead to this error from async methods, with no
1256 "The response could not be deserialized"
1258 2012-05-06 Murray Cumming <murrayc@murrayc.com>
1260 OnlineGlom.gwt.xml: Add exludes to fix explicit gwt compilation in Eclipse.
1262 * src/main/java/org/glom/web/OnlineGlom.gwt.xml: This is necessary
1263 when using the Google -> GWT Compile, or
1264 g toolbar button -> GWT Compile Project... feature in Eclipse.
1266 2012-05-06 Murray Cumming <murrayc@murrayc.com>
1268 ListTable.addColumn(): Protect against a null Formatting.
1270 * src/main/java/org/glom/web/client/ui/list/ListTable.java: addColumn():
1271 Create a default Formatting if it is null, because that is the simplest
1274 2012-05-06 Murray Cumming <murrayc@murrayc.com>
1276 ConfiguredDocument.updateLayoutGroup(): Protect against a null dereference.
1278 * src/main/java/org/glom/web/server/ConfiguredDocument.java
1279 updateLayoutGroup(): Check that the field is not null.
1281 2012-05-06 Murray Cumming <murrayc@murrayc.com>
1283 ListViewImpl: Protected against a bad cast error.
1285 * src/main/java/org/glom/web/client/ui/ListViewImpl.java:
1286 onEnterKeyDown(): Do not cast without an instanceof check.
1288 2012-05-06 Murray Cumming <murrayc@murrayc.com>
1290 ListTable: Protect against an out of range error.
1292 * src/main/java/org/glom/web/client/ui/list/ListTable.java
1293 createCellTable(): This is unlikely, but can happen while debugging.
1295 2012-05-06 Murray Cumming <murrayc@murrayc.com>
1297 AsyncMessage onFailure() callbacks: Log the exception message.
1299 * src/main/java/org/glom/web/client/activity/DetailsActivity.java
1300 * src/main/java/org/glom/web/client/activity/DocumentSelectionActivity.java:
1301 * src/main/java/org/glom/web/client/activity/ListActivity.java:
1302 * src/main/java/org/glom/web/client/activity/ReportActivity.java:
1303 * src/main/java/org/glom/web/client/activity/TableSelectionActivity:
1304 * src/main/java/org/glom/web/client/ui/details/RelatedListTable.java:
1305 * src/main/java/org/glom/web/client/ui/list/ListViewTable.java:
1306 These are useful clues when something is wrong.
1308 2012-05-06 Murray Cumming <murrayc@murrayc.com>
1310 ConfiguredDocument: Avoid a null dereference.
1312 * src/main/java/org/glom/web/server/ConfiguredDocument.java
1313 TableLayoutsForLocale.getMapWithAdd(): Make sure that the list and
1314 details maps are created.
1316 2012-05-06 Murray Cumming <murrayc@murrayc.com>
1318 Document: Correct the port number parsing.
1320 * src/main/java/org/glom/web/server/libglom/Document.java:
1321 This lets us actually connect to the database and show the document.
1323 2012-05-05 Murray Cumming <murrayc@murrayc.com>
1327 * pom.xml: Use htmlunit mode for gwt:test, because the default demands
1328 user-interaction, asking us to load a temporary URL in a browser.s
1329 * src/main/java/org/glom/web/OnlineGlom.gwt.xml: Add a servlet node,
1330 which is apparently necessary for testing the service. See the comment.
1331 * src/test/java/org/glom/web/client/GwtTestOnlineGlomService.java:
1332 Show the exception, if any. This is how I saw the 404 in the HTML in
1335 2012-05-05 Murray Cumming <murrayc@murrayc.com>
1337 DocumentTest: Move the .glom files into the resources directory.
1339 * src/test/java/org/glom/web/server/libglom/DocumentTest: And get the
1340 URI via getResource().
1342 2012-05-05 Murray Cumming <murrayc@murrayc.com>
1344 Document: Remove the FieldIdentifies inner class.
1346 * src/main/java/org/glom/web/server/libglom/Document.java: We only
1347 use the Relationship (though the same function in libglom is maybe
1348 used in other ways) and so this removes a compiler warning.
1350 2012-05-05 Murray Cumming <murrayc@murrayc.com>
1352 Document.load() Remove the error code parameter.
1354 * src/main/java/org/glom/web/server/libglom/Document.java: load():
1355 Remove the parameter. We do not set it yet and it could never have
1356 worked as an output parameter (though maybe it did in java-libglom).
1357 We could use an exception if we really want the failure reason.
1358 * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java:
1360 * src/test/java/org/glom/web/server/libglom/DocumentTest.java:
1361 setUp(), testGetSuitableTableToViewDetails(): Adapt.
1363 2012-05-05 Murray Cumming <murrayc@murrayc.com>
1365 Make some inner classes static.
1367 * src/main/java/org/glom/web/server/ConfiguredDocument.java
1368 * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java
1369 * src/main/java/org/glom/web/server/ReportGenerator.java
1370 * src/main/java/org/glom/web/server/libglom/Document.java
1371 Make all inner classes static that can be static.
1373 2012-05-05 Murray Cumming <murrayc@murrayc.com>
1375 OnlineGlomServiceImpl: Do not load and check for java-libglom.
1377 * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java
1378 init(): We do not use java-libglom any more.
1380 2012-05-05 Murray Cumming <murrayc@murrayc.com>
1382 Remove mentions of java-libglom.
1384 * README: Remove mention of java-libglom, because it no longer needed.
1385 * utils/build-onlineglom-war.sh:
1386 * utils/check-and-recover-tomcat.py:
1387 * utils/install-onlineglom-war.sh: Remove these as they are no longer
1388 useful. Building is now far easier, with no need for jhbuild.
1390 2012-05-05 Murray Cumming <murrayc@murrayc.com>
1392 Fix the build (mvn package)
1394 * src/main/java/org/glom/web/shared/libglom/layout/LayoutGroup.java
1395 (LayoutGroup): Make the LayoutItemList inner class static and protected.
1396 Otherwise the GWT Java->Javascript compilation fails with just this
1397 error, during mvn package or when attempting to view in a browser,
1398 in the GWT developer mode in Eclipse.
1400 [INFO] --- gwt-maven-plugin:2.4.0:compile (default) @ gwt-glom ---
1401 [INFO] auto discovered modules [org.glom.web.OnlineGlom]
1402 [INFO] Compiling module org.glom.web.OnlineGlom
1403 [INFO] [ERROR] Errors in 'file:/home/murrayc/checkouts/gnome/gwt-glom/src/main/java/org/glom/web/client/OnlineGlomServiceAsync.java'
1404 [INFO] [ERROR] Line 46: Failed to resolve 'org.glom.web.client.OnlineGlomService' via deferred binding
1405 [INFO] Scanning for additional dependencies: file:/home/murrayc/checkouts/gnome/gwt-glom/src/main/java/org/glom/web/client/ui/details/DetailsCell.java
1406 [INFO] [WARN] For the following type(s), generated source was never committed (did you forget to call commit()?)
1407 [INFO] [WARN] org.glom.web.client.OnlineGlomService_Proxy
1408 [INFO] [ERROR] Cannot proceed due to previous errors
1410 It has taken me 2 days to find out what was causing that. After reducing
1411 the code, the compiler eventually showed me the full error message.
1413 2012-05-04 Murray Cumming <murrayc@murrayc.com>
1415 ConfiguredDocument: Cache the cloned and stripped layouts.
1417 * src/main/java/org/glom/web/server/ConfiguredDocument.java:
1418 getValidListViewLayoutGroup(), .getDetailsLayoutGroup(): Store the cloned
1419 layout in a map, so we can retrieve it again without rebuilding it.
1421 2012-05-04 Murray Cumming <murrayc@murrayc.com>
1423 UsesRelationshipImpl: Complete the relationshipEquals() implementation.
1425 2012-05-04 Murray Cumming <murrayc@murrayc.com>
1427 libglom classes: Implement some auto-generated emthods.
1429 2012-05-04 Murray Cumming <murrayc@murrayc.com>
1431 Add GwtTestOnlineGlomService.
1433 * src/test/java/org/glom/web/client/GwtTestOnlineGlomService.java:
1434 However, this (and the other GwtTest*) does not seem to run during
1437 2012-05-04 Murray Cumming <murrayc@murrayc.com>
1439 Remove use of unsupported features from client code.
1441 * src/main/java/org/glom/web/client/StringUtils.java: Add equals().
1442 * src/main/java/org/glom/web/shared/libglom/layout/UsesRelationshipImpl.java:
1443 * src/main/java/org/glom/web/shared/libglom/layout/reportparts/LayoutItemGroupBy.java:
1444 Use our client version of StringUtils instead of the apache commons one.
1446 However, the GWT Javascript compliation still fails.
1448 2012-04-25 Murray Cumming <murrayc@murrayc.com>
1450 Add a Field class and implement some loading of it in Document.
1452 2012-04-25 Murray Cumming <murrayc@murrayc.com>
1454 Initial Document loading implementation, instead of libglom.
1456 * src/test/java/org/glom/web/shared/libglom/: Add Document, Report,
1457 and Translatable classes, and adapt the rest of the code to use them.
1458 However, this is still missing Layout and Field classes and loading.
1460 2012-04-24 Murray Cumming <murrayc@murrayc.com>
1462 Use of jOOQ: Move Field creation into a utility method.
1464 * src/main/java/org/glom/web/server/SqlUtils.java:
1465 This lets us improve it more easily.
1467 2012-04-24 Murray Cumming <murrayc@murrayc.com>
1469 Use of jOOQ: Improve the code to COUNT a sub-select.
1471 * src/main/java/org/glom/web/server/SqlUtils.java:
1472 Move initial query creation into
1473 build_sql_select_step_with_where_clause().
1474 build_sql_select_count_rows(): Use the jOOQ API instead of
1475 concatentating text, because a jOOQ Select*Step is a TableLike,
1476 which is what from() takes.
1478 2012-04-23 Murray Cumming <murrayc@murrayc.com>
1480 Use jOOQ instead of Glom.build_sql*(), to avoid native calls.
1482 * pom.xml: Depend on jooq.
1483 * src/main/java/org/glom/web/server/SqlUtils.java: Reimplement the
1484 methods with jOOQ, based on the C++ implementations in libglom,
1485 with some changes to the logic required by jooQ.
1486 Take a jOOQ Condition rather than a Glom.SqlExpr (GdaSqlExpr) for the
1488 * src/main/java/org/glom/web/client/ui/TableSelectionViewImpl.java:
1489 * src/main/java/org/glom/web/server/ReportGenerator.java:
1490 * src/main/java/org/glom/web/server/SqlUtils.java:
1491 * src/main/java/org/glom/web/server/database/DetailsDBAccess.java:
1492 * src/main/java/org/glom/web/server/database/ListDBAccess.java:
1493 * src/main/java/org/glom/web/server/database/ListViewDBAccess.java:
1494 * src/main/java/org/glom/web/server/database/RelatedListDBAccess.java:
1495 * src/main/java/org/glom/web/server/database/RelatedListNavigation:
1496 Adapt. In particular, the SqlUtils methods now need to take a Connection,
1497 because jOOQ needs that, though it seems unnecessary.
1499 This is not quite finished. Ideally jOOQ would help us to build
1500 table_name.field_name names, quoting and escaping them properly.
1501 See http://stackoverflow.com/questions/10264001/instantiating-a-jooq-field-by-name
1503 2012-04-21 Murray Cumming <murrayc@murrayc.com>
1505 Move use of Glom.build_sql*() into a new SqlUtils class.
1507 * src/main/java/org/glom/web/server/SqlUtils.java: Add static methods
1508 to wrap Glom.build_sql*(). The parameter types are still Glom one,
1509 but this will make it easier to start using something other than
1510 libglom or SqlBuilder.
1512 2012-04-21 Murray Cumming <murrayc@murrayc.com>
1514 Update the project URL.
1516 * pom.xml: Use an OnlineGlom-specific URL for the project URL.
1518 2012-04-21 Murray Cumming <murrayc@murrayc.com>
1520 Main layout: Use a FlowTable instead of absolute positioning.
1522 * src/main/java/org/glom/web/client/OnlineGlom.java: onModuleLoad():
1523 The RootLayoutPanel is a (extends) AbsolutePanel, so each of its
1524 child panels/widgets must have an absolute position. But that is annoying, so
1525 this adds a FlowTable and puts the child panels in there.
1527 2012-04-21 Murray Cumming <murrayc@murrayc.com>
1529 GwtTestOnlineGlom: Comment out unused code.
1531 * src/test/java/org/glom/web/client/GwtTestOnlineGlom.java:
1532 Eclipse has started to say that some code is unused.
1534 2012-04-21 Murray Cumming <murrayc@murrayc.com>
1536 Update to the latest versions of dependencies.
1538 * pom.xml: Update version numbers of dependencies to the latest
1540 * src/main/java/org/glom/web/server/ConfiguredDocument.java:
1541 * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java:
1542 * src/main/java/org/glom/web/server/ReportGenerator.java:
1543 * src/main/java/org/glom/web/server/database/ListViewDBAccess.java:
1544 * src/main/java/org/glom/web/server/database/RelatedListDBAccess.java:
1545 * src/main/java/org/glom/web/server/database/RelatedListNavigation.
1547 * src/test/java/org/glom/web/client/GwtTestOnlineGlom.java:
1548 Modify the imports where necessary.
1550 2012-04-17 Murray Cumming <murrayc@murrayc.com>
1552 Style: Remove overflow:hidden from searchbox
1554 * src/main/webapp/style.css: Because this pushes the Back To Link
1555 label/link on to the next row, which is then hidden due to the
1556 hard-coded (in ems) height.
1558 2012-04-20 Murray Cumming <murrayc@murrayc.com>
1560 Remove some duplicate code.
1562 * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java
1563 getDocumentInfo(): This must have been duplicated during the merge from the
1568 2012-04-19 Murray Cumming <murrayc@murrayc.com>
1570 Reports: Localize the waiting for report message.
1572 * src/main/java/org/glom/web/client/activity/ReportActivity.java
1573 start(): Get the message from the contants.
1574 * src/main/resources/org/glom/web/client/ui/OnlineGlomConstants.properties:
1575 Add the string here.
1576 * src/main/resources/org/glom/web/client/ui/OnlineGlomConstants_cs.properties:
1577 * src/main/resources/org/glom/web/client/ui/OnlineGlomConstants_de.properties:
1578 * src/main/resources/org/glom/web/client/ui/OnlineGlomConstants_es.properties:
1579 * src/main/resources/org/glom/web/client/ui/OnlineGlomConstants_sl.properties:
1580 * src/main/resources/org/glom/web/client/ui/OnlineGlomConstants_zh_CN.properties:
1581 Update these files with the English text for newer strings for now.
1583 2012-04-19 Murray Cumming <murrayc@murrayc.com>
1585 Reports: Show a message while waiting for the report.
1587 * src/main/java/org/glom/web/client/ui/ReportView.java
1588 * src/main/java/org/glom/web/client/ui/ReportViewImpl.java:
1589 Add setWaitingText(), to show a message saying that we are
1590 waiting for the report to be ready.
1591 * src/main/java/org/glom/web/client/activity/ReportActivity.java
1592 start(): Call setWaitingText() before calling the async
1595 2012-04-19 Murray Cumming <murrayc@murrayc.com>
1597 ReportGenerator: Specify date and time formats.
1599 * src/main/java/org/glom/web/server/ReportGenerator.java:
1600 createFieldValueElement(): Use the default (and localized)
1601 short formats, though we still need a way to show 4-digit
1602 years without providing the format for every locale.
1603 * src/main/java/org/glom/web/server/database/DBAccess.java:
1604 convertResultSetToDTO(): Use the short formats here too.
1606 2012-04-18 Murray Cumming <murrayc@murrayc.com>
1608 ReportGenerator: Use the correct numeric formatting.
1610 * src/main/java/org/glom/web/server/ReportGenerator.java
1611 createFieldExpression(), createFieldValueElement(): Take the
1612 whole LayoutItem_Field instead of just the field name, so
1613 we have access to the formatting.
1614 createFieldValueElement(): Use JRTextField.setPattern() to
1615 specify the numeric formatting, with the help of a
1616 regular DecimalFormat.
1618 2012-04-18 Murray Cumming <murrayc@murrayc.com>
1620 ReportGenerator: Avoid showing null for group by titles.
1622 * src/main/java/org/glom/web/server/ReportGenerator.java
1623 generateReport(): Use setBlankWhenNull() on the field title
1624 style too, because this is used for values in group by
1627 2012-04-18 Murray Cumming <murrayc@murrayc.com>
1629 ReportGenerator: Add a colon to titles in vertical groups.
1631 * src/main/java/org/glom/web/server/ReportGenerator.java
1632 addFieldToDetailBandVertical(): Pass true for the withColon
1635 2012-04-18 Murray Cumming <murrayc@murrayc.com>
1637 ReportGenerator: Simplify the code by using Position more.
1639 2012-04-18 Murray Cumming <murrayc@murrayc.com>
1641 Reports: Support vertical groups, roughly.
1643 * src/main/java/org/glom/web/server/ReportGenerator.java:
1644 addToReport(): Rename to addGroupToReport() and, if necessary,
1645 call the new addVerticalGroupToReport() method.
1646 createFieldValueElement(): Let the caller specify the Y position
1649 2012-04-17 Murray Cumming <murrayc@murrayc.com>
1651 Reports: Allow a second report to be shown.
1653 * src/main/java/org/glom/web/client/ui/ReportViewImpl.java:
1654 clear(): Do not remove the HTML widget, which broke the whole layout.
1656 2012-04-17 Murray Cumming <murrayc@murrayc.com>
1658 Locales drop-down: Show that we use English by default.
1660 * src/main/java/org/glom/web/client/activity/TableSelectionActivity.java:
1661 fillView(): When we use English, just because that is the default, when
1662 no locale is specified, show that in the Locales drop-down instead of
1663 just showing the first item.
1665 2012-04-17 Murray Cumming <murrayc@murrayc.com>
1667 Unselect the Report/Locale/Table combo item when appropriate.
1669 * src/main/java/org/glom/web/client/activity/TableSelectionActivity.java:
1670 setPlace(): clear reportName if this is not a ReportPlace.
1671 * src/main/java/org/glom/web/client/ui/TableSelectionViewImpl.java:
1672 setSelectedTableName(), setSelectedLocale(), setSelectedReport():
1673 When the provided name is empty, unselect all items, so that none are
1674 indicated. This uses a for loop because I cannot find a single method
1677 2012-04-17 Murray Cumming <murrayc@murrayc.com>
1679 Report: Give the user a way to get back to the list.
1681 * src/main/java/org/glom/web/client/activity/TableSelectionActivity.java:
1682 start(), setPlace(): Show the Back To List link on reports, and also
1683 interpret selecting the empty report item as back to list.
1685 2012-04-13 Murray Cumming <murrayc@murrayc.com>
1687 Really show the selected Report name.
1689 * src/main/java/org/glom/web/client/activity/TableSelectionActivity:
1690 setPlace(): Store the reportName here, if it is that kind of Place.
1691 fillView(): Set the selected Report after filling the list of reports.
1692 * src/main/java/org/glom/web/client/ui/TableSelectionViewImpl.java:
1693 setSelectedLocale(), setSelectedReport(): Avoid possible uses of
1694 null Strings, though we need some way to unselect all ListBox items
1697 2012-04-13 Murray Cumming <murrayc@murrayc.com>
1699 ReportGenerator: Try to avoid some problems.
1701 * src/main/java/org/glom/web/server/ReportGenerator.java
1702 addField(): Try to avoid duplicates, and avoid using a null
1705 2012-04-13 Murray Cumming <murrayc@murrayc.com>
1707 Reports: Use quickFind.
1709 * src/main/java/org/glom/web/client/OnlineGlomService.java;
1710 * src/main/java/org/glom/web/client/OnlineGlomServiceAsync.java:
1711 * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java:
1712 getReportHTML(): Add a quickFind parameter.
1713 * src/main/java/org/glom/web/client/activity/ReportActivity.java
1714 start(): Pass the quickFind parameter.
1715 * src/main/java/org/glom/web/server/ReportGenerator.java
1716 generateReport(): Take a quickFind parameter.
1718 2012-04-13 Murray Cumming <murrayc@murrayc.com>
1720 ReportPlace: Actually use the report name.
1722 * src/main/java/org/glom/web/client/place/ReportPlace.java
1723 getPlace(): Do not assign the report name to the quickfind.
1725 2012-04-13 Murray Cumming <murrayc@murrayc.com>
1727 Show java.library.path when complaining.
1729 * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java
1730 init(): When telling us to check java.library.path, show the
1733 2012-03-06 Murray Cumming <murrayc@murrayc.com>
1735 ReportGenerator: Do not show nulls.
1737 2012-03-06 Murray Cumming <murrayc@murrayc.com>
1739 ReportGenerator: Make the title font larger.
1741 2012-03-06 Murray Cumming <murrayc@murrayc.com>
1743 ReportGenerator: Put field titles inside groups, if there are groups.
1745 2012-03-06 Murray Cumming <murrayc@murrayc.com>
1747 ReportGenerator: Take the Report itself instead of the name and group.
1749 * src/main/java/org/glom/web/server/ConfiguredDocument.java
1750 Remove getReportLayoutGroup().
1751 * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java
1752 getReportHTML(): Pass the report instead
1753 of its name and layout group.
1754 * src/main/java/org/glom/web/server/ReportGenerator.java
1755 generateReport(): Use the report object to use the title
1756 instead of the name.
1758 2012-03-06 Murray Cumming <murrayc@murrayc.com>
1760 ReportGenerator: Remove designBand parameters.
1762 * src/main/java/org/glom/web/server/ReportGenerator.java:
1763 Make designBand a class member instead of passing it to all
1766 2012-03-06 Murray Cumming <murrayc@murrayc.com>
1768 ReportGenerator: Add lines, a bit like in the desktop version.
1770 * src/main/java/org/glom/web/server/ReportGenerator.java
1771 addToReport(): Use JRDesignLine.
1773 2012-03-06 Murray Cumming <murrayc@murrayc.com>
1775 ReportGenerator: Correct the title positions and use some bold style.
1777 * src/main/java/org/glom/web/server/ReportGenerator.java:
1778 Break the code up into reusable functions, correct the placement of
1779 titles, and use normal/bold styles as in the reports in the desktop
1782 2012-03-06 Murray Cumming <murrayc@murrayc.com>
1784 ReportGenerator: Add a header band to show the field titles.
1786 * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java
1787 getReportHTML(): Pass the localeId to the ReportGenerator
1789 * src/main/java/org/glom/web/server/ReportGenerator.java
1790 constructor: Take the localeID so we can get translated field
1792 generateReport(), addToReport(), addFieldToBand(): Add field
1793 titles in a column header band.
1795 2012-03-05 Murray Cumming <murrayc@murrayc.com>
1797 Reports drop-down list: Some improvement.
1799 * src/main/java/org/glom/web/client/ui/TableSelectionView.java
1800 * src/main/java/org/glom/web/client/ui/TableSelectionViewImpl.java:
1801 Adedd setSelectedReport(),
1802 setReportList(): Add a blank line so that the user can select the
1804 * src/main/java/org/glom/web/client/activity/ReportActivity.java
1805 start(): Show the current report by calling setSelectedReport().
1806 This does not seem to work yet.
1808 2012-03-05 Murray Cumming <murrayc@murrayc.com>
1810 DetailsActivity, ListActivity: Move some variables into a base class.
1812 * src/main/java/org/glom/web/client/activity/DetailsActivity.java:
1813 * src/main/java/org/glom/web/client/activity/HasTableActivity.java:
1814 * src/main/java/org/glom/web/client/activity/ListActivity.java: Move
1815 the clientFactory, documentID, tableName and authenticationPopup into
1816 a base class, to avoid duplication.
1818 2012-03-05 Murray Cumming <murrayc@murrayc.com>
1820 Translate the Reports label.
1822 * src/main/java/org/glom/web/client/ui/TableSelectionViewImpl.java
1823 Get the "Reports" label string from the constants.
1824 * src/main/resources/org/glom/web/client/ui/OnlineGlomConstants.pro
1825 perties: Add Reports to the constants.
1827 2012-03-05 Murray Cumming <murrayc@murrayc.com>
1829 Reports: Implement grouping.
1831 * src/main/java/org/glom/web/server/ReportGenerator.java:
1832 Handle LayoutItem_GroupBy items and try to do the right thing
1833 with JRDesignGroup. It seems to work.
1835 2012-03-04 Murray Cumming <murrayc@murrayc.com>
1837 Actually show some data with JasperReports.
1839 * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java:
1840 getReportHTML(): Move most code into a ReportGenerator class.
1841 * src/main/java/org/glom/web/server/ReportGenerator.java:
1842 Recurse into sub-groups, adding fields to the JasperDesign's details
1843 band. Note that we must set an arbitrary width and height, or it just
1844 will not show any data.
1846 2012-03-04 Murray Cumming <murrayc@murrayc.com>
1848 Reports Chooser: Show the titles, not the names.
1850 * src/main/java/org/glom/web/client/ui/TableSelectionViewImpl.java
1851 (TableSelectionViewImpl.setReportList): Show the titles in the UI,
1852 and the names as the values.
1853 * src/main/java/org/glom/web/server/ConfiguredDocument.java
1854 (ConfiguredDocument.getReportLayoutGroup): Do not return a default
1855 group now that we provide the report name, so it should always
1858 2012-02-15 Murray Cumming <murrayc@murrayc.com>
1860 Depend on jasperreports.
1862 * pom.xml: Add the dependency. My plan is to use this on the
1865 2012-01-31 Murray Cumming <murrayc@murrayc.com>
1867 Implement navigation to report places.
1869 * src/main/java/org/glom/web/client/activity/ReportActivity.java
1870 start(): Do not bother to handle all events here.
1871 * src/main/java/org/glom/web/client/ui/TableSelectionView.java
1872 * src/main/java/org/glom/web/client/ui/TableSelectionViewImpl.java:
1873 Added getSelectedReport().
1874 * src/main/java/org/glom/web/client/activity/TableSelectionActivity
1875 .java: start(): When handling a change to the reports chooser,
1876 call getSelectedReport() and goTo() its ReportPlace.
1877 * src/main/java/org/glom/web/client/ui/ReportView.java
1878 * src/main/java/org/glom/web/client/ui/ReportViewImpl.java:
1879 Added setReportHTML() which puts the html in a gwt HTML widget.
1880 * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java
1881 getReportHTML(): Return "TODO" just to show that this works.
1883 2012-01-31 Murray Cumming <murrayc@murrayc.com>
1885 Make ReportPlace usable.
1887 * src/main/java/org/glom/web/client/mvp/AppPlaceHistoryMapper.java:
1888 Mention ReportPlace.
1889 * src/main/java/org/glom/web/client/place/ReportPlace.java:
1890 Correct the @prefix annotation.
1892 2012-01-31 Murray Cumming <murrayc@murrayc.com>
1894 OnlineGlomService: Return report HTML rather than the LayoutGroup.
1896 * src/main/java/org/glom/web/client/OnlineGlomService.java:
1897 * src/main/java/org/glom/web/client/OnlineGlomServiceAsync.java:
1898 * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java:
1899 Change getReportLayout() to getReportHMTL() because we will not need to
1900 parse or render the report layout on the client side.
1901 * src/main/java/org/glom/web/server/ConfiguredDocument.java:
1902 getReportLayout(): Return the libglom LayoutGroup type because we will
1903 not need to convert to a shared type, because this will not be used on
1905 * src/main/java/org/glom/web/client/activity/ReportActivity.java:
1908 Note that there is still no implementation for this.
1911 2012-01-27 Murray Cumming <murrayc@murrayc.com>
1913 Add a (empty) Report Place, View, and Activity.
1915 * src/main/java/org/glom/web/client/place/HasSelectableTablePlace.java:
1917 * src/main/java/org/glom/web/client/place/HasTablePlace.java
1918 * src/main/java/org/glom/web/client/place/ListPlace.java: Move some of
1919 this into a superclass:
1920 * src/main/java/org/glom/web/client/place/HasRecordsPlace.java
1921 and also use it as the base of this new ReportPlace:
1922 * src/main/java/org/glom/web/client/place/ReportPlace.java
1924 * src/main/java/org/glom/web/client/ui/ReportView.java
1925 * src/main/java/org/glom/web/client/ui/ReportViewImpl.java
1926 * src/main/java/org/glom/web/client/activity/ReportActivity.java:
1927 Add these, containing mostly boiler-plate for now.
1929 * src/main/java/org/glom/web/client/OnlineGlomService.java
1930 * src/main/java/org/glom/web/client/OnlineGlomServiceAsync.java
1931 * src/main/java/org/glom/web/server/ConfiguredDocument.java
1932 * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java:
1933 Add API to get the LayoutGroup for the report.
1935 2012-01-23 Murray Cumming <murrayc@murrayc.com>
1937 Add and fill a Reports drop-down list box.
1939 * src/main/java/org/glom/web/server/ConfiguredDocument.java:
1941 * src/main/java/org/glom/web/client/OnlineGlomService.java:
1942 * src/main/java/org/glom/web/client/OnlineGlomServiceAsync.java:
1943 * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java:
1944 Added getReports(document, table, localeID), calling
1945 ConfiguredDocument.getReports().
1946 * src/main/java/org/glom/web/client/ui/TableSelectionView.java:
1947 * src/main/java/org/glom/web/client/ui/TableSelectionViewImpl.java:
1948 Added setReportsList() and a list widget.
1949 * src/main/java/org/glom/web/client/activity/TableSelectionActivity
1950 .java (TableSelectionActivity.fillView(): Fill the view's reports list.
1955 2012-04-12 Murray Cumming <murrayc@murrayc.com>
1957 Translations: Add Esperanto.
1959 * src/main/java/org/glom/web/OnlineGlom.gwt.xml
1960 * src/main/resources/org/glom/web/client/ui/OnlineGlomConstants_eo.
1961 properties: Add this translation because someone took the time to make it.
1963 2012-03-15 Murray Cumming <murrayc@murrayc.com>
1965 Adapt to the java-libglom 1.21.7 API.
1967 * src/main/java/org/glom/web/server/ReportGenerator.java:
1968 addToReport(): get_group_secondary_fields() is now
1969 get_secondary_fields().
1972 2012-03-15 Murray Cumming <murrayc@murrayc.com>
1974 Use the latest java-libglom version.
1976 * pom.xml: Use java-libglom 1.21.7.
1978 2012-03-03 Ben Konrath <ben@bagu.org>
1980 Display date and time in details view.
1982 https://bugzilla.gnome.org/show_bug.cgi?id=671257
1984 * src/main/java/org/glom/web/client/ui/details/DetailsCell.java:
1986 2012-03-05 Murray Cumming <murrayc@murrayc.com>
1988 Require the latest java-libglom.
1990 * pom.xml: java-libglom 1.21.5 has LayoutItem_GroupBy.
1992 2012-03-04 Murray Cumming <murrayc@murrayc.com>
1994 ListViewDbAccess.getSelectQuery(): Avoid using empty quickfind strings.
1996 * src/main/java/org/glom/web/server/database/ListViewDBAccess.java
1997 ListViewDBAccess.getSelectQuery(): Do not create a where clause for
1998 an empty quickfind string. I also corrected libglom to create only
1999 empty where clauses for empty quickfind strings, but this avoids the
2002 2012-02-24 Ben Konrath <ben@bagu.org>
2004 Improve the tabs in the Notebook widget.
2008 2012-01-30 Murray Cumming <murrayc@murrayc.com>
2010 Translations: Try to translate the strings.
2012 * src/main/resources/org/glom/web/client/ui/OnlineGlomConstants_cs.properties:
2013 * src/main/resources/org/glom/web/client/ui/OnlineGlomConstants_de.properties:
2014 * src/main/resources/org/glom/web/client/ui/OnlineGlomConstants_es.properties:
2015 * src/main/resources/org/glom/web/client/ui/OnlineGlomConstants_sl.properties:
2016 * src/main/resources/org/glom/web/client/ui/OnlineGlomConstants_zh_CN.properties:
2017 Take the Open translation from GTK+'s .po files.
2018 Take the Details translation from Glom's po files.
2019 I have added the other strings to Glom so we can get translations that way:
2020 http://git.gnome.org/browse/glom/commit/?id=c3cefe607428a84bdf8de1b04e8bef6f70b04564
2022 2012-01-27 Murray Cumming <murrayc@murrayc.com>
2024 TableSelectionViewImpl: Put the search label and entry in a div.
2026 * src/main/java/org/glom/web/client/ui/TableSelectionViewImpl.java:
2027 Put the search widgets in a FlowTable so that the CSS can be used to
2028 style them while keeping them together.
2029 * src/main/webapp/style.css: Mention the new div.
2031 2012-01-27 Murray Cumming <murrayc@murrayc.com>
2033 Translate more strings in more locales.
2035 * src/main/resources/org/glom/web/client/ui/OnlineGlomConstants.properties:
2036 * src/main/java/org/glom/web/client/ui/details/DetailsCell.java:
2037 * src/main/java/org/glom/web/client/ui/details/RelatedListTable.java:
2038 * src/main/java/org/glom/web/client/ui/list/ListViewTable.java:
2039 Translate the "Details" and "Open" string too.
2041 * src/main/java/org/glom/web/OnlineGlom.gwt.xml:
2042 * src/main/resources/org/glom/web/client/ui/OnlineGlomConstants.properties:
2043 * src/main/resources/org/glom/web/client/ui/OnlineGlomConstants_cs.properties:
2044 * src/main/resources/org/glom/web/client/ui/OnlineGlomConstants_es.properties:
2045 * src/main/resources/org/glom/web/client/ui/OnlineGlomConstants_sl.properties:
2046 * src/main/resources/org/glom/web/client/ui/OnlineGlomConstants_zh_CN.properties:
2047 Add these new locales as placeholders though they currently contain English.
2049 2012-01-27 Murray Cumming <murrayc@murrayc.com>
2051 OnlineGlomServiceImpl: Avoid (unlikely) null object dereferences.
2053 * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java: get*():
2054 Check the ConfiguredDocument* for null before using it.
2056 2012-01-26 Murray Cumming <murrayc@murrayc.com>
2058 Tell Eclipse about the generated java files.
2060 * .classpath: This lets it find OnlineGlomConstants.java.
2061 It would be nice if Eclipse just used the maven build files.
2063 2012-01-26 Murray Cumming <murrayc@murrayc.com>
2065 Prevent a crash when no locale is specified in the URL.
2067 * src/main/java/org/glom/web/client/Utils.java: getCurrentLocaleID():
2068 Avoid returning a null string, obtained from
2069 Window.Location.getParameter(). This caused a crash when it was
2070 later passed to libglom's API.
2071 * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java:
2072 init(), getDocumentInfo(), getListViewLayout(), getDocuments(),
2073 getDetailsLayoutAndData(): Use StringUtils.defaultString() to
2074 guard against future null strings.
2076 2012-01-26 Murray Cumming <murrayc@murrayc.com>
2078 Use the ?locale= query param instead of the &lang= token param.
2080 * src/main/java/org/glom/web/client/place/ListPlace.java
2081 * src/main/java/org/glom/web/client/place/DetailsPlace.java
2082 * src/main/java/org/glom/web/client/place/HasSelectableTablePlace.java
2083 Remove the lang token key and value.
2085 * src/main/java/org/glom/web/client/ui/TableSelectionView.java
2086 * src/main/java/org/glom/web/client/ui/TableSelectionViewImpl.java:
2087 When the user selects a different locale from the chooser, use
2088 Window.Location.assign() to change the URL, which then causes a reload.
2090 * src/main/java/org/glom/web/client/Utils.java: Added getCurrentLocaleID().
2091 * src/main/java/org/glom/web/client/activity/DetailsActivity.java
2092 * src/main/java/org/glom/web/client/activity/DocumentSelectionActivity.java
2093 * src/main/java/org/glom/web/client/activity/ListActivity.java
2094 * src/main/java/org/glom/web/client/activity/TableSelectionActivity
2095 * src/main/java/org/glom/web/client/ui/DocumentSelectionView.java
2096 * src/main/java/org/glom/web/client/ui/DocumentSelectionViewImpl.java:
2097 * src/main/java/org/glom/web/client/ui/ListView.java:
2098 * src/main/java/org/glom/web/client/ui/ListViewImpl.java:
2100 Remove localeID member variables and method/constructor parameters, instead
2101 using Utils.getCurrentLocaleID() when we need a localID to pass to
2104 2012-01-26 Murray Cumming <murrayc@murrayc.com>
2106 Internationalize the UI strings.
2108 * pom.xml: gwt-maven-plugin: Add the i18n goal and specify a
2109 <i18nConstantsBundle>, removing the unused <i18nMessagesBundle>.
2110 * src/main/resources/org/glom/web/client/Messages.properties: Remove this
2111 because it is unused. Messages are apparently strings that can have
2112 parameters, but we do not need that yet, so Contants will be enough for now.
2113 * src/main/java/org/glom/web/OnlineGlom.gwt.xml: Add extend-property lines
2114 to say that we support the en and de locales.
2115 * src/main/resources/org/glom/web/client/ui/OnlineGlomConstants.properties:
2116 The original English strings.
2117 * src/main/resources/org/glom/web/client/ui/OnlineGlomConstants_de.properties:
2118 Some German translations of the English strings.
2119 The i18n goal then uses the .properties file to generate an
2120 OnlineGlomConstants.java file in target/ and somehow GWT.create() magically
2121 returns an implementation that returns the translated strings.
2122 The documentation suggests putting these in src/java/*/client/, but it seems
2123 best to put it in src/resources/*/client/.
2124 * src/main/java/org/glom/web/client/ui/TableSelectionViewImpl.java:
2125 Instantiate OnlineGlomConstants via GWT.create() and use it to get the strings
2126 instead of hard-coding them.
2127 Note that we cannot import OnlineGlomConstants because it does not exist yet,
2128 but that does not seem to stop the build, though it confuses Eclipse.
2130 You can see the translated string by adding ?locale=de to the URL, like so:
2131 http://127.0.0.1:8888/OnlineGlom.html?gwt.codesvr=127.0.0.1:9997?locale=de#list:document=film_manager
2133 2012-01-24 Murray Cumming <murrayc@murrayc.com>
2135 Improve null/empty String checks.
2137 * pom.xml: Add a dependency on commons-lang, to use
2138 org.apache.commons.lang.StringUtils.
2139 * src/main/java/org/glom/web/server/ConfiguredDocument.java
2140 * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java
2141 * src/main/java/org/glom/web/server/database/RelatedListDBAccess.java
2142 * src/main/java/org/glom/web/server/database/RelatedListNavigation.java:
2143 Use StringUtils.isEmpty().
2145 * src/main/java/org/glom/web/client/StringUtils.java: Add a tiny
2146 StringUtils class with a static isEmpty() function because we
2147 cannot use org.apache.commons.lang.StringUtils in client-side
2148 GWT code because it (apparently) cannot be compiled to javascript.
2149 * src/main/java/org/glom/web/client/activity/DetailsActivity.java
2150 * src/main/java/org/glom/web/client/activity/ListActivity.java
2151 * src/main/java/org/glom/web/client/activity/TableSelectionActivity.java
2152 * src/main/java/org/glom/web/client/place/DetailsPlace.java
2153 * src/main/java/org/glom/web/client/place/HasSelectableTablePlace.java
2154 * src/main/java/org/glom/web/client/place/ListPlace.java
2155 * src/main/java/org/glom/web/client/ui/cell/NumericCell.java
2156 * src/main/java/org/glom/web/client/ui/cell/TextCell.java
2157 * src/main/java/org/glom/web/client/ui/details/DetailsCell.java
2158 * src/main/java/org/glom/web/client/ui/details/Group.java
2159 * src/main/java/org/glom/web/client/ui/details/Notebook.java: Use
2160 our StringUtils.isEmpty() function.
2162 2012-01-24 Murray Cumming <murrayc@murrayc.com>
2164 Update to the latest java-libglom API.
2166 * pom.xml: Require java-libglom 1.21.4.
2167 * src/main/java/org/glom/web/server/ConfiguredDocument.java
2168 getDocumentInfo(), getListViewLayoutGroup():
2169 * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java
2171 * src/main/java/org/glom/web/server/database/DBAccess.java
2172 getFieldsToShowForSQLQueryAddGroup(),
2173 getPrimaryKeyLayoutItemField(): Replace get_database_title()
2174 with either get_database_title_original() or
2175 get_database_title(localeID).
2177 2012-01-24 Murray Cumming <murrayc@murrayc.com>
2179 ConfiguredDocument: Avoid a null pointer exception.
2181 * src/main/java/org/glom/web/server/ConfiguredDocument.java
2182 Initialize localeID to "" to avoid returning a null String which
2183 causes a crash in java-libglom's swing-generated code.
2185 2012-01-23 Murray Cumming <murrayc@murrayc.com>
2187 Some simple renaming.
2189 * src/main/java/org/glom/web/client/ui/TableSelectionViewImpl.java
2190 * src/main/webapp/style.css: Rename, tableChooser to tablesChooser. Likewise
2191 for localeChooser. This seems more appropriate and is less ambiguous
2192 particularly in the .css file.
2194 2012-01-23 Murray Cumming <murrayc@murrayc.com>
2196 ConfiguredDocument: Rename the localedID private member variable.
2198 2012-01-23 Murray Cumming <murrayc@murrayc.com>
2200 Adapt to the latest java-libglom API from git master.
2202 * src/main/java/org/glom/web/server/database/ListDBAccess.java:
2203 libglom now uses only Vector instead of List, which uses add() instead of
2206 2012-01-22 Murray Cumming <murrayc@murrayc.com>
2208 ConfiguredDocument: Rename the localedID private member variable.
2210 2012-01-20 Murray Cumming <murrayc@murrayc.com>
2212 Build a source tarball with mvn assembly:single
2214 * assembly.xml: Add this file.
2215 * pom.xml: Use the maven-assembly-plugin and tell it to use
2216 our assembly.xml file.
2218 2012-01-19 Murray Cumming <murrayc@murrayc.com>
2220 OnlineGlomServiceImpl: Get .glom files recursively.
2222 * pom.xml: Depend on commons-io from org.apache.commons.
2223 * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java
2224 init(): Use org.apache.commons.io.FileUtils.listFiles() to get the
2225 files recursively, and with the easier filter for the extension.
2226 Use org.apache.commons.io.FilenameUtils.removeExtension() to
2227 simplify that code too.
2229 2012-01-19 Murray Cumming <murrayc@murrayc.com>
2231 README: Mention that you must install java-libglom packages separately.
2233 But then it works, because java-libglom is now in the central maven
2236 2012-01-18 Murray Cumming <murrayc@murrayc.com>
2238 locales drop-down: Show the correct selected locale when the URL changes.
2240 * src/main/java/org/glom/web/client/activity/TableSelectionActivity
2241 .java: setPlace(): Move some code into fillView().
2243 2012-01-18 Murray Cumming <murrayc@murrayc.com>
2245 locales drop-down: Do not lose the primary key.
2247 * src/main/java/org/glom/web/client/activity/DetailsActivity.java
2248 start(): onLocaleChange(): Pass the current primary key value,
2249 instead of an empty value.
2251 2012-01-18 Murray Cumming <murrayc@murrayc.com>
2253 locales drop-down: Do not lose the drop-down selection.
2255 * src/main/java/org/glom/web/client/activity/TableSelectionActivity
2256 .java (TableSelectionActivity.fillView): Set the selected locale
2257 after changing the drop-down items (though we do not really need
2258 to change them just because the locale changes.)
2260 2012-01-18 Murray Cumming <murrayc@murrayc.com>
2262 locales drop-down: Change the tables list when this changes.
2264 * src/main/java/org/glom/web/client/activity/TableSelectionActivity
2265 .java: TableSelectionActivity.start(): Move the async table titles
2266 retrieval into a private fillView() method and also call this when
2267 the chosen locale changes.
2268 Note that the document title is not actually translatable yet, but
2269 that is a problem that I should fix soon in libglom.
2271 2012-01-18 Murray Cumming <murrayc@murrayc.com>
2273 Improve the placement of the locales drop-down.
2275 * src/main/java/org/glom/web/client/ui/TableSelectionViewImpl.java
2276 Put the title and locales drop-down in a div (gwt.FlowTable).
2277 * src/main/webapp/style.css: Add magic css properties to make this work.
2278 Also remove the left margin from the title so that it lines up with the
2281 2012-01-18 Murray Cumming <murrayc@murrayc.com>
2283 locales selector: Show human-readable locale titles.
2285 * src/main/java/org/glom/web/server/ConfiguredDocument.java
2286 getDocumentInfo(): Use java.util.Locale to show a real title of
2287 each locale, in the locale's own language.
2289 2012-01-17 Murray Cumming <murrayc@murrayc.com>
2291 Add a language/locale selector drop-down.
2293 * src/main/java/org/glom/web/shared/DocumentInfo.java:
2294 Add getLocaleIDs(), setLocaleIDs(), getLocaleTitles(), setLocaleTitles().
2295 * /src/main/java/org/glom/web/server/ConfiguredDocument.java:
2296 getDocumentInfo(): Store the available Locales in the DocumentInfo.
2297 * src/main/java/org/glom/web/client/ui/TableSelectionView.java:
2298 * src/main/java/org/glom/web/client/ui/TableSelectionViewImpl.java:
2299 Add a ListBox to show the available locales. Add getLocaleSelector(),
2300 setLocaleList(), getSelectedLocale(), setSelectedLocale().
2301 * src/main/java/org/glom/web/client/event/LocaleChangeEvent.java
2302 * src/main/java/org/glom/web/client/event/LocaleChangeEventHandler.
2303 java: Add these classes.
2304 * src/main/java/org/glom/web/client/activity/TableSelectionActivity.java:
2305 start(): Fill the locales ListBox. Handle its change event, firing a
2307 setPlace(): Show the selected locale as specified by the URL token.
2308 * src/main/java/org/glom/web/client/activity/DetailsActivity.java:
2309 * src/main/java/org/glom/web/client/activity/ListActivity.java:
2310 Handle LocaleChangeEvent, going to a new *Place with that locale.
2312 The placement of the ListBox is not pretty, and it currently uses the ID
2313 as a title, instead of "English", "Deutsch", "Espanola", etc, but it
2317 2012-01-17 Murray Cumming <murrayc@murrayc.com>
2319 Search box: Show the search text from the URL token.
2321 * src/main/java/org/glom/web/client/ui/TableSelectionView.java:
2322 * src/main/java/org/glom/web/client/ui/TableSelectionViewImpl.java:
2323 Add setQuickFindText().
2324 * src/main/java/org/glom/web/client/activity/TableSelectionActivity
2325 .java: setPlace(): Store the queryText if the place is a ListPlace,
2326 and call TableSelectionView.setQuickFindText().
2328 2012-01-17 Murray Cumming <murrayc@murrayc.com>
2330 Allow use of translations via, for instance, &lang=de in the URL.
2332 * pom.xml: Use the unstable java-libglom 1.21 version.
2334 * src/main/java/org/glom/web/client/OnlineGlomService.java:
2335 * src/main/java/org/glom/web/client/OnlineGlomServiceAsync.java
2336 * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java:
2337 init(): Instead of calling TranslatableItem.set_current_locale()
2338 (now removed), call ConfiguredDocument.setDefaultLocaleID().
2339 However, this is only for default locales, which are not needed to
2340 change the locale in the URL.
2341 getDocumentInfo(), getListViewLayout(), getSortedListViewData(),
2342 getDetailsData(), getDetailsLayoutAndData(), getRelatedListData(),
2343 getSortedRelatedListData(): Add a localeID parameter, so we can get the
2344 layout for a particular locale.
2345 * src/main/java/org/glom/web/server/ConfiguredDocument.java:
2346 Add get/setDefaultLocaleID().
2347 getDocumentInfo(), getListViewData(), getRelatedListData(),
2348 getDetailsLayoutGroup(), getListViewLayoutGroup(),
2349 createLayoutItemPortalDTO(), convertToGWTGlomLayoutItemField(): Add a
2350 localeID parameter, so we can get the layout for a particular locale.
2352 * src/main/java/org/glom/web/client/place/HasSelectableTablePlace.java:
2353 * src/main/java/org/glom/web/client/place/DetailsPlace.java:
2354 * src/main/java/org/glom/web/client/place/ListPlace.java:
2355 Parse and construct a lang parameter too.
2357 * src/main/java/org/glom/web/client/activity/DocumentSelectionActivity.java:
2358 start(): Pass the defaultLocaleID to addDocumentLink(). It is then
2359 passed to subsequent methods and constructors.
2360 * src/main/java/org/glom/web/client/activity/DetailsActivity.java:
2361 * src/main/java/org/glom/web/client/activity/ListActivity.java:
2362 Store the localeID from the *Place and pass it to other constructors
2363 and methods, such as OnlineGlomServiceAsync.getDetailsLayoutAndData().
2365 * src/main/java/org/glom/web/client/ui/DocumentSelectionView.java:
2366 * src/main/java/org/glom/web/client/ui/DocumentSelectionViewImpl.java:
2367 * src/main/java/org/glom/web/client/ui/TableSelectionView.java
2368 * src/main/java/org/glom/web/client/ui/TableSelectionViewImpl.java
2369 * src/main/java/org/glom/web/client/ui/ListView.java:
2370 * src/main/java/org/glom/web/client/ui/ListViewImpl.java:
2371 Take localeID parameters and pass them to subsequent constructors and
2372 methods, so that the layout is always retrieved for that locale.
2374 This is rather repetitive.
2376 Note that "" means the original (default) locale of the Glom document,
2377 which is usually English.
2379 2012-01-17 Murray Cumming <murrayc@murrayc.com>
2381 Documents: Remove final keyword to fix startup configuration.
2383 * src/main/java/org/glom/web/shared/Documents.java: Remove the
2384 final keywords on the private member variables because that breaks
2385 the startup, apparently (there are warnings) because it stops them
2386 from being serialized. I added these in the previous commit.
2388 2012-01-13 Murray Cumming <murrayc@murrayc.com>
2390 Documents: Add some final keywords.
2392 * src/main/java/org/glom/web/shared/Documents.java: Eclipse suggested
2395 2012-01-13 Murray Cumming <murrayc@murrayc.com>
2397 OnlineGlomServiceImpl: Add to overview comments.
2399 * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java:
2400 Note that this is where all the document are loaded. They are not
2401 loaded freshly for each page.
2403 2012-01-12 Murray Cumming <murrayc@murrayc.com>
2407 * src/main/java/org/glom/web/client/ui/TableSelectionViewImpl.java:
2408 Add a TextBox for the text of a quick find.
2409 Add getQuickFindBox(), to get the widget, and getQuickFindText() to
2411 setBackLink(): Add a String quickFind parameter.
2412 * src/main/java/org/glom/web/client/ui/TableSelectionView.java
2413 (TableSelectionView): Add getQuickFindBox() and getQuickFindText()
2414 to the base interface, because that is how TableSelectionViewImpl is used.
2415 * src/main/webapp/style.css: Add style for the search box and its label.
2417 * src/main/java/org/glom/web/client/event/QuickFindChangeEvent.java:
2418 * src/main/java/org/glom/web/client/event/QuickFindChangeEventHandler.java:
2419 Add these files, based on the existing TableChangeEvent and
2420 TableChangeEventHandlers.
2421 * src/main/java/org/glom/web/client/activity/DetailsActivity.java
2422 start(): Handle QuickFindChangeEvent, passing its quickFind text to
2423 a ListPlace() that the user should be taken to.
2424 * src/main/java/org/glom/web/client/activity/ListActivity.java
2425 start(): Handle it here too and adapt the TableChangeEvent handler to
2426 pass the extra "" quickFind parameter to ListPlace.
2427 * src/main/java/org/glom/web/client/place/ListPlace.java:
2428 Constructor: Take an extra String quickFind parameter and store it,
2429 returning it from a new getQuickFind() method.
2430 getToken(): Put the quickFind text in the URL token.
2431 getPlace(): Parse the quickFind text from the URL token.
2432 * src/main/java/org/glom/web/client/ui/DocumentSelectionViewImpl.ja
2433 va: addDocumentLink(): Pass an extra "" quickFind parameter to the
2434 ListPlace constructor.
2435 * src/main/java/org/glom/web/client/activity/TableSelectionActivity
2436 .java: start(): Add a Change handler for the TableSelectionView's
2437 TextBox (via its base HasChangeHandlers interface), firing the new
2438 QuickFindChangeEvent.
2439 setPlace(): Adapt the call to TableSelectionView.setbackLink(), to
2440 pass the extra "" quickFind parameter.
2442 * src/main/java/org/glom/web/client/ui/ListViewImpl.java:
2443 setCellTable(): Add a String quickFind parameter and pass it to
2444 the ListViewTable() constructor.
2445 * src/main/java/org/glom/web/client/ui/ListView.java: Change
2446 setCellTable() in the base interface, because that is how ListViewImpl
2449 * src/main/java/org/glom/web/client/ui/list/ListTable.java:
2450 Add a String quickFind member variable.
2451 * src/main/java/org/glom/web/client/ui/list/ListViewTable.java:
2452 Constructor: Add a String quickFind parameter, storing it in the
2453 base ListTable's member variable.
2454 onRangeChanged(): Pass quickFind to the
2455 OnlineGlomServiceAsync.getSortedListViewData() and
2456 OnlineGlomServiceAsync.getListViewData() methods.
2458 * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java:
2459 getListViewData(), getSortedListViewData(): Add a String quickFind
2460 parameter, passing it to ConfiguredDocument.getListViewData().
2461 * src/main/java/org/glom/web/client/OnlineGlomService.java:
2462 Change getListViewData(), getSortedListViewData() in the base interface,
2463 because that is how OnlineGlomServiceImpl is used, via this:
2464 * src/main/java/org/glom/web/client/OnlineGlomServiceAsync.java:
2465 Change getListViewData(), getSortedListViewData() here too.
2466 This class can apparently be used to asynchronously call methods on
2467 OnlineGlomService, and GWT seems to implement that after recognizing
2468 just the *Async name convention and the extra AsyncCallback parameters.
2470 * src/main/java/org/glom/web/server/ConfiguredDocument.java
2471 getListViewData(): Add a String quickFind parameter, and pass it to
2472 ListViewDBAccess.getData().
2473 * src/main/java/org/glom/web/server/database/ListDBAccess.java
2474 getListData(): Add a String quickFind parameter and pass it to
2476 getSelectQuery(): Add a String quickFind parameter.
2477 * src/main/java/org/glom/web/server/database/ListViewDBAccess.java
2478 getSelectQuery(): Add a String quickFind parameter and use it with
2479 Glom.get_find_where_clause_quick() to pass a where_clause to
2480 Glom.build_sql_select_with_where_clause(), to actually filter the
2482 getData(): Add a String quickFind parameter, passing it to getListData().
2483 * src/main/java/org/glom/web/server/database/RelatedListDBAccess.ja
2484 va: getData(): Pass an empty string to getListData() for the
2485 quickFind parameter.
2487 2012-01-12 Murray Cumming <murrayc@murrayc.com>
2489 ListTable: Minor change.
2491 * src/main/java/org/glom/web/client/ui/list/ListTable.java
2492 createCellTable(): Make this protected instead of public.
2494 2012-01-12 Murray Cumming <murrayc@murrayc.com>
2496 Many files: Use final for the parameters and use the @override attribute.
2498 2012-01-22 Ben Konrath <ben@bagu.org>
2500 Add anchor links for single line text that starts with http, ftp and www.
2504 2012-01-22 Ben Konrath <ben@bagu.org>
2506 Add ellipsis to single line text in details view.
2510 2012-01-04 Murray Cumming <murrayc@murrayc.com>
2512 Remove all javadoc author tags.
2514 Because they are awkward and meaningless when many people touch
2516 See https://gitorious.org/online-glom/gwt-glom/commit/7628b732cb90cbc6d5635420a75568504e8b3655#comment_81164
2518 2012-01-04 Murray Cumming <murrayc@murrayc.com>
2520 Revert the COPYING.LESSER to COPYING rename.
2522 Apparently both should be there if it is LGPL.
2524 2012-01-03 Murray Cumming <murrayc@murrayc.com>
2526 *View: Remove unused imports.
2528 * src/main/java/org/glom/web/client/ui/DetailsView.java:
2529 * src/main/java/org/glom/web/client/ui/DocumentSelectionView.java
2530 * src/main/java/org/glom/web/client/ui/ListView.java:
2531 * src/main/java/org/glom/web/client/ui/TableSelectionView.java:
2532 Remove unused imports, as suggested by Eclipse.
2534 2012-01-02 Murray Cumming <murrayc@murrayc.com>
2536 Move the *View::Presenter types, and some API into one base View.
2538 * src/main/java/org/glom/web/client/ui/DetailsView.java:
2539 * src/main/java/org/glom/web/client/ui/DocumentSelectionView.java:
2540 * src/main/java/org/glom/web/client/ui/ListView.java:
2541 * src/main/java/org/glom/web/client/ui/TableSelectionView.java: Move
2542 Presenter, setPresenter() and clear() into a shared base interface,
2543 to avoid the unnecessary duplicate Presenter types and to more clearly
2544 show how the *Views share the same structure, even if they are not
2545 used polymorphically.
2547 * src/main/java/org/glom/web/client/ui/DetailsViewImpl.java:
2548 * src/main/java/org/glom/web/client/ui/DocumentSelectionViewImpl.ja
2550 * src/main/java/org/glom/web/client/activity/DetailsActivity.java:
2551 * src/main/java/org/glom/web/client/activity/ListActivity.java:
2552 * src/main/java/org/glom/web/client/activity/DocumentSelectionActiv
2554 * src/main/java/org/glom/web/client/activity/TableSelectionActivity
2557 Feel free to revert this if there is a good reason for the duplicate
2560 2012-01-02 Murray Cumming <murrayc@murrayc.com>
2562 OnlineGlom: Make clientFactory a (protected) member, and test it a bit.
2564 * src/main/java/org/glom/web/client/OnlineGlom.java: Make clientFactory
2565 a class member instead of a local variable in the method.
2566 This lets us use it to get the view instances, for use in tests.
2567 * src/test/java/org/glom/web/client/GwtTestOnlineGlom.java:
2568 beforeOnlineGlom(): Test some more details of the initial view.
2569 Again, this is not very useful.
2571 To really test gwt-glom we will need to start a local postgresql
2572 instance with local data, like the Glom tests in C++.
2574 2012-01-02 Murray Cumming <murrayc@murrayc.com>
2576 pom.xml: Mention the LGPL license.
2578 * pom.xml: Add a licenses section.
2579 * COPYING.LESSER: Move this to COPYING, which
2580 previously contained the GPL. But gwt-glom is all LGPL.
2582 2012-01-02 Murray Cumming <murrayc@murrayc.com>
2584 Add project information to README and pom.xml.
2586 * README: Add a brief description and mention some mvn
2588 * pom.xml: This extra information shows up in mvn site
2591 2011-01-02 Murray Cumming <murrayc@murrayc.com>
2593 Use the latest java-libglom version.
2595 * pom.xml: Use java-libglom 1.19.2 instead of 1.19.1.
2597 2012-01-01 Murray Cumming <murrayc@murrayc.com>
2599 GwtTestOnlineGlom: Test a little more.
2601 * src/main/java/org/glom/web/client/OnlineGlom.java: Make the panels
2602 protected rather than private, as suggested by the gwt-test-utils
2604 http://stackoverflow.com/questions/7931724/gwt-testcase-simulating-clicking-a-button-on-my-page
2605 * src/test/java/org/glom/web/client/GwtTestOnlineGlom.java
2606 Test the initial visibility of the panels.
2608 However, this is not a very useful test.
2609 And I wonder how we should generally test using this idea for an
2610 activity/places app like ours where the real changes happen implicitly
2611 based on the history token/URL.
2613 2012-01-01 Murray Cumming <murrayc@murrayc.com>
2615 Slight modification to *Mapper comments.
2617 * src/main/java/org/glom/web/client/mvp/DataActivityMapper.java
2618 (DataActivityMapper)
2619 * src/main/java/org/glom/web/client/mvp/DocumentSelectionActivityMa
2621 * src/main/java/org/glom/web/client/mvp/TableSelectionActivityMappe
2623 Remove comments mentioning GIN because they are just copied from
2624 the example code and are apparently not helpful:
2625 http://groups.google.com/group/google-web-toolkit/msg/82f0098b20669a73
2626 Also change the mention of a class that is only in the example code.
2628 2012-01-01 Murray Cumming <murrayc@murrayc.com>
2630 GwtTestOnlineGlom test: Minor changes.
2632 * src/test/java/org/glom/web/client/GwtTestOnlineGlom.java:
2633 Avoid the long qualified class name and modify the comment
2634 because it is now obvious to me that the mocked class is the only
2635 custom one created via GWT.create().
2637 2012-01-01 Murray Cumming <murrayc@murrayc.com>
2639 Tests: Added the beginnings of a test using gwt-test-utils.
2641 * pom.xml: Add dependencies on gwt-test-utils and easymock.
2642 * src/test/resources/META-INF/gwt-test-utils.properties: Add this file
2643 which tells gwt-test-utils what class will be tested.
2644 * src/test/java/org/glom/web/client/GwtTestOnlineGlom.java:
2645 Add a simple (but empty) test case. One class, used by the OnlineGlom
2646 class, is mocked so that it can be created. However, I am not sure
2647 why only this class needs to be mocked.
2649 Note that mockito seems more popular, and clearer, than easymock,
2650 but I have not got that working yet. It might be a matter of the
2653 This test is run during mvn integration-test.
2655 2011-12-31 Murray Cumming <murrayc@murrayc.com>
2657 Tests: Use junit4-style syntax instead of junit3-style.
2659 * src/test/java/org/glom/web/client/place/DetailsPlaceTest.java:
2660 * src/test/java/org/glom/web/client/place/ListPlaceTest.java:
2661 * src/test/java/org/glom/web/shared/DataItemTest.java:
2662 Use the @Test annotation rather than relying on the test*() prefix.
2663 Also no longer implement TestCase, to avoid triggering support for
2664 the junit3-way, which stops the annotations from working.
2665 Change the imports from import junit.framework.* to
2666 import org.junit.*, which is apparently the new way.
2668 2011-12-31 Murray Cumming <murrayc@murrayc.com>
2670 Added a test for ListPlace token parsing and creation.
2672 * src/test/java/org/glom/web/client/place/ListPlaceTest.java:
2673 This is much the same as DetailsPlaceTest.
2675 I wonder how we could test the other parts of the *Place API.
2677 2011-12-30 Murray Cumming <murrayc@murrayc.com>
2679 DetailsPlace test: Also test getToken() and recreation via getPlace().
2681 * src/test/java/org/glom/web/client/place/DetailsPlaceTest.java:
2682 testGetPlaceParameters(): Get the tokens from the DetailsPlace and
2683 recreate it, testing the recreated DetailsPlace for the same parameter
2686 2011-12-30 Murray Cumming <murrayc@murrayc.com>
2688 Use the surefire-report plugin.
2690 * pom.xml: This generates a HTML report about the tests in
2691 target/site/surefire-report.html
2692 when you do mvn surefire-report:report. It seems to be popular/normal.
2694 2011-12-30 Murray Cumming <murrayc@murrayc.com>
2696 Added a test for DetailsPlace.
2698 * src/test/java/org/glom/web/client/place/DetailsPlaceTest.java:
2699 Test the getPlace() token parsing.
2701 2011-12-30 Murray Cumming <murrayc@murrayc.com>
2703 Added a first unit test.
2705 * pom.xml: Add a test goal, and a dependency on junit in that scope.
2706 * src/test/java/org/glom/web/shared/DataItemTest.java:
2707 This is a silly test but it is just to get things started. Note that
2708 maven/junit finds the test because it looks in src/test by default.
2710 2011-12-22 Ben Konrath <ben@bagu.org>
2712 Change charsetName to "UTF-8" when replacing line breaks.
2714 JavaScript requires the charsetName to be "UTF-8". CharsetName values
2715 that work in Java (such as "UTF8") will not work when compiled to
2718 This fixes a problem with multi-line details view fields that have hard
2719 line breaks. The "License Text" field on this page demonstrates the
2722 http://onlineglom.openismus.com/OnlineGlom/#details:document=debian_repository_analyzer&table=licenses&value=197
2724 * src/main/java/org/glom/web/client/ui/details/DetailsCell.java:
2726 2011-12-22 Ben Konrath <ben@bagu.org>
2728 Fix another bug with related list navigation.
2730 I've tested all the navigation buttons in all of the related lists
2731 so things should be good now.
2733 * src/main/java/org/glom/web/server/ConfiguredDocument.java:
2735 2011-12-22 Ben Konrath <ben@bagu.org>
2737 Fix a crasher when refreshing the list view with the default table.
2739 This crash will also happen when loading the list view with the default
2740 table from a link or bookmark.
2742 * src/main/java/org/glom/web/client/activity/DetailsActivity.java: Go
2743 to the main document selection page when the document id hasn't been
2745 * src/main/java/org/glom/web/client/activity/ListActivity.java: Go to
2746 the main document selection page when the document id hasn't been
2748 * src/main/java/org/glom/web/client/place/DetailsPlace.java: Use empty
2749 values for the details place when the document id hasn't been set.
2750 * src/main/java/org/glom/web/client/place/ListPlace.java: Use empty
2751 values for the list place when the document id hasn't been set.
2753 2011-12-21 Ben Konrath <ben@bagu.org>
2755 Protect against NPE when glom.document.locale is not in config.
2757 This patch protects against an NPE when glom.document.locale is not in
2758 the config file. This NPE will also happen if glom.document.locale is
2761 The patch also updates the error message to display the class name when
2762 the getMessage() returns null. This was happening when the NPE was
2763 thrown and I had "Configuration Error: null". If an NPE is encountered
2764 with this patch, "Configuration Error: NullPointerException " will be
2767 This commit closes this bug:
2769 https://bugzilla.gnome.org/show_bug.cgi?id=666669
2771 * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java:
2773 2011-12-20 Murray Cumming <murrayc@murrayc.com>
2775 Rename onlineglom.properties to onlineglom.properties.sample.
2777 * src/main/resources/onlineglom.properties: Rename to:
2778 * src/main/resources/onlineglom.properties.sample:
2779 * src/main/resources/README: And add this file explaining that people
2780 should rename it back when deploying.
2782 2011-12-20 Murray Cumming <murrayc@murrayc.com>
2784 Allow choosing the translation in the .properties file.
2786 * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java
2787 init(): Read a glom.document.locale value from the configuration file
2788 and call Glom's TransatableItem::set_current_locale() method.
2789 * src/main/resources/onlineglom.properties: Add a commented-out
2790 example of this new setting.
2792 It would be better to add &lang=de_DE to the URL, but the current
2793 libglom API does not allow us to do this easily. I am working on that.
2795 2011-12-19 Murray Cumming <murrayc@murrayc.com>
2797 Avoid a crash in parsing of token parameters.
2799 * src/main/java/org/glom/web/client/place/HasSelectableTablePlace.j
2800 ava: getTokenParams(): Do not crash if a parameter has a key but no
2801 value, and ignore parameters with neither.
2803 2011-12-17 Murray Cumming <murrayc@murayc.com>
2805 History token building/handling: Improve use of token parameters.
2807 * src/main/java/org/glom/web/client/place/HasSelectableTablePlace.java
2808 (HasSelectableTablePlace.Tokenizer): Add getTokenParams(String)
2809 and buildParamsToken(HashMap), for use by derived classes.
2810 Make the separator private because it is no longer be needed.
2811 * src/main/java/org/glom/web/client/place/DetailsPlace.java
2812 (DetailsPlace.Tokenizer.getToken): Use buildParamsToken()
2813 instead of manual string concatenation.
2814 (DetailsPlace.Tokenizer.getPlace): Use getTokenParams() instead
2815 of hardcoded indices and awkward splitting code.
2816 * src/main/java/org/glom/web/client/place/ListPlace.java
2817 (ListPlace.Tokenizer.getToken): Use buildParamsToken()
2818 instead of manual string concatenation.
2819 (ListPlace.Tokenizer.getPlace): Use getTokenParams() instead
2820 of hardcoded indices and awkward splitting code.
2821 This should fix bug #666420
2823 2011-12-16 Murray Cumming <murrayc@murrayc.com>
2825 Fix a Navgiation->Navigation typo in the code.
2827 * src/main/java/org/glom/web/client/activity/DetailsActivity.java
2828 Rename processNavgiation() to processNavigation().
2830 2011-12-16 Murray Cumming <murrayc@murrayc.com>
2832 Fix a seperator->separator typo in the code.
2834 * src/main/java/org/glom/web/client/place/DetailsPlace.java
2835 * src/main/java/org/glom/web/client/place/HasSelectableTablePlace.java
2836 * src/main/java/org/glom/web/client/place/ListPlace.java: Just a
2839 2011-12-15 Ben Konrath <ben@bagu.org>
2841 Cleanup some comments.
2843 * src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java:
2845 2011-12-14 Ben Konrath <ben@bagu.org>
2847 Replace \n with <br/> for multiline text in the details view.
2849 Vertical scrollbars are added when needed as well.
2851 * src/main/java/org/glom/web/client/ui/details/DetailsCell.java:
2853 2011-12-14 Ben Konrath <ben@bagu.org>
2855 Specify the font for document selection links.
2857 * src/main/webapp/style.css:
2859 2011-12-14 Ben Konrath <ben@bagu.org>
2861 Fix bouncy CellTable while paging.
2863 This doesn't currently work with related list tables in unselected
2866 * src/main/java/org/glom/web/client/ui/list/ListTable.java
2868 2011-12-14 Ben Konrath <ben@bagu.org>
2870 Revamp the appearance of the document selection page.
2872 * src/main/java/org/glom/web/client/ui/DocumentSelectionViewImpl.java:
2873 * src/main/java/org/glom/web/client/ui/DocumentSelectionViewImpl.ui.xml:
2874 * src/main/webapp/style.css:
2876 2011-12-13 Ben Konrath <ben@bagu.org>
2878 Set navigation button column to the smallest size possible.