*****************************************************************
*                                                               *
*                           CooScale(F1.10)                     *
*                            Java Bean                          *
*                         Written by Mark Qian                  *
*                                                               *
*****************************************************************

   

CooScale is a cool 3D-look multimedia progress bar.

Why:

   1). it supports customizable sound and animation with a variety of modes.
   2). it prvides tooltips. You can show your advertisements, descriptions, and instructions
       according to progress.(To see this feature, just place your mouse cursor on the bean
       above to watch it display different content for different percentages).
   3). it has better compitability. It can be used with both IE(4.x) and Netscape (4.x). 

This may not be the latest version, please visit 

   http://www.coolshare.com/html/bean_cs.htm

to get the latest version.


Note: if you browse test.htm or test_cs.htm LOCALLY, you won't be able to
      see any anmition and hear any sound since the default
      URLs of the image files and audio file are set to somewhere else.
      Be sure that you try them ONLINE.

Properties:

  textColor - percentage text color
  barForeground - foreground color of progress bar(the part done)
  barBackground - background color of progress bar(the rest)
  beanBackground - background color of the bean
  tipsForeground - foreground color of tooltips
  tipsBackground - background color of tooltips        
  displayText - a boolean value to determent if display the percentage text
  percent - value of done
  bevel - bevel of the 3D bar
  outerTLShadowColor - TopLeft corner color of bar border
  outerBRShadowColor - BottomRight corner color of bar border
  innerTLShadowColor - TopLeft corner color of bar 
  innerBRShadowColor - BottomRight corner color of bar 
  tipsX - tooltips x coordinate
  tipsY - tooltips y coordinate
  tipsWidth - tooltips width
  tipsHeight - tooltips height
  buttonLabel - label of the button.  You can remove the button by seting this field to nothing
  tipsText - tooltips content. You can turn the tooltips off by placing nothing in this field.
  soundURL - sound file's complete URL. You can disable sound by placing nothing in this field.
  firstImageFileURL - first animation image file's complete URL. You can disable animation by 
                      placing nothing in this field.
  numImage - number of animation image files.  You can disable animation by seting this field to 0.
  soundMode - sound mode: 0 play sound when progressing; 1 play sound when mouse enter CooScale
  soundPlayStyle - 0 play once; 1 loop
  animationSpeed - animation interval in ms
  selfTest - a boolean var. CooScale will increase it percentage when mouse enter it if set to true
  topTips - tooltips will be keep on the top most when set to true
  autoTipsHeight - CooScale will handle measuring tooltips's height if this is set to true
  resetAfterCancel - the percentage will be set to 0 when cancel if this field is set to true
  resetAfterFull - the percentage will be set to 0 when percentage reaches 100% if this field is set to true
  toCancel - seting this field to true will have to the effect as clicking at the cancel button.  This property
             offer you a way to cancel the progress by other beans. You can also call public
             method, cancelAll(), from you codes to do the samething.


<h3>Registered Action Events and Programming issues:</h3>

   actionPerFormed  - this event is fired when Cancel button is clicked or 
                      process is done (100%).
                      To interact with CooScole, you need to connect its listeners
                      to the source, CooScale. 

                      You can get the resulting percentage(as a String) from 
                      ActionEvent's last field, command, by calling 
                      getActionCommand. For example, following System.err.println statement
                      will print the resulting percentage in Java console when the cancel
                      button is clicked or when process is reached 100%

                      void cooscale1_actionPerformed(java.awt.event.ActionEvent event)
	              {
	                 System.err.println("Resulting percentage = " + event.getActionCommand());    
		         ...
                      }

   There are several sample applets with source codes are available 

      1). Package One - a simple Netscape compitable applet
             This is a very simple hand-written applet showing you how to use Cooscale in an applet.

             http://www.coolshare.com/html/src/caller_cs.java - hand-written applet source file.
             http://www.coolshare.com/html/src/cooscale.mk - makefile to build jar
             http://www.coolshare.com/html/src/caller_cs.bat - a batch file which you can use to build jar file in a DOS environment.
             http://www.coolshare.com/html/test_cs.htm - a html file to run the applet
          
      2). Package Two - a timer-driven Cooscale
             This is an applet built with Visual Cafe (V1.1) showing you how to use 
             Cooscale with other beans in an applet.

             http://www.coolshare.com/html/src/bean_cs.java - the applet source file.
             http://www.coolshare.com/html/src/cootimer.java - a timer bean which fires ActionEvent periodically to increase CooScale's percentage.
             http://www.coolshare.com/html/bean_cs.htm - a html file to run the applet
          
      3). Package Three - a timer-driven Cooscale in popup style
             This is an applet built with Visual Cafe (V1.1) showing you how to popup
             CooScale.

             http://www.coolshare.com/html/src/bean_cs.java - the applet source file.
             http://www.coolshare.com/html/src/Dialog1.java - the dialog source file.
             http://www.coolshare.com/html/src/cootimer.java - a timer bean which fires ActionEvent periodically to increase CooScale's percentage.
             http://www.coolshare.com/html/bean_cs.htm - a html file to run the applet
          
               
                        

  Other Public Methods

  setApplet(Applet applet) - this method has to be called from CooScale's parent so
                             that it can provide animation and sound. The method should
                             be called right before CooScale is shown or started.

  closeAll(void) - this method has to be called in parent's stop method so that the parent
                   stop CooScale's sound playing and animation.

  
Installation Instructions:


   0). Download CooScale at

        http://www.coolshare.com/html/bean_cs.htm

   1). Unzip cooscale.zip or bean_cs.zip to, say c:\my_bean
       and run setup.bat, you will get following files
   
       c:\my_bean\cooscale.jar
       c:\my_bean\cooscale1.gif
       c:\my_bean\cooscale16.gif
       c:\my_bean\cooscale2.gif
       c:\my_bean\cooscale3.gif
       c:\my_bean\cooscale32.gif
       c:\my_bean\cooscale4.gif
       c:\my_bean\cooscale5.gif
       c:\my_bean\cooscale6.gif
       c:\my_bean\cooscale7.gif
       c:\my_bean\cooscale8.gif
       c:\my_bean\file_id.diz
       c:\my_bean\readme.txt
       c:\my_bean\setup.bat
       c:\my_bean\sound25.au
       c:\my_bean\test.htm
       c:\my_bean\test.jar
       c:\my_bean\test.java
       c:\my_bean\test_cs.htm
     

       Note: be sure that you run setup.bat to rename files.


   2). Upload files on to your server, say http://www.mysite.com/
       You need to upload following files to your server

       c:\my_bean\cooscale.jar
       c:\my_bean\cooscale1.gif
       c:\my_bean\cooscale16.gif
       c:\my_bean\cooscale2.gif
       c:\my_bean\cooscale3.gif
       c:\my_bean\cooscale32.gif
       c:\my_bean\cooscale4.gif
       c:\my_bean\cooscale5.gif
       c:\my_bean\cooscale6.gif
       c:\my_bean\cooscale7.gif
       c:\my_bean\cooscale8.gif
       c:\my_bean\sound25.au
       c:\my_bean\test.htm
       c:\my_bean\test.jar
       c:\my_bean\test_cs.htm


There are two things to try now.
If you like to see the running bean following Part I
Otherwise, ignore Part I.     

Part I: Try the one package with this package
*******

  a). Browse test_cs.htm with either IE 4.x or Netscape 4.x.  Or
  
  b). Browse test.htm with IE 4.x.  Test.htm won't work with
      Netscape since it was built with Visual Cafe but Netscape 
      does not support some classes files used to build Cooscale's 
      caller. 

      Later in this page(see Park II below), you will see step-by-step instructions
      to build test.jar which is used by test.htm.


Part II:  Install it in your applet or application
*******

   
   3). Integrate it in to an applet or application.
       
       Let's use Visual Cafe (V1.1) as example.

       Instructions to insert Cooscale to an applet with Visual Cafe:

       A). Open Visual Cafe and select File | New Project from the pull-down menu.
           Then select Basic Applet from New Project dialog.

       B). Rename your new project and applet name, say test as project name and
           test as applet name too, and then save it at c:\my_test. Save the project.

       C). Selete Insert | Component into Library... from menu. Then select
           cooscale.jar that you unzipped at step 1). That is, c:\my_bean\cooscale.jar

       D). Selete Insert | Component from menu. Then select
           cooscale from component list and add it to the project.
           Change following properties
        
                 FirstImageFileURL - change it to http://www.mysite.com/cooscale1.gif
                 SoundURL - change it to http://www.mysite.com/sound25.au

           You have to change these properties in order to have sound and animation
           since an applet can not fetch any resource from any places other than where
           it comes from.

           You need to set property "selfTest" to true in the property list so that
           you can simulate a progress by placing mouse cursor on the bean.

       E). Right mouse click at test in the project dialog and select Edit Source
           (or click at test in the dialog and select Object | Edit Source from menu).
           Then add following statement to init()

		cooscale1.setApplet(this);

           right after 

                //{{INIT_CONTROLS
		....
		//}} 

           You will get something like

                ...	        
                //{{INIT_CONTROLS
		setLayout(null);
		setSize(289,127);
		try {
		ClassLoader cl = Class.forName("cooscale").getClassLoader();
		cooscale1 = (cooscale) java.beans.Beans.instantiate(cl, "cooscale");
		cooscale1.setLayout(new FlowLayout(FlowLayout.CENTER,5,5));
		cooscale1.setBounds(36,36,216,36);
		add(cooscale1);
                cooscale1.start();
		} catch (Exception e) { }
		//}}
		
                cooscale1.setApplet(this); //<<<<<<<< ADD IT HERE !!!!!

                  ...             

           in init().

            <b>Note</b>: you better place  cooscale1.setApplet(this) outside of

                         //{{INIT_CONTROLS
                           ....
                         //}} 

             Otherwise, your addition will be overwritten whenever a change is made
             in IDE.

       E). Add following method to the applet


              public void stop()                                     
              { 
                 cooscale1.cancelAll();
              }

            This will tell the bean to stop sound and animation when the 
            parent applet stops.


       F). Compile the project and try it locally.  If it work, select
           Project | JAR... from menu and click at More>>> button.
           Then, click at test.class and check Bean radio button at the
           bottom of the dialog. Click at OK to generate test.jar.
           Note: in Visual Cafe V1.1, please don't check any other
           class as Bean - test.class is the only one you need to mark
           as a bean.
           
       G). Try it online.  Create a html document file, say test.htm, containing content
           like

              &lt;APPLET Archive="test.jar" CODE="test.class" WIDTH=240 HEIGHT=50&gt;&lt;/APPLET&gt;

           Upload test.jar and test.htm to http://www.mysite.com and browse 

              http://www.mysite.com/test.htm 

           with IE 4.x.

           If you like to try something which can be used in both IE and Netscape, 
           you need to build a simple applet that call CooScale since applets generated by Visual Cafe (V1.1)
           contain some classes which are not supported by Netscape (V4.x).
           You can download another package
              

                ftp://ftp.coolshare.com/adware/cooscal2.zip


           Following the instructions in its readme.txt to build your jar file.
           With this package, you will be able to build your own test_cs.jar
           packed in this package.

For more info, contact the author, Mark Qian, at ok@coolshare.com or
visit  http://www.coolshare.com to get more FREE Java stuff and cool screen savers.


