|
Peppery Patterns
How to turn Java applets into Habanero
hablets
by Ian Chai
|
|
Why use Habanero?
Habanero is a framework
for synchronous collaboration.
You can use it to convert a single-user Java applet
or application into a multi-user application called a "hablet"
in much less time than writing the collaboration from scratch. You
can also write hablets directly without first writing an applet.
Each user running a client
connected to a session will
be able to see changes made by other users in the same session. Hence,
it is useful for applications you want real-time interaction with. Here
are some example
applications
we have already written. (The
icon means that this is a link that takes you outside this tutorial.)
This tutorial teaches you how to convert a Java applet into a Habanero
hablet. It is based on the patterns
approach to describing solutions to problems.
This is the Index page. Use this page to find topics on things
you want to know. You can easily come back here using the Index
button at the top of each pattern page, use it in a separate window, or use the index
in a frame.
0. Index (this page)
0.1 Read me first (explains
how to use these pages and what the symbols mean.)
0.2 Quick start example
Basic Topics
1. How to turn an applet into a
hablet (Habanerizing a Java Applet)
1.1. What to change first
to habanerize an applet
(Change
superclass, imports, and initialization)
1.2. How to specify the
size, title, and other attributes of a hablet's window
1.3. How to enable a hablet
to join a session (Transfer State)
1.3.1 How events
work in Habanero (Event Model)
1.3.2 How to decide
which variables to send to other hablets
1.4. How to pass events
to peer hablets (Simple Event Handling)
1.5. How to install
a new hablet into a Habanero environment
2. Common mistakes or errors
Advanced Topics
x. How to decide on the fly
whether to share an event (Shipping Decision Function)
x. How to convert an applet that uses
the old event model (Not yet written)
x. How to control which events have
permissions to execute (Arbitrator)
x.1 How to prevent events
from clashing with each other (Limit Arbitrator)
x.2 How to create
new arbitrators (Not yet written)
x. How to generate an event
(Habanero.sendEvent)
x. How to change one kind of user
event into another (Not yet written)
x. How to package up complicated
extra data to send (Component Action)
(Not yet written)
x. How to access
the Arbitrator (Collobject)
(Not yet written)
x. How to define new toolsDir
attributes (Not yet written)
x. How to share events from spawned
windows (Identifiable interface)
x. How to find out who owns the session
x. How to find out who started the
hablet (originator)
x. How to let the initiator of
a tool do something special before
the
collaboration starts (Initializable interface)
(Not yet written)
x. How to make collaborative
version of AWT components (eg. buttons) so that
some
components can be shared without sharing others
(Not yet written)
x. How to do special cleanup after
a hablet quits (Shutdownable interface) (Not
yet written)
x. How to describe new Component
Actions (Describable interface) (Not yet
written)
Appendices
A.0 TextDemo Example
A.1 Glossary
A.3 Habanero
Methods Glossary
A.4 Known bugs
 |
These pages are still under construction.
We are releasing this along with Habanero 2.0 beta, but most of the advanced
topics have not yet been written. Moreover, the basic topics pages are
undergoing revision.
|
If you spot an error, please contact Ian
Chai.
Also, please contact me if you find some aspects of Habanero that are not
explained clearly so that I can improve this documentation.
Habanero® is a registered trademark owned by The Board of Trustees of the University of Illinois. Copyright 1996-1998. All rights reserved. Java(TM) is a proprietary trademark owned by Sun Microsystems, Inc.
The
National Center for Supercomputing Applications
University
of Illinois at Urbana-Champaign
Contacts
page