package com.gui;
import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.beans.PropertyChangeEvent;
import java.beans.PropertyChangeListener;
import javax.swing.GroupLayout;
import javax.swing.JButton;
import javax.swing.JLabel;
import javax.swing.JSlider;
import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;
import com.fish.World;
import com.math.Point2D;
/**
* @author Dror
*
* email: gumjum.o.o@gmail.com
*
*/
public class CameraMenu extends Menu implements ActionListener,MouseListener,ChangeListener, PropertyChangeListener{
/**
*
*/
private static final long serialVersionUID = 6703897151762757224L;
JLabel statusLabel;
JButton resetButton;
JButton backButton;
Joystick joystick;
JSlider slider;
public CameraMenu() {
super();
statusLabel = new JLabel();
statusLabel.setFocusable(false);
statusLabel.setBackground(lvl2);
joystick = new Joystick();
joystick.normalize();
joystick.setBackground(bg12);
joystick.setFocusable(false);
joystick.addPropertyChangeListener("joystick", this);
slider = new JSlider(JSlider.VERTICAL,-100, 100,0);
slider.setValue(0);
slider.addChangeListener(this);
slider.setMaximumSize(new Dimension(100,100));
slider.setBackground(bg12);
slider.setFocusable(false);
resetButton = new JButton("Reset");
resetButton.setFocusable(false);
resetButton.setBackground(lvl2);
resetButton.addActionListener(this);
backButton = new JButton("back");
backButton.setFocusable(false);
backButton.setBackground(lvl1);
backButton.addActionListener(this);
this.setFocusable(false);
this.setBackground(bg12);
GroupLayout layout = new GroupLayout(this);
this.setLayout(layout);
layout.setAutoCreateGaps(true);
layout.setAutoCreateContainerGaps(true);
layout.setVerticalGroup(layout.createParallelGroup()
.addGroup(layout.createSequentialGroup()
.addComponent(backButton))
.addGroup(layout.createSequentialGroup()
.addComponent(resetButton))
.addGroup(layout.createSequentialGroup()
.addComponent(joystick))
.addGroup(layout.createSequentialGroup()
.addComponent(slider))
.addGroup(layout.createParallelGroup()));
layout.linkSize(resetButton,joystick);
layout.setHorizontalGroup(layout.createSequentialGroup()
.addGroup(layout.createParallelGroup()
.addComponent(backButton))
.addGroup(layout.createParallelGroup()
.addComponent(resetButton))
.addGroup(layout.createParallelGroup()
.addComponent(joystick))
.addGroup(layout.createParallelGroup()
.addComponent(slider))
.addGroup(layout.createSequentialGroup()));
}
public void paintComponent(Graphics g){
super.paintComponent(g);
}
public void actionPerformed(ActionEvent e) {
if(e.getSource() == resetButton){
World.cam.reset();
}
else if(e.getSource() == backButton){
mp.layout.replace(mp.curMenu, mp.mainMenu);
mp.curMenu = mp.mainMenu;
}
}
@Override
public void mouseClicked(MouseEvent e) {
}
@Override
public void mouseEntered(MouseEvent arg0) {
// TODO Auto-generated method stub
}
public void mouseExited(MouseEvent arg0) {
// TODO Auto-generated method stub
}
public void mousePressed(MouseEvent arg0) {
// TODO Auto-generated method stub
}
public void mouseReleased(MouseEvent arg0) {
// TODO Auto-generated method stub
}
public void stateChanged(ChangeEvent e) {
float v = (slider.getValue()/20f);
slider.setValue(0);
World.cam.setLinVel(v);
}
public void propertyChange(PropertyChangeEvent e) {
Point2D p = (Point2D)e.getNewValue();
World.cam.setVel(p.x/10f, p.y/10f);
}
}