MVC Mediator
White paper
Screen shots

Copyright 2004

MVC Mediator - enjoy client side programming and build robust applications quickly.

General features:
  • higher level layer for application programming, brings Model-UI pattern to an application level
  • support for commong application level UI development tasks:
    • value binding
    • command binding
    • value buffering (delay changes until commit, revert changes)
    • validation (errors, warnings, visual feedback support)
  • component toolkit agnostic
  • event strategy agnostic
  • model agnostic
  • support for custom bindings
Design goals:
  • Guide programmer in design and rapid implementation of efficient, accurate applications
  • Free programmer from boring tasks, such:
    • listener management (especially hidden memory leaks)
    • writing adapter classes for list, combo and table models
    • reliable and robust string parsing and formatting
  • Bring Swing expertize to Swing non-experts
  • solve JDK annoyances
  • to shut up all critiques who trumpet that Smalltalk, Python, Ruby, X, Y... language is 10, 100, etc. more times productive than Java
  • joy of client side programming
    • radical ease of use
    • having more fun
Features in 1.0:
  • Swing support (Text components, JLabel, JList, JComboBox, JSpinner, all kind of Buttons and menu items). Framework does not force You to use some subclasses of the components - You can use the ones provided by JDK or Your own specialized classes.
  • Accessing data with chains of:
    • method calls (public or private access, static)
    • Java Beans access
    • Lists, Maps, Arrays access
    • JXpath rich access to complex Java object graphs and XML documents.
  • Data type support (parsing, formatting, converting, validation)
    • all primitive types and their wrappers
    • java.util.Date,
    • java.sql.Date, java.sql.Time, java.sql.Timestamp,
    • BigInteger, BigDecimal
    • arrays, lists - concatenation, string tokenization and parsing
    • several localizable validation functions
  • Event support
    • Beans style event/listener management
      • dozens predefined strategies for most frequently used events
      • any custom strategy is matter of 3 lines of code in one central place
    • java.util.Observable
  • Chains of list decorators:
    • sorting
    • filtering
    • firing change events
  • More than 40 000 lines of well tested code (includes comments)