CooTank (version 1.10 build 002)
Demo of CooTank:
CooTank is an JavaBean/Applet live menu system.
CooTank appears as an aquarium tank. Each object(Tropical fish, jellyfish,
seahors, shell and even user-imported image) in the tank
represents one or more web objects (pages). "Be careful with
the shells!" They may gobble you into an exciting web page.
Features include:
- each object represent links with tooltips description. The correspending
URL is opened when clicked.
- links can be passed to the Bean/Applet from applet arguments, Bean properties,
or data files in server side through CGI.
- Description about links can be popped up as tooltips periodically or when mouse
cursor is moved on the object.
- Object images can be replaced with your own images.
- It can be leave running (as a live wallpaper or saver) after you move away from
the web page where it resides.
- It can be used in two styles: popup and embedded
- When popped up, it can be set either in a window or cover the full screen
- It can be control be other components to perform some tasks such as having an
object "speak" something, adding an object, deleting an object...
- As a bean, it fires events: MSG_OpenURL,MSG_Enter,MSG_Exit,MSG_ViewTips,
MSG_SwitchLink and MSG_SelectObject.
Note: CooTank requires a JDK1.1 environment.
IE (4.x) is the best browser to use CooTank as an applet or a JavaBean in an applet.
A regular Netscape 4.x doesn't provide a complete JDK1.1 environment
unless you upgrated it. To upgrate Netscape, go
http://developer.netscape.com/software/jdk/download.html
Be sure you download the one supporting JDK1.1.5.
TheAdware version is FREE.
A major difference between an Adware version and a registered
shareware version is that an ad link will randomly replace your
links so that visitors can jump to author's site is included.
I. CooTank As A JavaBean
Properties:
popup - Cootank will be placed in a popup window if true, otherwise it
will be embedded in a page. Default is true.
screenW - Width of Cootank. Cootank will cover the whole screen if screenW is -1. Default is -1
screenH - Height of Cootank. Default is -1
openAsStart - Cootank will be opened automatically if true. Default is false.
goPass - Fishes will not just remain in the visible area if true. Default is false.
waterFill - An effect of water filling to the tank will be simulated if true. Default is false.
keyShutDown - Cootank will be shut down when key press if true. Default is true.
useDocumentBase - Cootank will fetch resources using document base if true, otherwise
codebase will be used. Default is true.
tipsPeriod - period of tooltips stay on screen. Default is 20.
markSel - mark the selected object if true. Default is true.
tankCGI - the url of CGI using to load environment. You can load environment
such as link info and fish images from data files in you server with
this CGI. Default is "". You have to install cootank.cgi in your server and
assign its URL here if you want to load stuff from server.
soundFile - the url of sound. Default is "". You have to specify a sound file in your server.
linkFile - the link data file name with full path. All the link info should be
stored here. Each line in the file represents a link: url and description.
The first field of the line is the url which will be opened when clicking
at the object. The other field is the description which will be displayed as
tooltips when mouse cursor is moved on the object. These two fields are
separated by a dilimitor, "|". For example, the following two lines represent
two links
http://www.coolshare.com/websurf|Somewhere out there...
http://www.coolshare.com/savers|The best screen savers in the world
Note: this property is used only when you like to fetch link info from server.
You need to modify (create a new one) the one packed with CooTank and
specify its FULL path int your server instead of its URL in this property.
imageFile - the enviroment data file name with full path. All the environment resource will
be stored here if you like to load the environment resource info from server.
Normally, you don't change the imageFile file packed with Cootank unless you
want to specify your own objects or you want to change the number of each kind of
objects.
The first line in this file is a special line which contains number of objects
and fields are divided by delimitor, "|". The order of objects is
FLOOR
BUBBLE
TIPS
SHELL
FISH
HORSE
JELLY
For example, the line below
1|1|1|5|5|5|5
represents one floor object, one bubble object, one tips object,
five fish objects, five shell objects, five seahorse objects, and
five jellyfish objects. Note: the first three(FLOOR, BUBBLE and TIPS)
are always specified as one.
Each of other lines in the file represents a kind of object. The same delimitor, "|",
is used to separate fields in a line. The first field of an object line is the type
of the object. Here are the types for all the objects
0 FLOOR
1 BUBBLE
2 TIPS
3 SHELL
4 FISH
5 HORSE
6 JELLY
You can specify two set of images for each object.
The second field of an object line is number of object for set 1.
The third field of an object line is number of object for set 2.
Starting from the fouth field, images in set 1 are listed and followed
by images of set2.
For example, lines in following imagefile
1|1|1|5|5|5|5
0|1|0|images/floor.gif
1|1|0|images/bubble.gif
2|1|0|images/tips.gif
3|5|0|images/shell11.gif|images/shell12.gif|images/shell13.gif|images/shell14.gif|images/shell15.gif
4|5|2|images/fish21.gif|images/fish22.gif|images/fish23.gif|images/fish24.gif|images/fish25.gif|images/fish26.gif|images/fish27.gif
5|4|0|images/horse11.gif|images/horse12.gif|images/horse13.gif|images/horse14.gif
6|6|0|images/jelly11.gif|images/jelly12.gif|images/jelly13.gif|images/jelly14.gif|images/jelly15.gif|images/jelly16.gif
The first line represents number of objects as we descripbed above.
The second line represents the sea floor image: only one in set1 and none in set2
Smilarly, ehe 5th line represents fish images. There are 5 images(fish21.gif, fish22.gif...fish25.gif)
and there are 2 images in set2: fish26.gif and fish27.gif. Note: since we use document base and
these images are stored in a directory named "images" under the directory where html documents reside
we have to specify the relative path for each image file: images/fish21.gif and so on.
Note: if you don't use your own images, please don't change this file. You may want to
change those numbers if you like to specify number of objects.
openMode - Similar to the open mode in HTML, it can be specified as "_blank", "_self", and so on. Default is "_blank".
tankBgColor - Background color of the tank. Default is 004400.
linkPeriod - Links attached to each objec will be switched. Default is 400.
randomFish - An random number within number of objects (see description in property imagefile)
will be used as number of objects if true. Default is true.
offWhenLeave - CooTank will be trun of when browser is switched away from the page where it resides,
otherwise it will remain until the browser is shut down. You may make use of this
feature to use CooTank as a live wallpaper or screen saver. Default is true.
numLink - Number links to be buffered in memory. You may want to specify it to be larger than
the total number of objects so that no redundant links are displayed. Default is 8.
links - Instead of load links from server, you can set links from this property. This is the way
you obtain links from argument of the applet where Cootank Bean resides. Default is "".
You need to replace the one comes with Cootank with your own tips.
evnFiles - Instead of load environment info from server, you can set environment info from this property. This is the way
you obtain environment info from argument of the applet where Cootank Bean resides.
Important: You need to follow the rules in Part II "CooTank As An Applet" below to set the arguments of your applet
if you contain CooTank Bean in your applet and like to pass its stuff through arguments of your applet.
Supported Events
Cootank fired 5 cootevt events:
noticeOpenURL - fired when users click at an object.
textField[0]= Message type
textField[1]= URL
textField[2]= time
noticeEnter - fired when users enter Cootank
textField[0]= Message type
textField[1]= time
noticeExit - fired when users exit Cootank
textField[0]= Message type
textField[1]= time
noticeViewTips - fired when users view tooltips
textField[0]= Message type
textField[1]= Tips content
textField[2]= time
noticeSwitchLink - fired when objects switch links
textField[0]= Message type
textField[1]= Previous Tips (switched from)
textField[2]= New Tips (switched to)
textField[3]= Time
noticeSelectObject - fired when objects are selected
textField[0]= Message type
textField[1]= Object index
textField[2]= Time
Message type cootevt contains an array of four fields, textField[0...3].
You may want to reference test_ck11.java
to see the details about how to catch and handle these events.
The demo applet, test_ck.class, also provide a text field to display
all the events fired by Cootank. To view fired events dynamically,
open test_ck1.htm and wait until the tank is filled up with water.
Use ALT-TAB key to bring up the browser to the front. You will then
see each event is fired when you are doing things...
Public methods
talk(int id, String tipsText, String url) - this is a method which allows
you to have objects "speak" the tipstext and also update its url. You can
hook Cootank to other systems(such as a chat system) to represend your
systems as an aquarium tank.
Parameters:
id - the id when you pass with addObject. If id=-1, that means the selected
object will be used.
tipsText - text to "talk"
url - url related to the text
addObject(int type, int id, String tipsText, String url) - this is a method which allows you to
add an object to the tank.
Parameters:
type - type of the object. It could be IMG_FISH, IMG_SHELL, and so on.
id - an unique id that you assign to the new object so that you can
reference it in the future when you use method like deleteObject
and talk.
tipsText - text for the object to "talk"
url - url related to the text
deleteObject(int id) - this is a method which allows you to delete an object in the tank.
Parameters:
id - the id when you pass with addObject. If id=-1, that means the selected
object will be used. If id=-2, it will remove all objects in the tank.
setSelObj(int id) - this is a method which allows you to select an object
Parameters:
id - the id of object to be selected.
getSelObj() - this is a method which allows you to get id of selected object
Parameters: none
Note: all function above return 0 if seccuess otherwise -1. You need to verify their
returns and recall them (maybe after a period of sleep) when -1 is returned
if you like to make sure the task is done.
You may want to reference test_ck12.java
to see the details about how to catch and handle these events.
Some tricks for design
1). If you like to use Cootank in an embedded style, the first thing you need to
do after you insert a Cootank into your container is to turn property "popup"
to false since the default is true.
2). Don't specify argument "screenW" and "screenH" from your applet
if you like to have full screen.
Installation Instructions:
0). Download CooTank at
html/bean_ck.htm
1). Unzip coopro.zip to, say c:\my_bean
you will get following files
c:\my_bean\jelly16.gif
c:\my_bean\floor.gif
c:\my_bean\bubble.gif
c:\my_bean\test_ck.java
c:\my_bean\tips.gif
c:\my_bean\fish21.gif
c:\my_bean\fish22.gif
c:\my_bean\fish23.gif
c:\my_bean\fish24.gif
c:\my_bean\fish25.gif
c:\my_bean\fish26.gif
c:\my_bean\fish27.gif
c:\my_bean\shell11.gif
c:\my_bean\shell12.gif
c:\my_bean\shell13.gif
c:\my_bean\shell14.gif
c:\my_bean\shell15.gif
c:\my_bean\jelly15.gif
c:\my_bean\jelly11.gif
c:\my_bean\jelly12.gif
c:\my_bean\jelly13.gif
c:\my_bean\jelly14.gif
c:\my_bean\horse11.gif
c:\my_bean\horse12.gif
c:\my_bean\horse13.gif
c:\my_bean\horse14.gif
c:\my_bean\horse15.gif
c:\my_bean\bubble.au
c:\my_bean\FILE_ID.DIZ
c:\my_bean\Readme.txt
c:\my_bean\cootank.cgi
c:\my_bean\test_ck12$SymAction.class
c:\my_bean\test_ck12$SymCTActionEvent.class
c:\my_bean\test_ck12.class
c:\my_bean\test_ck11$SymCTActionEvent.class
c:\my_bean\test_ck11.class
c:\my_bean\cootank.jar
c:\my_bean\Test_ck22.htm
c:\my_bean\bean_ck.htm
c:\my_bean\test_ck21.htm
c:\my_bean\Test_ck11.htm
c:\my_bean\Test_ck12.htm
2). Try Cootank locally.
To test CooTank as a JavaBean in an applet, open test_ck1.htm
with a browser which supports JDK1.1.5(IE 4.x or later, or an
updated Netscape 4.x). Or simply click at the link "As a JavaBean in an applet"
above.
To test CooTank as an applet, open test_ck2.htm with a browser.
Or simply click at the link "As a JavaBean in an applet "As an applet" above.
3). Try Cootank online. Contain it in a Java applet, or you can use the
sample applet, test_ck11.class and testck12.class. Then following to instructions in part
II below to install the applet on your server. Note: The source codes
of test_ck11 and test_ck121 are available.
Or contain it in a Java application.
4). Install cootank.cgi to load links and environment info through cgi.
If you like to load links and environment info from your server, you
have to install cootank.cgi.
To install cootank.cgi, you need to
a). upload cootank.cgi to your cgi directory in your server,
say http://www.your-site.com/your-cgi-dir
and make sure its access permission is set to read and executable.
b). set property (if you use Cootank as an applet, you should set parameter).
tankCGI to
http://www.your-site.com/your-cgi-dir/cootank.cgi
II. CooTank As A Java Applet
Arguments:
popup - Cootank will be placed in a popup window if 1, otherwise it
will be embedded in a page. Default is 1.
screenW - Width of Cootank. Cootank will cover the whole screen if screenW is -1. Default is -1
screenH - Height of Cootank. Default is -1
openAsStart - Cootank will be opened automatically if 1. Default is 0.
goPass - Fishes will not just remain in the visible area if 1. Default is 0.
waterFill - An effect of water filling to the tank will be simulated if true. Default is 0.
keyShutDown - Cootank will be shut down when key press if 1. Default is 1.
useDocumentBase - Cootank will fetch resources using document base if 1, otherwise
codebase will be used. Default is 1.
tipsPeriod - period of tooltips stay on screen. Default is 20.
markSel - mark the selected object if 1. Default is 1.
tankCGI - the url of CGI using to load environment. You can load environment
such as link info and fish images from data files in you server with
this CGI. Default is "". You have to install cootank.cgi in your server and
assign its URL here if you want to load stuff from server.
soundFile - The url of sound. Default is "". You have to specify a sound file in your server.
linkFile - The link data file name with full path. See "CooTank As A JavaBean" for details
about linkFile.
imageFile - the enviroment data file name with full path. See "CooTank As A JavaBean" for details
about imageFile.
openMode - Similar to the open mode in HTML, it can be specified as "_blank", "_self", and so on. Default is "_blank".
tankBgColor - Background color of the tank. Default is "004400".
linkPeriod - Links attached to each objec will be switched. Default is 400.
randomFish - An random number within number of objects (see description in property imagefile)
will be used as number of objects if 1. Default is 1.
offWhenLeave - CooTank will be trun of when browser is switched away from the page where it resides,
otherwise it will remain until the browser is shut down. You may make use of this
feature to use CooTank as a live wallpaper or screen saver. Default is 1.
numLink - Number links to be buffered in memory. You may want to specify it to be larger than
the total number of objects so that no redundant links are displayed. Default is 8.
links - Instead of load links from server, you can set links through this argument. Default is "".
You need to replace the one comes with Cootank with your own tips.
evnFiles - Instead of load environment info from server, you can set environment info through this argument.
Installation Instructions:
0). Download CooTank at
html/bean_ck.htm
1). Unzip cootank.zip to, say c:\my_bean
you will get following files
c:\my_bean\jelly16.gif
c:\my_bean\floor.gif
c:\my_bean\bubble.gif
c:\my_bean\test_ck.java
c:\my_bean\tips.gif
c:\my_bean\fish21.gif
c:\my_bean\fish22.gif
c:\my_bean\fish23.gif
c:\my_bean\fish24.gif
c:\my_bean\fish25.gif
c:\my_bean\fish26.gif
c:\my_bean\fish27.gif
c:\my_bean\shell11.gif
c:\my_bean\shell12.gif
c:\my_bean\shell13.gif
c:\my_bean\shell14.gif
c:\my_bean\shell15.gif
c:\my_bean\jelly15.gif
c:\my_bean\jelly11.gif
c:\my_bean\jelly12.gif
c:\my_bean\jelly13.gif
c:\my_bean\jelly14.gif
c:\my_bean\horse11.gif
c:\my_bean\horse12.gif
c:\my_bean\horse13.gif
c:\my_bean\horse14.gif
c:\my_bean\horse15.gif
c:\my_bean\bubble.au
c:\my_bean\FILE_ID.DIZ
c:\my_bean\Readme.txt
c:\my_bean\cootank.cgi
c:\my_bean\test_ck12$SymAction.class
c:\my_bean\test_ck12$SymCTActionEvent.class
c:\my_bean\test_ck12.class
c:\my_bean\test_ck11$SymCTActionEvent.class
c:\my_bean\test_ck11.class
c:\my_bean\cootank.jar
c:\my_bean\Test_ck22.htm
c:\my_bean\bean_ck.htm
c:\my_bean\test_ck21.htm
c:\my_bean\Test_ck11.htm
c:\my_bean\Test_ck12.htm
2). Upload files on to your server, say http://www.mysite.com/
You need to upload following files to your server and you
will get them as following
http://www.mysite.com/jelly16.gif
http://www.mysite.com/floor.gif
http://www.mysite.com/bubble.gif
http://www.mysite.com/test_ck.java
http://www.mysite.com/tips.gif
http://www.mysite.com/fish21.gif
http://www.mysite.com/fish22.gif
http://www.mysite.com/fish23.gif
http://www.mysite.com/fish24.gif
http://www.mysite.com/fish25.gif
http://www.mysite.com/fish26.gif
http://www.mysite.com/fish27.gif
http://www.mysite.com/shell11.gif
http://www.mysite.com/shell12.gif
http://www.mysite.com/shell13.gif
http://www.mysite.com/shell14.gif
http://www.mysite.com/shell15.gif
http://www.mysite.com/jelly15.gif
http://www.mysite.com/jelly11.gif
http://www.mysite.com/jelly12.gif
http://www.mysite.com/jelly13.gif
http://www.mysite.com/jelly14.gif
http://www.mysite.com/horse11.gif
http://www.mysite.com/horse12.gif
http://www.mysite.com/horse13.gif
http://www.mysite.com/horse14.gif
http://www.mysite.com/horse15.gif
http://www.mysite.com/bubble.au
http://www.mysite.com/cootank.cgi
http://www.mysite.com/test_ck12$SymAction.class
http://www.mysite.com/test_ck12$SymCTActionEvent.class
http://www.mysite.com/test_ck12.class
http://www.mysite.com/test_ck11$SymCTActionEvent.class
http://www.mysite.com/test_ck11.class
http://www.mysite.com/cootank.jar
http://www.mysite.com/Test_ck22.htm
http://www.mysite.com/bean_ck.htm
http://www.mysite.com/test_ck21.htm
http://www.mysite.com/Test_ck11.htm
http://www.mysite.com/Test_ck12.htm
3). Setup cootank.cgi if you like to load stuff from your server.
See details at section 4 of part I above.
4). Try it online. Browse http://www.mysite.com/test_ck2.htm or
http://www.mysite.com/test_ck2.htm with IE 4.x
or upgrated Netscape. Note: a regular Netscape browser downloaded
from Netscape won't work. You need to upgrate it to support JDK1.1.
Go
http://developer.netscape.com/software/jdk/download.html
to upgrate it.
Or simply switch to IE (4.x)