package fr.utc.leapband.view; import jade.gui.GuiEvent; import java.awt.Color; import java.awt.Cursor; import java.awt.Font; import java.awt.Image; import java.awt.Point; import java.awt.Toolkit; import java.awt.event.MouseEvent; import java.awt.event.MouseListener; import java.beans.PropertyChangeEvent; import java.util.Timer; import javax.swing.ImageIcon; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.SwingConstants; import fr.utc.leapband.sma.user.UserAgent; import fr.utc.leapband.utilities.Constance; import fr.utc.leapband.utilities.CustomImgPanel; import fr.utc.leapband.utilities.ImageTimerTask; import fr.utc.leapband.utilities.RoundedBorder; @SuppressWarnings("serial") public class MenuView extends JAgentFrame { //private JPanel buttonPane; private JButton single; private JButton multiple; Timer click_task = null; JButton exit; public MenuView(UserAgent agent) { super(agent); this.setTitle("Menu View"); this.setSize(Constance.Windows_width, Constance.Windows_height); this.setLocationRelativeTo(null); this.setLayout(null); this.setResizable(false); this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); CustomImgPanel imagePanel=new CustomImgPanel(Constance.Windows_width, Constance.Windows_height); imagePanel.setImagePath( "images/back.jpg"); imagePanel.setLayout(null); this.add(imagePanel); JLabel leap_band = new JLabel(new ImageIcon("images/leapband.png")); leap_band.setBounds(500, 30, 500, 150); leap_band.setHorizontalAlignment(SwingConstants.CENTER); leap_band.setForeground(Color.MAGENTA); imagePanel.add(leap_band); JLabel gif=new JLabel(new ImageIcon("images/notesdorees.gif")); imagePanel.add(gif); gif.setBounds(950, 80, 500, 150); single = new JButton("Single Mode"); single.setFont(new Font("Lucida Calligraphy", Font.BOLD, 30)); single.setBorder(new RoundedBorder(new Color(0,128,255,100))); single.setContentAreaFilled( false ); single.addMouseListener(new MouseListener() { @Override public void mouseReleased(MouseEvent e) { single.setBorder(new RoundedBorder(new Color(0,128,255,100))); } @Override public void mousePressed(MouseEvent e) { single.setBorder(new RoundedBorder(new Color(0,128,255,150))); System.out.println("mouse pressed..."); } @Override public void mouseExited(MouseEvent e) { changeCursorImage("images/cursor.png"); single.setBorder(new RoundedBorder(new Color(0,128,255,100))); System.out.println("mouse exit..."); if (click_task != null) { click_task.cancel(); click_task = null; } } @Override public void mouseEntered(MouseEvent e) { //setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR)); click_task = new Timer(); click_task.schedule(new ImageTimerTask(myAgent),0,Constance.click_delay/12); click_task.schedule( new java.util.TimerTask() { @Override public void run() { selectSingleMode(); } }, Constance.click_delay ); single.setBorder(new RoundedBorder(new Color(0,128,255,50))); } @Override public void mouseClicked(MouseEvent e) { single.setBorder(new RoundedBorder(new Color(0,128,255,150))); } }); multiple = new JButton("Multiple Mode"); multiple.setFont(new Font("Lucida Calligraphy", Font.BOLD, 30)); multiple.setBorder(new RoundedBorder(new Color(255,102,178,100))); multiple.setContentAreaFilled( false ); multiple.addMouseListener(new MouseListener() { @Override public void mouseReleased(MouseEvent e) { multiple.setBorder(new RoundedBorder(new Color(255,102,178,100))); } @Override public void mousePressed(MouseEvent e) { multiple.setBorder(new RoundedBorder(new Color(255,102,178,150))); } @Override public void mouseExited(MouseEvent e) { multiple.setBorder(new RoundedBorder(new Color(255,102,178,100))); changeCursorImage("images/cursor.png"); single.setBorder(new RoundedBorder(new Color(0,128,255,100))); System.out.println("mouse exit..."); if (click_task != null) { click_task.cancel(); click_task = null; } } @Override public void mouseEntered(MouseEvent e) { click_task = new Timer(); click_task.schedule(new ImageTimerTask(myAgent),0,Constance.click_delay/12); click_task.schedule( new java.util.TimerTask() { @Override public void run() { selectMultiMode(); GuiEvent ev = new GuiEvent(this,UserAgent.TEXT_EVENT); ev.addParameter("listGroup"); myAgent.postGuiEvent(ev); System.out.println("envoyer listGroup\n"); } }, Constance.click_delay ); multiple.setBorder(new RoundedBorder(new Color(255,102,178,50))); } @Override public void mouseClicked(MouseEvent e) { multiple.setBorder(new RoundedBorder(new Color(255,102,178,150))); } }); exit = new JButton("Exit"); exit.setFont(new Font("Lucida Calligraphy", Font.BOLD, 30)); exit.setBorder(new RoundedBorder(new Color(51,255,51,100))); exit.setContentAreaFilled( false ); exit.addMouseListener(new MouseListener() { @Override public void mouseReleased(MouseEvent e) { exit.setBorder(new RoundedBorder(new Color(51,255,51,100))); } @Override public void mousePressed(MouseEvent e) { exit.setBorder(new RoundedBorder(new Color(51,255,51,150))); } @Override public void mouseExited(MouseEvent e) { exit.setBorder(new RoundedBorder(new Color(51,255,51,100))); changeCursorImage("images/cursor.png"); if (click_task != null) { click_task.cancel(); click_task = null; } } @Override public void mouseEntered(MouseEvent e) { click_task = new Timer(); click_task.schedule(new ImageTimerTask(myAgent),0,Constance.click_delay/12); click_task.schedule( new java.util.TimerTask() { @Override public void run() { System.exit(1); } }, Constance.click_delay ); exit.setBorder(new RoundedBorder(new Color(51,255,51,50))); } @Override public void mouseClicked(MouseEvent e) { exit.setBorder(new RoundedBorder(new Color(51,255,51,150))); } }); single.setBounds(80, 150,500, 150); multiple.setBounds(80,350,500,150); exit.setBounds(80,550,500,150); imagePanel.add(single); imagePanel.add(multiple); imagePanel.add(exit); //this.getGraphicsConfiguration().getDevice().setFullScreenWindow(this); // personnel cursor Toolkit toolkit = Toolkit.getDefaultToolkit(); Image cursorImage = toolkit.getImage("images/cursor.png"); Point cursorHotSpot = new Point(0,0); Cursor customCursor = toolkit.createCustomCursor(cursorImage, cursorHotSpot, "Cursor"); this.setCursor(customCursor); } private void selectSingleMode() { GuiEvent ev = new GuiEvent(this,UserAgent.SELECT_EVENT); ev.addParameter(UserAgent.Single_Mode); myAgent.postGuiEvent(ev); } private void selectMultiMode(){ GuiEvent ev = new GuiEvent(this,UserAgent.SELECT_EVENT); ev.addParameter(UserAgent.Multiple_Mode); myAgent.postGuiEvent(ev); } @Override public void propertyChange(PropertyChangeEvent evt) { super.propertyChange(evt); } }