package Portugol.Language.Consola;
import Portugol.Language.Analisador.Simbolo;
import Portugol.Language.Utilitario.LanguageException;
import Portugol.Language.Utilitario.Values;
import java.awt.Color;
import java.awt.Font;
import javax.swing.JOptionPane;
import javax.swing.JTextArea;
public class ConsoleIO extends JTextArea {
/**
* versao do teclado
*/
public static String VERSION = "Versão:2.0 \t(c)Augusto Bilabila & David Silva Barrera";
/**
* contrutor
*/
public ConsoleIO() {
setBackground(new Color(255, 255, 255));
setFont(new Font("Courier New", 0, 14));
setForeground(new Color(0, 0, 255));
this.setLineWrap(true);
this.setText("Nenhum algoritmo está sendo executado");
this.setEditable(false);
}
/**
* limpa a conola
*/
public void Clear(){
this.setText("");
}
public String read(Simbolo s) throws LanguageException{
try{
String input;
do{
input = JOptionPane.showInputDialog(this,"valor da variável: "+s.getName(),"CONSOLA",JOptionPane.QUESTION_MESSAGE);
}while(input.length() <=0);
write(input+"\n");
if( s.getType() == s.TEXTO || s.getType() == s.CARACTER)
return Values.StringToText(input);
else
return input;
}catch (Exception e){
throw new LanguageException("Leitura abortada pelo utilizador","");
}
}
/**
* Escreve uma string na consola
* @param str string a escrever
*/
public void write(String str){
this.append(str);
//por o cursor no final i.e. deslizar o texto
this.setCaretPosition( this.getText().length());
}
public void setColor(Color backGround, Color text){
setBackground(backGround);
setForeground(text);
}
public void setNewFont( Font f) {
setFont(f);
}
}