| Home >> All >> ulu >> [ view Javadoc ] |
| | ulu.view.img.* (5) | | ulu.view.io.* (9) | | ulu.view.net.* (3) | | ulu.view.sys.* (64) |
| | ulu.view.ui.* (53) |
ulu.view: Javadoc index of package ulu.view.
Package Samples:
ulu.view.ui.cetus: Core user interface classes that can be reused for any type of user interface, handling low-level issues such as resolving tree position against text path descriptions, navigation history, paging of long lists, and so on.
ulu.view.img.themes.wildthings: Contains a marker class used to find image resources inside jar files.
ulu.view.io.zip: Classes used to serialise and deserialise Uncle Unc items.
ulu.view.net: Define the core classes of the Uncle unc item tree.
ulu.view.img.themes.ikons
ulu.view.img.themes.freeicons
ulu.view.img.themes.masks
ulu.view.img
ulu.view.ui.sirius
ulu.view.ui
ulu.view.sys.fs
ulu.view.sys.refl
ulu.view.sys.jini
ulu.view.sys.db
ulu.view.sys.log4j
ulu.view.sys.dyn
ulu.view.sys.google
ulu.view.io
ulu.view.sys.remote
ulu.view.io.jarclass
Classes:
UpdateEvent: A View Event for sending update notifications to the client. Various types of update may be scheduled: complete update - throw away all previous info and reconstruct everything specified items have been added to the container specified items have been removed from the container unspecified properties have altered: update all properties for the specified items specific named properties have been altered: update only these properties redirect to a completely different View object. A UI may have several components that can change the view (e.g. a header bar showing ancestry and a body view showing ...
Handler: A URLStreamHandler for the jarclass:// protocol, used to reference resources located in deployment jars that are retrieved by the ClassLoader.getResourceAsStream() method. This is a useful shorthand way of setting bean properties that point to a resource that will eventually be bundled with the bean, for example. A typical url is of the form jarclass://[reference-class-name]/[path-to-resource] For example: jarclass://ulu.view.View/img/src/default/item.png will generate a URL able to read the PNG image data located at path img/src/default in the jar (or file system) that is deploying the class ulu.view.View, ...
ObjectShaper: A Shaper that will set a live java object as the Item's reference, in a way that allows live interaction with that object through the UI. A refactoring of the ulu.view.sys.refl.ObjectView to use the Shaper delegate interface that can be applied to any Item rather than presenting a specialist subclass. Objects may be represented in several ways, with reflected members presented as child items (most suitable for documenting an object, say) or as properties and methods of the top-level item (which is better suited for live introspection, say). Further, bean accessor/mutator methods may be presented ...
RSView: View service for browsing a JDBC ResultSet, with subviews listing the data and structure contained by the ResultSet This view holds a live ResultSet, and will scroll through it using an IteratingPager. Some ResultSets are not generated by SQL statements directly (e.g. many methods in the DatabaseMetaData class), and so this is the only viable option here. In cases where a SQL statement is available, a more flexible paging system can be implemented by deconstructing the SQL statement and using 'SELECT SUM(1)' to determine the size of the ResultSet, and SELECT's LIMIT clause to retrieve the individual ...
Shaper: An object capable of modifying the fields and methods of an Item, possibly adding new children or pruning existing ones too. Earlier versions of Uncle Unc used specialised subclasses of ItemImpl or ViewImpl to represent specific services e.g. the StoredLogView, RSView, ObjectView. This led to some problems with multiple inheritance - for example, we might want to wrap a specific stream of content in more than one way (e.g. an Ant build file as a filesystem file, a plain XML file using a generic XML parser, and as an Ant Project object). The Shaper interface would allow more than one Shaper delegate ...
ItemFactory: A factory object that can generate Items that act as wrappers around any object. The advantage of having a factory pattern is that it can return different specialist subclasses intelligently (which a constructor cannot). Uncle Unc ItemFactories work in a hierarchical fashion. To wrap an object, always pass it to the DefaultItemFactory, which will look up a class mapping, which will either return an Item object directly (typically for more complicated or specialist object types, such as a JavaSpace or a JDBC connection, say), or a custom factory class that may determine what class type to return ...
Pager: A generic assistant for a User Interface of any kind that divides a large list up into pages (a la search engine results). This is a generic interface. In practice, there are two ways of doing the paging: request the full list of items and divide them into chunks within the pager component. This is good because its generic, and requires no service-specific code. request the items from the nderlying service one chunk at a time. For very large lists (a database with a million records, web search results) this will be much more efficient. It does require that the Unc wrapper implement additional methods ...
MethodEvent: This was originally developed to allow authentication of the database module, which has since been solved differently using a 'login' UMethod. This approach may be more useful in other circumstances, left in for now as deprecated. Event indicating a request for input from the back-end to the user. Several items may be requested at once, in form of a Hashtable, allowing construction of a flexible dialog or input. Typical usage would be requesting userID and password for a locked resource. We re-use the UMethod object here that is used to represent Item methods. From a UI perspective, the two are ...
NativePager: A generic assistant for a User Interface of any kind that divides a large list up into pages (a la search engine results). For a wrapper service, there are two ways of doing the paging: request the full list of items and divide them into chunks within the pager component. This is good because its generic, and requires no service-specific code. request the items from the nderlying service one chunk at a time. For very large lists (a database with a million records, web search results) this will be much more efficient. It does require that the Unc wrapper implement additional methods to retrieve ...
Unloader: Generic interface for a mechanism that unloads the contents of a live Uncle Unc view to a persistent store of some sort (via a stream). Commonly used for backup between sessions, and remote networking between clients, for example. Note that this is similar in concept to serialization, but more specialised. We may wish to apply specific rules about what does and doesn't get recorded, particularly in the case of complicated auto-generated structures fetched from databases, jini, class hierarchies or whatever. In these cases its sometimes better to save a bookmark to the jdbc url or to the directory, ...
ListHandler: A bespoke HTTP Handler for the Jetty web server that serves up flat listings from an Unc root view, using the HTTP path information to map to child views. Preliminary implementation, many bells and whistles we could add, for example: error reporting for unresolvable path data passing of ItemFilter specs to allow a query language? support for page numbering Need to work out the protocol for ths e.,g. passing as extra http headers, as a querystring or whatever. Note that this uses Jetty-specific APIs and bypasses the entire servlet API. We will undoubtedly wish to develop a complete servlet-based ...
IteratingPagerImpl: An implementation of the Pager interface, suitable for views whose contents are filled by an iterating mechanism of some sort (whether an Iterator, a jdbc resultset, reading from a stream, or whatever). The common underlying feature is that the source can return an unknown (potentially infinite) number of items, and this stream will pull them in a chunk at a time and 'cache' them in the View being served, allowing reversible browsing through the cached section and forward-only browsing of the uncached region. Where the input iterator reaches an end, the pager will default to behaviour similar to ...
Item: A generic interface for an item in a view, describing its properties and actions. Think icon in a file-manager as a starting point, but it could be a database table, a row in a database, a jini service, an element in a vector or hashtable, a live object, an email message, etc. etc. A Item may also implement View, in which case we get a nice tree structure e.g. filesystem directories By default it is Serializable - this first came up as an issue when implementing drag'n'drop in the ui/gui viewer, but seems like a good thing to do anyway, given the network-centric nature of the whole project refactored ...
ObjectView: Objects may be represented in several ways, with reflected members presented as child items (most suitable for documenting an object, say) or as properties and methods of the top-level item (which is better suited for live introspection, say). Further, bean accessor/mutator methods may be presented as properties rather than the raw methods, if desired. Distinctions may be drawn between members declared in that class, and those inherited from parent classes. Under some situations, it may be useful for the user to interactively alter the mode of representation. This facility can be switched on or ...
UnloadConfig: Object that takes decisions about what level of detail to present when unloading a View to persistent storage. There is no single 'correct' way to persist a View hierarchy, and this object helps to present the options to the user. This is particularly important in the case of complicated auto-generated structures fetched from databases, jini, class hierarchies or whatever. In these cases its sometimes better to save a bookmark to the jdbc url or to the directory, say, if one simply wishes to reconstitute from source later, but at other times the user may wish to save all the details, to browse ...
SocketLogView: LogView implementation that listens for input from a log4j SocketAppender. My thanks to Oliver Burn, author of the chainsaw GUI for log4j, whose 'LoggingReceiver' code I have referred to in creating this class. NB: There is no provision at present for saving this view to a file. Its a 'nice to have', for sure, but log4j is flexible enough to allow multiple appenders, so if that's required, then one can configure log4j to append to a file and a socket. For emergency situations, there will soon be the ability to persist any arbitrary view to XML, so that angle is covered too, I guess. Dave Crane ...
UncItemDataSource: This class is an implementation of HierarchicalDataSource wherein tree nodes represent Items in an Uncle Unc tree. The ignoreLeaves argument of some forms of the constructor allows for the creation of leafless data sources. These are useful for driving a directory chooser, for example. Although designed for use with Uncle Unc Item s, the interactions with the item tree are all expressed in terms of the lower-level interfaces ( UContainer , UContained , Propertied ,etc.) so that other objects that implement these interfaces may also be dropped into the GUI and displayed.
InheritanceTreeMethodShaper: A Shaper that will set a live java object's reflected Methods into several categories, one for each class in the inheritance tree, and one for each implemented interface. Categories are named after the relevant class or interfaces' non-qualified name, for brevity. This could lead to confusion potentially, if a class implements or extends both com.a.Something and com.b.Something, for example, but this is fairly unlikely to arise, and the alternative of using fully-qualified names would be horrendous. The fully-qualified class or interface is added as an extra property for reference, either as 'superclass' ...
InheritanceTreePropertyShaper: A Shaper that will set a live java object's reflected Fields into several categories, one for each class in the inheritance tree, and one for each implemented interface. Categories are named after the relevant class or interfaces' non-qualified name, for brevity. This could lead to confusion potentially, if a class implements or extends both com.a.Something and com.b.Something, for example, but this is fairly unlikely to arise, and the alternative of using fully-qualified names would be horrendous. The fully-qualified class or interface is added as an extra property for reference, either as 'superclass' ...
Navigator: A generic assistant for a User Interface of any kind tracks the user's current directory, and its path in overall tree maintains a history of visited views establishes a few customs for naming properties of ViewItems, such as the initial '_' denoting a non-visible property Some UIs (e.g. simple command line) may use single Navigator. A window-based GUI may employ one navigator per open window, a servlet one per session, etc. revised to allow tracking of any type of Object, with a little bit of special support for the UContainer interface allowing 'upwards' navigation
RegexpFilter: An abstract baseline for filters that parse fields using regular expressions. Concrete subclasses can apply this to name, type and other attributes. A null regular expression is generally treated as a pass Can be set to use either Perl5-compatible RE's, or the simple globbing RE typically found in file dialogs. If using globbing RE's, will allow a 'power-user' to convert to Perl5-style by enclosing their RE in quote characters (either a '/' or a '|'). A third alternative introduced, for speed, simply allow matching of word exactly, using either String.equals() or String.equalsIgnoreCase()
BoundMethod: Represents a method of a ViewItem that can be populated with parameters and then invoked. Similar idea to the java.lang.reflect.Method, but I can't reuse that as it exposes no public constructors or factories, and doesn't quite do everything I need. Added a 'U' to the name for happy coexistence of short class names. The ulu.view.Handler interface denotes something that will process a UMethod once it has been invoked. This subclass maps directly to an underlying reflected java.lang.reflect.Method object, rather than delegating to a Handler object defined at construct-time.
StoredLogView: LogView implementation that displays the contents of a file, after using a regular expression to extract the content from the file, thereby allowing for customised Pattern Layouts (and, as a side effect, many non-log4j logs, such as web servers, etc.) Should this really be in the log4j package?? This will do a one-off read of the file and display contents at read-time. This class will return an IteratingPagerImpl that parses through the file on demand, reducing the overhead on very large log files. Has been extended to read from other streams, URLs etc. Dave Crane ulunum, April 2002
UEvent: Event model definition for a back-end Viewable to sent notifications to the UI components displaying them. Common uses are: dynamic updates as an efficient alternative to the client polling the back end. Good fit with jini discovery event model, for example send a message to the user (e.g. to be displayed as a popup dialog) as part of a two-way communication with the client/end-user This is an abstract base class, a simple wrapper around the java EventObject Default implementations of each of the three uses above can be found in this package.
Handler: A URLStreamHandler for the zip:// protocol, with a built-in URLConnection class too. A zipfile entry is defined by the URL as follows: zip://[path-to-zip-file]![path-to-zip-entry] For example: zip:///home/dave/test.zip!my/zipped/file.txt will generate a URL able to read the zip entry my/zipped/file.txt inside the zip file /home/dave/test.zip. Support is provided for accessing the zipentry's last modified date and uncompressed size from the URLConnection methods. Content type is deduced via the standard URL guessing mechanism.
| Home | Contact Us | Privacy Policy | Terms of Service |