//**************************************************************** // TRABAJO ISBC : INTEGRACION JAVA-JESS. CASO DEL ELEVADOR //**************************************************************** // // Fichero: VentanaControl.java // Autor: // Modificado por: Daniel Urieta Lopez // Proposito: Contiene la clase VentanaControl que una ventana // de aplicacion que representa el control del // edificio. // //**************************************************************** import java.awt.Graphics; import java.applet.Applet; import jess.TextAreaOutputStream; import java.awt.*; import java.awt.event.*; import salir.CloseWindowAndExit; import Edificio; public class VentanaControl extends Frame implements ActionListener,ItemListener { private Edificio edificio; private Button crear_ascensor; private Label CC; private Checkbox creacion_continua; private Label MNP; private TextField max_num_pasajeros; private Label ICP; private TextField intervalo_creacion; private Panel panel_entrada; private int estado_threads; public VentanaControl(String titulo) { super(titulo); CC=new Label("Creacion continua"); creacion_continua=new Checkbox(); creacion_continua.addItemListener(this); crear_ascensor=new Button("Para el sistema"); crear_ascensor.addActionListener(this); MNP=new Label("Maximo numero de pasajeros"); max_num_pasajeros=new TextField(); max_num_pasajeros.addActionListener(this); ICP=new Label("Intervalo creacion pasajeros ms"); intervalo_creacion=new TextField(); intervalo_creacion.addActionListener(this); panel_entrada=new Panel(); panel_entrada.setLayout(new GridLayout(3,2)); panel_entrada.add(CC); panel_entrada.add(creacion_continua); panel_entrada.add(MNP); panel_entrada.add(max_num_pasajeros); panel_entrada.add(ICP); panel_entrada.add(intervalo_creacion); setLayout(new BorderLayout()); add(crear_ascensor,BorderLayout.SOUTH); add(panel_entrada,BorderLayout.NORTH); setSize(400,150); addWindowListener(new CloseWindowAndExit()); estado_threads = 0; } public void ControlarEdificio(Edificio E) { edificio = E; int max = E.maximo_numero_pasajeros; int interv = E.intervalo_creacion_pasajeros; max_num_pasajeros.setText(String.valueOf(max)); intervalo_creacion.setText(String.valueOf(interv)); creacion_continua.setState(E.creacion_continua); } public void actionPerformed(ActionEvent e) { if (e.getSource()==crear_ascensor) { edificio.Parar_Arrancar(); if (estado_threads == 0) { crear_ascensor.setLabel("Rearrancar el sistema"); estado_threads = 1; } else { crear_ascensor.setLabel("Parar el sistema"); estado_threads = 0; } } else if (e.getSource()==max_num_pasajeros) { int max = Integer.parseInt( max_num_pasajeros.getText() ); edificio.maximo_numero_pasajeros=max; } else if (e.getSource()==intervalo_creacion) { int interv = Integer.parseInt( intervalo_creacion.getText() ); edificio.intervalo_creacion_pasajeros=interv; } } public void itemStateChanged(ItemEvent e) { edificio.creacion_continua=creacion_continua.getState(); } }