krad - new features and improvements for the rice application development framework

Post on 29-Jan-2016

45 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

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 Presentation

TRANSCRIPT

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

top related