/**
*
* ALL FUNCTIONS TO PERFORM CALCULATIONS
*
*
* */
//PROCESS IS EQUAL WAS PRESSED
public void processEqualsTo()
{
String joperator = getOperator();
boolean result = false;
String second_number_entered = getSecondNumber(); //SWITCH TO THE OPERATOR STORED
if(joperator.equals("+"))
{
result = doCalcution("+",getSecondNumber()); //CALL FUNCTION TO DO THE CALCULATION
}
if(joperator.equals("-"))
{
result = doCalcution("-",getSecondNumber()); //CALL FUNCTION TO DO THE CALCULATION
}
if(joperator.equals("*"))
{
result = doCalcution("*",getSecondNumber()); //CALL FUNCTION TO DO THE CALCULATION
}
if(joperator.equals("/"))
{
result = doCalcution("/",getSecondNumber()); //CALL FUNCTION TO DO THE CALCULATION
}
if(joperator.equals("none"))
{
JOptionPane.showMessageDialog(this,"+, -, /, * Not Selected yet.","System Message:",
JOptionPane.ERROR_MESSAGE);
}
if(result)
{
updateCalculation(""+second_number+" = "+getAnswer()+" ;; "); // UPDATE THE CALCULATION HISTORY
jnumber.setText(" "+getAnswer()); // ADD SPACE TO ENABLE CLEARING OF NEXT CALCULATION
setCalculationRestart(); //RESTART THE CALCULATIONS
}
}
//GET CALCULATION STATUS
public boolean isCalculationStarting()
{ return start_calculation;
}
//SET CALCULATION IS CONTINUING
public void setCalculationStarted()
{ start_calculation = false;
}
//SET CALCULATION IS RESTARTING AFTER EQUAL OPERATION
public void etCalculationRestart()
{
start_calculation = true;
}
//SET ANSWER
public void setAnswer(String val)
{
answer = val;
}
//GET ANSWER
public String getAnswer()
{
return answer;
}
//CLEAR ALL VALUES FOR NEW CALCULATION
public void ClearValues()
{
answer="0";
operator ="none"; //reset operator
jnumber.setText("");
jcalc.setText("");
start_calculation =true;
}
//CE - CLEAR LAST ENTRY
public void clearLastEntry()
{
StringBuffer jcalc_text = new StringBuffer(jcalc.getText());
StringBuffer jnumber_text = new StringBuffer(jnumber.getText());
int jcalc_len = jcalc.getText().length(); // GET LENGHT OF CURRENT CALCULATIONS TEXT
int jnumber_len = jnumber.getText().length();
jcalc_text.setLength(jcalc_len -1); //REMOVE LAST CHARACTER
jnumber_text.setLength(jnumber_len-1);//REMOVE LAST CHARACTER
jcalc.setText(new String(jcalc_text)); // CONVERT STRING TO STRINGBUFFER TYPE
jnumber.setText(new String(jnumber_text));// CONVERT STRING TO STRINGBUFFER TYPE
}
//SET OPERATOR
public void setOperator(String op)
{
operator=op;
}
//GET OPERATOR
public String getOperator()
{
return operator;
}
//CLEAR NUMBER
public void clearNumber()
{
jnumber.setText("");
}
public void EvokeBackSpace() throws AWTException
{
r = new Robot();
r.keyPress(KeyEvent.VK_BACK_SPACE);
}
//UPDATE FIELD OF FINAL ANSWER/NUMBER DISPLAYED
public void updateFinalNumber(String txt)
{
String text = jnumber.getText();
StringBuffer buf = new StringBuffer(text);
//ENABLE APPENDING CURRENT TEXT DISPLAY
buf.append(txt);
String new_text = new String(buf);
jnumber.setText(new_text);
}
//CHECK IF NUMBER FIELD NEEDS TO BE CLEAR FOR NEXT OPERATION
public void checkNumber(String str)
{
if(str.startsWith(" ")) //IF THERE IS A SPACE INFRONT THEN CLEAR THE SCREEN
{
clearNumber();
}
else {
//CONTINUE... } }
// UPDATE TOP DISPLAY OF CALCULATION HISTORY
public void updateCalculation(String str)
{
String stn = jcalc.getText();
StringBuffer st_buff = new StringBuffer(stn); //Convert String type to StringBuffer
st_buff.append(str); //append with number string
jcalc.setText(""+st_buff); //UPDATE TEXT IN CALCULATION
}
//INVERSE TO NUMBER SIGN
public String changeSign(String str)
{
String result = str;
if(str.startsWith("-"))
{
result = str.substring(1,str.length()); //JUMP THE FIRST CHARACTER
}else
{
result = "-"+str;
}
return result;
}
//SET THE SECOND NUMBER
public void setSecondNumber(String num)
{
econd_number = num;
}
//GET SECOND NUMBER
public String getSecondNumber()
{
return second_number;
}
//CHECK IF CALCULATION IS CONTINUING
public boolean isContinousCalcution()
{
if(second_number.equals("0"))
{
return false;
}else
{
eturn true;
}
}
//PERFORM CALCULATION
public boolean doCalcution(String operator,String second_num)
{
String firstnum = getAnswer(); // GET FIRST VALUE
try {
if(operator.equals("+"))
{
setAnswer(Computer.AddTwoNumbers(firstnum,second_num)); //DO ADDITION CALCULATION
}
if(operator.equals("-"))
{
setAnswer(Computer.subtractNumbers(firstnum,second_num)); //DO SUBTRACTION CALCULATION
}
if(operator.equals("*"))
{
setAnswer(Computer.MultiplyTwoNumbers(firstnum,second_num)); //DO MULTIPLICATION CALCULATION
}
if(operator.equals("*"))
{
setAnswer(Computer.dividNumbers(firstnum,second_num)); //DO DIVITION CALCULATION
}
}catch(Exception ev) {
JOptionPane.showMessageDialog(this,"Oops..Something went wrong!\n Try Again..\nClick C","System Message:",
JOptionPane.ERROR_MESSAGE);
}
return true; //CALCULATIONA WAS SUCCESSFULL
}