Ninebit Taglibrary  
  Home |  License |  Download |  Ninebit  
 
  Why yet another taglib?
   
  The Ninebit Tag Library initiative came up when a project where giving the opportunity to enter a refactoring phase. One of the goals where to reduce as much scriptlet-code in the JSP-source as possible. This by introducing taglibs. Most of the taglib functionality already existed in third party taglibs. However there where a couple of components that came back repeatedly that in some cases existed in other packages but did not fullfilled our demands. These components where:
  • a table component
  • a tabbed pane component
  • a dynamic JavaScript tree component
  • a simple button component to map selected rows in a table
  General component features:
 
  • All components have a public interface. This enables you to make your own implementation of the components. You may for example implement your own tree component that is based on, lets say, HTML instead of JavaScript.
  • Each components have their own specialized configuration file (if any). However the current implementation is refered from one configuration file.
  • Main target and tests for these components have been IE6 however other browsers may handle them fairly or as good as IE6.
 
 
  The table component features:
 
  • The API supports all kinds of input collections: Bean rows, String arrya rows, Map rows and List rows.
  • The data in the beans are accessed by specifying the beans attribute through the tag attribute 'property'.
  • The data in String arrays are presented in order but can be reaarenged by the tag attribute 'index' where value is set to sequence order in array.
  • The data in Maps are accessed by specifying the Map key through the tag attribute 'property'.
  • The data in Lists are presented in order. The output from each object in the list is depended upon the implemented function 'toString()'.
  • You may controle the layout by a 'styleClass' tag attribute on the table, table headline, tablecolumns, odd and even columns. However there is a default style implemented that will do for most purposes.
  • Possible to specifie target for url. Both on normal klick on url and doubleclick on row.
  • Possible to specifie one or more attributes in a row that should be included as parameters to the url. These are commaseparated in the tag attribute 'parameters'. Much more convenient than implemented in JSTL.
  • Advanced dialog handler with very simple specification.
  • Row index feature (Prev/Next) controlled by you. Not depended on the context buffer.
  • A separate headline url supported where you for example may trigger your own (context independed) sort.
  • You may add as many tables you want on the same page with all features specified above with no interference between them. (as long as you use a unique name for each table:)
 
 
  The tabbed pane component features:
 
  • Very simple. Only specified through tags in JSP. No API needed.
  • Possible to set other 'styleClass' for the text.
  • Support mnemonics (shortcut keys) for each tab.
  • Supports nested tabbed panes with maintained state for each tabbed pane. (Well, who need nested tabbed panes? Avoid it!)
 
 
  The tree component features:
 
  • Generates a very stable, portable and flexible JavaScript tree. The JavaScript tree is based on the xTree tree by Emil A Eklund. Please, read the licence information about this tree. There is also an old implementation of the xTree included in this distribution that is modified to fit a previous project. This modification included target support (now included in new version of xTree). Also using GIF images instead of PNG-files. The old and the newest version of xTree has been modified by Ninebit to support dynamic image path.
  • Supports both static (tags in JSP only) and dynamic (one tag in page refering to server side generated tree) tree.
  • You may add as many trees you want on the same page with all features specified above with no interference between them. (as long as you use a unique name for each tree:)
  The button component features:
 
  • Is only here to support the tables where you would like to map a button to selected row action instead of invocing doubleclick.
  • You may apply your own 'styleClass' on the button.
   
SourceForge.net Logo