Copyright © 2007 SLAC
This document describes a software utility API to help programmers to easily implement the visual display of data in textual form.
This section describes the status of this document at the time of its publication.
This is the final version of the document.
It is required to distinguish the content data model from the display and rendering of the data. This is so that the programmer can concentrate on the proper acquisition of the data rather than on its display or facilities for saving that data or exporting it to other applications.
Basic data flow: Java object data - Serialized to XML - Styling and rendering - display.
Display tabular data. Mix string and tabular data displayed.
Ability for the data display system, as opposed to code that acquired the data, to style the displayed data according to value. For instance, display some data in red if it outside some bounds, or to display all data on one row of a table if any one column has given value.
Not all data acquired should necessarily be displayed (eg some data member fields of a class, such as a binary status, should not be displayed). This implies that it's ok to collect the acquired data into some 2nd object before being serialized. Ideally the data styling definition file would know what to include in the display.
"View Source". There must be a capability to View Source the serialized XML.
Displayed data "Save" and "Save As". the File-Save and File-Save As menu of the Eclipse system must save the clean XML. It may be that the Save and Save As are those of the view source "window".
Clean XML. The XML so serialized (and hence that appearing in the View Source, and saved by the "Save" functionality above) should be clean. That is, only the data content and tag names of the scientific data. It should not include artefacts deriving from the serialization implementation or deserialization information. This must be true to the extent that it's reasonable to ask an end-user physicist to write Xpath expressions to extract the data they want.
Drag and Drop and "cut and paste". A user must be able to at least cut and paste both string and tabular data into a text editor. Tabular data must cut and paste to Excel (as do xhtml tables).
Implemented for using in Java programs.
Compatible with eclipse.
User must not need to use a full commercial browser such as Mozilla - or at least not a complete desktop browser since that it too heavyweight. It should be a browser implemented as an Eclipse View and hence manageable by Eclipse window management.
Use of standards for separating data content from its display definition (such as XML + CSS or XSL).
Outline design document.
Time estimate: 0.3 - 2 days
Eclipse plugin for display management as outlined above.
Time estimate: 2 - 30 days
Example code, showing how a BPM acquisition of an orbit can be
acquired and rendered as a table. This should demonstrate the way BPM
reading values which are outside some bounds are displayed in BLUE, and
show how BPMs who's status is in some way bad show RED.
Time estimate: 0.2 - 2 days
Example Xpath expression showing how to convert a saved BPM orbit
XML file into a space delimited table of the numerical columns, as might
be desired to load it into matlab.
Time estimate: 0.1 - 0.4 days
Programmers documentation.
Time estimate: 2 - 10 days
Total time: 4.6 - 44.4 days
Deliver the matlab cost/benefit analysis to Greg.
Deliver the documentation and plugin to the software group