Name: TDisplay Version: 1.0 License: BSD3 License-File: LICENSE Author: Kevin Quick Maintainer: quick@sparq.org Stability: provisional Homepage: http://www.sparq.org/darcsrepos/TDisplay.html Category: User Interface Build-Depends: base, HUnit Synopsis: Tagged Data generation for user-selected input and display control Exposed-Modules: TDisplay TDisplay.Output.Raw TDisplay.Output.Tags TDisplay.Output.Simple TDisplay.Output.Columns GHC-Options: -fglasgow-exts Description: The TDisplay environment differs from a classical environment in that the latter typically only contains one or two output streams (e.g. stdout and stderr); the TDisplay roughly corresponds to the View element of a Model/View/Controller (MVC) paradigm. . The purpose of the TDisplay is to allow an object to determine what the content of its user-visible output should be, but to allow the subsequent components (and ultimately the displaying component) to determine how to manipulate and ultimately present those outputs based on the individual object. . There are two aspects to displaying any particular object: the content and the attributes. The content is static and essentially the same content that would be returned by a Show operation (this concept is refined slightly below). The main job of the TDisplay engine is to determine the attributes of displaying that content. These attributes may vary by the type of display, but sample attributes might include: . * display or suppress a specific item * color * font * location . The classical stdout environment is sufficient for simple tasks, but any component wishing to utilize the output of any previous component must resort to performing analysis of the undifferentiated output of the previous task (e.g. expect scripts). This re-synthesis of output information is error-prone and necessarily restricted by the lower bandwidth and lack of differentiation of a simple byte-stream of output. . The TDisplay mechanism attempts to maintain object information along with that object's (potential) output up until the final point that it is displayed to the actual user. This has several advantages: . * Interim or serial tasks can therefore use this object information to more precisely analyze and operate upon the output of previous components. * The manner and selection of final output can be modified by the final output component without requiring extensive control flags and customization throughout the "Model" and "Controller" code. * The method of displaying the output can be modified independently of the determination of the output. Properly specified, the output should be able to be utilized in a text-based console environment, a GUI environment, and a Web-UI environment without change in the manner in which the output is determined/generated. Executable: tdtest Main-Is: tdtest.hs GHC-Options: -fglasgow-exts