[crossbar-user] RE: saw your crossbar-user subscription...
Status: Inactive
Brought to you by:
kehoe
|
From: Daniel K. <ke...@fo...> - 2002-09-13 06:28:55
|
Brian,
You've got a good grasp on the Crossbar concept, even without
installing it (or having docs!).
On Thu, 12 Sep 2002 21:29:12 -0400, "Brian Topping"
<to...@di...> said:
> In some regard, all applications are "reporting applications"
Yes, most are, where there's presentation to the user. Here's the
corollary: most data intended for presentation fits a tabular data set.
That's where the CachedRowSet comes in. It's been neglected as if it
were some freakish JDBC extension (most people think of it only as
hyper JDBC ResultSet that makes its own connections). But it's ideal
for handing off result data sets from the Model to the Presentation
layer. Just about anything can be crammed somehow into columns and rows
with column labels and a table name. Once you've got a CachedRowSet
into the Presentation layer, you can write a custom tag that presents
the tabular data in any format you can think of. HTML tables are
obvious. But presentation formats can be Google-style search results
(like the Lucene example). Or a weblog (a pet project). Or graphical
charts. Or navigation menus. The Crossbar menuing system is driven by
data in a CachedRowSet. If you want to see what the menu table looks
like as a table instead of a DHTML menu, just use a Table tag to format
it instead of a Menu tag (that's what the Menu Diagnostic page does).
Since presentation formats tend to the universal, it makes sense to
share them as open source. For Crossbar, you could write a different
table tag for each kind of presentation format (they would all take a
CachedRowSet as input). I took that one step further and wrote a
generic table tag that accepts different formatters as plug-ins, so one
table tag can be used on any page and the Model can suggest what
formatter the table tag should use ("i'm a Model for a weblog so format
this CachedRowSet data like a weblog").
> The first application that I wouldn't mind integrating into something l=
ike
> Crossbar is a simple app with Webalizer functionality. Since everyone =
needs
> the ability to analyze web logs, this might be a really good sample app=
.
|