krad - new features and improvements for the rice application development framework
DESCRIPTION
KRAD - New Features and Improvements for the Rice Application Development Framework. Introduction. Scott Gibson Rice Developer University Of Maryland Jerry Neal Rice Developer Indiana University. Overview. Why this Presentation? Benefits of the KNS (KRAD) Overview of KNS Components - PowerPoint PPT PresentationTRANSCRIPT
open source administration software for education
software development simplified
KRAD - New Features and Improvements for the Rice Application Development Framework
open source administration software for education
Introduction
• Scott Gibson Rice Developer University Of Maryland• Jerry Neal Rice Developer Indiana University
open source administration software for education
Overview
• Why this Presentation?• Benefits of the KNS (KRAD)• Overview of KNS Components• What is KRAD?• Overview of KRAD Features• Questionnaire & Questions• Beyond KRAD 1.1, 1.2
open source administration software for education
Why this Presentation?
• Community Involvement • Early Feedback
open source administration software for education
Benefits of KNS (KRAD)
• Decreased development time• Increased code reuse (more maintainble)• Standard development paradigm (training)• Standard Look and Feel• Integration with other Rice modules (KEW,
KIM)• Accessibility• Designed for Extensibility
open source administration software for education
Overview of KNS Components Concept
ENTITY_TEntity
(POJO)ORM
MappingData
Dictionary
Lookups and
Inquiries
MaintenanceDocuments
TransactionalDocuments
Workflow(KEW)
open source administration software for education
Overview of KNS Components Data Dictionary
<bean id="Country" parent="BusinessObjectEntry"> <property name="businessObjectClass" value="org.kuali.rice.kns.bo.CountryImpl"/> <property name="inquiryDefinition"> <ref bean="Country-inquiryDefinition"/> </property> <property name="lookupDefinition"> <ref bean="Country-lookupDefinition"/> </property> <property name="titleAttribute" value="postalCountryCode"/> <property name="objectLabel" value="Country"/> <property name="attributes"> <list> <ref bean="Country-postalCountryCode"/> <ref bean="Country-postalCountryName"/> <ref bean="Country-alternatePostalCountryCode"/> <ref bean="Country-postalCountryRestrictedIndicator"/> <ref bean="Country-active"/> </list> </property> </bean>
open source administration software for education
Data DictionaryOverview of KNS Components
<bean id="Country-postalCountryCode" parent="AttributeDefinition"> <property name="name" value="postalCountryCode"/> <property name="forceUppercase" value="true"/> <property name="label" value="Country Code"/> <property name="shortLabel" value="Country Code"/> <property name="maxLength" value="2"/> <property name="summary" value="Postal Country Code"/> <property name="description" value="The code uniquely identify a country."/> <property name="required" value="true"/> <property name="validationPattern"> <bean parent="AlphaNumericValidationPattern"/> </property> <property name="control"> <bean parent="TextControlDefinition" p:size="2"/> </property></bean>
open source administration software for education
Overview of KNS Components Lookup
open source administration software for education
Overview of KNS Components Inquiry
open source administration software for education
Overview of KNS Components Maintenance
open source administration software for education
Overview of KNS Components Maintenance
open source administration software for education
Overview of KNS Components Transactional
<kul:documentPage documentTypeName="KualiGeneralErrorCorrectionDocument“ htmlFormAction="financialGeneralErrorCorrection" renderMultipart="true" showTabButtons="true">
<html:hidden property="document.nextSourceLineNumber"/> <html:hidden property="document.nextTargetLineNumber"/>
<kul:hiddenDocumentFields />
<kul:documentOverview editingMode="${KualiForm.editingMode}"/>
<fin:accountingLines editingMode="${KualiForm.editingMode}“ editableAccounts="${KualiForm.editableAccounts}"/>
<fin:generalLedgerPendingEntries/>
<kul:notes/>
<kul:adHocRecipients/>
<kul:routeLog/> <kul:panelFooter/>
<kul:documentControls transactionalDocument="true" />
</kul:documentPage>
open source administration software for education
What is KRAD?
• Stands for: “Kuali Rapid Application Development”
• Major effort to enhance and improve the KNS– More Flexible, Richer … Faster!– Include features from Kuali Student
• Eventual rename of KNS Rice module
open source administration software for education
What is KRAD?
• Major focus:– Rich UI Support– More UI Flexibility– Improved Configuration and Tooling
• Numerous smaller improvements– Lookups, Inquiries, & Maintenance Improvements– Improved Navigation
open source administration software for education
What is KRAD?
• Inspiration– Numerous suggestions collected from projects and the
community– Feedback from UI Designers– Kuali Student– Other Frameworks: Rails, Roo, Seam
• Timeline – First release scheduled for Rice 1.1 (November 2011)– Continued work on major enhancements through Rice 1.2
open source administration software for education
KRAD Features – Rich UI
• Simplifies HTML Document Traversing & Event Handling
• Lightweight and Non-Impacting
• Built in Cross Browser support
• Rich Widgets:– Dialog, Button,
Accordion, Autocomplete …
• Interactions and Effects:– Draggable, Droppable,
Show, Hide, Toggle …
open source administration software for education
KRAD Features – Rich UI
• Just JavaScript! Place in <script> tag or script file
• Selectors – select one or more DOM
elements– Placed inside $() or jQuery()– Ex. ‘*’, ‘#id’, ‘.class’, ‘document’,
‘this’, ‘:text’ …• Methods
– Syntax: $(selector).method()– html, val, css, width …– each, first, last, parent, children
…
• Events– Syntax: $(selector).bind(event,
[data], fn)– blur, change, focus, …
• Effects– Syntax: ${selector).effect– fadeIn, fadeOut, slideDown,
show, hide• Miscellaneous
– jQuery.get, jQuery.ajax, jQuery.getJSON, jquery.getScript, jquery.post …
jQuery in 3 minutes!
open source administration software for education
KRAD Features – Rich UI LightBox
• Keeps user on page (reduces number of tabs/windows)
• Display div content or iframe• Draggable, Resizable, Modal• Built using jQuery Dialog
– Ex. $(selector).dialog([options])
open source administration software for education
KRAD Features – Rich UI
• Lightbox support for Inquiries, Lookups, Confirmations, and expanded Text Areas
• Pic Here
LightBox
open source administration software for education
KRAD Features – Rich UI
• Constraint Message – displays field restrictions• Defined in dictionary:
Messages
Ex. Constraint Message
open source administration software for education
KRAD Features – Rich UI
• Watermark – displays in text field (ex. date format)
• Defined in dictionary:
Messages
Ex. Watermark
open source administration software for education
KRAD Features – Rich UI
• Growls – notifications about events• Built in growls for Save & Route• Use jQuery for custom notifications:
Messages
open source administration software for education
KRAD Features – Rich UI
• Other Messages:– Roll over field level help– Always displayed field Summary– Page submit/load notification
Messages
open source administration software for education
KRAD Features – Rich UI
• Show information when needed• Show/Hide
– Sections (Tabs)– Groups (Parts of Tab)– Fields– Field Group (Grouping of fields)
• Server & Client side support
Progressive Disclosure
open source administration software for education
KRAD Features – Rich UI
• Implement PresentationController:
• Also supports conditional read-only & required• Called on page submits, can define ‘trigger’ field in dictionary for more
dynamic behavior:
Progressive Disclosure
Server Side
open source administration software for education
KRAD Features – Rich UI
• Declare as ‘progressiveDisclosure’ in dictionary:
• Implement jQuery script to show/hide:
Progressive Disclosure
Client Side
open source administration software for education
KRAD Features – Rich UI
• Dynamic Read-Only Content – additional read-only information displayed under a field
• Defined in the dictionary:
Ajax
open source administration software for education
KRAD Features – Rich UI
• Client side validation– Automatic translation of dictionary validation to
client validation script• Text based button generation• Improved Calendar widget
Other
open source administration software for education
KRAD Features – UI Flexibility
• More layout flexibility for Inquiry and Maintenance Screens
• Ability to generate all screens (transactional documents)
• Support different look and feels (e.g. KS)• Extensible and Customizable (without
modifying core code)
Goals
open source administration software for education
KRAD Features – UI Flexibility
• Built using existing pieces of functionality• No ‘object translation’ layer (dictionary-
>definitions->view)• Uses fine grained tag files for rendering view• Configured tag file and view object association• Allow code access to modify definitions when
necessary
Architecture
open source administration software for education
KRAD Features – UI Flexibility
• View – Rendering of information, fields, and other items to a user (the HTML page: header, body, footer, style, navigation)
• Section – Grouping within the view (usually associated with a menu item, horizontal/vertical tab)
• Group – Grouping of the Sections items • Field – An application attribute or action and related elements
(label, control, lookup, constraint, …)• Field Group – A grouping of Fields• Element – The basic renderable items (text, control, button,
image, link, …) *
Concepts
* With the exception of Elements, all concepts are containers that hold certain items
open source administration software for education
KRAD Features – UI Flexibility Concepts
Concept Wireframe
open source administration software for education
KRAD Features – UI Flexibility Concepts
Ex. Disbursement
Voucher
open source administration software for education
KRAD Features – UI Flexibility
• Responsible for overall layout and style – Navigation, Header/Footer, Body (Sections)– Can be single or multi paged
• KRAD View Types– StackedView: Renders sections in vertical flow
(with optional tabs), single page– TabbedView: Provides page navigation with
horizontal tabs
Views
open source administration software for education
KRAD Features – UI Flexibility
– MenuView: Provides page navigation through a menu
– WizzardView: Provides sequenced page navigation through the use of buttons
– DocumentStackedView & DocumentTabbedView: Extends base view types for rendering standard document header/footer content and sections
• View Type + Style = View
Views
open source administration software for education
KRAD Features – UI Flexibility
• A view is associated with an application entity in the dictionary
Views
open source administration software for education
KRAD Features – UI Flexibility
• Renders content for a Section, Group, or Field Group
• KRAD Layout Managers– GridLayoutManager: Arranges components in
table cells with auto wrapping ([options: numberOfColumns, autoLabel, labelPlacement])
– BoxLayoutManager: Arranges components one after another vertically or horizontally
Layout Managers
open source administration software for education
KRAD Features – UI Flexibility
– TableLayoutManager: Arranges components in a collection table
– MaintenanceLayoutManager: Special GridLayoutManager that adds additional fields
• Custom Layout Managers can be created with spring definition and tag file handler
Layout Managers
open source administration software for education
KRAD Features – UI Flexibility
• Contain a title, one or more groups, and zero or more actions
• Associated errors and rollup of group errors
Sections
open source administration software for education
KRAD Features – UI Flexibility
• Contain a title, sub-title, one or more fields, zero or more actions
• Associated errors and rollup of field errors
Groups
open source administration software for education
KRAD Features – UI Flexibility
• Usually associated with an attribute• Pull in information from dictionary attribute
entry, but can override any settings (label, control, lookup, …)
• Include many additional properties:– hidden, readOnly, lookupReadOnly, colspan, width, align,
labelPlacement, required, total, triggerOnChange, …
Fields
open source administration software for education
KRAD Features – UI Flexibility
• Examples: – FieldDefinition, LabelFieldDefinition (attribute)– ActionFieldDefinition– TextFieldDefinition, HeaderFieldDefinition– BlankFieldDefinition
• Custom Fields can be created with Spring definition and associated tag file handler
Fields
open source administration software for education
KRAD Features – UI Flexibility
• Contains a label and one or more fields• By default uses BoxLayoutManager (Horizontal
or Vertical layout, single table cell for fields)
Field Groups
open source administration software for education
KRAD Features – UI Flexibility
• MessageDefinition – HTML Text
Elements
• LinkDefinition – HTML Link
open source administration software for education
KRAD Features – UI Flexibility
• ActionDefinition – HTML Image Submit
Elements
• ControlDefinition – HTML Control
• ImageDefinition – HTML Image
open source administration software for education
KRAD Features – UI Flexibility
• New Elements can be added with Spring definition and tag file handler
Elements
open source administration software for education
KRAD Features
• Use ‘convention over configuration’ where possible
• Provide better error checking and reporting– Standalone dictionary startup & validation
• Support dictionary reload• Dictionary GUI
– Graphical interface to dictionary– Provides searches, auto-complete, …
Config & Tools
open source administration software for education
KRAD Features
• Tools– Create entity (bo class, dictionary, mapping)– Create document (document class, dictionary,
mapping, action class & form, optional authorizer or presentation controller)
– Generate Constraints– Message GUI
• Graphical interface for specifying messages (keys, text, constants, …)
Config & Tools
open source administration software for education
KRAD Features
• Multiple Lookups & Inquiries for an entity– Lookup – ‘basic’, ‘advanced’, …– Inquiry – ‘short’, ‘full’, …
• Dynamic Attributes– Define attribute in dictionary without entity/table
changes• Table support for labels
Other Improvements
open source administration software for education
KRAD Features
• More Dictionary Validation– Cross field validation (MustOccur, Case)– Collection minOccurs, maxOccurs– Validation message key (custom error messages)
• Client side table sorting, paging, add/delete rows (lookup and document collections)
• Improved Error Handling
Other Improvements
open source administration software for education
KRAD Features
• Support for service mapped entities (DTOs)– Dictionary support for general objects– Objects mapped to a service for persistence
operations– Eliminates need for ExternalizableBusinessObject– No developer concern regarding how an object is
loaded
Other Improvements
open source administration software for education
KRAD Features
• Improvements to Question Framework (QuestionHelper)– Allows easier and cleaner creation of questions– Keeps track of questions asked and their
responses• Maintenance Copy
– Specify ‘clearOnCopy’ for a maintainable field• Built in ValueFinders (Generic)
Other Improvements
open source administration software for education
Questionnaire & Questions
open source administration software for education
Beyond KRAD V1.1, 1.2
• Support for Spring MVC• Integration with upcoming Rice Rules module• Dynamic Business Objects
– No business object, mapping, or table needed• Merge with EdocLite
– Full featured screens/document with XML• Visual Screen Design Editor
The Future!
Note: None of these are yet approved for the Rice roadmap, just possibilities!
open source administration software for education
Thanks!
http://kuali.org/rice