[Zope-dev] VisualStudio Product ideas

Anthony Pfrunder s341625@student.uq.edu.au
Wed, 29 Sep 1999 12:33:32 +1000 (GMT+1000)


Hi,

Noting the recent release of the excellent XML Widgets of M.Faassen and
the discussion on wysiwyg I thought I better pre-annouce my upcoming
VisualStudio for Zope in case other people are working on the same thing.

Currently, VisualStudio consists of 3 classes: Forms, Widgets and
Behaviours.  A Form is an XML document containing XHTML + Widgets.

Widgets are represented by:
	<box name="mybox1" x=1 y=5 width=10 height=50 behaviours=""
theme="None">
		contents
	</box>

within the form.  They are rendered to HTML by calling a series of
functions on a widget.  A widget is another XML document in the aquisition
path of the form:

	<widget name="box" behaviours="..">
	<constructor>javascript constructor function</constructor>
	<builder>
		<CSS></CSS>		<- use browsers to edit these
		<DIV></DIV>
	</builder>
	<code language = ''>additional javascript/dhtml/python method
code</code>
	<body>What to replace the widget reference with</body>
	</widget>

where each subelement is a PythonMethod called by passing the node within
the form and the root node of the form.  Hence, they can edit the copy of
the form by obtaining information from other nodes within the widget.

Finally, each widget can have a number of behaviours.  Behaviours are like
mix-in classes for javascript/dhtml.  Currently behaviours include:

	draggable - makes a piece of html draggable on both NS & IE
	scrollable - cross-browser / themable iframes on NS & IE
	path-xxx - same properties as a gif animation but move html
around in a preprogrammed path.
	resizable - add a resize button to it

Example: to make a cross-browser, themable MDI window:
	<window name="mywin" behaviours="path-circle path-square
resizeable".. theme="MyTheme">
		This is a window
	</window>

to show it:
	<a href="javascript:mywin.show()">Show it</a>

to hide it:
	<a href="javascript:mywin.hide()">Show it</a>

to change the theme:
	edit the Theme object (not started yet but is just a collection of
images with some dhtml sugar to provide easy editing of them)

So, in summary, VisualStudio merges javascript and Zope backend
scripts into the same namespace.  This is done by merging XML and
javascript on both the sever and client.  Future plans include porting the
GPL DuoPath to create a Visual Basic style development environment with
visual and xml style editing working side by side.

Cheers,

Anthony Pfrunder

PS Check out Dan Steinman's DHTML tutorial: http://www.dansteinman.com/dynduo
The code is GPL (_NOT_ the tutorial itself) is where I get the javascript
from.