[logo] JX Application Framework
   
Home     
* Cart

Introduction

Why use a framework?

Download

Vision
    API stability

    Code optimization

    Bibliography

Features
    Object messaging

    Extensibility

    Drag-and-Drop

    Networking

    3D Graphics

    Powerful tables

    Styled text editor

    Memory leak debugger

    Tutorial
    Class tree

    Open protocols

    Known bugs

    Next release
    Future plans

    Projects

FAQ

Other software

Log in  

   
     

Features

  • Built on top of powerful JCore library.

  • Flexible messaging system so objects can receive notification of changes in other objects. This can be used to implement Model-View-Controller designs.

  • Graphical layout editor that generates code.

  • Drag-and-Drop. (XDND version 4)

  • User-configurable button bar that cooperates with any particular menu bar.

  • Support for the basic application level objects:

    • Director (data in window doesn't need to be saved)
    • Abstract document (data in window needs to be saved)
    • File document (functionality for saving data in a file)
    • Dialog (both modal and modeless; data is automatically validated when entered)

  • Support for interacting documents.
    (e.g. One document can require that another document be opened and remain open.)

  • User preferences management via JPrefsManager and the mix-in class JPrefObject.

  • True support for multiple document applications. When the program is already running, any new invocation of the program contacts the existing process instead of starting a new one.
    (This is what we mean by a Multiple Document Interface, not Microsoft's ridiculous definition that requires reimplementing the window manager to provide windows within windows.)

  • Support for all the standard widgets:

    • Buttons
    • Checkboxes
    • Radio buttons
    • Hierarchical menus

      • Scrolls if not all the menu items can fit on the screen at once.
      • Submenu remains open as long as the mouse is moving towards it, even if the path crosses other items on the parent menu.
      • Unlimited submenu depth (but be nice and don't drive your users nuts by abusing this!)

    • Input fields with an automated system for validating what is entered

      • text
      • integer
      • floating point
      • file
      • directory
      • regex
      • password
      • (NEW) path/file (with tab completion)

    • Useful scrollbars
    • Partitions that users can drag to adjust space allocation in a window
    • (NEW) Windows-style tabs that allow the user to switch between different panels within a single window

  • Easy to create customized widgets.

  • (NEW) Powerful, flexible docking system gives users the option to arrange program windows any way they want within multiple dock windows, with almost no effort required by the developer!

  • Dynamic window layout. The application can show, hide, create, destroy, and resize widgets even while the window is visible.

  • Automated geometry management of all widgets, so each widget can adjust its size and/or position based on the size of its enclosure.

  • On-line, searchable, hypertext help system.

  • Hints. (the yellow boxes that explain what you are pointing at)

  • Add-on library provides 3D graphics support via the Mesa implementation of OpenGL.

  • Text editor class that supports fully styled text (i.e. each character can have a separate style).

  • Powerful 2D table class suite. Includes support for in-place editing of cell contents. Great for anything from spreadsheets to board games.

  • Support for several layouts in the same window, with each layout selectable via a "card file index." This index can be any widget that presents a set of choices, such as a menu, a table, or the row of tabs used in Windows95®.

  • Add-on library provides suite of classes for plotting data and functions.

  • Add-on library provides suite of classes for storing and displaying trees using the Macintosh® System 7 paradigm.

  • Built in, extensible file browser object.

  • Uniform interface for drawing to the screen, images for offscreen storage, and PostScript and Encapsulated PostScript (EPS) files (for printing).

    • Uniform interface to XImages (client side storage) and Pixmaps (server side storage)
    • Read and write (NEW) JPEG, PNG, XPM, and XBM files.
    • Support for color approximation and preemptive color approximation.

  • Integrated support for the X selection mechanism (clipboard).

    • Choice of Macintosh Copy or X Selection model.
    • Persistent so copied data is never lost.
    • History of previous data to insure that remote applications can get the data they requested, no matter how slow the network connection is.
    • Transparent support of the incremental selection transfer protocol, so the user can copy and paste arbitrarily large amounts of data.

  • A single application can connect to an unlimited number of X servers.

  • Networking and process support is integrated into the event loop.

    • JMessageProtocol supports any ASCII message based protocol, so you'll never have to write any code below decoding complete messages.

  • Support for real-time applications via a safe mechanism for overriding the event loop.

  • Cooperative multi-tasking eliminates the need for threads. This provides support for periodic tasks such as animation and safety saving the user's data.

  • Object to display progress of lengthy operation.

  • Animated cursors and images.

  • JStringManager allows storing strings in separate data files, so they can easily be translated and changed without recompiling.

    • Full support for European languages
    • Support for user-customizable menu shortcuts by editing the menu items stored in the string database
    • (NEW) Built-in support for toggling between Macintosh and Windows style menu shortcuts

  • Designed to work with multiple virtual desktops and both Click-to-Focus and Point-to-Focus.

  • Support for scrolling via wheel mice.

  • Automatically works with session managers (e.g. Gnome and KDE) once you override JXApplication::CleanUpBeforeSuddenDeath().

  • 64-bit clean.

  • Y2K compliant

Copyright © 2008 New Planet Software