Introduction

Our aim while developing Karn was to take all the good features of the Parth framework and plug them into ZK. The rationale for this was the obvious similarity between Parth and Zk design philosophies. The end result is a set of custom components which provides a ZK developer with the “Parth GOODIES”. It is noteworthy that Karn has been designed in such a way that current Parth application need only to change their view XMLS to be deployed on ZK. No code base change is required.

Parth details are at http://aurora.regenstrief.org/mw/wiki/Framework

ZK details are at http://www.zkoss.org/product/zk.dsp

Please send us your suggestions and comments at karn@…

Latest Development

Karn featured on ZK site!!'''

ZKRealWorld

New Features

NewFeatures

Parth XWSF Karn ZK hmmmmm?

We are very sorry for the name flood. Here is a little story to put things into perspective.

Initially there was XWSF with its very nice declarative approach to databinding and GUI.It was using SWT as the client technology.Then on a very fateful day our team had an idea,why not have a web client for the XWSF framework. So we started studying and analyzing the various web technologies available. After much thought and deliberation we set our heart on the ZK(Really like the design philosophy and the support,5 points to ZK)framework.But fate had something else in store for us. As we got to know the ZK framework better, we realized that it was very similar to XWSF(Both used server centric architecture and both used declarative approach for GUI generation) and already had a very good server centric infrastructure ready.Although ZK lacked the powerful declarative databinding features among other things.Then came another innovative idea from our team(What can I say we are very smart).The idea was to create ZK components which can bring the XWSF good features(XWSF goodies) to the ZK framework. So we started with this idea, we faced certain challenges while implementing the idea. One of the major challenges was to make the XWSF framework generic. During XWSF's tryst with SWT some of the XWSF constructs had grown very close to the SWT implementation.After we separated and refactored some stuff the result was the XWSFcore API.Hence the result was a component package for ZK powered by the XWSFcore API which we named Karn.So to summarize we have three things

1.XWSF:The complete framework with the server side infrastructure(implementation of Views, Widgets) in place. This can be used with purely client presentation technologies like SWT, Dojo,etc.For details on how to use this with different technologies see the SWTClient project.

2.XWSFcore:The core API has all the infrastructure(View interface,Widget interface) needed for using the very cool features of the XWSF framework.This can be used with server centric technologies which already have their basic infrastructure(Event handling mechanisms etc) setup. We used it to create Karn.

3.Karn:XWSF goodies package for ZK.

This is all good, but who is Parth.A developer in the team??Well not quite, after all the development was done we realized that a little renaming was needed.It is very unfortunate, that right now we are in the middle of the whole renaming process. Cleaning up the site, refactoring the code base.Till all that can be achieved following is the rule that will come in handy. Everything XWSF is Parth,Everything Parth is XWSF.Everything XWSFcore is Parthcore,Everything Parthcore is XWSFcore

Team

1. Dr Gunther Schadow - Creator Parth, Advisor on Karn and ParthCore?

2. Mahesh Nalkande- Team Lead(Persistent Team),Developer Parth, Advisor on Karn and ParthCore?

3. Abhishek Patnia- Creator Karn, Developer ParthCore?

We would also like to thank Akshay, without whose valuable insight and advice the MW porting would not have been possible. Thanks to Sameer, who took out time to try out the Karn features and provided us with useful and unique insight.Last but not the least thanks to Vikram(He also worked on vamooz, a free read-it-as-it-comes, news app) for taking out time from his busy schedule for designing the Karn logo.

Declarative Databinding.Whats the buzz all about

MVC architecture.We all know what it is. The brilliant idea of separating Model(Business logic and the related model objects),View(In most simplistic terms GUI) and control. But View needs to present data from the model.Traditionally we do this by creating layers between the View and the Model.These layers are the communication link between the View and the model.The layers require lots of complex code and well some more code.

Declarative databinding tries to eliminate this layer creation or at least reduce the implementation effort and complexity of such creation.

In XWSF we do this by creating some support classes which define how certain model objects can be used.Also while specifying the widgets in the view XMLs we also specify the model object to which the particular widget will be linked the rules of this linkage.So the developer is saved from writing all the code for interfacing the widgets to the model objects.Like it see the manuals for more.

Features

1.Databinding: Our aim is to provide two way declarative databinding.

a.Binding to widgets

b.Binding to database tables

c.Composition for constraining data entry

d.Formatters for formatting data when its being updated to the widgets

2.Dynamic Page Movement: We have mechanisms in place for dynamic and static insertions of complete pages(Views in Karn, Customized Window Class ). These features are provided using Viewreference and Viewpalceholders tags.

3.Widgets: New widgets have been added which are implementation of certain ideas that we have.

a.Autocompleters that can bind to database tables using hibernate.

b.Xwsftext which is our take on the perfect textbox, with things like visible tooltip(stub in karn) and phantom feature.

c.Phantom feature gives the ability to set the width of an input box such that it will fit a predefined string, taking in consideration the various style attributes.

4.Event handling: We have also added a new way to handle events Basically we have introduced the Action and Controller constructs.

a.Action has the business logic

b.Controller delegates to the particular action.

demo

Username: gschadow (password is not required, and please use the bottom login button)

Downloads

Nightly Builds of Karn and ParthCore? jars

1. Karn

2. ParthCore

Stable build of Karn and ParthCore? jars

1. karn

2. ParthCore

Demo Project

demo

This is an eclipse project. Non eclipse users can use the files inside the RAR as they deem fit.

Source

The source code for Karn and ParthCore? is available on our SVN repository.We use Eclipse Ganymede as the development IDE. So you can import complete project and set it up locally.

Karn

http://aurora.regenstrief.org/svn/karn/trunk

ParthCore?

http://aurora.regenstrief.org/svn/parthcore/trunk

Documentation

1. JavaDocs

2. KarnUserManual

3. ServerDetails

4. PMDCheckstyles

Quick Instuctions for Subversion

Subversion is used essentially like CVS. You say

svn co http://aurora.regenstrief.org/svn/karn/trunk karn

(the trunk is now FREEly available) and once that is done you can do

cd karn

and

svn update

or

svn commit

just like one did with CVS.

Subversion for Eclipse

Download Subclipse to access the repository with Eclipse.


Logo Design courtesy

Vikram Ghotgalkar(vikram.ghotgalkar@…)

Attachments