Skip to main content
ZTSolutions

ALL FUNCTIONS TO PERFORM CALCULATIONS

/** 	 
* 	 
* 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 			 		
}