/* Copyright 2008, 2009 Sebastiano Tronto This file is part of Robottino. Robottino is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. Robottino is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with Robottino; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ import javax.swing.*; import java.awt.event.*; import java.awt.*; public class Robot { public static Main main = new Main(); boolean leftArm, rightArm, leftLeg, rightLeg; String nomeRobot; Robot precedenteRobot, prossimoRobot; RobotFrame robotFrame; Robot() { this( false, false, false, false, "", main.list.ultimoRobot, null ); } Robot( String nome ) { this ( false, false, false, false, nome, main.list.ultimoRobot, null ); } Robot( boolean la, boolean ra, boolean ll, boolean rl, String nome, Robot prec, Robot prox ) { leftArm = la; rightArm = ra; leftLeg = ll; rightLeg = rl; nomeRobot = nome; precedenteRobot = prec; prossimoRobot = prox; robotFrame = new RobotFrame( nome ); robotFrame.setSize( 350, 550 ); robotFrame.setVisible( true ); robotFrame.setDefaultCloseOperation( JFrame.DO_NOTHING_ON_CLOSE ); robotFrame.addWindowListener( new WindowAdapter() { public void windowClosing( WindowEvent e ) { int selezione = JOptionPane.showOptionDialog( Robot.this.robotFrame, "Eliminare il robottino " + Robot.this.getName() + " ?", "Robottino v4.0 - Cancellazione robottino", JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE, null, new String[] { "Si", "No" }, "No" ); if ( selezione == JOptionPane.YES_OPTION ) { main.list.deleteRobot( Robot.this.getName() ); robotFrame.dispose(); } else { try { Thread.currentThread().sleep( 50 ); } catch ( Exception e2 ) {} robotFrame.repaint(); } } public void windowActivated( WindowEvent e ) { robotFrame.repaint(); } } ); robotFrame.addComponentListener( new ComponentAdapter() { public void componentMoved( ComponentEvent e ) { try { Thread.currentThread().sleep( 50 ); } catch ( Exception e2 ) {} robotFrame.repaint(); } public void componentResized( ComponentEvent e ) { try { Thread.currentThread().sleep( 50 ); } catch ( Exception e2 ) {} robotFrame.repaint(); } } ); } void setLA( boolean la ) { setPositions( la, this.rightArm, this.leftLeg, this.rightLeg ); } void setRA( boolean ra ) { setPositions( this.leftArm, ra, this.leftLeg, this.rightLeg ); } void setLL( boolean ll ) { setPositions( this.leftArm, this.rightArm, ll, this.rightLeg ); } void setRL( boolean rl ) { setPositions( this.leftArm, this.rightArm, this.leftLeg, rl ); } void setPositions( boolean la, boolean ra, boolean ll, boolean rl ) { leftArm = la; rightArm = ra; leftLeg = ll; rightLeg = rl; } void setName( String nome ) { nomeRobot = nome; } boolean getLA() { return leftArm; } boolean getRA() { return rightArm; } boolean getLL() { return leftLeg; } boolean getRL() { return rightLeg; } String getName() { return nomeRobot; } Robot getNext() { return prossimoRobot; } }