Transcript
Page 1: KRAD - New Features and Improvements for the Rice Application Development Framework

open source administration software for education

software development simplified

KRAD - New Features and Improvements for the Rice Application Development Framework

Page 2: 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

Page 3: KRAD - New Features and Improvements for the Rice Application Development Framework

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

Page 4: KRAD - New Features and Improvements for the Rice Application Development Framework

open source administration software for education

Why this Presentation?

• Community Involvement • Early Feedback

Page 5: KRAD - New Features and Improvements for the Rice Application Development Framework

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

Page 6: KRAD - New Features and Improvements for the Rice Application Development Framework

open source administration software for education

Overview of KNS Components Concept

ENTITY_TEntity

(POJO)ORM

MappingData

Dictionary

Lookups and

Inquiries

MaintenanceDocuments

TransactionalDocuments

Workflow(KEW)

Page 7: KRAD - New Features and Improvements for the Rice Application Development Framework

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>

Page 8: KRAD - New Features and Improvements for the Rice Application Development Framework

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>

Page 9: KRAD - New Features and Improvements for the Rice Application Development Framework

open source administration software for education

Overview of KNS Components Lookup

Page 10: KRAD - New Features and Improvements for the Rice Application Development Framework

open source administration software for education

Overview of KNS Components Inquiry

Page 11: KRAD - New Features and Improvements for the Rice Application Development Framework

open source administration software for education

Overview of KNS Components Maintenance

Page 12: KRAD - New Features and Improvements for the Rice Application Development Framework

open source administration software for education

Overview of KNS Components Maintenance

Page 13: KRAD - New Features and Improvements for the Rice Application Development Framework

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>

Page 14: KRAD - New Features and Improvements for the Rice Application Development Framework

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

Page 15: KRAD - New Features and Improvements for the Rice Application Development Framework

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

Page 16: KRAD - New Features and Improvements for the Rice Application Development Framework

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

Page 17: KRAD - New Features and Improvements for the Rice Application Development Framework

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 …

Page 18: KRAD - New Features and Improvements for the Rice Application Development Framework

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!

Page 19: KRAD - New Features and Improvements for the Rice Application Development Framework

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])

Page 20: KRAD - New Features and Improvements for the Rice Application Development Framework

open source administration software for education

KRAD Features – Rich UI

• Lightbox support for Inquiries, Lookups, Confirmations, and expanded Text Areas

• Pic Here

LightBox

Page 21: KRAD - New Features and Improvements for the Rice Application Development Framework

open source administration software for education

KRAD Features – Rich UI

• Constraint Message – displays field restrictions• Defined in dictionary:

Messages

Ex. Constraint Message

Page 22: KRAD - New Features and Improvements for the Rice Application Development Framework

open source administration software for education

KRAD Features – Rich UI

• Watermark – displays in text field (ex. date format)

• Defined in dictionary:

Messages

Ex. Watermark

Page 23: KRAD - New Features and Improvements for the Rice Application Development Framework

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

Page 24: KRAD - New Features and Improvements for the Rice Application Development Framework

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

Page 25: KRAD - New Features and Improvements for the Rice Application Development Framework

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

Page 26: KRAD - New Features and Improvements for the Rice Application Development Framework

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

Page 27: KRAD - New Features and Improvements for the Rice Application Development Framework

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

Page 28: KRAD - New Features and Improvements for the Rice Application Development Framework

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

Page 29: KRAD - New Features and Improvements for the Rice Application Development Framework

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

Page 30: KRAD - New Features and Improvements for the Rice Application Development Framework

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

Page 31: KRAD - New Features and Improvements for the Rice Application Development Framework

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

Page 32: KRAD - New Features and Improvements for the Rice Application Development Framework

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

Page 33: KRAD - New Features and Improvements for the Rice Application Development Framework

open source administration software for education

KRAD Features – UI Flexibility Concepts

Concept Wireframe

Page 34: KRAD - New Features and Improvements for the Rice Application Development Framework

open source administration software for education

KRAD Features – UI Flexibility Concepts

Ex. Disbursement

Voucher

Page 35: KRAD - New Features and Improvements for the Rice Application Development Framework

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

Page 36: KRAD - New Features and Improvements for the Rice Application Development Framework

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

Page 37: KRAD - New Features and Improvements for the Rice Application Development Framework

open source administration software for education

KRAD Features – UI Flexibility

• A view is associated with an application entity in the dictionary

Views

Page 38: KRAD - New Features and Improvements for the Rice Application Development Framework

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

Page 39: KRAD - New Features and Improvements for the Rice Application Development Framework

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

Page 40: KRAD - New Features and Improvements for the Rice Application Development Framework

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

Page 41: KRAD - New Features and Improvements for the Rice Application Development Framework

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

Page 42: KRAD - New Features and Improvements for the Rice Application Development Framework

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

Page 43: KRAD - New Features and Improvements for the Rice Application Development Framework

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

Page 44: KRAD - New Features and Improvements for the Rice Application Development Framework

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

Page 45: KRAD - New Features and Improvements for the Rice Application Development Framework

open source administration software for education

KRAD Features – UI Flexibility

• MessageDefinition – HTML Text

Elements

• LinkDefinition – HTML Link

Page 46: KRAD - New Features and Improvements for the Rice Application Development Framework

open source administration software for education

KRAD Features – UI Flexibility

• ActionDefinition – HTML Image Submit

Elements

• ControlDefinition – HTML Control

• ImageDefinition – HTML Image

Page 47: KRAD - New Features and Improvements for the Rice Application Development Framework

open source administration software for education

KRAD Features – UI Flexibility

• New Elements can be added with Spring definition and tag file handler

Elements

Page 48: KRAD - New Features and Improvements for the Rice Application Development Framework

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

Page 49: KRAD - New Features and Improvements for the Rice Application Development Framework

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

Page 50: KRAD - New Features and Improvements for the Rice Application Development Framework

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

Page 51: KRAD - New Features and Improvements for the Rice Application Development Framework

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

Page 52: KRAD - New Features and Improvements for the Rice Application Development Framework

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

Page 53: KRAD - New Features and Improvements for the Rice Application Development Framework

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

Page 54: KRAD - New Features and Improvements for the Rice Application Development Framework

open source administration software for education

Questionnaire & Questions

Page 55: KRAD - New Features and Improvements for the Rice Application Development Framework

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!

Page 56: KRAD - New Features and Improvements for the Rice Application Development Framework

open source administration software for education

Thanks!

http://kuali.org/rice


Top Related