|
Project Information
Members
Featured
Downloads
Wiki pages
Links
|
IntroductionKiyaa was created in the process of building my online accounting software Clarity Accounting, which is currently the best demonstration of this toolkit's usefulness. The name: "Kiyaa!" is a sound a code ninja can use to focus his ki while crushing bugs with his bare hands. Template SystemKiyaa templates allow you to define a view using an XHTML+XML file to define the "appearance" of the view, plus a class which provides actions and bindings for that view. These files are theoretically editable by someone who only know XHTML+CSS, but not java. Features include:
Asynchronous OperationsYou'll also find some useful AsyncCallback utility classes, including:
Shared Localization ClassesKiyaa includes a class which can use javassist to generate an implementation of your Messages and Constants interfaces for any Locale that uses ResourceBundle and honors the GWT annotations. This is very handy for sharing some localization class between client or server, or just to take advantage of the convenience and type-safety of the GWT system compared to some more cumbersome alternatives. Note: It doesn't use UTF-8 properties files like GWT does (yet) - I'd need an implementation of ResourceBundle that supports this - GWT's own implementation is in gwt-dev-XXX.jar, which I don't want a dependency on. It also includes the LocalizedParser interface and a server and client-side implementation of these to use for formatting numbers and dates for the current locale. This allows shared code to do localization; previously you had to use different classes on the client and server because GWT has its own date and number formatters that don't work on the server. Caching ClassesIt includes a set of classes to help add some client-side caching to your RPC services. DateJsThere's a wrapper for the DateJs javascript date parser that you can use for flexible date input parsing. Calendar WidgetThere's a calendar implementation you can use based on the code for jscalendar, but re-written. However, it'll still work with their CSS, I think. Custom Combo Box and PopupThere's a somewhat sophisticated combo box and popup system that allows you to implement rich popups with a table or list of choices inside, some actions, and it with the combo box filters the list as you type, to find what you are looking for. Generator BaseclassThe templating system uses a Generator and I also abstracted some of the Generator logic into a base class you can use to help create your own generators. PopupPanel patchIncludes a subclass of PopupPanel that hides itself when focus moves to a widget outside the popup. This means that popups will hide correctly if the user uses keyboard navigation to leave the popup instead of clicking. EJB AccessThis includes a Servlet base class you can subclass to provide your GWT code with access to an EJB (either stateful or stateless). The EJB has to implement the interface you want to call (which must be a subclass of RemoteService), and then the Servlet redirects calls to the EJB instead of calling methods on itself. You implementation provides a method getBean() which returns the EJB that you want to direct method calls to. Other UtilitiesIn the com.habitsoft.kiyaa.util package ...
SupportIf you post to the Google Group I created for the project I'll get an email and answer you at my own leisure. Who knows, one day there may be a little community of people to answer your questions in that group. Example ApplicationI've just released a new open source project that uses this code - a live log and stats viewer for glassfish (or similar app-servers). Find it here: glassfish-dashboard |