package syc.mvc.controller;
import java.awt.Color;
import java.awt.Component;
import java.awt.Container;
import java.awt.Dimension;
import java.awt.GridBagConstraints;
import java.awt.Insets;
import java.awt.TextField;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.BorderFactory;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JFileChooser;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JPasswordField;
import javax.swing.JTextField;
import javax.swing.filechooser.FileFilter;
import com.google.api.services.drive.model.File;
import syc.mvc.model.Model;
import syc.mvc.view.IHM_editDrive;
import syc.mvc.view.IHM_home;
public class Controller_editDrive implements ActionListener
{
private Model model_SYC;
private IHM_editDrive view_editDrive;
public Controller_editDrive(Model aModel_SYC, IHM_editDrive aView_editDrive)
{
this.model_SYC = aModel_SYC;
this.view_editDrive = aView_editDrive;
this.ControllerActionListenerForComponent(view_editDrive.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);
}
}
}
}
@Override
public void actionPerformed(ActionEvent e)
{
if(e.getSource()==this.view_editDrive.getjBt_BackToDrives())
{
//back to Drives
model_SYC.init();
model_SYC.setDisplay_drives(true);
}
if(e.getSource()==this.view_editDrive.getjBt_EditDrive())
{
int dialogResult = JOptionPane.showConfirmDialog (this.view_editDrive,
"Confirmez la ou les modifications apport�e(s)","SYC message",JOptionPane.OK_CANCEL_OPTION);
if(dialogResult == JOptionPane.OK_OPTION)
{
//apply the new modification
model_SYC.drives.get(model_SYC.getIndexIntDriveSelectedOnDrivePage()).getSync().start();
JOptionPane.showMessageDialog(this.view_editDrive, "Synchronisation effectuee !","Synchro",1);
//then go back back to Drives
model_SYC.init();
model_SYC.setDisplay_drives(true);
}
}
if(e.getSource()==this.view_editDrive.getjBt_Browse())
{
JPanel jpan_Browse= new JPanel();
this.view_editDrive.getJFC_Browse().setPreferredSize(new Dimension(500,270));
this.view_editDrive.getJFC_Browse().setDialogTitle("Selection de l'emplacement local");
this.view_editDrive.getJFC_Browse().setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
this.view_editDrive.getJFC_Browse().setApproveButtonText("Selectionner");
this.view_editDrive.getJFC_Browse().setAcceptAllFileFilterUsed(true);
this.view_editDrive.getJFC_Browse().setCurrentDirectory(new java.io.File(model_SYC.getTxt_LocalLocation_editDrive()));
int dialogResult = this.view_editDrive.getJFC_Browse().showOpenDialog(jpan_Browse);
if (dialogResult == JFileChooser.APPROVE_OPTION)
{
if(this.view_editDrive.getJFC_Browse().getSelectedFile() != null){
this.view_editDrive.setTxt_LocalLocation(this.view_editDrive.getJFC_Browse().getSelectedFile().getAbsolutePath());
model_SYC.drives.get(model_SYC.getIndexIntDriveSelectedOnDrivePage()).setSync(this.view_editDrive.getJFC_Browse().getSelectedFile().getAbsolutePath());
}
//move the folder to the new place selected
}
}
}
}