package projet; import java.awt.Color; import java.awt.Component; import java.awt.Desktop; import java.awt.GridLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.KeyEvent; import java.awt.event.KeyListener; import java.awt.event.MouseEvent; import java.awt.event.MouseListener; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JList; import javax.swing.JMenu; import javax.swing.JMenuBar; import javax.swing.JMenuItem; import javax.swing.JOptionPane; import javax.swing.JPanel; import javax.swing.JScrollPane; import javax.swing.JTextField; import javax.swing.ListSelectionModel; import javax.swing.border.LineBorder; import javax.swing.event.ListSelectionEvent; import javax.swing.event.ListSelectionListener; import java.io.File; import java.io.IOException; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Date; import java.util.List; import java.util.NoSuchElementException; public class ArboIHM extends JFrame implements ActionListener { /** * */ private static final long serialVersionUID = 1L; private List liste = new ArrayList(); private JPanel panel = new JPanel(); private JPanel boutons = new JPanel(); private JButton triNom = new JButton("Arborescence triée par nom"); private JButton triTaille = new JButton("Arborescence triée par taille"); // private JButton triDate = new JButton("Arborescence triée par date"); private File test = new File("C:/Users/"); private ArboTriee a1 = new ArboTrieeParNom(test);; private ArboTriee at1 = new ArboTrieeParTaille(test); private JList laListe = new JList(liste.toArray());; private JLabel nomLabel = new JLabel("Nom : "); private JLabel tailleLabel = new JLabel("Taille : "); private JLabel dateLabel = new JLabel("Date : "); private JPanel nom = new JPanel(); private JPanel taille = new JPanel(); private JPanel date = new JPanel(); private JTextField nomTexte = new JTextField( "Veuillez sélectionner un fichier", 20); private JTextField tailleTexte = new JTextField( "Veuillez sélectionner un fichier", 20); private JTextField dateTexte = new JTextField( "Veuillez sélectionner un fichier", 20); private JTextField rechercheTexte = new JTextField( "Veuillez saisir le nom d'un fichier", 20); private JScrollPane scrollPane = new JScrollPane(laListe); private JButton ouvrir = new JButton("Ouvrir le fichier"); private GridLayout g1 = new GridLayout(3, 1); private JLabel rechercheLabel = new JLabel("Rechercher : "); private JPanel recherche = new JPanel(); private JScrollPane j1 = new JScrollPane(laListe); private JPanel infos = new JPanel(); private File f1; private String str = ""; private JMenuBar jmb = new JMenuBar(); private JMenu fichier = new JMenu("Fichier"); private JMenu aide = new JMenu("?"); private JMenuItem itemNouveau = new JMenuItem("Nouveau"); private JMenuItem itemSauver = new JMenuItem("Sauvegarder"); private JMenuItem itemCharger = new JMenuItem("Charger"); private JMenuItem itemQuitter = new JMenuItem("Quitter"); private JMenuItem itemPropos = new JMenuItem("A Propos"); private JMenuItem itemAide = new JMenuItem("Aide"); public ArboIHM() { init(); } public void init() { setVisible(true); this.setJMenuBar(this.creationBarreDeMenu()); setTitle("Projet de JAVA"); pack(); setSize(700, 300); this.setLocationRelativeTo(null); setResizable(false); setDefaultCloseOperation(EXIT_ON_CLOSE); nomTexte.setEditable(false); dateTexte.setEditable(false); tailleTexte.setEditable(false); add(panel); nom.add(nomLabel); nom.add(nomTexte); date.add(dateLabel); date.add(dateTexte); taille.add(tailleLabel); taille.add(tailleTexte); recherche.add(rechercheLabel); recherche.add(rechercheTexte); boutons.add(triNom); boutons.add(triTaille); boutons.add(ouvrir); infos.add(nom); infos.add(date); infos.add(taille); infos.add(recherche); panel.setLayout(g1); panel.add(boutons); panel.add(infos); j1.setViewportView(laListe); panel.add(j1); triNom.addActionListener(new TriParNom()); triTaille.addActionListener(new TriParTaille()); ouvrir.addActionListener(new AffichePDF()); rechercheTexte.addKeyListener(new RechercheFichier()); rechercheTexte.addMouseListener(new ClicGauche()); laListe.setBorder(new LineBorder(Color.black)); laListe.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); laListe.addListSelectionListener(new ListSelectionListener() { public void valueChanged(ListSelectionEvent e) { if (laListe.isSelectionEmpty() == false) { File f1 = (File) laListe.getSelectedValue(); SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy H:mm:ss"); Date d = new Date(f1.lastModified()); nomTexte.setText(f1.getName()); dateTexte.setText(sdf.format(d)); tailleTexte.setText(getFormatedSize(f1)); } } }); panel.updateUI(); } public String getFormatedSize(File file) { int size = (int) (file.length() / 1024) + 1; if (size > 1024) { return (size / 1024) + " Mo"; } else { return size + " ko"; } } private JMenuBar creationBarreDeMenu() { fichier.add(itemNouveau); fichier.add(itemSauver); fichier.add(itemCharger); fichier.add(itemQuitter); aide.add(itemPropos); aide.add(itemAide); jmb.add(fichier); jmb.add(aide); itemQuitter.addActionListener(new Quitter()); itemNouveau.addActionListener(new Nouveau()); itemSauver.addActionListener(new Sauvegarder()); itemCharger.addActionListener(new Charger()); itemPropos.addActionListener(new Propos()); itemAide.addActionListener(new Aide()); return jmb; } private class TriParNom implements ActionListener { public void actionPerformed(ActionEvent arg0) { laListe.setListData(a1.getListe().toArray()); } } private class RechercheFichier implements KeyListener { public void keyPressed(KeyEvent e) throws NoSuchElementException { if (e.getKeyCode() == KeyEvent.VK_ENTER) { String str = rechercheTexte.getText(); try { if (str.equals(a1.rechercherFichier(str).getName())) { SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy H:mm:ss"); Date d = new Date(a1.rechercherFichier(str).lastModified()); nomTexte.setText(a1.rechercherFichier(str).getName()); dateTexte.setText(sdf.format(d)); tailleTexte.setText(getFormatedSize(a1.rechercherFichier(str))); } } catch (NoSuchElementException f) { System.err.println(f.getMessage()); new Erreur(); } } } @Override public void keyReleased(KeyEvent arg0) { // TODO Auto-generated method stub } @Override public void keyTyped(KeyEvent arg0) { // TODO Auto-generated method stub } } public class ClicGauche implements MouseListener{ @Override public void mouseClicked(MouseEvent e) { // TODO Auto-generated method stub } @Override public void mouseEntered(MouseEvent e) { // TODO Auto-generated method stub } @Override public void mouseExited(MouseEvent e) { // TODO Auto-generated method stub } @Override public void mousePressed(MouseEvent e) { if (e.getButton() == MouseEvent.BUTTON1)//Bouton droit { rechercheTexte.setText(""); } } @Override public void mouseReleased(MouseEvent e) { // TODO Auto-generated method stub } } private class TriParTaille implements ActionListener { public void actionPerformed(ActionEvent arg0) { laListe.setListData(at1.getListe().toArray()); } } private class Quitter implements ActionListener { public void actionPerformed(ActionEvent e) { String action = e.getActionCommand(); if (action.equals("Quitter")) { System.exit(0); } } } private class AffichePDF implements ActionListener { public void actionPerformed(ActionEvent arg0) { if ( Desktop.isDesktopSupported() ) { Desktop desktop = Desktop.getDesktop(); if (desktop.isSupported(Desktop.Action.OPEN)) { try { desktop.open(f1); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } } } private class Nouveau implements ActionListener { public void actionPerformed(ActionEvent e) { String action = e.getActionCommand(); if (action.equals("Nouveau")) { laListe.setListData(liste.toArray()); nomTexte.setText(""); dateTexte.setText(""); tailleTexte.setText(""); rechercheTexte.setText(""); laListe.setSelectedIndex(-1); } } } private class Sauvegarder implements ActionListener { public void actionPerformed(ActionEvent e) { String action = e.getActionCommand(); if (action.equals("Sauvegarder")) { a1.serialize("test"); } } } private class Charger implements ActionListener { public void actionPerformed(ActionEvent e) { String action = e.getActionCommand(); if (action.equals("Charger")) { a1.read("test"); laListe.setListData(a1.getListe().toArray()); } } } private class Propos implements ActionListener { public void actionPerformed(ActionEvent e) { String action = e.getActionCommand(); if (action.equals("A Propos")) { new APropos(); } } } private class Aide implements ActionListener { public void actionPerformed(ActionEvent e) { String action = e.getActionCommand(); if (action.equals("Aide")) { new Aider(); } } } public static void main(String... args) { new ArboIHM(); } @Override public void actionPerformed(ActionEvent arg0) { // TODO Auto-generated method stub } }