> 1. Currently Equinox (http://www.wizards.dupont.com/Equinox/Equinox.html)
> makes two separate calls to a remote server: 1) get a FlatField and 2)
> get a String array of word stems associated with the (x,y) values of
> the FlatField. I do this because they are two different data types and
> to ensure the threaded server can support multiple clients connecting
> to it. I would like to return both the FlatField and String array in
> one call. Better yet, it would be ideal to make the word stems
> available as meta-data of the FlatField. I need to install the
> meta-data (word stems) on the remote server and determine their values
> from the Equinox client. How is this done? I have not seen any
> examples that demonstrate how textual meta-data (TextType) can be
> utilized.
There are a bunch of approaches to this problem. One is to
extend RemoteServer and RemoteServerImpl to hold an array of
Strings (in addition to the array of RemoteDataReferenceImpl
it now holds). They would need a method getStrings() similar
to the existing getDataReferences(), and an String[] array
argument in the constructor.
Another is to pass the Strings in a FieldImpl with MathType
(n -> text) where text is a TextType.
A third approach is to extend FlatField to add an array of
Strings. The FlatField extension will be passed by copy from
server to client, with its Strings.
> 2. Equinox uses a yellow tracking dot to move a green dot across the
> surface that represents the number of documents a particular word stem
> is associated with. I believe the tracking would be easier if the
> green dot was instead a green line. The green dot sometimes disappears
> behind surface peaks which makes it difficult to track. A green line
> parallel to the Z axis would prevent the user from losing track of the
> intersection of the surface. Can this be done? Any hints on how to
> get this working would be most appreciated.
You could write a new DirectManipulationRenderer to do this,
but it might be simpler to approximate it with a CellImpl and
two Data objects. The idea is that the green dot is a RealTuple
with two Real components whose RealTypes (x, y) are mapped to
XAxis and YAxis. This green dot is displayed with
DirectManipulationRendererJ3D, with one ConstantMap that sets
the ZAxis value of the green dot to the top of your box. The
green dot data object triggers a CellImpl that computes a
FlatField (with two samples) and MathType (z -> (x, y)), where
the ScalarMaps are x -> XAxis, y -> YAxis, z -> ZAxis. The
sampling of the FlatField consists of two z values mapped to
the bottom and top of the box. The CellImpl sets the (x, y)
values at both samples to the (x, y) values of the green dot.
The FlatField would be displayed with an ordinary RendererJ3D.
Good luck,
Bill
----------------------------------------------------------
Bill Hibbard, SSEC, 1225 W. Dayton St., Madison, WI 53706
whibbard@xxxxxxxxxxxxx 608-263-4427 fax: 608-263-6738
http://www.ssec.wisc.edu/~billh/vis.html
"kill cross-platform Java by growing the polluted Java market"
- from an internal Microsoft planning document