Java

Improving Object Storage and Access Efficiency with Adaptive Data Storage Structures

Storing string representations of primitive data type values uses more memory than storing them as primitive data type values. Adaptive data storage structures minimize storage by determining which primitive data type is represented by a string, converting it into a value of that type, and storing it in the most appropriate object wrapper. Identifying the type of each value at storage time enables fast and efficient identification of objects of different classes when performing tasks such as searching, comparisons, and calculations.

The Document Visualizer

This article describes the Document Visualizer, a prototype document visualization tool that supports the relevance evaluation of information retrieval results by presenting search terms and document similarities in four visual styles: bar charts, matrix charts, a scatter plot, and a document map. Users are able to explore the documents with dynamic queries and interactive sorting.

Drop Buttons—A Compact User Interface for Selecting Data from Multiple Sources

Drop buttons provide a compact user interface for accepting input from a variety of input sources. Pushing the button pastes data copied onto the clipboard into an application. Dropping data onto the button's label transfers data into an application with a drag and drop operation. Right-clicking the button displays a drop down menu that enables users to invoke file selection and WebChooser dialogs to select files located on the local machine and on the web.

Composing Events with Event Accumulators

Event accumulators capture two or more events that occur within a specified maximum amount of time of each other, and combine them into a composite event that is dispatched to interested clients. Event accumulators can be used to overcome the event dispatching limitations of some user interface components.

The Expanding Table—A User Interface Control for Visualizing Tabular Data

This article describes the Expanding Table, a tabular user interface component that enables table cells to expand and contract with smooth animation. The Expanding Table can be used for visualization and browsing applications, and when the user interface component for editing table cell values would make tables prohibitively large. An Expanding Calendar is provided as an example application.

A Java Class Framework for Describing Application Parameters

This article describes a Java class framework for describing application parameters of commonly occurring data types. The framework can automatically construct user interface components for each type of parameter enabling users to view and edit parameter values. Parameters can be grouped into sets and the framework can automatically generate the user interface of a parameter set which contains the user interface component of each parameter in the set.

An XML Language for Describing Java Resource Bundles

The localizable resources of Java applications are stored in Java ResourceBundle objects. Hand-coding a ResourceBundle class can be difficult and time consuming, especially for non-textual resources. This article describes an XML language that simplifies the task of describing textual and byte-encoded resources, such as icons and audio clips, and enables the source code for the corresponding ResourceBundle class to be generated automatically.

Link Labels—A Java Component for Hyperlinks

A link label is a Java Swing component that provides hyperlink functionality for Java applications. Link labels display a hyperlink and generate an event when the cursor is moved on and off the hyperlink and when the mouse is clicked over it. Interested clients listen for link label events to enable them to invoke application dependent hyperlink behavior.

Monitoring Status with Monitor Threads

Applications often need to monitor the state of the environment in which they run. Monitor threads provide a framework for monitoring changes in the status of part of a system that cannot be monitored by listening for events.

A Multiple Source Input Framework

This article describes a Java framework for collecting and processing input from five types of input source: files on the local machine, files on the web, copy and paste and drag and drop operations, and programmatic input. The framework distills the five input sources into a generic Reader object from which the input is read and processed by a data source processor, an abstraction of data processing functionality such as parsing and data analysis.

Enhancing Aggregate Data Structures with Selection Iterators

Selection iterators traverse the elements in aggregate data structures such as lists, maps, and trees, and return only those elements that meet a particular criteria. The element selection criteria is encapsulated in a selection object which separates the decision to return an element from the order in which that decision is made. Selection iterators promote cleaner iteration loop code by moving the test for the required elements into the iterator.

Monitoring Progress with Size Input Streams

Progress bars provide visual feedback on the progress of lengthy tasks, such as reading a stream of bytes stored in a file. In some cases, Java progress monitors cannot be used because the number of remaining bytes is not available from the InputStream object. This article introduces the SizeInputStream class that monitors reading progress when the number of bytes to be read can be determined from sources other than an InputStream object, such as from a URLConnection object.

The Space Filler Explorer

This article describes the Space Filler Explorer, an application for navigating around hierarchical filing systems with three co-ordinated views: a directory tree structure, a list of files, and a 2D tree-map space-filling visualization of the files. Users can dynamically query the tree-map visualization to filter out files based on their size using several relational operators.

Visual Filtering of Search Results with Document Maps

Document maps are a new visualization tool that help users filter information retrieval search results. Documents are compactly represented by a square matrix that presents document similarity and frequently occurring search items. Evaluation has shown that document maps enable users to filter search results quickly and accurately.

The WebChooser Dialog

This article describes a new file selection dialog called WebChooser that enables users to select files that are published on web pages and FTP servers, as well as files stored on local machines. The WebChooser dialog also generalizes file selection to URL selection which increases the range of information that can be selected to include files, email addresses, newsgroups, and web queries.