00001 package plp;
00002
00003 import java.applet.Applet;
00004 import java.awt.Font;
00005 import java.awt.Panel;
00006
00007 import javax.swing.JButton;
00008 import javax.swing.JComboBox;
00009 import javax.swing.JLabel;
00010 import javax.swing.JPanel;
00011 import javax.swing.JScrollPane;
00012 import javax.swing.JTextArea;
00013 import javax.swing.JTextField;
00014
00015 public class AppletInterpretadorPLP extends Applet {
00016
00020 private static final long serialVersionUID = -7398656423050674702L;
00021
00022 private static final Font COURIER_NEW = new Font("Courier New", Font.PLAIN,
00023 12);
00024
00025 private JPanel jContentPane = null;
00026 private JTextArea jTextAreaCodigo = null;
00027 private JScrollPane jScrollPaneMensagens = null;
00028 private JTextArea jTextAreaMensagens = null;
00029 private JLabel jLabelCodigo = null;
00030 private JLabel jLabelMasg = null;
00031 private JScrollPane jScrollPaneCodigo = null;
00032 private JComboBox jComboBoxLinguagens = null;
00033 private JLabel jLabelExecutar = null;
00034
00035 private JButton jButtonExecutar = null;
00036 private JTextField jTextFieldListaEntrada = null;
00037 private JLabel jLabelListaEntrada = null;
00038
00039 private MultiInterpretador interpreter;
00040
00044 public AppletInterpretadorPLP() {
00045 super();
00046 initialize();
00047 }
00048
00054 private void initialize() {
00055 getJContentPane();
00056 this.setBounds(new java.awt.Rectangle(300, 200, 389, 429));
00057 this.jTextFieldListaEntrada.setEnabled(false);
00058 interpreter = new MultiInterpretador(this.jTextAreaMensagens);
00059
00060 }
00061
00067 private Panel getJContentPane() {
00068 if (jContentPane == null) {
00069 jLabelListaEntrada = new JLabel();
00070 jLabelListaEntrada.setBounds(new java.awt.Rectangle(20, 194, 127,
00071 20));
00072 jLabelListaEntrada
00073 .setToolTipText("informe os valores da lista de entrada separados por espaços");
00074 jLabelListaEntrada.setText("Lista de Entrada");
00075 jLabelExecutar = new JLabel();
00076 jLabelExecutar.setBounds(new java.awt.Rectangle(19, 434, 157, 17));
00077 jLabelExecutar.setText("Pressione F1 para executar");
00078 jLabelMasg = new JLabel();
00079 jLabelMasg.setBounds(new java.awt.Rectangle(20, 245, 80, 16));
00080 jLabelMasg.setText("Mensagens");
00081 jLabelCodigo = new JLabel();
00082 jLabelCodigo.setBounds(new java.awt.Rectangle(20, 33, 70, 16));
00083 jLabelCodigo.setText("Código");
00084 jContentPane = new JPanel();
00085 jContentPane.setLayout(null);
00086 this.setLayout(null);
00087 this.add(getJScrollPaneMensagens(), null);
00088 this.add(jLabelCodigo, null);
00089 this.add(jLabelMasg, null);
00090 this.add(getJScrollPaneCodigo(), null);
00091 this.add(getJTextFieldListaEntrada(), null);
00092 this.add(getJComboBoxLinguagens(), null);
00093 this.add(jLabelExecutar, null);
00094 this.add(getJButton(), null);
00095 this.add(jLabelListaEntrada, null);
00096 }
00097 return this;
00098 }
00099
00105 private JTextArea getJTextAreaCodigo() {
00106 if (jTextAreaCodigo == null) {
00107 jTextAreaCodigo = new JTextArea();
00108 jTextAreaCodigo.setFont(COURIER_NEW);
00109 jTextAreaCodigo.setTabSize(2);
00110 UndoUtil.registerUndoManager(jTextAreaCodigo);
00111
00112 }
00113 return jTextAreaCodigo;
00114 }
00115
00121 private JScrollPane getJScrollPaneMensagens() {
00122 if (jScrollPaneMensagens == null) {
00123 jScrollPaneMensagens = new JScrollPane();
00124 jScrollPaneMensagens.setBounds(new java.awt.Rectangle(20, 267, 350,
00125 160));
00126 jScrollPaneMensagens.setViewportView(getJTextAreaMensagens());
00127 }
00128 return jScrollPaneMensagens;
00129 }
00130
00136 private JTextArea getJTextAreaMensagens() {
00137 if (jTextAreaMensagens == null) {
00138 jTextAreaMensagens = new JTextArea();
00139 }
00140 return jTextAreaMensagens;
00141 }
00142
00148 private JScrollPane getJScrollPaneCodigo() {
00149 if (jScrollPaneCodigo == null) {
00150 jScrollPaneCodigo = new JScrollPane();
00151 jScrollPaneCodigo
00152 .setBounds(new java.awt.Rectangle(20, 52, 350, 134));
00153 jScrollPaneCodigo.setViewportView(getJTextAreaCodigo());
00154 }
00155 return jScrollPaneCodigo;
00156 }
00157
00163 private JComboBox getJComboBoxLinguagens() {
00164 if (jComboBoxLinguagens == null) {
00165 jComboBoxLinguagens = new JComboBox();
00166 jComboBoxLinguagens
00167 .setBounds(new java.awt.Rectangle(19, 7, 250, 20));
00168 jComboBoxLinguagens
00169 .addActionListener(new java.awt.event.ActionListener() {
00170 public void actionPerformed(java.awt.event.ActionEvent e) {
00171 switch (jComboBoxLinguagens.getSelectedIndex()) {
00172 case 0:
00173 case 1:
00174 case 2:
00175 case 3:
00176 jTextFieldListaEntrada.setEnabled(false);
00177 break;
00178 default:
00179 jTextFieldListaEntrada.setEnabled(true);
00180 break;
00181 }
00182 }
00183 });
00184 jComboBoxLinguagens.addItem("Expressoes 1");
00185 jComboBoxLinguagens.addItem("Expressoes 2");
00186 jComboBoxLinguagens.addItem("Funcional 1");
00187 jComboBoxLinguagens.addItem("Funcional 2");
00188 jComboBoxLinguagens.addItem("Funcional 3");
00189 jComboBoxLinguagens.addItem("Imperativa 1");
00190 jComboBoxLinguagens.addItem("Imperativa 2");
00191 jComboBoxLinguagens.addItem("Orientada a Objetos 1");
00192
00193 }
00194 return jComboBoxLinguagens;
00195 }
00196
00202 private JButton getJButton() {
00203 if (jButtonExecutar == null) {
00204 jButtonExecutar = new JButton();
00205 jButtonExecutar.setBounds(new java.awt.Rectangle(283, 8, 86, 19));
00206 jButtonExecutar.setText("executar");
00207 jButtonExecutar
00208 .addActionListener(new java.awt.event.ActionListener() {
00209
00210 public void actionPerformed(java.awt.event.ActionEvent e) {
00211 String sourceCode = jTextAreaCodigo.getText();
00212 String listaEntrada = jTextFieldListaEntrada
00213 .getText();
00214 interpreter.interpretarCodigo(sourceCode,
00215 listaEntrada, jComboBoxLinguagens
00216 .getSelectedIndex());
00217 }
00218 });
00219 }
00220 return jButtonExecutar;
00221 }
00222
00228 private JTextField getJTextFieldListaEntrada() {
00229 if (jTextFieldListaEntrada == null) {
00230 jTextFieldListaEntrada = new JTextField();
00231 jTextFieldListaEntrada.setBounds(new java.awt.Rectangle(20, 218,
00232 350, 20));
00233 jTextFieldListaEntrada
00234 .setToolTipText("informe os valores da lista de entrada separados por espaços");
00235 }
00236 return jTextFieldListaEntrada;
00237 }
00238
00239 public static void main(String[] args) {
00240 (new InterpretadorPLP()).setVisible(true);
00241 }
00242
00243 @Override
00244 public void start() {
00245 super.start();
00246 this.setVisible(true);
00247 }
00248
00249 @Override
00250 public void init() {
00251
00252 super.init();
00253 this.initialize();
00254 }
00255 }
00256