Java Class for the RadioButtons

// Copyright(c) 2004 All Rights Reserved...Raju Chiluvuri
package com.agile.libtemplate;
import java.io.*;
import java.util.*;
import javax.servlet.http.HttpServletRequest;
public class RadioButtons extends AgileTemplate  {          
            int count = 0;
            int first = 0;
            String buttons[] = null;
            String callback = null;
            // Constructor, which also initializes the Object.
            public RadioButtons(AC_Info aci, String list[], int num) {
                        super(aci);
                        count = num;
                        buttons = list;
            }

            // This method determines the default selected Button.
            public void setDefaultButton(int def)  {      
                                    first = def;
            } 

 // The Following Three methods may be be Used by "Integration Logic" to integrate the AC
            // This Get Method of the GUI Class that Generates the Component AC
            // This method Returns, The Service Method name of the generated AC.
            public String getButtonSetMethodName()  { 
       
                         String name = "radio_" + UNQ_ID + ".select_new_button";
                        return(name);
            }

             // CCG's Get-method to find the name of a Service Method of the AC
            public String getCB_AddMethodName()  {
         
                         String name = "radio_" + UNQ_ID + ".add_callback";
                        return(name);
            }

            // CCG's Set-method to INPUT external Callback Function.  If the "callback != null",
            //  the CCG generates code such that,
the AC calls the Callback upon new selection. 
            public void setCB_AddMethod(String cb_name)  {
                                    callback = cb_name;
            } 

            // The Code Generation Method : CGM
           public int CGM (PrintWriter out) {
            // Code Check, if the CLASS definition is already in the Web document.
            if (this.aci.setJScriptClass("radio_buttons_v1_0") == false)    { // Skip the class code, If returns False
            out.println("//SECTION-1:Copyright (C) All Rights reserved...Raju Chiluvuri ");
            out.println("<script type='text/ecmascript'> ");
            out.println("<![CDATA[ ");
            out.println("function radio_buttons_v1_0(rb_list, first) ");
            out.println("{ ");
            out.println("    this.select_new_button = select_new_button; ");
            out.println("    this.add_callback = add_callback; ");
            out.println("    var current_button = first; ");
            out.println("    var button_list = rb_list; ");
            out.println("    var callback_func = null; ");
            out.println("    var radio_group_id = 'GROUP_ID'; ");
            out.println(" ");
            out.println("    function add_callback( group_id, cb_name ) { ");
            out.println("   
               radio_group_id = group_id; ");
            out.println("  
                callback_func = cb_name; ");
            out.println("    } ");
            out.println("     ");
            out.println("  function select_new_button(new_button) {  ");
            out.println("  if(current_button != new_button) { ");
            out.println(" 
var svgobj = SVG_Document.getElementById(button_list[current_button]); ");
            out.println(" 
if (svgobj != null) ");
            out.println(" (svgobj.getStyle()).setProperty ('visibility', 'hidden'); ");
            out.println(" svgobj = SVG_Document.getElementById(button_list[new_button]); ");
            out.println(" if (svgobj != null) ");
            out.println("  (svgobj.getStyle()).setProperty ('visibility', 'visible'); ");
            out.println(" ");
            out.println(" current_button = new_button; ");
            out.println("  if (callback_func != null)  ");
            out.println(" callback_func(radio_group_id, new_button); ");
            out.println("       } ");
            out.println("    } ");
            out.println("} ");
            out.println("]]> ");
            out.println("</script> ");
            out.println(" ");

            }// END OF: If statement to skip the JScript Class Defenition

            out.println("// SECTION-2: Instantiation and Init section Radio-button Object ");
            
out.println("<script type='text/ecmascript'> ");
            
String   tmp_id = "rbutton_list_" + UNQ_ID;
            
out.print("var " + tmp_id + " = new Array(");
            for (int i = 0; i < count; i++) {
                      out.print("'rbutton" + i + "_" + UNQ_ID + "'");
                      if(i < (count-1) )  out.print(",");
             }
            
 out.println("); ");
            
 out.println("var radio_" + UNQ_ID + " = new radio_buttons_v1_0(" + tmp_id + ", " + first + "); ");
            
 out.println(" ");

             // If a Callback is INPUT to the CCG, then include the following cods, so that, AC calls the Callback.
             if (callback != null) {
                     
out.println("radio_" + UNQ_ID + ".add_callback( 'none', " + callback + "); ");
           
 }
            
 out.println(" ");
            
 out.println("</script> ");
            
 out.println(" "); 

             out.println("//SECTION-3: Presentation Section for the Rotate-Banner ");
             out.println("<g> ");
             for (int i = 0; i < count; i++) {
                     int y = i*20 + 5;
                     out.println(" <g transform='translate(5 " + y + ")' onclick='radio_" + UNQ_ID + ".select_new_button(" + i + ")'> ");
                     out.println(" <text x='20' y='20'> " + buttons[i] + " </text> ");
                     out.println(" <circle cx='10' cy='15' r='5' stroke-width='1' stroke='rgb(100,100,100)' fill='white'/> ");
                     out.println(" <circle cx='10' cy='15' r='3' id='rbutton" + i + "_" + UNQ_ID + "' ");
                     if( first == i)
                                 out.println(" style='fill:black;visibility:visible;'/> ");
                     else
                                 out.println(" style='fill:black;visibility:hidden;'/> ");
                     out.println(" </g> ");
              }
              out.println("</g> ");
               return 0;
            } // END of the CGM()
}   // END of the Class Definition.

 
Copy Right © 2006 Pioneer Soft, LLC. All Rights Reserved.