Ben Konrath [Mon, 28 Nov 2011 08:09:54 +0000 (09:09 +0100)]
Add TypedDataItem.
This should have been added with the refactor. Oops!
* src/main/java/org/glom/web/shared/TypedDataItem.java:
Ben Konrath [Mon, 28 Nov 2011 08:02:29 +0000 (09:02 +0100)]
Create primary key value from URL string using type from Glom document.
See this bug, comments 19 - 25:
https://bugzilla.gnome.org/show_bug.cgi?id=662376#c19
* src/main/java/org/glom/web/client/place/DetailsPlace.java: Don't
create a TypeDataItem for the primary key here when loading from a
URL. Show the same string for the primary key value as was received
from the URL string (when loading from a URL).
* src/main/java/org/glom/web/server/Utils.java: Update method for
creating the Gda Value from the TypeDataItem to properly deal with
creating a Gda Value based on the Glom document type for the primary
key value string when loading from a URL.
* src/main/java/org/glom/web/server/database/DetailsDBAccess.java:
* src/main/java/org/glom/web/server/database/RelatedListDBAccess.java:
* src/main/java/org/glom/web/server/database/RelatedListNavigation.java:
Update for changed method name.
Ben Konrath [Sun, 27 Nov 2011 14:50:37 +0000 (15:50 +0100)]
Rename PrimaryKeyItem to TypedDataItem.
The name PrimaryKeyItem suggests what the class should be used for.
TypedDataItem is a neutral name that describes the class better.
This is a rename-only refactor.
* src/main/java/org/glom/web/client/OnlineGlomService.java:
* src/main/java/org/glom/web/client/OnlineGlomServiceAsync.java:
* src/main/java/org/glom/web/client/Utils.java:
* src/main/java/org/glom/web/client/activity/DetailsActivity.java:
* src/main/java/org/glom/web/client/place/DetailsPlace.java:
* src/main/java/org/glom/web/client/ui/ListViewImpl.java:
* src/main/java/org/glom/web/client/ui/details/RelatedListTable.java:
* src/main/java/org/glom/web/client/ui/list/ListTable.java:
* src/main/java/org/glom/web/server/ConfiguredDocument.java:
* src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java:
* src/main/java/org/glom/web/server/Utils.java:
* src/main/java/org/glom/web/server/database/DetailsDBAccess.java:
* src/main/java/org/glom/web/server/database/RelatedListDBAccess.java:
* src/main/java/org/glom/web/server/database/RelatedListNavigation.java:
* src/main/java/org/glom/web/shared/NavigationRecord.java:
Ben Konrath [Fri, 25 Nov 2011 21:37:51 +0000 (22:37 +0100)]
Improve Gda Value conversion from PrimaryKeyItem.
The value from the PrimaryKeyItem is only used if its type match the
type from the glom document.
* src/main/java/org/glom/web/server/Utils.java:
Ben Konrath [Fri, 25 Nov 2011 20:41:16 +0000 (21:41 +0100)]
Manually check if the java-liblgom .so is visible to the JVM.
It seems that Tomcat has problems when a static initializer throws an
exception. This check is done before the first method call into
java-libglom so that execution doesn't continue if the .so is not
found.
* src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java:
Ben Konrath [Fri, 25 Nov 2011 15:06:52 +0000 (16:06 +0100)]
Improve browser configuration error messages.
This fixes:
https://bugzilla.gnome.org/show_bug.cgi?id=662792
* src/main/java/org/glom/web/client/OnlineGlomService.java:
* src/main/java/org/glom/web/client/OnlineGlomServiceAsync.java: Add
getConfigurationErrorMessage() method.
* src/main/java/org/glom/web/client/activity/DocumentSelectionActivity.java:
Get and display a specific configuration error message when no Glom
documents are found.
* src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java:
Implement getConfigurationErrorMessage() method. Surround configuration
code in the init() method with a try/catch block. This allows the
errors to be caught while keeping the servlet available to retrieve the
configuration error message.
Ben Konrath [Fri, 25 Nov 2011 11:14:06 +0000 (12:14 +0100)]
Don't use Strings to hold primary key values.
The primary key values are now held in a new data object
(PrimaryKeyItem) that holds type information and the primary key value
using the correct type.
* src/main/java/org/glom/web/client/OnlineGlomService.java:
* src/main/java/org/glom/web/client/OnlineGlomServiceAsync.java:
* src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java: Use
PrimaryKeyItem instead of String to hold the primary key value.
* src/main/java/org/glom/web/client/Utils.java: Remove
getKeyValueStringForQuery(). Add getPrimaryKeyItem() which creates a
PrimaryKeyItem based on the GlomFieldType and the DataItem.
* src/main/java/org/glom/web/client/activity/DetailsActivity.java: Use
PrimaryKeyItem instead of String to hold the primary key value. Load
document selection page when the documentID has not been set correctly.
* src/main/java/org/glom/web/client/place/DetailsPlace.java: Re-work
DetailsPlace -> URL and URL -> DetailsPlace conversion with
PrimaryKeyItem.
* src/main/java/org/glom/web/client/place/DocumentSelectionPlace.java:
Return empty string for URL instead of "null".
* src/main/java/org/glom/web/client/ui/ListViewImpl.java:
* src/main/java/org/glom/web/client/ui/details/RelatedListTable.java:
* src/main/java/org/glom/web/client/ui/list/ListTable.java:
* src/main/java/org/glom/web/server/ConfiguredDocument.java: Use
PrimaryKeyItem instead of String to hold primary key values.
* src/main/java/org/glom/web/server/Utils.java: New method to convert a
PrimaryKeyValue to a Gda Value.
* src/main/java/org/glom/web/server/database/DetailsDBAccess.java:
* src/main/java/org/glom/web/server/database/RelatedListDBAccess.java:
* src/main/java/org/glom/web/server/database/RelatedListNavigation.java:
Replace temporary database access code that uses the PrimaryKeyValue to
Gda Value conversion.
* src/main/java/org/glom/web/shared/DataItem.java: Add comment.
* src/main/java/org/glom/web/shared/NavigationRecord.java: Use
PrimaryKeyItem instead of String.
* src/main/java/org/glom/web/shared/PrimaryKeyItem.java: New class to
hold primary key values.
Ben Konrath [Thu, 24 Nov 2011 18:20:03 +0000 (19:20 +0100)]
Use newly added java-libglom API to create queries.
This isn't finished. I still need to stop using Strings for primary key
values in the client code.
* src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java: Tell
libglom to use fake connections so that retrieving the query string will
work.
* src/main/java/org/glom/web/server/database/DetailsDBAccess.java:
* src/main/java/org/glom/web/server/database/ListViewDBAccess.java:
* src/main/java/org/glom/web/server/database/RelatedListDBAccess.java:
* src/main/java/org/glom/web/server/database/RelatedListNavigation.java:
Use the newly added libglom sql methods and classes to create the
query. Add temporary hack to convert primary value strings to Gda
Value.
Ben Konrath [Wed, 23 Nov 2011 14:45:43 +0000 (15:45 +0100)]
Don't explicitly set the height of Portals.
See comments 6 - 10 of this bug for details:
https://bugzilla.gnome.org/show_bug.cgi?id=662930#c6
* src/main/java/org/glom/web/client/ui/details/Portal.java:
Ben Konrath [Wed, 23 Nov 2011 14:37:34 +0000 (15:37 +0100)]
Use an HTML table instead of CSS for the FlowTable layout.
* src/main/java/org/glom/web/client/ui/details/FlowTable.java: Use
GWT's FlexTable to implement the FlowTable.
* src/main/webapp/style.css: Adjust CSS for the change to FlexTable.
Ben Konrath [Fri, 18 Nov 2011 21:13:50 +0000 (22:13 +0100)]
Add boolean example to HTML table mockup.
* mockups/details-view-html-tables-text-entries.html:
Ben Konrath [Thu, 17 Nov 2011 14:51:30 +0000 (15:51 +0100)]
Ensure the pager buttons are always visible for related lists.
To accomplish this, I've turned off text wrapping in the list view and
related list tables for both the header and data text. The related list
table now has a fixed layout so the it doesn't overflow its container.
This is required to ensure that the cell text is clipped when it
overflows the cell and an ellipsis is added to the right side of the
cell when text is clipped.
A fixed table layout for the related list table in the details view
seems what we want for the details view anyway, so the side-effect is
desirable.
The ellipsis will only be displayed in Firefox >= 7.
This fixes bug:
https://bugzilla.gnome.org/show_bug.cgi?id=662930
* src/main/java/org/glom/web/client/ui/cell/NumericCell.java:
* src/main/java/org/glom/web/client/ui/cell/TextCell.java: Add
'overflow: hidden; text-overflow: ellipsis;' CSS properties to the table
cell text.
* src/main/java/org/glom/web/client/ui/details/RelatedListTable.java:
Set the 'table-layout: fixed' CSS property to the related list table.
* src/main/java/org/glom/web/client/ui/list/ListTable.java: Set the
'white-space: nowrap;' CSS property on both the list view and the
related list tables.
Ben Konrath [Wed, 16 Nov 2011 16:38:10 +0000 (17:38 +0100)]
Rework the fix for empty notebook tab labels.
Setting the empty group titles with its name caused problems for the
details layout. Instead of using libglom's
LayoutItem.get_title_or_name(), the LayoutItem name is explicitly sent
to the client when the title is empty. This allows the Notebook to use
the name when the title is empty without affecting anything else.
* src/main/java/org/glom/web/client/ui/details/Notebook.java:
* src/main/java/org/glom/web/server/ConfiguredDocument.java:
Ben Konrath [Wed, 16 Nov 2011 16:03:52 +0000 (17:03 +0100)]
Set group titles with name when title is empty.
This fixes a problem with an empty notebook tab label in the Lesson
Planner document. The forth tab in the notebook should be "Internet":
http://bagu.org:8080/OnlineGlom/#details:document=lesson-planner&table=teachers&value=0
* src/main/java/org/glom/web/server/ConfiguredDocument.java: Use
libglom's LayoutItem.get_title_or_name() to fill in the LayoutGroup
DTO title.
Ben Konrath [Wed, 16 Nov 2011 13:31:33 +0000 (14:31 +0100)]
Remove whitespace from the configured username properties.
This assumes that usernames won't have whitespace at the beginning
or end. But I think this is a reasonable assumption.
* src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java: Use
String.trim() to remove the whitespace from the username properties.
Ben Konrath [Tue, 15 Nov 2011 22:39:11 +0000 (23:39 +0100)]
Add details view mockup with HTML tables and text entries.
This is from the attachment on this bug:
https://bugzilla.gnome.org/show_bug.cgi?id=663109
* mockups/details-view-html-tables-text-entries.html:
Ben Konrath [Tue, 15 Nov 2011 21:39:49 +0000 (22:39 +0100)]
Add space between the columns of the flow table.
This fixes:
https://bugzilla.gnome.org/show_bug.cgi?id=662918
* src/main/java/org/glom/web/client/ui/details/FlowTable.java: Add a 1%
space between columns in the flow table.
Ben Konrath [Tue, 15 Nov 2011 16:19:53 +0000 (17:19 +0100)]
Add backup files to the .gitignore.
* .gitignore: Ignore files that end with ~.
Ben Konrath [Wed, 9 Nov 2011 20:23:23 +0000 (21:23 +0100)]
Use latest release of gwt-log.
Gwt-log releases are now being submitted to the maven central
repository so manual installation of the jar is no longer required.
* pom.xml: Update version and groupId of gwt-log dependency.
Ben Konrath [Mon, 31 Oct 2011 15:16:36 +0000 (16:16 +0100)]
Don't use GWT numeric formatting to override the glom currency formatting.
Currencies are now displayed like they are in Glom. See this bug:
https://bugzilla.gnome.org/show_bug.cgi?id=646216
* src/main/java/org/glom/web/client/Utils.java: Remove GWT currency
formatting.
* src/main/java/org/glom/web/client/ui/cell/NumericCell.java: Add
currency code to constructor and set it when the cell is rendered.
* src/main/java/org/glom/web/client/ui/list/ListTable.java: Add the
currency code to the constructor of the NumericCell.
Murray Cumming [Mon, 24 Oct 2011 13:39:15 +0000 (15:39 +0200)]
Use the master branch of java-libglom
* pom.xml: Depend on java-libglom 1.19 instead.
This is the master branch. See also the libglom-1-18 branch.
Ben Konrath [Thu, 27 Oct 2011 13:31:10 +0000 (15:31 +0200)]
Require the latest release of java-libglom (1.17.4).
* pom.xml:
Ben Konrath [Wed, 26 Oct 2011 20:37:51 +0000 (22:37 +0200)]
Add style to Notebook that matches current theme.
It's not the best style in the world but it's better than the default.
* src/main/java/org/glom/web/client/ui/details/Notebook.java: Add some
padding at the bottom of the child widgets.
* src/main/webapp/style.css: Add style for the Notebook.
Ben Konrath [Wed, 26 Oct 2011 18:55:29 +0000 (20:55 +0200)]
Move servlet initialization code to overridden init method.
This is half of the solution to getting proper error messages
displayed when configuration errors occur. Here's the relevant bug:
https://bugzilla.gnome.org/show_bug.cgi?id=662792
The rest of the solution involves surrounding the init method with a
try/catch block and setting a global variable with the error /
exception. A new async method should be created to retrieve and display
the error message / exception.
* src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java: Move
code from constructor to init method adding exceptions as needed.
Ben Konrath [Wed, 26 Oct 2011 18:22:50 +0000 (20:22 +0200)]
Add script to monitor and restart tomcat if required.
* utils/check-and-recover-tomcat.py: New file.
Ben Konrath [Wed, 26 Oct 2011 15:31:34 +0000 (17:31 +0200)]
Display the correct number of data items in the pager.
This commit fixes:
https://bugzilla.gnome.org/show_bug.cgi?id=661441
* src/main/java/org/glom/web/client/ui/list/ListViewTable.java:
* src/main/java/org/glom/web/client/ui/details/RelatedListTable.java:
The implementation is the same for both tables: Keep track of the
number of non-empty rows and fire and RowCountChangeEvent after the data has
been updated.
* src/main/java/org/glom/web/client/ui/list/ListTable.java: Add a
custom Pager class that subclasses SimplePager to handle displaying
the correct number when empty rows have been added.
Ben Konrath [Wed, 26 Oct 2011 15:19:31 +0000 (17:19 +0200)]
Correct error in previous commit.
* src/main/java/org/glom/web/client/activity/ListActivity.java: Remove
eventBus parameter from listView.setCellTable().
Ben Konrath [Wed, 26 Oct 2011 14:27:34 +0000 (16:27 +0200)]
Fix error in TODO comment.
* src/main/java/org/glom/web/client/activity/ListActivity.java:
Ben Konrath [Mon, 24 Oct 2011 09:06:12 +0000 (11:06 +0200)]
Create Notebook widgets to the details view.
This isn't finished just yet - I still need to create a reasonable
style to match the current theme.
* src/main/java/org/glom/web/client/Utils.java: Add method for
calculating the height of a widget. This is used in the Notebook class.
* src/main/java/org/glom/web/client/ui/DetailsViewImpl.java: Update for
new constructor method in Group.
* src/main/java/org/glom/web/client/ui/details/Group.java: Add new
method for creating child widget that can be used by subclasses
like Notebook. New constructor that allows disabling the group
titles - Notebooks don't set a group title for their child groups.
* src/main/java/org/glom/web/client/ui/details/Notebook.java: New class
to make Notebooks using GWT's TabLayoutPanel.
* src/main/java/org/glom/web/client/ui/details/Portal.java: New
constructor that allows disabling the group titles.
* src/main/java/org/glom/web/server/ConfiguredDocument.java: Create the
LayoutItemNotebook DTO.
* src/main/java/org/glom/web/shared/layout/LayoutItemNotebook.java: New
DTO for Notebooks. It's just an empty class for now but we might need
it to transfer some specific information in the future.
Ben Konrath [Fri, 21 Oct 2011 14:26:33 +0000 (16:26 +0200)]
Add navigation buttons to related list tables.
* src/main/java/org/glom/web/client/OnlineGlomService.java:
* src/main/java/org/glom/web/client/OnlineGlomServiceAsync.java:
* src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java: Add new
method getSuitableRecordToViewDetails() for getting the table name
and primary key value for related list navigation buttons.
* src/main/java/org/glom/web/client/activity/DetailsActivity.java: Add
private cell renderer class to get the navigation information for
related list tables from the server. Extract the navigation
processing code from the details cell navigation and use it for the
related list navigation as well.
* src/main/java/org/glom/web/client/ui/ListViewImpl.java: Add private
cell renderer class for the details open buttons. This was needed
because the related list navigation buttons and the list view
navigation buttons need to react differently when clicked.
* src/main/java/org/glom/web/client/ui/cell/OpenButtonCell.java: Remove
the onEnterKeyDown() method because it's now overriden in the
subclasses that are specific to the related list tables and the list
view tables.
* src/main/java/org/glom/web/client/ui/details/Portal.java: Increase
the vertical size a little because the buttons add a bit of vertical
space to table. This is not a perfect solution because the vertical
size of with table fewer than 5 rows will be a little smaller.
* src/main/java/org/glom/web/client/ui/list/ListTable.java: Update for
changes in how navigation buttons are handled.
* src/main/java/org/glom/web/server/ConfiguredDocument.java: Implement
getSuitableRecordToViewDetails() using the new RelatedListNavigation
database access object.
* src/main/java/org/glom/web/server/database/DBAccess.java: Move code
to find the portal for a given relationship name from
RelatedListDBAccess. Add method to find a primary key field for a
given table.
* src/main/java/org/glom/web/server/database/RelatedListDBAccess.java:
Move code to find the portal for a given relationship name to
DBAccess.
* src/main/java/org/glom/web/server/database/RelatedListNavigation.java:
New file: database access object for getting the related list
navigation information (the table name and the primary key value).
* src/main/java/org/glom/web/shared/NavigationRecord.java: New file:
DTO for transferring a table name to navigate to and a primary key
value.
* src/main/java/org/glom/web/shared/layout/LayoutItemPortal.java: Add
boolean and getter/setter to specifies if the related list should add
navigation buttons.
Ben Konrath [Tue, 11 Oct 2011 17:35:50 +0000 (19:35 +0200)]
Enable the open navigation button when the data has been set.
This avoids having active buttons that don't do anything when the data
has not been set.
* src/main/java/org/glom/web/client/ui/details/DetailsCell.java:
Ben Konrath [Tue, 11 Oct 2011 17:11:24 +0000 (19:11 +0200)]
Use IsWidget interface for FlowTableItem.
* src/main/java/org/glom/web/client/ui/details/FlowTable.java: Change
FlowTableItem.getWidget() to asWidget() from the IsWidget interface.
Ben Konrath [Tue, 11 Oct 2011 14:09:18 +0000 (16:09 +0200)]
Remove GWT styling from open button in details view.
There are still some issues with how the details cell is arranged but
this should be made to match Glom 1.20. I'm going to leave fixing this
until I have Glom 1.20 up and running.
* src/main/java/org/glom/web/client/ui/details/DetailsCell.java: Set
style name on open button.
* src/main/webapp/style.css: Move and edit details-navigation class.
Re-arrange some classes to make them appear in the same order as the
UI.
Ben Konrath [Fri, 7 Oct 2011 17:27:38 +0000 (19:27 +0200)]
Update to GWT 2.4.0.
* .gitignore: Ignore new cache directory.
* .settings/com.google.gwt.eclipse.core.prefs: Update Eclipse settting.
* pom.xml: Change GWT and maven plugin to 2.4.0.
* src/main/java/org/glom/web/OnlineGlom.gwt.xml: Update doctype for
2.4.0.
* src/main/java/org/glom/web/client/ClientFactory.java:
* src/main/java/org/glom/web/client/ClientFactoryImpl.java:
* src/main/java/org/glom/web/client/OnlineGlom.java:
Update source for API changes.
* utils/build-onlineglom-war.sh: Remove cache directory before the
build.
Ben Konrath [Fri, 7 Oct 2011 16:18:23 +0000 (18:18 +0200)]
Add navigation buttons in the details view.
This isn't finished but I thought I'd commit what I have as it's a
pretty good start. I still need to:
1. Change the style so that it fits better into the current theme
2. Adjust the details cell to expand as much as possible.
* src/main/java/org/glom/web/client/activity/DetailsActivity.java: Add
click handlers to navigation buttons in the DetailsCells. Create a
refreshData() method to get just the data from the server without the
layout.
* src/main/java/org/glom/web/client/activity/TableSelectionActivity.java:
Update the tableSelector and browser title when the table name
changes without using the tableSelector.
* src/main/java/org/glom/web/client/ui/DetailsView.java:
* src/main/java/org/glom/web/client/ui/DetailsViewImpl.java: Rename
getDetailsCells() to getCells(). Update variable names.
* src/main/java/org/glom/web/client/ui/details/DetailsCell.java: Add
method to set click handler on navigation button. Rename a few
variables. Add navigation buttons where needed.
* src/main/java/org/glom/web/client/ui/details/Group.java: Rename a few
variables and methods.
* src/main/java/org/glom/web/server/ConfiguredDocument.java: Set the
navigation boolean and navigation table as required in the
LayoutItemField DTO.
* src/main/java/org/glom/web/shared/layout/LayoutItemField.java: Add
variables for navigation along with getter/setter methods.
Ben Konrath [Fri, 7 Oct 2011 15:41:50 +0000 (17:41 +0200)]
Rename Field to DetailsCell.
This is a refactor-only commit. No functionality has been added or
removed.
* src/main/java/org/glom/web/client/activity/DetailsActivity.java:
Update variable and method names.
* src/main/java/org/glom/web/client/ui/DetailsView.java:
* src/main/java/org/glom/web/client/ui/DetailsViewImpl.java: Update
variable and method names.
* src/main/java/org/glom/web/client/ui/details/DetailsCell.java:
Renamed from Field.
* src/main/java/org/glom/web/client/ui/details/Group.java: Update
variable and method names.
Ben Konrath [Fri, 7 Oct 2011 15:22:15 +0000 (17:22 +0200)]
Create separate methods for layout and data the details view.
This is a refactor-only commit. No functionality has been added or
removed.
* src/main/java/org/glom/web/client/activity/DetailsActivity.java: New
private methods: setData(), createLayout().
Ben Konrath [Fri, 7 Oct 2011 15:08:05 +0000 (17:08 +0200)]
Don't use TableSelectorImpl implementation details in TableSelectorActivity.
This is part of a change to get navigation buttons in the details view
but it should have been done this way from the start.
* src/main/java/org/glom/web/client/activity/ListActivity.java: Update
for method name change in TableSelectionView.
* src/main/java/org/glom/web/client/activity/TableSelectionActivity.java:
Create TableChangeEvent and set the browser title using the
TableSelectionView API.
* src/main/java/org/glom/web/client/ui/TableSelectionView.java:
* src/main/java/org/glom/web/client/ui/TableSelectionViewImpl.java:
Change getSelectedTable() to getSelectedTableName(). Add
getSelectedTableTitle().
Ben Konrath [Fri, 7 Oct 2011 14:36:01 +0000 (16:36 +0200)]
Use primaryKeyValue naming convention in constructor of DetailsPlace.
* src/main/java/org/glom/web/client/place/DetailsPlace.java:
Ben Konrath [Fri, 7 Oct 2011 14:30:24 +0000 (16:30 +0200)]
Update TableChangeEvent to use newTableName naming convention.
This makes the class more consistent with GWT naming conventions.
* src/main/java/org/glom/web/client/activity/DetailsActivity.java:
Update for method name change in TableChangeEvent.
* src/main/java/org/glom/web/client/activity/ListActivity.java: Update
for method name change in TableChangeEvent.
* src/main/java/org/glom/web/client/event/TableChangeEvent.java: Update
newTableName variable and getter method. Make toDebugString()
actually work.
Ben Konrath [Fri, 30 Sep 2011 14:50:07 +0000 (16:50 +0200)]
Disable the pager in the list tables when the data row count is less than the minimum.
* src/main/java/org/glom/web/client/activity/DetailsActivity.java:
* src/main/java/org/glom/web/client/ui/ListViewImpl.java:
Ben Konrath [Fri, 30 Sep 2011 13:25:14 +0000 (15:25 +0200)]
Add empty rows to the end of related list and list view tables.
I also extracted the cell rendering classes from the ListTable because
the code was becoming a little crazy with all the anonymous inner
classes. My plan is to use these cell rendering classes in the details
view as well so this refactor will be needed for that change.
* src/main/java/org/glom/web/client/activity/DetailsActivity.java: Only
set the row count in related list tables if the data has more rows
than the minimum number of rows visible.
* src/main/java/org/glom/web/client/ui/ListViewImpl.java: Only set the
row count in list view tables if the data has more rows than the
minimum number of rows visible.
* src/main/java/org/glom/web/client/ui/cell/BooleanCell.java: New class
for rendering TYPE_BOOLEAN cells. The code was extracted from the
ListTable class.
* src/main/java/org/glom/web/client/ui/cell/NumericCell.java: New class
for rendering TYPE_NUMERIC cells. The code was extracted from the
ListTable class.
* src/main/java/org/glom/web/client/ui/cell/OpenButtonCell.java: New
class for rendering cells with buttons in list views. The code was
extracted from the ListTable class.
* src/main/java/org/glom/web/client/ui/cell/TextCell.java: New class
for rendering TYPE_TEXT cells. The code was extracted from the
ListTable class.
* src/main/java/org/glom/web/client/ui/details/RelatedListTable.java:
Add empty rows to the end of the data if required. Implement
ListTable.getMinNumVisibleRows().
* src/main/java/org/glom/web/client/ui/list/ListTable.java: Extract
cell renderer code to public classes. Return null in
Column.getValue() for empty rows. Add new abstract method:
getMinNumVisibleRows(). Move code to set the row count of the list view
table to ListViewImpl.
* src/main/java/org/glom/web/client/ui/list/ListViewTable.java: Add
empty rows to the end of the data if required. Implement
ListTable.getMinNumVisibleRows().
Ben Konrath [Tue, 27 Sep 2011 15:53:07 +0000 (17:53 +0200)]
Use GWT.log for client-side debugging statements.
These are optimized out when deployed so I should have used this method
in the first place. These statements will eventually be replaced with some sort
of notification in the browser.
* src/main/java/org/glom/web/client/activity/DetailsActivity.java:
* src/main/java/org/glom/web/client/activity/ListActivity.java:
* src/main/java/org/glom/web/client/activity/TableSelectionActivity.java:
* src/main/java/org/glom/web/client/ui/details/RelatedListTable.java:
* src/main/java/org/glom/web/client/ui/list/ListViewTable.java:
Ben Konrath [Tue, 27 Sep 2011 10:31:21 +0000 (12:31 +0200)]
Put tableselector on the right, back to list link on right.
The idea is that the table selector is acting like a label for the
currently displayed table so it should be placed below the document title. This
puts the table title in a similar position to where it is in Glom.
* mockups/details-contacts.html:
* mockups/details-projects.html:
* mockups/listview-contacts.html:
* mockups/listview-projects.html:
* mockups/style.css:
Update mockups to match how the interfaces currently look.
* src/main/webapp/style.css: Swap positions of backlink with the table
selector. Add some space on the left side of the table selector to
line things up with the document title.
Ben Konrath [Tue, 27 Sep 2011 08:50:49 +0000 (10:50 +0200)]
Add field colouring to details view.
This change re-works how field colouring works. The colour formatting
information is now set to the client with the layout information instead of
with the data. This eliminates the need to send the same colour strings for
data in list view column when colour information is set.
In order to set an alternate colour for negative numeric values, the
number is now sent to client and formatted with the GWT NumberFormat class.
This change also fixes:
https://bugzilla.gnome.org/show_bug.cgi?id=659752
* src/main/java/org/glom/web/OnlineGlom.gwt.xml: Add the GWT
internationalization framework which is needed for client side numeric
formatting.
* src/main/java/org/glom/web/client/Utils.java: New file for some
client static utility methods.
* src/main/java/org/glom/web/client/activity/DetailsActivity.java: Pass
the DataItem object to the Field class. Use a utility method to
create the foreignKeyValue string.
* src/main/java/org/glom/web/client/ui/details/Field.java: Set
alignment and text colours in the constructor. Add setData(DataItem)
method. Remove setText(String) method.
* src/main/java/org/glom/web/client/ui/list/ListTable.java: Add the
colour information to GlomTextCell. Create and use GlomNumberCell for
rendering numbers. Use utility method to get the string for the
primary key of the key provider. Re-work how the horizontal alignment
is set.
* src/main/java/org/glom/web/server/ConfiguredDocument.java: Add
formatting to layout information. Methods for converting the libglom
formatting information were moved from DBAccess.
* src/main/java/org/glom/web/server/database/DBAccess.java: Remove
numeric formatting (it's now done on the client side). Don't set text
colours in DataItem. Move libglom formatting conversion methods to
ConfiguredDocument.
* src/main/java/org/glom/web/shared/DataItem.java: Remove fields and
getters/setters for text colour information.
* src/main/java/org/glom/web/shared/GlomNumericFormat.java: New file
for transferring the libglom NumericFormat information to the client.
* src/main/java/org/glom/web/shared/layout/Formatting.java: Add fields
and getters/setters for: GlomNumericFormat, background colour and
foreground colour strings.
Ben Konrath [Mon, 26 Sep 2011 19:46:50 +0000 (21:46 +0200)]
Simplify code that iterates through the LayoutGroup.
* src/main/java/org/glom/web/client/ui/list/ListTable.java:
Ben Konrath [Mon, 26 Sep 2011 19:41:10 +0000 (21:41 +0200)]
Accept Eclipse formatting for OnlineGlomServiceAsync.
* src/main/java/org/glom/web/client/OnlineGlomServiceAsync.java:
Ben Konrath [Mon, 26 Sep 2011 19:39:05 +0000 (21:39 +0200)]
Don't use the ListDBAccess classes to get the primary key layout information.
This was causing a bug where the wrong index for the hidden primary key
was being sent to the client.
* src/main/java/org/glom/web/server/ConfiguredDocument.java: Find the
primary key while creating the LayoutGroup DTO. Create a
LayoutItemField DTO for hidden primary keys. Don't use the
RelatedListDBAccess because it was only used for getting the primary
key.
* src/main/java/org/glom/web/server/database/DBAccess.java: Change the
access modifier from public to protected for getPrimaryKeyField() and
getPrimaryKeyLayoutItemField().
* src/main/java/org/glom/web/server/database/ListDBAccess.java: Remove
abstract method getExpectedResultSize() because RelatedListDBAccess
doesn't have enough info to implement it.
* src/main/java/org/glom/web/server/database/ListViewDBAccess.java:
Remove @Override for getExpectedResultSize().
* src/main/java/org/glom/web/server/database/RelatedListDBAccess.java:
Remove method getExpectedResultSize().
Ben Konrath [Fri, 23 Sep 2011 11:51:09 +0000 (13:51 +0200)]
Log which layout (list or details) the ignored item is from.
* src/main/java/org/glom/web/server/ConfiguredDocument.java:
Ben Konrath [Fri, 23 Sep 2011 10:42:50 +0000 (12:42 +0200)]
Remove annotations that turn off code formatting in DataItem.
* src/main/java/org/glom/web/shared/DataItem.java:
Ben Konrath [Fri, 23 Sep 2011 10:39:34 +0000 (12:39 +0200)]
Rename GlomField to DataItem and update associated methods.
This is a rename-only refactor. No functionality has been added or
removed.
* src/main/java/org/glom/web/client/OnlineGlomService.java:
* src/main/java/org/glom/web/client/OnlineGlomServiceAsync.java:
* src/main/java/org/glom/web/client/activity/DetailsActivity.java:
* src/main/java/org/glom/web/client/ui/ListViewImpl.java:
* src/main/java/org/glom/web/client/ui/details/RelatedListTable.java:
* src/main/java/org/glom/web/client/ui/list/ListTable.java:
* src/main/java/org/glom/web/client/ui/list/ListViewTable.java:
* src/main/java/org/glom/web/server/ConfiguredDocument.java:
* src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java:
* src/main/java/org/glom/web/server/database/DBAccess.java:
* src/main/java/org/glom/web/server/database/DetailsDBAccess.java:
* src/main/java/org/glom/web/server/database/ListDBAccess.java:
* src/main/java/org/glom/web/server/database/ListViewDBAccess.java:
* src/main/java/org/glom/web/server/database/RelatedListDBAccess.java:
* src/main/java/org/glom/web/shared/DataItem.java:
* src/main/java/org/glom/web/shared/DetailsLayoutAndData.java:
* src/main/java/org/glom/web/shared/layout/LayoutGroup.java:
Ben Konrath [Fri, 23 Sep 2011 10:25:07 +0000 (12:25 +0200)]
Rename GlomDocument to DocumentInfo and update associated methods.
This is a rename-only refactor. No functionality has been added or
removed.
* src/main/java/org/glom/web/client/OnlineGlomService.java:
* src/main/java/org/glom/web/client/OnlineGlomServiceAsync.java:
* src/main/java/org/glom/web/client/activity/ListActivity.java:
* src/main/java/org/glom/web/client/activity/TableSelectionActivity.java:
* src/main/java/org/glom/web/server/ConfiguredDocument.java:
* src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java:
* src/main/java/org/glom/web/shared/DocumentInfo.java:
Ben Konrath [Tue, 20 Sep 2011 14:28:05 +0000 (16:28 +0200)]
Require java-libglom 1.17.3.
This picks up the fix for the seg fault problem with the Scenes table
in the Openismus Film Manager example.
* pom.xml:
Ben Konrath [Tue, 20 Sep 2011 14:24:34 +0000 (16:24 +0200)]
Change the way sort clause is added for primary key when no sort clause is requested.
The primary key is now added to the LayoutFieldVector (fieldsToGet)
before the sort clause is created. When a sort clause is not requested, the
sort clause is created by finding the primary key in the LayoutFieldVector
(fieldsToGet).
* src/main/java/org/glom/web/server/database/ListDBAccess.java:
Ben Konrath [Tue, 20 Sep 2011 10:21:43 +0000 (12:21 +0200)]
Log error message if no documents are found in the configured directory.
* src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java: Also:
Extract the glom file extension string to a private static final class
variable (mostly as syntactic sugar). Accept a minor formatting change.
* src/main/resources/onlineglom.properties: Add '/glomfile' to end of
the example glom.document.directory configuration property to make it
more clear that it can any directory, not just the home directory.
Ben Konrath [Sun, 18 Sep 2011 15:52:34 +0000 (17:52 +0200)]
Add related lists to details view.
The related list table has support for paging and sorting just like the
table in the list view.
* pom.xml: Require java-libglom 1.17.2 for the new methods to build the
SQL queries for the related list tables.
* src/main/java/org/glom/web/client/OnlineGlomService.java:
* src/main/java/org/glom/web/client/OnlineGlomServiceAsync.java:
* src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java:
Rename getList methods to getListView and add comments. Remove
getDetailsLayout() as it's not used anymore. Add note to getDetailsData() about
it being unused. Add methods: getDetailsLayoutAndData(),
getSortedRelatedListData(), getRelatedListData(), getRelatedListRowCount()
* src/main/java/org/glom/web/client/activity/DetailsActivity.java:
Create the layout and set the data for the fields in one async call
instead of two. Create related lists where appropriate.
* src/main/java/org/glom/web/client/activity/ListActivity.java: Changes
for method name changes in OnlineGlomService.
* src/main/java/org/glom/web/client/ui/DetailsView.java:
* src/main/java/org/glom/web/client/ui/DetailsViewImpl.java: Rename
addLayoutGroup() to addGroup(). Add methods to get the DTOs for the
visible UI objects.
* src/main/java/org/glom/web/client/ui/ListView.java:
* src/main/java/org/glom/web/client/ui/ListViewImpl.java: Remove
tableName from setCellTable(). Create a ListViewTable instead of
ListTable.
* src/main/java/org/glom/web/client/ui/details/Field.java: New class to
represent a data field in the details view.
* src/main/java/org/glom/web/client/ui/details/Group.java: Move to code
from addDetailsCell() to Field class. Keep track of the Fields and
Portals in the details view.
* src/main/java/org/glom/web/client/ui/details/Portal.java: Make portal
a little bigger to match Glom. Keep track of the LayoutItemPortal DTO
and add a method to get it. Add method to set the contents of the
portal.
* src/main/java/org/glom/web/client/ui/details/RelatedListTable.java:
New class for related list tables. This class has the data provider
for the related list table.
* src/main/java/org/glom/web/client/ui/list/ListTable.java: Change to
abstract class which is the base class for the ListViewTable and the
RelatedListTable.
* src/main/java/org/glom/web/client/ui/list/ListViewTable.java:
New class for list view tables. This class has the data provider for
the list view table.
* src/main/java/org/glom/web/server/ConfiguredDocument.java: Add
methods for related list tables. Add more information to the
LayoutItemField and LayoutItemPortal DTOs.
* src/main/java/org/glom/web/server/database/DetailsDBAccess.java:
Remove debugging print statement.
* src/main/java/org/glom/web/server/database/ListDBAccess.java:
Remove debugging print statements. Add primary key field to SQL count
query.
* src/main/java/org/glom/web/server/database/ListViewDBAccess.java:
Remove unnecessary LayoutFieldVector parameter from
getResultSizeOfSQLQuery() method.
* src/main/java/org/glom/web/server/database/RelatedListDBAccess.java:
New class for related list table database access.
* src/main/java/org/glom/web/shared/DetailsLayoutAndData.java: New
class that is a wrapper DTO for details view layout and data.
* src/main/java/org/glom/web/shared/layout/LayoutItemPortal.java: Add
new 'fromField' string to this DTO.
* src/main/webapp/style.css: Remove bottom margin and override top
margin with 0em.
Ben Konrath [Thu, 15 Sep 2011 12:13:21 +0000 (14:13 +0200)]
Breakup the OnlineGlomServiceImpl class to make it more manageable.
This sets things up to make it easier to add the data retrieval for
related lists (portals). No user noticeable changes were made with
this commit.
* src/main/java/org/glom/web/server/ConfiguredDocument.java: This
class has the code to retrieve the layouts and access the
database using the new database helper classes.
* src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java:
Most of the functionality has been removed from this class. This
class now represents the public interface for the client side
code. It also deals with configuring the servlet and cleaning
things up when the servlet is stopped.
* src/main/java/org/glom/web/server/Utils.java: Extract a couple
of static methods into this utility class.
* src/main/java/org/glom/web/server/database/DBAccess.java:
* src/main/java/org/glom/web/server/database/DetailsDBAccess.java:
* src/main/java/org/glom/web/server/database/ListDBAccess.java:
* src/main/java/org/glom/web/server/database/ListViewDBAccess.java:
These classes have the database retrieval code. The class hierarchy
has been setup to make it easy to reuse code for similar
functionality.
Ben Konrath [Tue, 6 Sep 2011 11:12:55 +0000 (13:12 +0200)]
Create separate classes for list table code and the data provider.
As part of this refactor, I also split up the code a bit to make it
more manageable.
* src/main/java/org/glom/web/client/ui/ListViewImpl.java: Move list
table code to two new classes (below).
* src/main/java/org/glom/web/client/ui/list/ListTable.java: New file
with code from ListViewImpl.
* src/main/java/org/glom/web/client/ui/list/ListTableDataProvider.java:
New file with code from ListViewImpl.
Ben Konrath [Tue, 6 Sep 2011 10:13:52 +0000 (12:13 +0200)]
Change the LayoutItemPortal DTO to extend LayoutGroup instead of LayoutItem.
This fixes the LayoutItemPortal DTO to match the libglom layout object
hierarchy.
* src/main/java/org/glom/web/shared/layout/LayoutItemPortal.java:
Ben Konrath [Thu, 1 Sep 2011 12:55:59 +0000 (14:55 +0200)]
Set title of Portals in the Details View.
* pom.xml: Bump required version of java-libglom to 1.17.1.
* src/main/java/org/glom/web/client/ui/details/Group.java: Move Portal
widget creation to its own class. Add comments to constructor.
* src/main/java/org/glom/web/client/ui/details/Portal.java: New file.
The code is mostly from the Group class with the title now set.
* src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java: Set
title of Portal. Update some comments. Fix some code formatting.
Ben Konrath [Thu, 1 Sep 2011 11:24:14 +0000 (13:24 +0200)]
Remove TODO comment for the flow table column width.
The flow table column width is working correctly and doesn't need to be
changed. See this mailing list post for more info:
https://mail.gnome.org/archives/glom-devel-list/2011-August/msg00017.html
* src/main/java/org/glom/web/client/ui/details/FlowTable.java:
Ben Konrath [Sat, 27 Aug 2011 16:11:36 +0000 (18:11 +0200)]
Add document title (database name) to top of the browser page.
I added the document title to the TableSelecitonView but that will
change if / when we add a view that doesn't require table selection.
* mockups/details-contacts.html:
* mockups/details-projects.html:
* mockups/listview-contacts.html:
* mockups/listview-projects.html:
* mockups/style.css: Add document title to mockups to keep things
consistent.
* src/main/java/org/glom/web/client/OnlineGlom.java: Adjust LayoutPanel
sizes to account for the document title.
* src/main/java/org/glom/web/client/activity/TableSelectionActivity.java:
Set the document title when it has been retrieved from the server.
* src/main/java/org/glom/web/client/ui/TableSelectionView.java:
* src/main/java/org/glom/web/client/ui/TableSelectionViewImpl.java: Add
and implement setDocumentTitle(String) method.
* src/main/webapp/style.css: Add ID for document title style.
Ben Konrath [Thu, 25 Aug 2011 17:47:10 +0000 (19:47 +0200)]
Add NavigationType enum to LayoutItemPortal DTO.
This is the start of adding support for Portals to the Details View.
* src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java: Convert
LayoutItem_Portal.navigation_type enum from libglom to
LayoutItemPortal.NavigationType enum.
* src/main/java/org/glom/web/shared/layout/LayoutItemPortal.java: Add
NavigationType enum, field for storing the NavigationType and getter
and setter methods.
Ben Konrath [Thu, 25 Aug 2011 17:14:44 +0000 (19:14 +0200)]
Implement the flow table layout in the Details View.
* src/main/java/org/glom/web/client/ui/DetailsViewImpl.java: Change
FlowTable to Group to account for the renamed class.
* src/main/java/org/glom/web/client/ui/details/FlowTable.java: New
File. This is a container widget that implements the Glom details view
flow table behaviour.
* src/main/java/org/glom/web/client/ui/details/Group.java: Moved from
org/glom/web/client/ui/FlowTable.java.
* src/main/webapp/style.css: Adjust bottom margin of the subgroup-title
so that the size of the subgroups are a closer match to the size of
the Glom subgroups. This makes the flowtable layout match the layout
in Glom for the Music Collection example file.
Ben Konrath [Tue, 16 Aug 2011 15:24:38 +0000 (17:24 +0200)]
Create container element for LayoutItemPortal in Details View.
This will help me develop the layout for the FlowTable.
* src/main/java/org/glom/web/client/ui/FlowTable.java: Also rename
fieldPanel variable to detailsCell.
Ben Konrath [Mon, 15 Aug 2011 16:06:45 +0000 (18:06 +0200)]
Set the height of the data element in the Details View.
I changed the InlineLabels (text in a span element) to Labels (text in
a div element) so that I could set the height of the details-data
elements instead of the details-cell parent elements. This allows the
the details-data element to display the correct height if style is
applied that shows the height.
This change has the added benefit of allowing the order of the labels
and data elements to be changed for right-to-left languages.
* src/main/java/org/glom/web/client/ui/DetailsViewImpl.java: Change
InlineLabels to Labels.
* src/main/java/org/glom/web/client/ui/FlowTable.java: Change
InlineLabels to Labels. Set the height of the data element.
* src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java: Set the
multiline text height in the Formatting DTO.
* src/main/java/org/glom/web/shared/layout/Formatting.java: Add field
for multiline height along with getter and setter methods.
* src/main/webapp/style.css: Adjust style to account for the change
from span elements to div elements in the details cell.
Ben Konrath [Mon, 15 Aug 2011 10:56:31 +0000 (12:56 +0200)]
Make the List View appearance match the mockups.
It doesn't match exactly but it's much better than it was.
* mockups/listview-contacts.html: Remove unused css classes.
* mockups/listview-projects.html: Remove unused css classes.
* src/main/java/org/glom/web/client/ui/ListViewImpl.java: Display 15
rows instead of 20. Rename vPanel to mainPanel. Use FlowPanel (div)
for mainPanel instead of VerticalPanel (table). Set style name on
CellTable. Set style name on Details column. Right-align Details
buttons.
* src/main/webapp/style.css: Adjust properties to match the mockups.
Ben Konrath [Fri, 12 Aug 2011 19:38:33 +0000 (21:38 +0200)]
Add better support for subgroups in the details view.
* src/main/java/org/glom/web/client/ui/DetailsViewImpl.java: Update for
changed FlowTable constructor.
* src/main/java/org/glom/web/client/ui/FlowTable.java: Add better
support for subgroups and subgroup-titles.
* src/main/webapp/style.css: Add CSS class for subgroups and
subgroup-titles.
Ben Konrath [Fri, 12 Aug 2011 19:26:24 +0000 (21:26 +0200)]
Return the top level LayoutGroup title.
* src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java:
Ben Konrath [Thu, 11 Aug 2011 14:34:58 +0000 (16:34 +0200)]
Make the TableSelector header match the mockup.
* src/main/java/org/glom/web/client/OnlineGlom.java: Add a margin to
the layout panel. Properly lineup the table selection header with
the list and details view.
* src/main/java/org/glom/web/client/ui/DetailsViewImpl.java: Remove the
margin around the details view.
* src/main/java/org/glom/web/client/ui/TableSelectionViewImpl.java:
Rename listBox variable to tableSelector. Set id for the style sheet.
Use a FlowPanel instead of a HorizontalPanel.
* src/main/webapp/style.css: Add properties to make the TableSelector
box match the mockups.
Murray Cumming [Wed, 27 Jul 2011 10:53:14 +0000 (12:53 +0200)]
Details: add a colon after the field title.
* src/main/java/org/glom/web/client/ui/FlowTable.java
(FlowTable.addDetailsCell):
Otherwise the title and the value seem to be part of one thing.
This matches the mockup and the desktop UI, though the desktop UI uses
a GtkEntry anyway.
Ben Konrath [Wed, 13 Jul 2011 14:14:13 +0000 (16:14 +0200)]
Update install script for java-libglom version change.
* utils/install-onlineglom-war.sh: Also exit if 'make check' in
java-libglom fails.
Ben Konrath [Wed, 13 Jul 2011 12:46:46 +0000 (14:46 +0200)]
Add support sub-group in the details view.
I also removed the code that special-cased the default details view
layout. See:
http://mail.gnome.org/archives/glom-devel-list/2011-July/msg00005.html
I still have to make a proper flowtable.
* src/main/java/org/glom/web/client/activity/DetailsActivity.java:
Don't special-case default details view layout.
* src/main/java/org/glom/web/client/ui/DetailsView.java: Remove
addLayoutField() as I'm going to use it.
* src/main/java/org/glom/web/client/ui/DetailsViewImpl.java: Extract
GroupPanel to FlowTable class. Remove unimplemented addLayoutField()
method.
* src/main/java/org/glom/web/client/ui/FlowTable.java: New class
extracted from DetailsViewImpl.GroupPanel. Add support for
sub-groups.
* src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java: Set
column count when getting the details layout.
Ben Konrath [Tue, 12 Jul 2011 15:16:25 +0000 (17:16 +0200)]
Set browser title with database and table titles.
* src/main/java/org/glom/web/client/activity/TableSelectionActivity.java:
Set the browser title when the table changes and when the activity
first starts.
* src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java: Set
title when retrieving document info (the GlomDocument object).
* src/main/java/org/glom/web/shared/GlomDocument.java: Add title field
with getter and setter methods. Remove unused convenience constructor.
Use default code formatting.
Ben Konrath [Tue, 12 Jul 2011 13:46:28 +0000 (15:46 +0200)]
Ignore LayoutItemPortals in the details view.
I added a new DTO for the LayoutItemPortal so that I can ignore it in
the client code.
* src/main/java/org/glom/web/client/ui/DetailsViewImpl.java: Ignore
LayoutItemPortal layout objects.
* src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java: Create
LayoutItemPortal objects when retrieving the details layout.
* src/main/java/org/glom/web/shared/layout/LayoutItemPortal.java: New
file. This is an empty class and just used to get type information for
now.
Ben Konrath [Tue, 12 Jul 2011 12:37:33 +0000 (14:37 +0200)]
Use java-libglom 1.17.0.
* pom.xml:
Ben Konrath [Mon, 11 Jul 2011 14:12:17 +0000 (16:12 +0200)]
Remove "Table:" label from table selector.
This matches a recent change in the Glom UI.
* mockups/details-contacts.html:
* mockups/details-projects.html:
* mockups/listview-contacts.html:
* mockups/listview-projects.html: Remove the "Table:" label from the
mockups as well.
* src/main/java/org/glom/web/client/ui/TableSelectionViewImpl.java:
Ben Konrath [Mon, 11 Jul 2011 12:42:38 +0000 (14:42 +0200)]
Add main groups to the details view.
This makes things look a little nicer in the details view. The next step
is to implement the flowtable.
* src/main/java/org/glom/web/OnlineGlom.gwt.xml: Inherit only the
resources from the standard gwt css theme. Standard.css is now
included in OnlineGlom.html so that the online glom css rules have
precedence over the gwt theme.
* src/main/java/org/glom/web/client/activity/DetailsActivity.java: Pass
the whole LayoutGroup to the DetailsView instead of just the titles.
* src/main/java/org/glom/web/client/ui/DetailsView.java:
* src/main/java/org/glom/web/client/ui/DetailsViewImpl.java: Create the
details layout with a helper class (GroupPanel). I might extract this
class when I make the full flowtable.
* src/main/java/org/glom/web/shared/layout/LayoutItem.java: Add empty
string as default so I don't have to worry about NPEs when processing
the layout objects.
* src/main/webapp/OnlineGlom.html: Add the gwt standard css file (see
note beside OnlineGlom.gwt.xml above).
* src/main/webapp/style.css: Add default font-size to body to override
the font-size set by the standard theme. Don't use h2 tags for
group-title. Create new details-cell class.
Murray Cumming [Sat, 9 Jul 2011 10:12:42 +0000 (12:12 +0200)]
Fix the ChangeLog
Murray Cumming [Fri, 8 Jul 2011 07:58:12 +0000 (09:58 +0200)]
ConfiguredDocument: Set the port number too.
* src/main/java/org/glom/web/server/ConfiguredDocument.java
(ConfiguredDocument.ConfiguredDocument): Get the port number from the
Glom document. Presumably this worked sometimes so far because there is a
default port number.
Murray Cumming [Fri, 8 Jul 2011 07:49:15 +0000 (09:49 +0200)]
ConfiguredDocument: Warn that sqlite and self-hosting are not supported.
* src/main/java/org/glom/web/server/ConfiguredDocument.java
(ConfiguredDocument.ConfiguredDocument): Check that the hosting mode is
correct, though we should throw an exception too.
Murray Cumming [Fri, 8 Jul 2011 07:40:01 +0000 (09:40 +0200)]
Fix a addDocuemnt typo.
* src/main/java/org/glom/web/shared/Documents.java
(Documents.addDocuemnt): Rename to addDocument().
* src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java
(OnlineGlomServiceImpl.getDocuments): Adapt.
Ben Konrath [Fri, 8 Jul 2011 15:36:32 +0000 (17:36 +0200)]
Cleanup comments.
* src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java: Also
added braces to a one line if statement because the Eclipse formatter
was getting confused.
Murray Cumming [Fri, 8 Jul 2011 07:25:47 +0000 (09:25 +0200)]
Slightly improved log output when connection fails.
* src/main/java/org/glom/web/server/ConfiguredDocument.java
(ConfiguredDocument.setUsernameAndPassword):
We don't know for sure if it' the username/password that's wrong, so
rephrase the message.
Also ouput the exception message, though it's generic in this case.
Ben Konrath [Thu, 7 Jul 2011 19:10:01 +0000 (21:10 +0200)]
Update project config files for Eclipse 3.7 and use GWT 2.3.0.
These should really be two separate tasks but I counldn't get things to
work with GWT 2.2.0 and Eclipse 3.7.
* .classpath:
* .project:
* .settings/org.eclipse.jdt.core.prefs:
* .settings/org.eclipse.jdt.ui.prefs:
* .settings/org.eclipse.ltk.core.refactoring.prefs:
* .settings/org.eclipse.m2e.core.prefs:
Add new config files. Update current files. Remove references to the
webtools plugins as we're not using any of the webtools features.
* .gitignore: Add logs directory which is created when running with
'mvn gwt:run'.
* pom.xml: Update to GWT 2.3.0. Eclipse configuration was automatically added.
* src/main/java/org/glom/web/OnlineGlom.gwt.xml: Moved from
src/main/resources/org/glom/web/OnlineGlom.gwt.xml as per this known
limitation:
http://mojo.codehaus.org/gwt-maven-plugin/eclipse/google_plugin.html#Limitations
Murray Cumming [Thu, 7 Jul 2011 08:51:26 +0000 (10:51 +0200)]
onlineglom.properties: Add explanatory comments.
* src/main/resources/onlineglom.properties: Also change the default user
from ben to someuser, to avoid the risk of people thinking we just
stupidly hard-coded a locale path, when they see that on stderr or in a log.
Ben Konrath [Tue, 28 Jun 2011 15:58:51 +0000 (17:58 +0200)]
Use filename in Log for incorrect passwords.
* src/main/java/org/glom/web/server/ConfiguredDocument.java: Add
getFileName(String) method to get the filename from the URI.
Ben Konrath [Tue, 28 Jun 2011 12:56:13 +0000 (14:56 +0200)]
Add the table name to the URL token for the ListPlace.
This makes things consistent between the DetailsPlace and the
This makes things consistent between the DetailsPlace and the
ListPlace. It also allows the the ListPlace to be bookmarked.
* src/main/java/org/glom/web/client/OnlineGlomService.java:
* src/main/java/org/glom/web/client/OnlineGlomServiceAsync.java:
* src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java:
Remove getDefaultListLayout(). The default layout is now returned
by the getListLayout() method when the table name is an empty string.
* src/main/java/org/glom/web/client/activity/ListActivity.java:
Add table name field. Change to a new ListPlace when the table
has been changed. Use getListLayout() for getting the default
list layout.
* src/main/java/org/glom/web/client/activity/TableSelectionActivity.java:
Add table name field. Set the correct table name in the list box
when loading from bookmark. This corrects a problem for the
DetailsPlace too.
* src/main/java/org/glom/web/client/place/DetailsPlace.java:
Move table name to super-class (HasSelectableTable). Move document
and table URL keys to super-class in HasSelectableTable.
* src/main/java/org/glom/web/client/place/HasSelectableTablePlace.java:
Add table name field. Add Tokenizer class with URL key common to
the subclasses (DetailsPlace and ListPlace).
* src/main/java/org/glom/web/client/place/ListPlace.java:
Add table name. Add code to parse the URL token.
* src/main/java/org/glom/web/client/ui/DocumentSelectionViewImpl.java:
Update ListPlace construction with empty table name string.
* src/main/java/org/glom/web/client/ui/TableSelectionView.java:
* src/main/java/org/glom/web/client/ui/TableSelectionViewImpl.java:
Change setTableSelectedIndex(int) to setSelectedTableName(String).
Update ListPlace construction with table name string.
* src/main/java/org/glom/web/shared/layout/LayoutGroup.java:
Change defaultTableName field to tableName to reflect how it's now
used. Update the getter and setter methods.
Ben Konrath [Tue, 28 Jun 2011 08:51:37 +0000 (10:51 +0200)]
Enable the table selector in the DetailsView.
* src/main/java/org/glom/web/client/OnlineGlomService.java:
* src/main/java/org/glom/web/client/OnlineGlomServiceAsync.java:
* src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java:
Remove getDefaultDetailsLayout(). The default layout is now returned
by the getDetailsLayout() method when the table name is an empty
string.
* src/main/java/org/glom/web/client/activity/DetailsActivity.java: Add
event handler for table change event. Change to using
getDetailsLayout() for the default details layout.
* src/main/java/org/glom/web/client/place/DetailsPlace.java: Add table
name to URL token.
* src/main/java/org/glom/web/client/ui/ListViewImpl.java: Use table
when navigating to the details place.
Ben Konrath [Mon, 27 Jun 2011 14:27:49 +0000 (16:27 +0200)]
Use filename based unique document ID in URL and for RPC.
The document ID is the glom document name with spaces (' ') replaced
with pluses ('+') and without the .glom extension.
This change is mostly a string substitution of 'documentTitle' for
'documentID'. The only code change is the addition of a Documents DTO to get the
filename to document title mappings as indicated below.
* src/main/java/org/glom/web/client/OnlineGlomService.java:
* src/main/java/org/glom/web/client/OnlineGlomServiceAsync.java:
* src/main/java/org/glom/web/client/activity/DetailsActivity.java:
* src/main/java/org/glom/web/client/activity/DocumentSelectionActivity.java:
Use Documents DTO to create the document links in the document
selection view.
* src/main/java/org/glom/web/client/activity/ListActivity.java:
* src/main/java/org/glom/web/client/activity/TableSelectionActivity.java:
* src/main/java/org/glom/web/client/place/DetailsPlace.java:
* src/main/java/org/glom/web/client/place/HasSelectableTablePlace.java:
* src/main/java/org/glom/web/client/place/ListPlace.java:
* src/main/java/org/glom/web/client/ui/DocumentSelectionView.java:
* src/main/java/org/glom/web/client/ui/DocumentSelectionViewImpl.java:
* src/main/java/org/glom/web/client/ui/ListView.java:
* src/main/java/org/glom/web/client/ui/ListViewImpl.java:
* src/main/java/org/glom/web/client/ui/TableSelectionView.java:
* src/main/java/org/glom/web/client/ui/TableSelectionViewImpl.java:
* src/main/java/org/glom/web/server/Log.java:
* src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java: Change
getDocumentTitles() to getDocuments() and return the Documents DTO.
* src/main/java/org/glom/web/shared/Documents.java: New DTO for
transferring the filename to document title mappings.
Ben Konrath [Sat, 25 Jun 2011 12:40:25 +0000 (14:40 +0200)]
Make the authentication popup work again.
This bug was introduced when I extracted ConfiguredDocument to its own class.
* src/main/java/org/glom/web/server/ConfiguredDocument.java: Return the
correct success / fail status in setUsernameAndPassword().
Ben Konrath [Sat, 25 Jun 2011 12:06:27 +0000 (14:06 +0200)]
Use filename as unique key for configuring database usernames and passwords.
This replaces the use of the Glom document title which could change
depending on the locale. Thanks to Murray Cumming for pointing out this
problem.
* src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java:
* src/main/resources/onlineglom.properties:
Ben Konrath [Fri, 24 Jun 2011 14:35:09 +0000 (16:35 +0200)]
Pass primary key value to DetailsView.
This enables the DetailsView to load the correct data.
* src/main/java/org/glom/web/client/activity/DetailsActivity.java: Add
primary key value field and set in constructor. Pass primary key
value to getDetailsData().
* src/main/java/org/glom/web/client/place/DetailsPlace.java: Add URL
variables for document title and primary key value.
* src/main/java/org/glom/web/client/ui/ListViewImpl.java: Pass primary
key value to the DetailsPlace.
Ben Konrath [Fri, 24 Jun 2011 09:31:09 +0000 (11:31 +0200)]
Add primary key index to LayoutGroup DTO and add ProvidesKey to CellTable.
This allows the primary key to be retrieved by the Details button. This
functionality has not been implemented yet but it's in the works.
* src/main/java/org/glom/web/client/activity/ListActivity.java: Pass
the LayoutGroup result to ListView.setCellTable instead of all of its
fields individually.
* src/main/java/org/glom/web/client/ui/ListView.java:
* src/main/java/org/glom/web/client/ui/ListViewImpl.java: Use
LayoutGroup as parameter for setCellTable. Add ProvidesKey to CellTable
get the primary key for the table.
* src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java: Set the
index of the primary key in the LayoutGroup accounting for hidden
primary keys. Rename getJavaNumberFormat() to
convertToJavaNumberFormat() for consistency. Cleanup / add some
comments.
* src/main/java/org/glom/web/shared/layout/LayoutGroup.java: Add a
field for primary key index and a field to indicate whether the
primary key is hidden or not.
Ben Konrath [Thu, 23 Jun 2011 15:19:06 +0000 (17:19 +0200)]
Rename getTableData methods to getListData.
This is a rename refactor for consistency with other methods.
* src/main/java/org/glom/web/client/OnlineGlomService.java:
* src/main/java/org/glom/web/client/OnlineGlomServiceAsync.java:
* src/main/java/org/glom/web/client/ui/ListViewImpl.java:
* src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java:
Ben Konrath [Thu, 23 Jun 2011 15:09:26 +0000 (17:09 +0200)]
Extract the ConfiguredDocument innerclass into its own class.
This makes the servlet code more object oriented.
* src/main/java/org/glom/web/server/ConfiguredDocument.java: Extracted
from private ConfiguredDocument class in OnlineGlomServiceImpl.
* src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java: Use the
new ConfiguredDocument class.
Ben Konrath [Tue, 21 Jun 2011 13:27:58 +0000 (15:27 +0200)]
Use the LayoutGroup group for the list layout instead of ColumnInfo and LayoutListTable.
This makes things more inline with how libglom works and reduces code
duplication. This refactor lays the groundwork for adding the primary key to
the LayoutGroup object.
* src/main/java/org/glom/web/client/OnlineGlomService.java:
* src/main/java/org/glom/web/client/OnlineGlomServiceAsync.java:
* src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java:
Change method names to getListLayout and getDefaultListLayout for
consistency. Use LayoutGroup as the DTO for the list layout instead of
ColumnInfo and LayoutListTable.
* src/main/java/org/glom/web/client/activity/ListActivity.java: Use the
new method names along with the LayoutGroup object for transferring the
list layout.
* src/main/java/org/glom/web/client/ui/ListView.java:
* src/main/java/org/glom/web/client/ui/ListViewImpl.java:
Use ArrayList<LayoutItem> instead of ColumnInfo[] in setCellTable().
* src/main/java/org/glom/web/shared/ColumnInfo.java: Deleted. Replaced
with LayoutGroup.
* src/main/java/org/glom/web/shared/LayoutListTable.java: Deleted.
Replaced with LayoutGroup.
* src/main/java/org/glom/web/shared/layout/LayoutGroup.java: Add
expectedResultSize and defaultTableName fields which are needed for
the list layout.
* src/main/java/org/glom/web/shared/layout/LayoutItemField.java: Add
type field which is needed for the list layout but will also be
useful for the details layout as things progress.
* src/main/java/org/glom/web/shared/layout/LayoutItemWithFormatting.java:
Make class abstract. Remove the unnecessary
getFormattingHorizontalAlignment method. Add setFormatting method.
Ben Konrath [Thu, 16 Jun 2011 18:36:14 +0000 (20:36 +0200)]
Add scripts for building and installing war.
These will help when updating OnlineGlom but they're also good
supplemental documentation of the build and deployment proceeding.
* utils/build-onlineglom-war.sh: New file.
* utils/install-onlineglom-war.sh: New file.
Ben Konrath [Thu, 16 Jun 2011 16:17:42 +0000 (18:17 +0200)]
Create wrapper class to create consistent log messages.
I wrapped methods in the Log class of gwt-log to add the method names
from the servlet and create consistent formatting of the document title
and table names in the log messages.
* src/main/java/org/glom/web/server/Log.java: New file with wrapped methods.
* src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java: Convert all
log methods to use methods from wrapped Log class.
Ben Konrath [Thu, 16 Jun 2011 14:26:18 +0000 (16:26 +0200)]
Remove superfluous conditional return.
Thanks to Murray Cumming for pointing this out!
* src/main/java/org/glom/web/server/OnlineGlomServiceImpl.java: