ZK is an open source solution for server-centric web application programming, which is both powerful and easy to use. We use ZK as the foundational infrastructure for our web-enabled software, notably for the ThinkCap semantic portal toolkit.
To enable some of the advanced features we need at integratedmodelling.org, we have developed two general-purpose missing pieces that enhance the usefulness of ZK. We are releasing these two libraries independently from our other projects, licensed under the General Public License version 3 or any later version. The first extension integrates the Javascript mapping framework OpenLayers into ZK. The second integrates the draw2d library by Andreas Hertz, allowing Yahoo Pipes-style diagramming and visual programming with ZK components.
While ZK has a Google Maps integration that is quite powerful, it has so far lacked an OpenGIS-compliant mapping solution that allowed layering multiple maps from standard sources (such as the Web Mapping Service: WMS). We also needed to provide easy and powerful ways to add, delete and modify shapes on the map (such as lines, points, and polygons) from both the client and the server side. The OpenLayers library provides all this for the client side; it can also use Google Maps, Yahoo Maps, Virtual Earth and other sources as layers. We are happy to deliver the OLmaps library to the ZK open source community, which marries the power of OpenLayers and the simplicity and convenience of ZK. With OLmaps, many complex tasks become trivial. For example, drawing a polygon extracted from a database on a world map and allowing a user to delete, move or modify it, or having a user draw a complex shape or path using high-resolution satellite imagery as a guide and pass it to the server in WKT format for processing.
Version 0.1beta of the OLmaps library is available for download now. Please continue on to the OLmaps page for demos, tutorials, and download links.
zkDiagram is an integration of the young (but already great) draw2d library by Andreas Hertz (http://draw2d.org/draw2d). The library allows Visio-style diagramming and Yahoo Pipes-style interactive visual programming on the web. The only problem is that AJAX server integration is of course not part of the library, so programming any significant application that can exploit such complex and highly interactive functionalities is a fairly major task.
Our ZK integration tries to address this problem. Along with standard diagramming functions, we support the zknode component that allows wrapping a ZK component in a diagram node, so that it can be given "ports" and connected to others in an editable diagram. Events are sent when users modify the diagram in any way (such as connecting ports). We have also added a still rather primitive "workflow" functionality, which notifies each component of input available coming from the connections and allows it to react by making output available through its output ports. We will use this extension to develop bayesian network and dynamic model editors for the web, but the possibilities are endless for the creative mind. Both draw2d and zkDiagram are very young projects, so even alpha state is an overstatement at this stage. Still, we're making it available with some basic documentation and will keep developing it in the coming months. You are of course welcome to help.