/** Clase PisoHandler @author Diego Gonzalez @author José Ignacio Guerra @author Patricio Valle */ import java.awt.event.*; import java.awt.*; import java.lang.Math; import java.util.*; import java.awt.geom.*; import javax.swing.*; import java.net.*; import java.applet.*; /** Clase PisoHandler que maneja eventos de un piso */ class PisoHandler implements ActionListener { private Dibujo dibujo; private int piso; /** Constructor del manejador de piso @param dib, Objeto dibujo que permite dibujar @param piso, entero que identifica al piso (2,3 o 4) */ public PisoHandler(Dibujo dib, int piso) { dibujo = dib; this.piso=piso; } /** Maneja acciones realacionadas con el mouse @param e accion sobre boton */ public void actionPerformed(ActionEvent e) { dibujo.changeMouseListener(new MouseHandler()); dibujo.changeMouseMotionListener(new MouseMotionHandler()); dibujo.piso(piso); } /** Clase MouseHandler que maneja eventos de mouse */ class MouseHandler extends MouseAdapter { public void mouseClicked(MouseEvent event) { Point p = event.getPoint(); int encontrado = dibujo.cambiaPiso(p); if (encontrado != NOENCONTRADO) { piso = encontrado; dibujo.changeMouseListener(new MouseHandler()); dibujo.changeMouseMotionListener(new MouseMotionHandler()); dibujo.piso(piso); } else { dibujo.findLink(p); } } /** Metodo que genera acciones al evento de mantener presionado el mouse @param event evento de mouse */ public void mousePressed (MouseEvent event) { } /** Metodo que genera acciones acorde al evento de liberar el mouse @param event evento de mouse */ public void mouseReleased(MouseEvent event) { } } private class MouseMotionHandler implements MouseMotionListener { /** Metodo que genera acciones acorde al evento de mover el mouse @param event evento de mouse */ public void mouseMoved(MouseEvent event) { // set the mouse cursor to cross hairs if it is inside // a rectangle Point p = event.getPoint(); if(dibujo.find(p)!=NOENCONTRADO){ Container comp = dibujo.getContainer(); comp.setCursor(Cursor.getPredefinedCursor (Cursor.HAND_CURSOR)); } else { Container comp = dibujo.getContainer(); comp.setCursor(Cursor.getDefaultCursor()); } } /** Metodo que genera acciones acorde al evento de arrastrar el mouse @param event evento de mouse */ public void mouseDragged(MouseEvent event) { } } public static final int NOENCONTRADO = 100; }