package manu.dentaku;

import java.applet.*; 
import com.parcplace.pjava.Framer.*; 
import java.awt.*; 
import java.lang.*; 
 
 
 
 
 
 
 
 
 
 
 

	/**
	 * A PARTS application<BR>
	 * @version 1.0
	 * @author hmasuda
	 * Generated by PARTS (tm) Visual Designer from ParcPlace-Digitalk, Inc.<BR>
	 */

public class Calculator extends Calculator_Superclass {

			
	/**
	 *  Create an instance of Calculator
	 */
	public Calculator() {
		super ();
	}
	
	public void init(){

    super.init();

    // Any extra initialization code is placed here.

    }
	      public void setNewCalcFlagTrue() {
             NewCalcFlag = true;
             }

          public void setNewCalcFlagFalse() {
             NewCalcFlag = false;
             }

          public void setAccumulator (Integer i) {
             Accumulator = i;
             }

          public void setAccumulator (int i) {
             Accumulator = new Integer(i); 
             }

       /* Compute a new Integer from current contents of
          Accumulator and EnteredString. For the first
          calculation in a sequence, simply return the Integer
          value of EnteredString. */

          public Integer compute ( ) {

          int x = Accumulator.intValue();
          Integer EnteredValue  ;
          int y  ;
          int z;
          String opCharString = opCharHolder.toString();

            if (EnteredString.length()==0) {
                    y=0;
                    }
            else    {
                    EnteredValue = new Integer(EnteredString.toString() );
                    y=EnteredValue.intValue();
                    }

               if (NewCalcFlag == false) {
                  if (opCharString.equals( "+") ) {
                     z = x + y;
                     return  new Integer(z) ;
                     }
                  else if (opCharString.equals("-")) {
                     z=x-y;
                     return  new Integer(z) ;
                     }
                  else if (opCharString.equals("*") ) {
                     z=x*y;
                     return  new Integer(z) ;
                     }
                  else if (opCharString.equals("/") ) {
                     z= x/y;
                     return  new Integer(z);
                     }            
                  else {
                     return Accumulator;
                     }
                  }
               else         {
                    if ((opCharString.equals("=")) && (EnteredString.length() == 0 )) {
                            return Accumulator;
                            }
                    else {
                            return new Integer(y);
                            }
                    }
               }
}

	/**
	 * This class contains autogenerated code - Do not modify directly.
	 * Generated by PARTS (tm) Visual Designer from ParcPlace-Digitalk, Inc.<BR>
	 */

abstract class Calculator_Superclass extends Applet {

	protected Container parent; 
	protected boolean enterFromMain = false; 

	protected Calculator_Superclass javaApplet1 = this; 
	protected Button javaButton2 = new Button(); 
	protected Button javaButton6 = new Button(); 
	protected Button javaButton14 = new Button(); 
	protected Button javaButton10 = new Button(); 
	protected Button javaButton8 = new Button(); 
	protected Button javaButton16 = new Button(); 
	protected Button javaButton4 = new Button(); 
	protected Button javaButton3 = new Button(); 
	protected Button javaButton11 = new Button(); 
	protected Button javaButton9 = new Button(); 
	protected Button javaButton1 = new Button(); 
	protected Button javaButton7 = new Button(); 
	protected Button javaButton12 = new Button(); 
	protected Button javaButton5 = new Button(); 
	protected Button javaButton13 = new Button(); 
	protected Button javaButton15 = new Button(); 
	protected StringBuffer opCharHolder = new StringBuffer(); 
	protected StringBuffer EnteredString = new StringBuffer(); 
	protected int zeroInteger = 0; 
	protected boolean NewCalcFlag = true; 
	protected TextField javaTextField1 = new TextField(10); 
	protected Integer Accumulator = new Integer(0); 

			
	/**
	 *  Create an instance of Calculator
	 */
	public Calculator_Superclass() {
		super ();
	}

	public void init() {
		initjavaApplet1();
		initjavaTextField1();
		initjavaButton1();
		initjavaButton2();
		initjavaButton3();
		initjavaButton4();
		initjavaButton5();
		initjavaButton6();
		initjavaButton7();
		initjavaButton8();
		initjavaButton9();
		initjavaButton10();
		initjavaButton11();
		initjavaButton12();
		initjavaButton13();
		initjavaButton14();
		initjavaButton15();
		initjavaButton16();
		initEnteredString();
		initopCharHolder();
		initzeroInteger();
		initAccumulator();
		initNewCalcFlag();
	}

	protected void initjavaButton2() {
		PARTSFramer temp_Framer = new PARTSFramer(1,180.0f,1455.0f,570.0f,600.0f,136);
		((PARTSFramerLayout)this.getLayout()).setFramer(javaButton2,temp_Framer);
		this.add(javaButton2);
		javaButton2.setFont(new Font("Courier New", 1,PARTSFramerExtra.pointToPixel(14)));
		javaButton2.setLabel("4");
	}

	protected void initjavaButton6() {
		PARTSFramer temp_Framer = new PARTSFramer(1,855.0f,795.0f,570.0f,600.0f,136);
		((PARTSFramerLayout)this.getLayout()).setFramer(javaButton6,temp_Framer);
		this.add(javaButton6);
		javaButton6.setFont(new Font("Courier New", 1,PARTSFramerExtra.pointToPixel(14)));
		javaButton6.setLabel("8");
	}

	protected void initjavaButton14() {
		PARTSFramer temp_Framer = new PARTSFramer(1,2250.0f,2790.0f,570.0f,600.0f,136);
		((PARTSFramerLayout)this.getLayout()).setFramer(javaButton14,temp_Framer);
		this.add(javaButton14);
		javaButton14.setFont(new Font("Courier New", 1,PARTSFramerExtra.pointToPixel(14)));
		javaButton14.setLabel("+");
	}

	protected void initjavaButton10() {
		PARTSFramer temp_Framer = new PARTSFramer(1,180.0f,2790.0f,1935.0f,600.0f,136);
		((PARTSFramerLayout)this.getLayout()).setFramer(javaButton10,temp_Framer);
		this.add(javaButton10);
		javaButton10.setFont(new Font("Courier New", 1,PARTSFramerExtra.pointToPixel(14)));
		javaButton10.setLabel("0");
	}

	protected void initjavaTextField1() {
		PARTSFramer temp_Framer = new PARTSFramer(1,180.0f,165.0f,3345.0f,465.0f,136);
		((PARTSFramerLayout)this.getLayout()).setFramer(javaTextField1,temp_Framer);
		this.add(javaTextField1);
		javaTextField1.setText("");
		javaTextField1.setFont(new Font("Courier New", 1,PARTSFramerExtra.pointToPixel(16)));
		javaTextField1.setEditable(true);
	}

	protected void initjavaApplet1() {
		javaApplet1.reshape(0, 0, 248, 238);
		javaApplet1.setFont(new Font("MS Sans Serif", 1,PARTSFramerExtra.pointToPixel(8)));
		javaApplet1.setLayout(new PARTSFramerLayout());
	}

	protected void initjavaButton8() {
		PARTSFramer temp_Framer = new PARTSFramer(1,1545.0f,1455.0f,570.0f,600.0f,136);
		((PARTSFramerLayout)this.getLayout()).setFramer(javaButton8,temp_Framer);
		this.add(javaButton8);
		javaButton8.setFont(new Font("Courier New", 1,PARTSFramerExtra.pointToPixel(14)));
		javaButton8.setLabel("6");
	}

	protected void initjavaButton16() {
		PARTSFramer temp_Framer = new PARTSFramer(1,2955.0f,2115.0f,570.0f,1260.0f,136);
		((PARTSFramerLayout)this.getLayout()).setFramer(javaButton16,temp_Framer);
		this.add(javaButton16);
		javaButton16.setFont(new Font("Courier New", 1,PARTSFramerExtra.pointToPixel(14)));
		javaButton16.setLabel("=");
	}

	protected void initAccumulator() {
	}

	protected void initjavaButton4() {
		PARTSFramer temp_Framer = new PARTSFramer(1,855.0f,2115.0f,570.0f,600.0f,136);
		((PARTSFramerLayout)this.getLayout()).setFramer(javaButton4,temp_Framer);
		this.add(javaButton4);
		javaButton4.setFont(new Font("Courier New", 1,PARTSFramerExtra.pointToPixel(14)));
		javaButton4.setLabel("2");
	}

	protected void initjavaButton3() {
		PARTSFramer temp_Framer = new PARTSFramer(1,180.0f,2115.0f,570.0f,600.0f,136);
		((PARTSFramerLayout)this.getLayout()).setFramer(javaButton3,temp_Framer);
		this.add(javaButton3);
		javaButton3.setFont(new Font("Courier New", 1,PARTSFramerExtra.pointToPixel(14)));
		javaButton3.setLabel("1");
	}

	protected void initjavaButton11() {
		PARTSFramer temp_Framer = new PARTSFramer(1,2250.0f,795.0f,570.0f,600.0f,136);
		((PARTSFramerLayout)this.getLayout()).setFramer(javaButton11,temp_Framer);
		this.add(javaButton11);
		javaButton11.setFont(new Font("Courier New", 1,PARTSFramerExtra.pointToPixel(14)));
		javaButton11.setLabel("/");
	}

	protected void initjavaButton9() {
		PARTSFramer temp_Framer = new PARTSFramer(1,1545.0f,2115.0f,570.0f,600.0f,136);
		((PARTSFramerLayout)this.getLayout()).setFramer(javaButton9,temp_Framer);
		this.add(javaButton9);
		javaButton9.setFont(new Font("Courier New", 1,PARTSFramerExtra.pointToPixel(14)));
		javaButton9.setLabel("3");
	}

	protected void initjavaButton1() {
		PARTSFramer temp_Framer = new PARTSFramer(1,180.0f,795.0f,570.0f,600.0f,136);
		((PARTSFramerLayout)this.getLayout()).setFramer(javaButton1,temp_Framer);
		this.add(javaButton1);
		javaButton1.setFont(new Font("Courier New", 1,PARTSFramerExtra.pointToPixel(14)));
		javaButton1.setLabel("7");
	}

	protected void initjavaButton7() {
		PARTSFramer temp_Framer = new PARTSFramer(1,1545.0f,795.0f,570.0f,600.0f,136);
		((PARTSFramerLayout)this.getLayout()).setFramer(javaButton7,temp_Framer);
		this.add(javaButton7);
		javaButton7.setFont(new Font("Courier New", 1,PARTSFramerExtra.pointToPixel(14)));
		javaButton7.setLabel("9");
	}

	protected void initopCharHolder() {
	}

	protected void initzeroInteger() {
	}

	protected void initjavaButton12() {
		PARTSFramer temp_Framer = new PARTSFramer(1,2250.0f,1455.0f,570.0f,600.0f,136);
		((PARTSFramerLayout)this.getLayout()).setFramer(javaButton12,temp_Framer);
		this.add(javaButton12);
		javaButton12.setFont(new Font("Courier New", 1,PARTSFramerExtra.pointToPixel(14)));
		javaButton12.setLabel("*");
	}

	protected void initEnteredString() {
	}

	protected void initNewCalcFlag() {
	}

	protected void initjavaButton5() {
		PARTSFramer temp_Framer = new PARTSFramer(1,855.0f,1455.0f,570.0f,600.0f,136);
		((PARTSFramerLayout)this.getLayout()).setFramer(javaButton5,temp_Framer);
		this.add(javaButton5);
		javaButton5.setFont(new Font("Courier New", 1,PARTSFramerExtra.pointToPixel(14)));
		javaButton5.setLabel("5");
	}

	protected void initjavaButton13() {
		PARTSFramer temp_Framer = new PARTSFramer(1,2250.0f,2115.0f,570.0f,600.0f,136);
		((PARTSFramerLayout)this.getLayout()).setFramer(javaButton13,temp_Framer);
		this.add(javaButton13);
		javaButton13.setFont(new Font("Courier New", 1,PARTSFramerExtra.pointToPixel(14)));
		javaButton13.setLabel("-");
	}

	protected void initjavaButton15() {
		PARTSFramer temp_Framer = new PARTSFramer(1,2955.0f,795.0f,570.0f,1260.0f,136);
		((PARTSFramerLayout)this.getLayout()).setFramer(javaButton15,temp_Framer);
		this.add(javaButton15);
		javaButton15.setFont(new Font("Courier New", 1,PARTSFramerExtra.pointToPixel(14)));
		javaButton15.setLabel("CLR");
	}

	public void setParent(Container c) {
		parent = c;
		this.init();
	}

	public boolean handleEvent(Event evt) {
		if (evt.target == javaButton4) {
			switch (evt.id) {
				case Event.ACTION_EVENT:
					EnteredString.append(
						javaButton4.getLabel());
					javaTextField1.setText(
						EnteredString.toString());
					return super.handleEvent(evt);
			}
		}
		else if (evt.target == javaButton5) {
			switch (evt.id) {
				case Event.ACTION_EVENT:
					EnteredString.append(
						javaButton5.getLabel());
					javaTextField1.setText(
						EnteredString.toString());
					return super.handleEvent(evt);
			}
		}
		else if (evt.target == javaButton6) {
			switch (evt.id) {
				case Event.ACTION_EVENT:
					EnteredString.append(
						javaButton6.getLabel());
					javaTextField1.setText(
						EnteredString.toString());
					return super.handleEvent(evt);
			}
		}
		else if (evt.target == javaButton7) {
			switch (evt.id) {
				case Event.ACTION_EVENT:
					EnteredString.append(
						javaButton7.getLabel());
					javaTextField1.setText(
						EnteredString.toString());
					return super.handleEvent(evt);
			}
		}
		else if (evt.target == javaButton8) {
			switch (evt.id) {
				case Event.ACTION_EVENT:
					EnteredString.append(
						javaButton8.getLabel());
					javaTextField1.setText(
						EnteredString.toString());
					return super.handleEvent(evt);
			}
		}
		else if (evt.target == javaButton9) {
			switch (evt.id) {
				case Event.ACTION_EVENT:
					EnteredString.append(
						javaButton9.getLabel());
					javaTextField1.setText(
						EnteredString.toString());
					return super.handleEvent(evt);
			}
		}
		else if (evt.target == javaButton10) {
			switch (evt.id) {
				case Event.ACTION_EVENT:
					EnteredString.append(
						javaButton10.getLabel());
					javaTextField1.setText(
						EnteredString.toString());
					return super.handleEvent(evt);
			}
		}
		else if (evt.target == javaButton11) {
			switch (evt.id) {
				case Event.ACTION_EVENT:
					((Calculator)this).setAccumulator(
						((Calculator)this).compute());
					javaTextField1.setText(
						Accumulator.toString());
					((Calculator)this).setNewCalcFlagFalse();
					opCharHolder.setLength(
						zeroInteger);
					opCharHolder.append(
						javaButton11.getLabel());
					EnteredString.setLength(
						zeroInteger);
					return super.handleEvent(evt);
			}
		}
		else if (evt.target == javaButton12) {
			switch (evt.id) {
				case Event.ACTION_EVENT:
					((Calculator)this).setAccumulator(
						((Calculator)this).compute());
					javaTextField1.setText(
						Accumulator.toString());
					((Calculator)this).setNewCalcFlagFalse();
					opCharHolder.setLength(
						zeroInteger);
					opCharHolder.append(
						javaButton12.getLabel());
					EnteredString.setLength(
						zeroInteger);
					return super.handleEvent(evt);
			}
		}
		else if (evt.target == javaButton13) {
			switch (evt.id) {
				case Event.ACTION_EVENT:
					((Calculator)this).setAccumulator(
						((Calculator)this).compute());
					javaTextField1.setText(
						Accumulator.toString());
					((Calculator)this).setNewCalcFlagFalse();
					opCharHolder.setLength(
						zeroInteger);
					opCharHolder.append(
						javaButton13.getLabel());
					EnteredString.setLength(
						zeroInteger);
					return super.handleEvent(evt);
			}
		}
		else if (evt.target == javaButton14) {
			switch (evt.id) {
				case Event.ACTION_EVENT:
					((Calculator)this).setAccumulator(
						((Calculator)this).compute());
					javaTextField1.setText(
						Accumulator.toString());
					((Calculator)this).setNewCalcFlagFalse();
					opCharHolder.setLength(
						zeroInteger);
					opCharHolder.append(
						javaButton14.getLabel());
					EnteredString.setLength(
						zeroInteger);
					return super.handleEvent(evt);
			}
		}
		else if (evt.target == javaButton15) {
			switch (evt.id) {
				case Event.ACTION_EVENT:
					EnteredString.setLength(
						zeroInteger);
					opCharHolder.setLength(
						zeroInteger);
					((Calculator)this).setNewCalcFlagTrue();
					((Calculator)this).setAccumulator(
						zeroInteger);
					javaTextField1.setText(
						Accumulator.toString());
					return super.handleEvent(evt);
			}
		}
		else if (evt.target == javaButton16) {
			switch (evt.id) {
				case Event.ACTION_EVENT:
					((Calculator)this).setAccumulator(
						((Calculator)this).compute());
					javaTextField1.setText(
						Accumulator.toString());
					opCharHolder.setLength(
						zeroInteger);
					((Calculator)this).setNewCalcFlagTrue();
					return super.handleEvent(evt);
			}
		}
		else if (evt.target == javaButton1) {
			switch (evt.id) {
				case Event.ACTION_EVENT:
					EnteredString.append(
						javaButton1.getLabel());
					javaTextField1.setText(
						EnteredString.toString());
					return super.handleEvent(evt);
			}
		}
		else if (evt.target == javaButton2) {
			switch (evt.id) {
				case Event.ACTION_EVENT:
					EnteredString.append(
						javaButton2.getLabel());
					javaTextField1.setText(
						EnteredString.toString());
					return super.handleEvent(evt);
			}
		}
		else if (evt.target == javaButton3) {
			switch (evt.id) {
				case Event.ACTION_EVENT:
					EnteredString.append(
						javaButton3.getLabel());
					javaTextField1.setText(
						EnteredString.toString());
					return super.handleEvent(evt);
			}
		}
		return super.handleEvent(evt);
	}
}
