// Copyright 1997
// Black Dirt Software
// All rights reserved

import java.util.*;
public class bdcForm extends Control {
   

    public bdcForm() {
        this.setType("Form");
        this.setJavaType("Applet");
    }


    public String classString(boolean isApplet, boolean is102){
      if (isApplet){
        return ( "public class " +  getName() + " extends Applet  {" + "\n");
      }
      else{
          if (is102){
             return ( "public class " +  getName() + " extends Frame {" + "\n");
          }
          else{
            return ( "public class " +  getName() + " extends Frame implements WindowListener {" + "\n");
          }
      }
    }



    public String initForm( boolean isApplet, boolean is102) {
      String returnString = "";
      String declareClass = "";
      if (isApplet){
         declareClass = "    public void init() {" + "\n";
      }
      else{
        declareClass =  "    public " + getName() + "() {" + "\n";
        if (!is102){
           declareClass = declareClass + "      addWindowListener(this);" + "\n";
        }
      }

      returnString = "\n" + declareClass +
                   "      setLayout(new BDLayout());" + "\n" +
                   "      addNotify();" + "\n" ;
      if (is102){
          returnString = returnString +  "      resize (" + getWidth() + ", " + getHeight() +" );" + "\n";
          if (!isApplet){
            returnString = returnString +  "      move (" + getLeft() + ", " + getTop() +" );" + "\n";
          }

      }
      else {
          if (!isApplet){
             returnString = returnString +        "      setBounds (" + getLeft() + ", " + getTop() + ", " + getWidth() + ", " + getHeight() +" );" + "\n";
          }
          else{
             returnString = returnString +        "      setBounds ( 0, 0, "  + getWidth() + ", " + getHeight() +" );" + "\n";
          }
      }
     if (this.getFontFlag()){
         returnString = returnString + "      " + "setFont(new Font( " + getJavaFont() + "));" +"\n";
     } else{
         returnString = returnString + "      setFont(new Font (" + "\"" + "Dialog" +"\"" + ", Font.PLAIN, 12));" + "\n" ;
     }

     if (this.getForeColorFlag()){
         returnString = returnString + "      " +  "setForeground(new Color(" +   getForeColor() + "));" +"\n";
     }
     if (this.getBackColorFlag()){
         returnString = returnString + "      " +  "setBackground(new Color(" +   getBackColor() + "));" +"\n";
     } else{
         returnString = returnString + "      " +  "setBackground(Color.lightGray);" +"\n";
     }

      return (returnString);
    }



    public String frameConstructorString(){
        String returnString = "";

        returnString =  "  public " +  getName() + "(String title) {" + "\n";
        returnString = returnString + "      this();" + "\n";
        returnString = returnString + "      setTitle(title); "+ "\n";
        returnString = returnString + "  }" + "\n";
        return(returnString);
    }

    public String mainString(){
        String returnString = "";

        returnString =  "    public static void main(String args[]){" +  "\n";
        returnString = returnString + "      " + getName() + " f = new " + getName() + "();"+  "\n" ;
        returnString = returnString + "      " + "f.show();" +  "\n";
        returnString = returnString + "      " + "}" +  "\n";
        return(returnString);
    };

    public String htmlString(){
    return(
"<title>" + getName() + "</title>" + "\n" +
"<applet code=" + getName() + ".class width=" + getWidth() + " height= " + getHeight() + ">" + "\n" +
"</applet>");
}


    public String windowClose102String(){
    return(




    "     if (event.id == Event.WINDOW_DESTROY ) {" + "\n" +
    "       this.hide();" + "\n" +
    "       this.dispose();" + "\n" +
    "       System.exit(0);" + "\n" +
    "       //  Remove System.exit(0); from all but the base window" + "\n" +
    "       return false;" + "\n" +
    "     };" + "\n" );
    }




    public String windowEventString(){
       
return(
"    public void windowClosed(WindowEvent event) {" + "\n" +
"    }"  + "\n" +

"    public void windowDeiconified(WindowEvent event) {" + "\n" +
"    }" + "\n" +

"    public void windowIconified(WindowEvent event) {" + "\n" +
"    }" + "\n" +

"    public void windowActivated(WindowEvent event) {" + "\n" +
"    }" + "\n" +

"    public void windowDeactivated(WindowEvent event) {" + "\n" +
"    }" + "\n" +

"    public void windowOpened(WindowEvent event) {" + "\n" +
"    }" + "\n" +

"    public void windowClosing(WindowEvent event) {" + "\n" +
"            System.exit(0);" + "\n" +
"         }" + "\n" );
}
    



    public String declareString() {
        return ("");
    }

    public String initString() {
        return ("");

    }

    public String addString11( Control cParent) {
      return("");
    }

    public String addString( Control cParent) {
      String returnString = "";
      return ("");
    }


/*

    public String handleEventString() {
     String returnString = "";
     if (hasClicked()){
        returnString =   buildEvent( "Clicked", "Event.ACTION_EVENT" );
     }       
     if (hasGotFocus()){
        returnString =   returnString + buildEvent( "GotFocus", "Event.GOT_FOCUS" );
     }       

     if (hasLostFocus()){
        returnString =   returnString + buildEvent( "LostFocus", "Event.LOST_FOCUS" );
     }
          return (returnString);
    }



   public String functionString(Hashtable fnList) {
     String returnString = "";
     if (hasClicked()){
            returnString =   buildFunction( "Clicked", fnList );
     }
     if (hasGotFocus()){
        returnString =   returnString + buildFunction( "GotFocus", fnList );
     }       
     if (hasLostFocus()){
        returnString =   returnString + buildFunction( "LostFocus", fnList );
     }       

     return (returnString);
    }
*/

    // override Control's build event to use "this" rather than name

/*
    public String buildEvent(String evtDescription, String evtID){
      return ("    if ((event.target == this ) && (event.id == " + evtID + "))" + "\n" + "      {" + "\n" + "        " + getName() + evtDescription + "( event );" + "\n" + "        return(true);" + "\n" + "      }" +"\n");
    }
*/

 public String getComments(){
 Date now = new Date();
   return("//" + "\n" +
   "//    " + getName() + " generated " + now + "\n" + 
   "//" + "\n" + 
   "//    Black Dirt Software, Inc. " + "\n" + 
   "//    http://www.blackdirt.com " + "\n" + 
   "//    phone: 914-651-1599" + "\n" + 
   "//    FAX  : 914-651-0015" + "\n" + 
   "//" +"\n" +
   "//" + "\n" + 
   "//   Convert 1.1     Copyright (c) 1997 Black Dirt Software.  All rights reserved" + "\n" +
   "//" + "\n" + 
   "//    Black Dirt Software, Inc." + "\n" + 
   "//    P.O. Box 599" + "\n" +
   "//    Florida, NY 10921-0599" + "\n" +
   "//  " + "\n" );
  }


}
