[Mono-docs-list] Mono doc browser on the web: the tree view.

Ben Maurer bmaurer@users.sourceforge.net
03 Aug 2003 00:31:42 -0400


On Sat, 2003-08-02 at 15:54, Miguel de Icaza wrote:
> Hello guys,
> 
> We have discussed in the past the tree view component of Monodoc on
> the web.  Today we discussed on irc a few options, and we found a number
> of interesting solutions.


I wanted to describe in a bit more detail what we were thinking of
doing.

We would like a treeview that works like MSDN's one does in IE. It
should transfer tree data as needed. We should probably use XML to
transfer the tree, an example of how to do this is at
http://www.mozilla.org/xmlextras/syncget.html (works in moz & IE).

So here is what we would do

1) Javascript

There should be a .js file that is referenced by the frame holding the
treeview. It should do the following:

     1. Get the data for the tree
     2. Handle request for more data when the tree is expanded

2) Expanding the tree.

Lets say the user expands the node root:/. The Javascript file would
send a request for

/treedata.ashx?node=root:/

The server would send back XML like:

<node url="root:/">
	...
	<node url="root:/class-lib" incomplete="true" />
	...
</node>

It would then add nodes to the root node, making the tree look like

root
|-...
|-Class libs
|-...

So implementing this basically has two parts:
     1. Implementing the Javascript
     2. Implementing the web handling

Item 2 we have no problem with, however someone will need to step
forward for 1.

Some problems I envision with part 2:

     1. Right now, there is no one-to-one relation between URLs and
        nodes. For example, in the mono handbook, each chapter links to
        empty.html. This leaves us with a problem of how to transfer the
        event "I clicked node xyz, what is inside" to the server. We
        could do two things. 1) enforce a one-to-one constraint on each
        provider. 2) come up with another form of node IDing. I
        personally like 1 because it is hard to do 2 in such a way that
        bookmarking pages is easy.
     2. We have not optimized monodoc for URL --> Node lookup in
        providers such as monohb. We need to take a look at performance
        in this area a bit.
I would love comments on these two issues, especially #1.

-- Ben