This package provides the core classes and interfaces defining NetUI. User interfaces (UI) are represented as trees of controls, where each control is a single component such as a text box, label or calendar. The primary NetUI class is UIControl, which represents a user interface component within the UI.

UIContext defines a context allowing controls to interact with the container where they are created. This context is independent of both application and protocol. Container will create a subclass of context that provides support for specific protocols and application features.

In addition to UIControl, this package defines the basic lifecycle of a control. UIControl defines a base set of methods that are called externally by he lifecycle driver. These methods represent a set of stages in the base lifecycle and provide well-defined places for controls to perform initialization, acquire resources, render themselves, etc. The lifecycle driver Lifecycle uses the Visitor pattern to drive the lifecycle through the control-tree. The primary UIControl visitors are defined in ControlLifecycle and the tree root visitors are defined in RootLifecycle.

There are a number of sub packages that provide support to these core classes.