Top 25% by JARS

CooTank (version 1.10 build 002)



Demo of CooTank:

As JavaBeans

As Applets

Another cool stuff: Beauty of Wild


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)