The Source for Java Technology Collaboration


Home | Changes | Index | Search | Go

Swash

Welcome to the wiki home of the swash logo project.

What is Swash?

A framework that will give everyone the possibility to animate and add interactivity to swing applications, as Flash does

The framework handles timelines of actors that can be keyframed., Those actors can be graphics, sounds or swing components. Graphic actors can be images, pixel filters, gradients, all combined using a complete and innovative layering system.

Timelines can be used to display graphic objects, or control any javabean compliant instance through reflection.

The reasons behind swash

Embedding animations and enhanced interactivity into GUIs is hard, time consuming and often an useless reinvention-of-the-wheel. Actual computers can handle much more load than they could couple of years ago, giving programmers the ability to bring some more shine to their programs.

Actually, only the web can benefit from that power, through the famous Flash. But flash is not done for GUIs, and while some people make nice and interesting things with it, it does not have the infrastructure to make GUIs as efficiently as we can. The ultimate goal of that framework is to bring the best of flash into swing applications. No less. wink

Swash Main Features

Note: all those features will have a page describing their benefit, once time permits. Some might be cryptic and the role of that list is not to explain them fully. Don't worry if you don't see the point of some features. That will be explained in the appropriate pages.

Implemented Features

Features to come for 1.0

  • Support for automatic display of animated gif.

Features to come

  • SVG display (batik, certainly)
  • 3D object display ( using a fork of JOXSI from Markus "notch" Persson and maybe a software rendering API (jcpt?))
  • Addition of sound actors
  • Date and database triggers
  • Database actor
  • Action support for scripting using mustang's API.
  • Addition of more Displayable actors and more filters
  • ...

Swash Architecture

First approach

The class architecture is limited to the essential for the user. You can create a Timeline, add as many Actor as you need, add Key if necessary if you need to set values in time or interpolate them. You might also add some triggers so that your timeline can start upon reception of a special event, like an AWTEvent. Once your timeline is ready, initialise() it and it's ready to go.

Deeper view

There are many types of actors that can be used. If you need to display graphics -which ought to be the first use you'll make of swash-, you'll use a DisplayableActor, whose role is to handle stacks of Displayable, provide a JComponent so you can display in a user interface.

If you need to script, you'll add an Action implementor (not the javax.swing one) to a key, placed at the right position in timeline. That implementor can be a class, a stub for script, anything.

There are many triggers ( WakeupBehavior implementors) implemented already. Mostly for AWT events like MouseEntered and such, so that Flash's basic triggers (OnMouseOver, ...) are there. Genererally, you add triggers to a JComponent you get from a DisplayableActor so that the timeline acts when you pass the mouse over.

How do I ???

For directions on how to do certain operations, please go to the How Do I Section

Topic Swash . { Edit | Ref-By | Printable | Diffs r8 < r7 < r6 < r5 < r4 | More }
 XML java.net RSS

Revision r8 - 30 Jun 2007 - 14:13:21 - Main.pepe
Parents: WebHome