package syc.mvc.controller; import java.awt.Color; import java.awt.Component; import java.awt.Container; import java.awt.Desktop; import java.awt.Dimension; import java.awt.Font; import java.awt.GridBagConstraints; import java.awt.Insets; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.MouseListener; import java.awt.font.TextAttribute; import java.io.IOException; import java.net.URI; import java.net.URISyntaxException; import java.util.EventObject; import java.util.Map; import javax.swing.BorderFactory; import javax.swing.ImageIcon; import javax.swing.JButton; import javax.swing.JComboBox; import javax.swing.JLabel; import javax.swing.JOptionPane; import javax.swing.JPanel; import javax.swing.JPasswordField; import javax.swing.JTextField; import org.w3c.dom.events.MouseEvent; import syc.mvc.model.Model; import syc.mvc.view.IHM_addDrive; import syc.mvc.view.IHM_authorization; public class Controller_authorization implements ActionListener,MouseListener { private Model model_SYC; private IHM_authorization view_authorization; public Controller_authorization(Model aModel_SYC, IHM_authorization aView_authorization) { this.model_SYC = aModel_SYC; this.view_authorization = aView_authorization; this.ControllerActionListenerForComponent(view_authorization.getContentPane()); } public void ControllerActionListenerForComponent(Container cont_temps) { if(cont_temps instanceof Container) { int i; int j =cont_temps.getComponentCount(); for(i =0; i< j ;i++) { Component cmp_temps = cont_temps.getComponents()[i]; //System.out.println(j); if(cmp_temps instanceof JButton) { ((JButton) cmp_temps).addActionListener(this); } if(cmp_temps instanceof JTextField ) { ((JTextField) cmp_temps).addActionListener(this); } if(cmp_temps instanceof JPasswordField ) { ((JPasswordField) cmp_temps).addActionListener(this); } if(cmp_temps instanceof JComboBox) { ControllerActionListenerForComponent((JComboBox<String>) cmp_temps); } if(cmp_temps instanceof Container) { ControllerActionListenerForComponent((Container) cmp_temps); } if(cmp_temps instanceof JLabel) { cmp_temps.addMouseListener(this); } } } } @Override public void actionPerformed(ActionEvent e) { if(e.getSource()==this.view_authorization.getjBt_Cancel()) { //Back to IHM_drives this.view_authorization.getjLab_LiensURL().setForeground(Color.blue); model_SYC.init(); model_SYC.setDisplay_drives(true); } if(e.getSource()==this.view_authorization.getjBt_AddDriveAccount()) { if(this.model_SYC.getSelectedDriveType().equals("SkyDrive")){ if(this.view_authorization.getJt_UrlSkyDrive().isEmpty()) { JOptionPane.showMessageDialog (this.view_authorization,"Veuillez copier l'url retourn�.","SYC message",2); return; } } //add the drive account /*if(this.view_authorization.getjLab_LiensURL().getForeground()!=Color.red) { JOptionPane.showMessageDialog (this.view_authorization,"Veuillez cliquer sur le lien","SYC message",1); } else {*/ //Back to IHM_drives this.view_authorization.getjLab_LiensURL().setForeground(Color.blue); boolean result = true; switch(model_SYC.getSelectedDriveType()){ case "DropBox": result = this.model_SYC.validateToken(); break; case "SkyDrive": result = this.model_SYC.validateToken(this.view_authorization.getJt_UrlSkyDrive()); break; default: break; } if(!result) { JOptionPane.showMessageDialog (this.view_authorization,"Erreur lors de votre authentification.","SYC message",2); return; } model_SYC.init(); model_SYC.setDisplay_drives(true); //} } } @Override public void mouseClicked(java.awt.event.MouseEvent e) { if (e.getSource()==this.view_authorization.getjLab_LiensURL()) { if(Desktop.isDesktopSupported()) { if(Desktop.getDesktop().isSupported(Desktop.Action.BROWSE)) { URI uri; try { uri = new URI(this.model_SYC.getDrivelink()); Desktop.getDesktop().browse(uri); } catch (URISyntaxException arg0) { arg0.printStackTrace(); } catch (IOException arg0) { arg0.printStackTrace(); } } } } } @Override public void mouseEntered(java.awt.event.MouseEvent e) { if(e.getSource()==this.view_authorization.getjLab_LiensURL()) { } } @Override public void mouseExited(java.awt.event.MouseEvent e) { if(e.getSource()==this.view_authorization.getjLab_LiensURL()) { this.view_authorization.getjLab_LiensURL().setText(model_SYC.getDrivelink()); } } @Override public void mousePressed(java.awt.event.MouseEvent e) { if(e.getSource()==this.view_authorization.getjLab_LiensURL()) { this.view_authorization.getjLab_LiensURL().setForeground(Color.red); } } @Override public void mouseReleased(java.awt.event.MouseEvent e) { } }