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

56
open source administration software for education software development simplified KRAD - New Features and Improvements for the Rice Application Development Framework

Upload: boyd

Post on 29-Jan-2016

45 views

Category:

Documents


0 download

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

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