Chapter 6. KRAD

Table of Contents

KRAD Architecture Overview
What is KRAD?
KRAD Conceptual View
KRAD Relational View
KRAD's User Interface Framework
UIF Overview
KRAD Design Components
Overview of Design Components built into KRAD
KRAD Layout Managers
KRAD Fields
Some key KRAD extensions beyond KNS concepts

KRAD Architecture Overview

The Kuali Rapid Application Development (KRAD) framework and tools are provided to enable universities to more quickly build "rich-UI" web-based and client applications.  KRAD expands the set of application features beyond what was formerly available through KNS alone.

What is KRAD?

  • As with KNS, KRAD is a developer framework to enable consistency.

  • It adheres to development standards and architectural principles.

  • It’s a stable core for efficient development.

  • It reduces the amount of code you need to write and supports code reuse.

KRAD supports the KNS document types - Lookups, Inquiries, and Maintenance pages - while it also provides more flexibility in user interface layouts, for example, beyond the "vertical" tab section and collection layouts that are supported by KNS.

(more in progress here)

KRAD Conceptual View

(more to come here)

(more in progress here)

KRAD Relational View

Figure 6.1. KRAD: Relational View

KRAD: Relational View

(more in progress here)

KRAD's User Interface Framework

UIF Overview

KRAD introduces the concept of a "View" and a hierarchy of pieces which can be added to a view. A view can represent a whole page or even, in some cases, multiple document pages. Inside the view, a number of different groups can be arranged - some as tabs, perhaps, others as field sets within other groups or even collections of field sets. Some of these groups are made up of fields, controls, and widgets (controls providing an extra level of interactive functionality by incorporating rich user interface techniques).

All of these - views, groups, fields, controls, and widgets - all are components of a KRAD renderer, and therefore all implement the org.kuali.rice.kns.uif. component interface.

In KRAD, a container is simply a component with a main job of containing other components to render. A view is a container, and several containers have the ability to contain other containers - views can contain groups, for instance, and groups, in turn, can contain any other kinds of components - including other groups. By default, a container such as a view has three areas: 1) a header, encapsulated in a HeaderField; 2) a footer, and then 3) any other encapsulated items which make up the body. The renderHeader and renderFooter properties of the container can be set to false to turn off presentation of the heater and footer rendering. Body rendering cannot be turned off because the point of the container is to render some kind of contained body elements - the content. However, the body elements are are defined in the container (the semantics) but thay are laid out on a page by a LayoutManager - in this way, you can keep the page layout "rendering" separate from the container's content - the body rendering attributes which define the semantics - enabling you to architect applications so they can more easily be ready for different view windows and devices.