Multivalent API

Uses of Class
multivalent.Behavior

Packages that use Behavior
multivalent Core system classes. 
multivalent.devel Developer tools, templates, and examples: MyBehavior template, document tree viewer, DebugMode, .... 
multivalent.devel.lens Document inspection lenses: bbox bounds, character numbers, ruler for layout measuring. 
multivalent.gui Graphical user interface widgets, natively implemented as Nodes. 
multivalent.net Network-related behaviors: cookies, referer, return code, server. 
multivalent.std Standard system functionality that is guaranteed to be available locally during runtime. 
multivalent.std.adaptor Media adaptors guaranteed to be available locally: HTML, UNIX manual page, directory, FTP directory, ... 
multivalent.std.adaptor.pdf PDF manipulation: read, render, modify, write.
multivalent.std.lens Lens superclass and standard lenses, such as Magnify and Rot-13. 
multivalent.std.span A collection of general-use spans: hyperlink, highlight, font, color. 
multivalent.std.ui Standard user interface controls, such as forward/back buttons and bookmarks. 
 

Uses of Behavior in multivalent
 

Subclasses of Behavior in multivalent
 class CursorMark
          Blinking cursor.
 class Layer
          Special behavior type that groups (1) behaviors (which can be nested Layer's) and (2) data trees of ESISNodes, and dispatches (round robin) protocol events over its collection.
 class MediaAdaptor
          Superclass for media adaptors: behaviors that parse some concrete document format and build a document tree.
 class Span
          A Span (aka Range aka Tk tag), such as a hyperlink or executable copy editor mark, is a linear range of content that can control appearance and receives events.
 class SystemEvents
          Default implentation of standard set of system events: open document, load layer, and more.
 

Methods in multivalent that return Behavior
 Behavior Layer.findBehavior(java.lang.String path)
          Given a layer pathname, finds nested layer.
 Behavior Layer.getBehavior(int index)
           
 Behavior Layer.getBehavior(java.lang.String logicalname)
          Get behavior of given logical name, null if doesn't exist.
 Behavior Layer.getBehavior(java.lang.String logicalname, java.lang.String classname)
          Get (first) behavior of given logical name.
static Behavior Behavior.getInstance(java.lang.String logicalname, java.lang.String behaviorclass, ESISNode children, java.util.Map<java.lang.String,java.lang.Object> attr, Layer layer)
          Centralized behavior instantiation factory: instantiate all behaviors through this method -- never use new behavior(...)
static Behavior Behavior.getInstance(java.lang.String logicalname, java.lang.String behaviorclass, java.util.Map<java.lang.String,java.lang.Object> attr, Layer layer)
          Used in hub instantiation.
 

Methods in multivalent with parameters of type Behavior
 void Node.addObserver(Behavior be)
          Observers get called when node is encountered in tree walk protocols (format, paint, low-level event), protocolBefore and protocolAfter methods.
 void Node.deleteObserver(Behavior be)
           
 void Layer.addBehavior(Behavior be)
          A Behavior can only be in one layer at a time, so if it's already in a layer, it's removed from that layer first.
 void Layer.removeBehavior(Behavior be)
          Removes behavior from Layer as soon as pending semanticEvent roundrobins completed; if none, then remove immediately.
 

Uses of Behavior in multivalent.devel
 

Subclasses of Behavior in multivalent.devel
 class Debug
          Runtime behavior that can generate various dumps.
 class DebugMode
          Set flag that controls availability/visibility of debugging behaviors (those in Debug layer and those in Debug menu).
 class NodeActivity
          Attach to node to report protocol activity on that node, filterable by protocol.
 class ShowDocTree
          Replace view current document with infomration on data structure: indented to show nesting, with name/GI, bbox, attributes, stickies, ....
 class Stats
          General statistics: memory use, ...
 

Uses of Behavior in multivalent.devel.lens
 

Subclasses of Behavior in multivalent.devel.lens
 class Bounds
          Show bounds of tree nodes.
 class CharNum
          CharNum lens (RFC ref).
 class Ruler
          Screen ruler, used to measure layouts.
 

Uses of Behavior in multivalent.gui
 

Methods in multivalent.gui with parameters of type Behavior
 void VDialog.setIn(Behavior in)
          Set Behavior that's interested in what happens when dialog is closed.
 

Constructors in multivalent.gui with parameters of type Behavior
VDialog(java.lang.String name, java.util.Map<java.lang.String,java.lang.Object> attr, INode parent, java.net.URI docuri, java.util.Map vals, Behavior in)
           
 

Uses of Behavior in multivalent.net
 

Subclasses of Behavior in multivalent.net
 class About
          Intercepts Document.MSG_OPEN events with "about" protocol and remaps to document as given in attributes.
 class Cookies
          Implements both Netscape spec and W3C spec
 class HttpHeaders
          Set HTTP headers: User-Agent, Accept, Accept-Encoding, Keep-Alive, Referer [sic], and so on.
 class RemoteControl
          Accept semantic events via socket listening on port.
 class Robust
          Standard fix ups to DocInfo: URL When SystemEvents get Document.MSG_OPEN with a String URL, it passes it around for people to fix up.
 

Uses of Behavior in multivalent.std
 

Subclasses of Behavior in multivalent.std
 class Autosearch
          Find words in tree, highlight matches.
 class BrowseScrollViz
          Record last scroll positions on document and mark on scrollbar.
 class ClipMarkup
          Generate XML-format tagged text for clipboard based on structure tree, instead of usual text.
 class ClipProvenance
          Augment selection for clipboard with source URL.
 class DeleteBehavior
          User hubs are loaded after built-in hubs, so need way to delete unwanted built-in behaviors.
 class DisableTree
          Set as observer on tree node to disable action in that subtree: shortcircuits events, visually grays out content.
 class Executive
          Collapse document, showing just Notemarks and structure.
 class LinkMarkup
          For plain Jane document formats without hyperlinks, scan text looking for patterns to make into links, such as "protocol://host.domain", "www.host.domain", "ftp.host.domain", "user@host.domain".
 class MediaLoader
          Load documents in a new thread so GUI and other documents are still live.
 class Note
          Show a PostIt-like note in a VFrame.
 class OcrView
          Base class for OCR media adaptors.
 class Outliner
          Take basic Manual Page tree, add outliner spans (which in turn add controls open/close arrow, click on title to toggle).
 class PauseNGo
          Wait for mouse click for DELAY ms, then execute CMD with argument ARG.
 class PerPage
          Wraps other behaviors in hub and enables them only when page URI matches passed pattern.
 class Print
          STATUS: just defines PRINT semantic event -- no implementation yet.
 class ReportBug
          Stuff debugging information into clipboard, for pasting into email or message board post.
 class RestoreReport
          BROKEN.
 class ReverseLink
          Reverse links: throw page URI to search engine.
 class ScrollbarViz
          Visualization of search results on scrollbar.
 class Search
          Find words in tree, highlight matches within document.
 class SearchHit
          Record for search hits, to be passed around in the semantic event "searchHits".
 class ShowHeaders
          Show various metadata: HTTP headers, HTML META tags
 class SimpleAnchorScrollTo
          Scroll to simple anchor, both HTML NAME/ID attr and AnchorSpan annotations.
 class SlideShow
          Full screen slide show for multipage documents.
 class SlideShowLinks
          Collect links in current document, march through in other window.
 class SpeedRead
          Starting at cursor/selection, flash words up at some rate, after and superior to Vortex.
 class TableSort
          Sort structural table at given column, heuristically determining data type.
 

Uses of Behavior in multivalent.std.adaptor
 

Subclasses of Behavior in multivalent.std.adaptor
 class AppleWorksWP
          Media adaptor for Apple II AppleWorks 3.0 Word Processor (AWP) Throws out pagination, tabstops, spacing, margins.
 class ASCII
          Media adaptor for plain old ASCII files (.txt => doc tree) groups lines into heuristically determined paragraphs (two styles of paragraph: blank line between and indended) MUST RETAIN SPACES, WHICH THIS PRESENTLY DOESN'T.
 class DirectoryFTP
          Media adaptor that displays contents of a FTP directory with links to files and other directories.
 class DirectoryLocal
          MediaAdaptor that displays contents of a local directory.
 class FontSampler
          Show sampler of characters in font file.
 class HexDump
          Like od and strings, simple hex/ASCII dump catch all for general binary data that the user nevertheless wants to view.
 class HTML
          Media adaptor for HTML (.html => document tree).
 class JavaClass
          Media adaptor for displaying information about Java .class files.
 class ManualPage
          Media adaptor for UNIX manual pages (directly from roff -man source).
 class ManualPageVolume
          Collect all man pages in user's MANPATH environment variable.
 class ML
          Abstract superclass for XML and HTML.
 class MultivalentAdaptor
          Multivalent hub document adaptor.
 class PerlPOD
          Media adaptor for Perl "Plain Old Documentation" (POD).
 class PersonalAnnos
          Automatically save and restore annotations from Personal layer.
 class RawImage
          MediaAdaptor that builds tree to show raw image, PNG/JPEG/GIF/XBM.
 class RPM
          Media adaptor for RPM files.
 class StyleSheetSetter
          Cascades style sheets for a document:
  • (Primordial settings in multivalent.Context) User pan-document in user's stylesheet/EVERYWHERE.css
  •  class Tar
              Show contents of UNIX tape archive (Tar) files, with links so can click and view internal file.
     class Texinfo
              Media adaptor for GNU's Texinfo format.
     class Unsupported
              For unsupported document types, say so, and tell user how to see ASCII version.
     class XML
              An ever-closer approximation to the XML specification, which itself is a moving target.
     class Zip
              Show contents of Zip files, with links so can click and view internal file.
     

    Uses of Behavior in multivalent.std.adaptor.pdf
     

    Subclasses of Behavior in multivalent.std.adaptor.pdf
     class Action
              Default implementations of PDF actions: GoTo, GoToR, Launch, Thread, URI, Sound, Movie, Hide, Named, SubmitForm, ResetForm, ImportData, JavaScript.
     class Anno
              Superclass for PDF annotations.
     class AnnoLink
              Converts PDF annotation dictionary /Subtype /Link to native hyperlink
     class ContractualObligation
              Enforce permissions (don't print, don't copy and paste, ...), which is hard and unnatural in Multivalent, but required by Adobe.
     class PDF
              Parse a page of PDF and display with Java 2's 2D API.
     class SpanPDF
              A span that can set any PDF graphic state attribute: stroke color, fill color, font, Tr.
     

    Uses of Behavior in multivalent.std.lens
     

    Subclasses of Behavior in multivalent.std.lens
     class BitMagnify
              Enlarge contexts by doubling pixel width and height as opposed to drawing at larger size (scaling with ATM).
     class Blur
              Image blur lens, as in "Programmer’s Guide to the Java 2D™ API".
     class Brighten
              Edge detection lens, as in "Programmer’s Guide to the Java 2D™ API".
     class Cypher
              (De)Greek/Cyrillic lens: translate Greek characters to Latin equivalents.
     class Darken
              Edge detection lens, as in "Programmer’s Guide to the Java 2D™ API".
     class EdgeDetect
              Edge detection lens, as in "Programmer’s Guide to the Java 2D™ API".
     class Lens
              VWindows that transform their content and compose with one another.
     class LensMan
              Manager to coordinate lens painting
     class LensOp
              Superclass for lenses that set operation for Graphics2D.drawImage(BufferedImage, BufferedImageOp, int, int).
     class Magnify
              Enlarge content by scaling Graphics2D.
     class Mirror
              Like Cypher could be useful for reading coded messages, I guess, but mostly just a demonstration.
     class PlainView
              Try to make things as readable as possible: undo affine transformations, no signals, black text on white background, non-bold non-italic 12-point Times Roman font, no blink, ....
     class Rescale
              Rescale lens.
     class Rotate
              Doesn't work Rotate landscape into portrait, say.
     class Sharpen
              Image sharpen lens, as in "Programmer’s Guide to the Java 2D™ API".
     class SignalLens
              Scriptable lens for effects that just need a signal set.
     

    Uses of Behavior in multivalent.std.span
     

    Subclasses of Behavior in multivalent.std.span
     class ActionSpan
              When click on span, execute ActionSpan.action().
     class AnchorSpan
              Intra-document destination of a hyperlink: a named, robustly located point in document.
     class AwkSpan
              Underline a span and show a message at the start.
     class BackgroundSpan
              Background span with editable color.
     class BIUSpan
              A copy editor mark: bold/italics/under suggestion.
     class BlinkSpan
              Because you asked for it!
     class BoldSpan
              Convenience span for setting boldface.
     class BoxSpan
              Box the word covered by the span (later, intelligently box arbitrarily long spans).
     class CapSpan
              Change case of region by clicking anywhere in span.
     class DeleteSpan
              Executable copy editor mark to suggest span should be deleted.
     class ElideSpan
              Convenience span for setting elided (aka hidden) spans.
     class FamilySpan
              Convenience span for setting font family.
     class FontSpan
              Convenience span for setting font properties: family, size, style.
     class ForegroundSpan
              Convenience span for setting foreground color.
     class HyperlinkSpan
              This is the familiar point-to-point link.
     class InsertSpan
              Copy editor markup: insert text at point.
     class InvisibleSpan
              Span for setting invisible text (foreground==background).
     class ItalicSpan
              Convenience span for setting italics.
     class LabelSpan
              Helper span for copy editor marks that draws message above content text.
     class MonospacedSpan
              Same as FamilySpan(..., "Monospaced").
     class MoveTextSpan
              Executable copy editor markup that will move marked text to another point in the document.
     class Notemark
              out of date Many functions taken over by elide attribute in style sheet.
     class OutlineSpan
              Assumes LeafImage as first node, which shows open or closed arrow.
     class OverstrikeSpan
              Convenience span for setting overstrike.
     class PlainSpan
              Convenience span for setting plain text.
     class PointSpan
              Point size span editable by user.
     class RelPointSpan
              Common convenience span for changing the font size relative to the current size by n steps.
     class ReplaceWithSpan
              A combination of InsertSpan and DeleteSpan.
     class ScriptSpan
              When click on span, execute script in VScript.
     class SelectionSpan
              Default selection behavior.
     class SidebarSpan
              UNDER DEVELOPMENT.
     class SignalSpan
              Convenience span for setting some signal, as given by SIGNAL and VALUE attributes.
     class StrokeSpan
              Set attributes of line: width, cap style, join style, miter limit, dash.
     class SubSupSpan
              Convenience span for subscripts and superscripts.
     class UnderlineSpan
              Convenience span for setting underline.
     

    Uses of Behavior in multivalent.std.ui
     

    Subclasses of Behavior in multivalent.std.ui
     class Annos
              General annotation functionality: wipe annos from document, ...
     class AttrUI
              For now, toggles preference.
     class BindingsDefault
              Event bindings that are the same across platforms, such as right arrow key moving the cursor right.
     class BindingsEmacs
              Pluggable events binding behavior duplicating some Emacs key bindings.
     class BindingsMacintosh
              Pluggable events duplicating some Macintosh key bindings.
     class BindingsTk
              Bindings after Tk.
     class BindingsWindoze
              Pluggable events duplicating some Windoze key bindings.
     class Bookmark
              List of URIs to remember.
     class CacheControl
              Cache control: validate cache vis-a-vis network, or browse offline.
     class DnD
              Drag and drop URLs into Browser window to open page on that URL.
     class DocumentPopup
              Initiates document popup menu (semantic event createWidget/DOCPOPUP, with VMenu in out field).
     class FontFaceMenu
              Set selected text to given font face.
     class FontRender
              Font rendering control: fractional metrics.
     class ForwardBack
              Move forward and backward through documents browsed, via toolbar buttons, menubar items, document popup.
     class History
              Saves last 1000 pages seen.
     class LayerMan
              Placeholder for future work Manage Layers: create new, remove, save, toggle active, ....
     class LinkMe
              For some text that's implicitly a link, dynamically treat it as one if text matches some pattern: URL, manual page, email, ....
     class Menubar
              Populates menubar (but not constituant menus)
     class Multipage
              Interface for paginated document types to choose page number (next, previous, first, last, enter number).
     class NotemarkUI
              Broken AttrUI + style sheet hacking to make Notemarks
     class OpenFile
              Browse a file on the local file system, as chosen by a FileDialog.
     class OutlineUI
              Outline UI controls: smart scrolling, "Fully Open", excerpts on "executiveSummary".
     class PhoneMe
              Play selected text as if on telephone touchtone.
     class PublishAnno
              Write annotations to server.
     class RobustReport
              NOT IMPEMENTED.
     class SaveAnnoAs
              Save annotations in a file chosen with a file chooser.
     class SaveAs
              Save current document to path chosen with a file chooser
     class SeeMono
              Usually better to see ASCII in proportionally spaced fonts, but sometimes have ASCII art -- though some media adaptors don't preserve spaces.
     class SelectionUI
              Lookup selection or current URI at scripted destination
     class SemanticUI
              Generates from a hub description UI elements that trigger a semantic event when activated.
     class SpanUI
              Create a instance of Span describe by hub attributes and move to extent of current selection.
     class StandardEdit
              Standard Edit operations: Undo, Redo, Cut, Copy, Paste, Clear, Select All.
     class StandardFile
              Standard File operations: Undo, Redo, Cut, Copy, Paste, Clear, Select All.
     class Stop
              Stop button and popup item -- just sends stop event, but enable logic presently out of capabilities of scripting language.
     class Toolbar
              Populates toolbars
     class ViewSource
              Opens new window and displays current document as ASCII.
     class WindowUI
              Creates new window or lens.
     class Zoom
              Zoom controls.
     


    Multivalent API