public class PanelPersonal extends JPanel{
private PanelConsumo pnConsumoPersonal;
private PanelLavarManos pnManos;
private PanelLavarPlatos pnPlatos;
private PanelTirarCisterna pnWC;
private PanelLavadora pnLavadora;
//Referencia al panel de consumo general
private PanelConsumo pnConsumoGeneral;
public PanelPersonal(String nombre, PanelConsumo general) {
//Al referenciarlo, podemos actualizar su valor al mismo tiempo que los consumos personales
pnConsumoGeneral = general;
pnConsumoPersonal = new PanelConsumo(20);
pnManos = new PanelLavarManos();
pnManos.btIniciar.addActionListener(new AccionLavarManos());
pnPlatos = new PanelLavarPlatos();
pnPlatos.btIniciar.addActionListener(new AccionLavarPlatos());
pnWC = new PanelTirarCisterna();
pnWC.bt3L.addActionListener(new AccionTirarCisterna());
pnWC.bt5L.addActionListener(new AccionTirarCisterna());
pnLavadora = new PanelLavadora();
pnLavadora.btEco.addActionListener(new AccionLavadora());
pnLavadora.btNormal.addActionListener(new AccionLavadora());
setLayout(new BorderLayout());
add(pnConsumoPersonal, BorderLayout.NORTH);
JPanel pnConsumos = new JPanel();
pnConsumos.setLayout(new GridLayout(4,1,10,10));
pnConsumos.add(pnManos);
pnConsumos.add(pnPlatos);
pnConsumos.add(pnWC);
pnConsumos.add(pnLavadora);
add(pnConsumos);
setBorder(BorderFactory.createCompoundBorder(
BorderFactory.createRaisedSoftBevelBorder(),
BorderFactory.createTitledBorder(nombre))
);
}
private class AccionLavarManos implements ActionListener {
@Override
public void actionPerformed(ActionEvent e) {
float consumo = pnManos.calculaConsumo();
pnConsumoGeneral.setConsumo(consumo);
pnConsumoPersonal.setConsumo(consumo);
}
}
private class AccionLavarPlatos implements ActionListener {
@Override
public void actionPerformed(ActionEvent e) {
float consumo = pnPlatos.calculaConsumo();
pnConsumoGeneral.setConsumo(consumo);
pnConsumoPersonal.setConsumo(consumo);
}
}
private class AccionTirarCisterna implements ActionListener {
@Override
public void actionPerformed(ActionEvent e) {
JButton boton = (JButton) e.getSource();
if (boton.equals(pnWC.bt3L)) {
pnConsumoGeneral.setConsumo(3f);
pnConsumoPersonal.setConsumo(3f);
}
else {
pnConsumoGeneral.setConsumo(5f);
pnConsumoPersonal.setConsumo(5f);
}
}
}
private class AccionLavadora implements ActionListener {
@Override
public void actionPerformed(ActionEvent e) {
JButton boton = (JButton) e.getSource();
if (boton.equals(pnLavadora.btEco)) {
pnConsumoGeneral.setConsumo(40f);
pnConsumoPersonal.setConsumo(40f);
}
else {
pnConsumoGeneral.setConsumo(60f);
pnConsumoPersonal.setConsumo(60f);
}
}
}
}